From 930f4115497b4a0c956adc2f398475e6f7febe11 Mon Sep 17 00:00:00 2001 From: legop3 Date: Sat, 22 Nov 2025 19:10:50 -0500 Subject: [PATCH] fixing up mobile layouts --- plans/problems.md | 8 +++--- server/public/assets/index-CoT66lYm.js | 11 ++++++++ server/public/assets/index-D4k56rvM.js | 11 -------- server/public/assets/index-DQGzoV_h.css | 1 + server/public/assets/index-DUduiIaK.css | 1 - server/public/index.html | 4 +-- webui/src/App.jsx | 24 ++++++++++------ webui/src/components/DriverVideoPanel.jsx | 4 +-- webui/src/components/MobileControls.jsx | 34 ++++++++++++----------- webui/src/components/VideoTile.jsx | 17 ++++++------ 10 files changed, 62 insertions(+), 53 deletions(-) create mode 100644 server/public/assets/index-CoT66lYm.js delete mode 100644 server/public/assets/index-D4k56rvM.js create mode 100644 server/public/assets/index-DQGzoV_h.css delete mode 100644 server/public/assets/index-DUduiIaK.css diff --git a/plans/problems.md b/plans/problems.md index 6bc8ef65..4861215c 100644 --- a/plans/problems.md +++ b/plans/problems.md @@ -14,14 +14,14 @@ -4. fix gamepad input - add manual inversions? +4. fix gamepad input - more complex axis assignment? division, combined axes? -8. turns mode display + -9. discord invite button + 10. redo both mobile layouts 11. redo spectator view (last) -21. finally.. set the favicon \ No newline at end of file +21. finally.. set the favicon and title \ No newline at end of file diff --git a/server/public/assets/index-CoT66lYm.js b/server/public/assets/index-CoT66lYm.js new file mode 100644 index 00000000..8642b46f --- /dev/null +++ b/server/public/assets/index-CoT66lYm.js @@ -0,0 +1,11 @@ +(function(){const l=document.createElement("link").relList;if(l&&l.supports&&l.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const h of o)if(h.type==="childList")for(const v of h.addedNodes)v.tagName==="LINK"&&v.rel==="modulepreload"&&r(v)}).observe(document,{childList:!0,subtree:!0});function s(o){const h={};return o.integrity&&(h.integrity=o.integrity),o.referrerPolicy&&(h.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?h.credentials="include":o.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function r(o){if(o.ep)return;o.ep=!0;const h=s(o);fetch(o.href,h)}})();function Cv(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var vc={exports:{}},ei={};var ym;function _v(){if(ym)return ei;ym=1;var i=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function s(r,o,h){var v=null;if(h!==void 0&&(v=""+h),o.key!==void 0&&(v=""+o.key),"key"in o){h={};for(var b in o)b!=="key"&&(h[b]=o[b])}else h=o;return o=h.ref,{$$typeof:i,type:r,key:v,ref:o!==void 0?o:null,props:h}}return ei.Fragment=l,ei.jsx=s,ei.jsxs=s,ei}var vm;function jv(){return vm||(vm=1,vc.exports=_v()),vc.exports}var d=jv(),gc={exports:{}},ue={};var gm;function Rv(){if(gm)return ue;gm=1;var i=Symbol.for("react.transitional.element"),l=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),h=Symbol.for("react.consumer"),v=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),C=Symbol.iterator;function T(q){return q===null||typeof q!="object"?null:(q=C&&q[C]||q["@@iterator"],typeof q=="function"?q:null)}var z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,M={};function O(q,Y,K){this.props=q,this.context=Y,this.refs=M,this.updater=K||z}O.prototype.isReactComponent={},O.prototype.setState=function(q,Y){if(typeof q!="object"&&typeof q!="function"&&q!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,q,Y,"setState")},O.prototype.forceUpdate=function(q){this.updater.enqueueForceUpdate(this,q,"forceUpdate")};function k(){}k.prototype=O.prototype;function V(q,Y,K){this.props=q,this.context=Y,this.refs=M,this.updater=K||z}var J=V.prototype=new k;J.constructor=V,_(J,O.prototype),J.isPureReactComponent=!0;var G=Array.isArray;function $(){}var I={H:null,A:null,T:null,S:null},se=Object.prototype.hasOwnProperty;function ae(q,Y,K){var X=K.ref;return{$$typeof:i,type:q,key:Y,ref:X!==void 0?X:null,props:K}}function Q(q,Y){return ae(q.type,Y,q.props)}function F(q){return typeof q=="object"&&q!==null&&q.$$typeof===i}function te(q){var Y={"=":"=0",":":"=2"};return"$"+q.replace(/[=:]/g,function(K){return Y[K]})}var ge=/\/+/g;function xe(q,Y){return typeof q=="object"&&q!==null&&q.key!=null?te(""+q.key):Y.toString(36)}function Ee(q){switch(q.status){case"fulfilled":return q.value;case"rejected":throw q.reason;default:switch(typeof q.status=="string"?q.then($,$):(q.status="pending",q.then(function(Y){q.status==="pending"&&(q.status="fulfilled",q.value=Y)},function(Y){q.status==="pending"&&(q.status="rejected",q.reason=Y)})),q.status){case"fulfilled":return q.value;case"rejected":throw q.reason}}throw q}function U(q,Y,K,X,ee){var oe=typeof q;(oe==="undefined"||oe==="boolean")&&(q=null);var be=!1;if(q===null)be=!0;else switch(oe){case"bigint":case"string":case"number":be=!0;break;case"object":switch(q.$$typeof){case i:case l:be=!0;break;case S:return be=q._init,U(be(q._payload),Y,K,X,ee)}}if(be)return ee=ee(q),be=X===""?"."+xe(q,0):X,G(ee)?(K="",be!=null&&(K=be.replace(ge,"$&/")+"/"),U(ee,Y,K,"",function(Qn){return Qn})):ee!=null&&(F(ee)&&(ee=Q(ee,K+(ee.key==null||q&&q.key===ee.key?"":(""+ee.key).replace(ge,"$&/")+"/")+be)),Y.push(ee)),1;be=0;var Fe=X===""?".":X+":";if(G(q))for(var De=0;De>>1,Te=U[pe];if(0>>1;peo(K,le))Xo(ee,K)?(U[pe]=ee,U[X]=le,pe=X):(U[pe]=K,U[Y]=le,pe=Y);else if(Xo(ee,le))U[pe]=ee,U[X]=le,pe=X;else break e}}return Z}function o(U,Z){var le=U.sortIndex-Z.sortIndex;return le!==0?le:U.id-Z.id}if(i.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var h=performance;i.unstable_now=function(){return h.now()}}else{var v=Date,b=v.now();i.unstable_now=function(){return v.now()-b}}var p=[],g=[],S=1,x=null,C=3,T=!1,z=!1,_=!1,M=!1,O=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,V=typeof setImmediate<"u"?setImmediate:null;function J(U){for(var Z=s(g);Z!==null;){if(Z.callback===null)r(g);else if(Z.startTime<=U)r(g),Z.sortIndex=Z.expirationTime,l(p,Z);else break;Z=s(g)}}function G(U){if(_=!1,J(U),!z)if(s(p)!==null)z=!0,$||($=!0,te());else{var Z=s(g);Z!==null&&Ee(G,Z.startTime-U)}}var $=!1,I=-1,se=5,ae=-1;function Q(){return M?!0:!(i.unstable_now()-aeU&&Q());){var pe=x.callback;if(typeof pe=="function"){x.callback=null,C=x.priorityLevel;var Te=pe(x.expirationTime<=U);if(U=i.unstable_now(),typeof Te=="function"){x.callback=Te,J(U),Z=!0;break t}x===s(p)&&r(p),J(U)}else r(p);x=s(p)}if(x!==null)Z=!0;else{var q=s(g);q!==null&&Ee(G,q.startTime-U),Z=!1}}break e}finally{x=null,C=le,T=!1}Z=void 0}}finally{Z?te():$=!1}}}var te;if(typeof V=="function")te=function(){V(F)};else if(typeof MessageChannel<"u"){var ge=new MessageChannel,xe=ge.port2;ge.port1.onmessage=F,te=function(){xe.postMessage(null)}}else te=function(){O(F,0)};function Ee(U,Z){I=O(function(){U(i.unstable_now())},Z)}i.unstable_IdlePriority=5,i.unstable_ImmediatePriority=1,i.unstable_LowPriority=4,i.unstable_NormalPriority=3,i.unstable_Profiling=null,i.unstable_UserBlockingPriority=2,i.unstable_cancelCallback=function(U){U.callback=null},i.unstable_forceFrameRate=function(U){0>U||125pe?(U.sortIndex=le,l(g,U),s(p)===null&&U===s(g)&&(_?(k(I),I=-1):_=!0,Ee(G,le-pe))):(U.sortIndex=Te,l(p,U),z||T||(z=!0,$||($=!0,te()))),U},i.unstable_shouldYield=Q,i.unstable_wrapCallback=function(U){var Z=C;return function(){var le=C;C=Z;try{return U.apply(this,arguments)}finally{C=le}}}})(Ac)),Ac}var Am;function wv(){return Am||(Am=1,xc.exports=Mv()),xc.exports}var Sc={exports:{}},nt={};var Sm;function Ov(){if(Sm)return nt;Sm=1;var i=Jc();function l(p){var g="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(l){console.error(l)}}return i(),Sc.exports=Ov(),Sc.exports}var Em;function zv(){if(Em)return ti;Em=1;var i=wv(),l=Jc(),s=Dv();function r(e){var t="https://react.dev/errors/"+e;if(1Te||(e.current=pe[Te],pe[Te]=null,Te--)}function K(e,t){Te++,pe[Te]=e.current,e.current=t}var X=q(null),ee=q(null),oe=q(null),be=q(null);function Fe(e,t){switch(K(oe,t),K(ee,e),K(X,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Lh(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Lh(t),e=Hh(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Y(X),K(X,e)}function De(){Y(X),Y(ee),Y(oe)}function Qn(e){e.memoizedState!==null&&K(be,e);var t=X.current,n=Hh(t,e.type);t!==n&&(K(ee,e),K(X,n))}function ya(e){ee.current===e&&(Y(X),Y(ee)),be.current===e&&(Y(be),Fl._currentValue=le)}var va,di;function Xt(e){if(va===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);va=t&&t[1]||"",di=-1)":-1u||A[a]!==R[u]){var B=` +`+A[a].replace(" at new "," at ");return e.displayName&&B.includes("")&&(B=B.replace("",e.displayName)),B}while(1<=a&&0<=u);break}}}finally{yn=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Xt(n):""}function hi(e,t){switch(e.tag){case 26:case 27:case 5:return Xt(e.type);case 16:return Xt("Lazy");case 13:return e.child!==t&&t!==null?Xt("Suspense Fallback"):Xt("Suspense");case 19:return Xt("SuspenseList");case 0:case 15:return Gn(e.type,!1);case 11:return Gn(e.type.render,!1);case 1:return Gn(e.type,!0);case 31:return Xt("Activity");default:return""}}function po(e){try{var t="",n=null;do t+=hi(e,n),n=e,e=e.return;while(e);return t}catch(a){return` +Error generating stack: `+a.message+` +`+a.stack}}var nu=Object.prototype.hasOwnProperty,au=i.unstable_scheduleCallback,lu=i.unstable_cancelCallback,i0=i.unstable_shouldYield,s0=i.unstable_requestPaint,dt=i.unstable_now,u0=i.unstable_getCurrentPriorityLevel,yo=i.unstable_ImmediatePriority,vo=i.unstable_UserBlockingPriority,mi=i.unstable_NormalPriority,r0=i.unstable_LowPriority,go=i.unstable_IdlePriority,c0=i.log,o0=i.unstable_setDisableYieldValue,rl=null,ht=null;function vn(e){if(typeof c0=="function"&&o0(e),ht&&typeof ht.setStrictMode=="function")try{ht.setStrictMode(rl,e)}catch{}}var mt=Math.clz32?Math.clz32:h0,f0=Math.log,d0=Math.LN2;function h0(e){return e>>>=0,e===0?32:31-(f0(e)/d0|0)|0}var pi=256,yi=262144,vi=4194304;function Xn(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:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;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 gi(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var u=0,c=e.suspendedLanes,f=e.pingedLanes;e=e.warmLanes;var m=a&134217727;return m!==0?(a=m&~c,a!==0?u=Xn(a):(f&=m,f!==0?u=Xn(f):n||(n=m&~e,n!==0&&(u=Xn(n))))):(m=a&~c,m!==0?u=Xn(m):f!==0?u=Xn(f):n||(n=a&~e,n!==0&&(u=Xn(n)))),u===0?0:t!==0&&t!==u&&(t&c)===0&&(c=u&-u,n=t&-t,c>=n||c===32&&(n&4194048)!==0)?t:u}function cl(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function m0(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 bo(){var e=vi;return vi<<=1,(vi&62914560)===0&&(vi=4194304),e}function iu(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ol(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function p0(e,t,n,a,u,c){var f=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var m=e.entanglements,A=e.expirationTimes,R=e.hiddenUpdates;for(n=f&~n;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var A0=/[\n"\\]/g;function qt(e){return e.replace(A0,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function fu(e,t,n,a,u,c,f,m){e.name="",f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?e.type=f:e.removeAttribute("type"),t!=null?f==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+St(t)):e.value!==""+St(t)&&(e.value=""+St(t)):f!=="submit"&&f!=="reset"||e.removeAttribute("value"),t!=null?du(e,f,St(t)):n!=null?du(e,f,St(n)):a!=null&&e.removeAttribute("value"),u==null&&c!=null&&(e.defaultChecked=!!c),u!=null&&(e.checked=u&&typeof u!="function"&&typeof u!="symbol"),m!=null&&typeof m!="function"&&typeof m!="symbol"&&typeof m!="boolean"?e.name=""+St(m):e.removeAttribute("name")}function wo(e,t,n,a,u,c,f,m){if(c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(e.type=c),t!=null||n!=null){if(!(c!=="submit"&&c!=="reset"||t!=null)){ou(e);return}n=n!=null?""+St(n):"",t=t!=null?""+St(t):n,m||t===e.value||(e.value=t),e.defaultValue=t}a=a??u,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=m?e.checked:!!a,e.defaultChecked=!!a,f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(e.name=f),ou(e)}function du(e,t,n){t==="number"&&Ai(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function qa(e,t,n,a){if(e=e.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),vu=!1;if(Jt)try{var ml={};Object.defineProperty(ml,"passive",{get:function(){vu=!0}}),window.addEventListener("test",ml,ml),window.removeEventListener("test",ml,ml)}catch{vu=!1}var bn=null,gu=null,qi=null;function Lo(){if(qi)return qi;var e,t=gu,n=t.length,a,u="value"in bn?bn.value:bn.textContent,c=u.length;for(e=0;e=vl),Xo=" ",Ko=!1;function Zo(e,t){switch(e){case"keyup":return $0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Jo(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ca=!1;function W0(e,t){switch(e){case"compositionend":return Jo(t);case"keypress":return t.which!==32?null:(Ko=!0,Xo);case"textInput":return e=t.data,e===Xo&&Ko?null:e;default:return null}}function I0(e,t){if(Ca)return e==="compositionend"||!qu&&Zo(e,t)?(e=Lo(),qi=gu=bn=null,Ca=!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:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=nf(n)}}function lf(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?lf(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function sf(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ai(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ai(e.document)}return t}function Nu(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 sy=Jt&&"documentMode"in document&&11>=document.documentMode,_a=null,Cu=null,Al=null,_u=!1;function uf(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;_u||_a==null||_a!==Ai(a)||(a=_a,"selectionStart"in a&&Nu(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Al&&xl(Al,a)||(Al=a,a=ys(Cu,"onSelect"),0>=f,u-=f,kt=1<<32-mt(t)+u|n<ce?(me=P,P=null):me=P.sibling;var Se=w(N,P,j[ce],L);if(Se===null){P===null&&(P=me);break}e&&P&&Se.alternate===null&&t(N,P),E=c(Se,E,ce),Ae===null?ne=Se:Ae.sibling=Se,Ae=Se,P=me}if(ce===j.length)return n(N,P),ye&&Ft(N,ce),ne;if(P===null){for(;cece?(me=P,P=null):me=P.sibling;var Yn=w(N,P,Se.value,L);if(Yn===null){P===null&&(P=me);break}e&&P&&Yn.alternate===null&&t(N,P),E=c(Yn,E,ce),Ae===null?ne=Yn:Ae.sibling=Yn,Ae=Yn,P=me}if(Se.done)return n(N,P),ye&&Ft(N,ce),ne;if(P===null){for(;!Se.done;ce++,Se=j.next())Se=H(N,Se.value,L),Se!==null&&(E=c(Se,E,ce),Ae===null?ne=Se:Ae.sibling=Se,Ae=Se);return ye&&Ft(N,ce),ne}for(P=a(P);!Se.done;ce++,Se=j.next())Se=D(P,N,ce,Se.value,L),Se!==null&&(e&&Se.alternate!==null&&P.delete(Se.key===null?ce:Se.key),E=c(Se,E,ce),Ae===null?ne=Se:Ae.sibling=Se,Ae=Se);return e&&P.forEach(function(Nv){return t(N,Nv)}),ye&&Ft(N,ce),ne}function Re(N,E,j,L){if(typeof j=="object"&&j!==null&&j.type===_&&j.key===null&&(j=j.props.children),typeof j=="object"&&j!==null){switch(j.$$typeof){case T:e:{for(var ne=j.key;E!==null;){if(E.key===ne){if(ne=j.type,ne===_){if(E.tag===7){n(N,E.sibling),L=u(E,j.props.children),L.return=N,N=L;break e}}else if(E.elementType===ne||typeof ne=="object"&&ne!==null&&ne.$$typeof===se&&na(ne)===E.type){n(N,E.sibling),L=u(E,j.props),Cl(L,j),L.return=N,N=L;break e}n(N,E);break}else t(N,E);E=E.sibling}j.type===_?(L=Wn(j.props.children,N.mode,L,j.key),L.return=N,N=L):(L=Oi(j.type,j.key,j.props,null,N.mode,L),Cl(L,j),L.return=N,N=L)}return f(N);case z:e:{for(ne=j.key;E!==null;){if(E.key===ne)if(E.tag===4&&E.stateNode.containerInfo===j.containerInfo&&E.stateNode.implementation===j.implementation){n(N,E.sibling),L=u(E,j.children||[]),L.return=N,N=L;break e}else{n(N,E);break}else t(N,E);E=E.sibling}L=zu(j,N.mode,L),L.return=N,N=L}return f(N);case se:return j=na(j),Re(N,E,j,L)}if(Ee(j))return W(N,E,j,L);if(te(j)){if(ne=te(j),typeof ne!="function")throw Error(r(150));return j=ne.call(j),ie(N,E,j,L)}if(typeof j.then=="function")return Re(N,E,Hi(j),L);if(j.$$typeof===V)return Re(N,E,Bi(N,j),L);Yi(N,j)}return typeof j=="string"&&j!==""||typeof j=="number"||typeof j=="bigint"?(j=""+j,E!==null&&E.tag===6?(n(N,E.sibling),L=u(E,j),L.return=N,N=L):(n(N,E),L=Du(j,N.mode,L),L.return=N,N=L),f(N)):n(N,E)}return function(N,E,j,L){try{Nl=0;var ne=Re(N,E,j,L);return La=null,ne}catch(P){if(P===ka||P===ki)throw P;var Ae=yt(29,P,null,N.mode);return Ae.lanes=L,Ae.return=N,Ae}finally{}}}var la=Rf(!0),Mf=Rf(!1),En=!1;function Zu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ju(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Tn(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Nn(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(qe&2)!==0){var u=a.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),a.pending=t,t=wi(e),mf(e,null,n),t}return Mi(e,a,t,n),wi(e)}function _l(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Ao(e,n)}}function $u(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var u=null,c=null;if(n=n.firstBaseUpdate,n!==null){do{var f={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};c===null?u=c=f:c=c.next=f,n=n.next}while(n!==null);c===null?u=c=t:c=c.next=t}else u=c=t;n={baseState:a.baseState,firstBaseUpdate:u,lastBaseUpdate:c,shared:a.shared,callbacks:a.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Fu=!1;function jl(){if(Fu){var e=Ua;if(e!==null)throw e}}function Rl(e,t,n,a){Fu=!1;var u=e.updateQueue;En=!1;var c=u.firstBaseUpdate,f=u.lastBaseUpdate,m=u.shared.pending;if(m!==null){u.shared.pending=null;var A=m,R=A.next;A.next=null,f===null?c=R:f.next=R,f=A;var B=e.alternate;B!==null&&(B=B.updateQueue,m=B.lastBaseUpdate,m!==f&&(m===null?B.firstBaseUpdate=R:m.next=R,B.lastBaseUpdate=A))}if(c!==null){var H=u.baseState;f=0,B=R=A=null,m=c;do{var w=m.lane&-536870913,D=w!==m.lane;if(D?(he&w)===w:(a&w)===w){w!==0&&w===Ba&&(Fu=!0),B!==null&&(B=B.next={lane:0,tag:m.tag,payload:m.payload,callback:null,next:null});e:{var W=e,ie=m;w=t;var Re=n;switch(ie.tag){case 1:if(W=ie.payload,typeof W=="function"){H=W.call(Re,H,w);break e}H=W;break e;case 3:W.flags=W.flags&-65537|128;case 0:if(W=ie.payload,w=typeof W=="function"?W.call(Re,H,w):W,w==null)break e;H=x({},H,w);break e;case 2:En=!0}}w=m.callback,w!==null&&(e.flags|=64,D&&(e.flags|=8192),D=u.callbacks,D===null?u.callbacks=[w]:D.push(w))}else D={lane:w,tag:m.tag,payload:m.payload,callback:m.callback,next:null},B===null?(R=B=D,A=H):B=B.next=D,f|=w;if(m=m.next,m===null){if(m=u.shared.pending,m===null)break;D=m,m=D.next,D.next=null,u.lastBaseUpdate=D,u.shared.pending=null}}while(!0);B===null&&(A=H),u.baseState=A,u.firstBaseUpdate=R,u.lastBaseUpdate=B,c===null&&(u.shared.lanes=0),Mn|=f,e.lanes=f,e.memoizedState=H}}function wf(e,t){if(typeof e!="function")throw Error(r(191,e));e.call(t)}function Of(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ec?c:8;var f=U.T,m={};U.T=m,pr(e,!1,t,n);try{var A=u(),R=U.S;if(R!==null&&R(m,A),A!==null&&typeof A=="object"&&typeof A.then=="function"){var B=py(A,a);Ol(e,t,B,At(e))}else Ol(e,t,a,At(e))}catch(H){Ol(e,t,{then:function(){},status:"rejected",reason:H},At())}finally{Z.p=c,f!==null&&m.types!==null&&(f.types=m.types),U.T=f}}function Ay(){}function hr(e,t,n,a){if(e.tag!==5)throw Error(r(476));var u=fd(e).queue;od(e,u,t,le,n===null?Ay:function(){return dd(e),n(a)})}function fd(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:le,baseState:le,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:en,lastRenderedState:le},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:en,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function dd(e){var t=fd(e);t.next===null&&(t=e.alternate.memoizedState),Ol(e,t.next.queue,{},At())}function mr(){return Pe(Fl)}function hd(){return He().memoizedState}function md(){return He().memoizedState}function Sy(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=At();e=Tn(n);var a=Nn(t,e,n);a!==null&&(ft(a,t,n),_l(a,t,n)),t={cache:Qu()},e.payload=t;return}t=t.return}}function qy(e,t,n){var a=At();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Wi(e)?yd(t,n):(n=wu(e,t,n,a),n!==null&&(ft(n,e,a),vd(n,t,a)))}function pd(e,t,n){var a=At();Ol(e,t,n,a)}function Ol(e,t,n,a){var u={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Wi(e))yd(t,u);else{var c=e.alternate;if(e.lanes===0&&(c===null||c.lanes===0)&&(c=t.lastRenderedReducer,c!==null))try{var f=t.lastRenderedState,m=c(f,n);if(u.hasEagerState=!0,u.eagerState=m,pt(m,f))return Mi(e,t,u,0),Me===null&&Ri(),!1}catch{}finally{}if(n=wu(e,t,u,a),n!==null)return ft(n,e,a),vd(n,t,a),!0}return!1}function pr(e,t,n,a){if(a={lane:2,revertLane:Zr(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Wi(e)){if(t)throw Error(r(479))}else t=wu(e,n,a,2),t!==null&&ft(t,e,2)}function Wi(e){var t=e.alternate;return e===re||t!==null&&t===re}function yd(e,t){Ya=Gi=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function vd(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Ao(e,n)}}var Dl={readContext:Pe,use:Zi,useCallback:Ue,useContext:Ue,useEffect:Ue,useImperativeHandle:Ue,useLayoutEffect:Ue,useInsertionEffect:Ue,useMemo:Ue,useReducer:Ue,useRef:Ue,useState:Ue,useDebugValue:Ue,useDeferredValue:Ue,useTransition:Ue,useSyncExternalStore:Ue,useId:Ue,useHostTransitionStatus:Ue,useFormState:Ue,useActionState:Ue,useOptimistic:Ue,useMemoCache:Ue,useCacheRefresh:Ue};Dl.useEffectEvent=Ue;var gd={readContext:Pe,use:Zi,useCallback:function(e,t){return lt().memoizedState=[e,t===void 0?null:t],e},useContext:Pe,useEffect:td,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,$i(4194308,4,id.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $i(4194308,4,e,t)},useInsertionEffect:function(e,t){$i(4,2,e,t)},useMemo:function(e,t){var n=lt();t=t===void 0?null:t;var a=e();if(ia){vn(!0);try{e()}finally{vn(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=lt();if(n!==void 0){var u=n(t);if(ia){vn(!0);try{n(t)}finally{vn(!1)}}}else u=t;return a.memoizedState=a.baseState=u,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:u},a.queue=e,e=e.dispatch=qy.bind(null,re,e),[a.memoizedState,e]},useRef:function(e){var t=lt();return e={current:e},t.memoizedState=e},useState:function(e){e=rr(e);var t=e.queue,n=pd.bind(null,re,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:fr,useDeferredValue:function(e,t){var n=lt();return dr(n,e,t)},useTransition:function(){var e=rr(!1);return e=od.bind(null,re,e.queue,!0,!1),lt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=re,u=lt();if(ye){if(n===void 0)throw Error(r(407));n=n()}else{if(n=t(),Me===null)throw Error(r(349));(he&127)!==0||Lf(a,t,n)}u.memoizedState=n;var c={value:n,getSnapshot:t};return u.queue=c,td(Yf.bind(null,a,c,e),[e]),a.flags|=2048,Qa(9,{destroy:void 0},Hf.bind(null,a,c,n,t),null),n},useId:function(){var e=lt(),t=Me.identifierPrefix;if(ye){var n=Lt,a=kt;n=(a&~(1<<32-mt(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=Xi++,0<\/script>",c=c.removeChild(c.firstChild);break;case"select":c=typeof a.is=="string"?f.createElement("select",{is:a.is}):f.createElement("select"),a.multiple?c.multiple=!0:a.size&&(c.size=a.size);break;default:c=typeof a.is=="string"?f.createElement(u,{is:a.is}):f.createElement(u)}}c[We]=t,c[it]=a;e:for(f=t.child;f!==null;){if(f.tag===5||f.tag===6)c.appendChild(f.stateNode);else if(f.tag!==4&&f.tag!==27&&f.child!==null){f.child.return=f,f=f.child;continue}if(f===t)break e;for(;f.sibling===null;){if(f.return===null||f.return===t)break e;f=f.return}f.sibling.return=f.return,f=f.sibling}t.stateNode=c;e:switch(tt(c,u,a),u){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&nn(t)}}return Oe(t),jr(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&nn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(r(166));if(e=oe.current,Da(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,u=Ie,u!==null)switch(u.tag){case 27:case 5:a=u.memoizedProps}e[We]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Uh(e.nodeValue,n)),e||Sn(t,!0)}else e=vs(e).createTextNode(a),e[We]=t,t.stateNode=e}return Oe(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=Da(t),n!==null){if(e===null){if(!a)throw Error(r(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(557));e[We]=t}else In(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Oe(t),e=!1}else n=Lu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(gt(t),t):(gt(t),null);if((t.flags&128)!==0)throw Error(r(558))}return Oe(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(u=Da(t),a!==null&&a.dehydrated!==null){if(e===null){if(!u)throw Error(r(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(r(317));u[We]=t}else In(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Oe(t),u=!1}else u=Lu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(gt(t),t):(gt(t),null)}return gt(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,u=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(u=a.alternate.memoizedState.cachePool.pool),c=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(c=a.memoizedState.cachePool.pool),c!==u&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),ns(t,t.updateQueue),Oe(t),null);case 4:return De(),e===null&&Wr(t.stateNode.containerInfo),Oe(t),null;case 10:return It(t.type),Oe(t),null;case 19:if(Y(Le),a=t.memoizedState,a===null)return Oe(t),null;if(u=(t.flags&128)!==0,c=a.rendering,c===null)if(u)Bl(a,!1);else{if(ke!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(c=Qi(e),c!==null){for(t.flags|=128,Bl(a,!1),e=c.updateQueue,t.updateQueue=e,ns(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)pf(n,e),n=n.sibling;return K(Le,Le.current&1|2),ye&&Ft(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&dt()>us&&(t.flags|=128,u=!0,Bl(a,!1),t.lanes=4194304)}else{if(!u)if(e=Qi(c),e!==null){if(t.flags|=128,u=!0,e=e.updateQueue,t.updateQueue=e,ns(t,e),Bl(a,!0),a.tail===null&&a.tailMode==="hidden"&&!c.alternate&&!ye)return Oe(t),null}else 2*dt()-a.renderingStartTime>us&&n!==536870912&&(t.flags|=128,u=!0,Bl(a,!1),t.lanes=4194304);a.isBackwards?(c.sibling=t.child,t.child=c):(e=a.last,e!==null?e.sibling=c:t.child=c,a.last=c)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=dt(),e.sibling=null,n=Le.current,K(Le,u?n&1|2:n&1),ye&&Ft(t,a.treeForkCount),e):(Oe(t),null);case 22:case 23:return gt(t),Iu(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(n&536870912)!==0&&(t.flags&128)===0&&(Oe(t),t.subtreeFlags&6&&(t.flags|=8192)):Oe(t),n=t.updateQueue,n!==null&&ns(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&Y(ta),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),It(Ye),Oe(t),null;case 25:return null;case 30:return null}throw Error(r(156,t.tag))}function _y(e,t){switch(Uu(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return It(Ye),De(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ya(t),null;case 31:if(t.memoizedState!==null){if(gt(t),t.alternate===null)throw Error(r(340));In()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(gt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));In()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Y(Le),null;case 4:return De(),null;case 10:return It(t.type),null;case 22:case 23:return gt(t),Iu(),e!==null&&Y(ta),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return It(Ye),null;case 25:return null;default:return null}}function Vd(e,t){switch(Uu(t),t.tag){case 3:It(Ye),De();break;case 26:case 27:case 5:ya(t);break;case 4:De();break;case 31:t.memoizedState!==null&>(t);break;case 13:gt(t);break;case 19:Y(Le);break;case 10:It(t.type);break;case 22:case 23:gt(t),Iu(),e!==null&&Y(ta);break;case 24:It(Ye)}}function Ul(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var u=a.next;n=u;do{if((n.tag&e)===e){a=void 0;var c=n.create,f=n.inst;a=c(),f.destroy=a}n=n.next}while(n!==u)}}catch(m){Ce(t,t.return,m)}}function jn(e,t,n){try{var a=t.updateQueue,u=a!==null?a.lastEffect:null;if(u!==null){var c=u.next;a=c;do{if((a.tag&e)===e){var f=a.inst,m=f.destroy;if(m!==void 0){f.destroy=void 0,u=t;var A=n,R=m;try{R()}catch(B){Ce(u,A,B)}}}a=a.next}while(a!==c)}}catch(B){Ce(t,t.return,B)}}function Qd(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Of(t,n)}catch(a){Ce(e,e.return,a)}}}function Gd(e,t,n){n.props=sa(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){Ce(e,t,a)}}function kl(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof n=="function"?e.refCleanup=n(a):n.current=a}}catch(u){Ce(e,t,u)}}function Ht(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(u){Ce(e,t,u)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(u){Ce(e,t,u)}else n.current=null}function Xd(e){var t=e.type,n=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&a.focus();break e;case"img":n.src?a.src=n.src:n.srcSet&&(a.srcset=n.srcSet)}}catch(u){Ce(e,e.return,u)}}function Rr(e,t,n){try{var a=e.stateNode;Fy(a,e.type,n,t),a[it]=t}catch(u){Ce(e,e.return,u)}}function Kd(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Bn(e.type)||e.tag===4}function Mr(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Kd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Bn(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function wr(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zt));else if(a!==4&&(a===27&&Bn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(wr(e,t,n),e=e.sibling;e!==null;)wr(e,t,n),e=e.sibling}function as(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&Bn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(as(e,t,n),e=e.sibling;e!==null;)as(e,t,n),e=e.sibling}function Zd(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);tt(t,a,n),t[We]=e,t[it]=n}catch(c){Ce(e,e.return,c)}}var an=!1,Ge=!1,Or=!1,Jd=typeof WeakSet=="function"?WeakSet:Set,Je=null;function jy(e,t){if(e=e.containerInfo,ec=Es,e=sf(e),Nu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var u=a.anchorOffset,c=a.focusNode;a=a.focusOffset;try{n.nodeType,c.nodeType}catch{n=null;break e}var f=0,m=-1,A=-1,R=0,B=0,H=e,w=null;t:for(;;){for(var D;H!==n||u!==0&&H.nodeType!==3||(m=f+u),H!==c||a!==0&&H.nodeType!==3||(A=f+a),H.nodeType===3&&(f+=H.nodeValue.length),(D=H.firstChild)!==null;)w=H,H=D;for(;;){if(H===e)break t;if(w===n&&++R===u&&(m=f),w===c&&++B===a&&(A=f),(D=H.nextSibling)!==null)break;H=w,w=H.parentNode}H=D}n=m===-1||A===-1?null:{start:m,end:A}}else n=null}n=n||{start:0,end:0}}else n=null;for(tc={focusedElem:e,selectionRange:n},Es=!1,Je=t;Je!==null;)if(t=Je,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Je=e;else for(;Je!==null;){switch(t=Je,c=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n title"))),tt(c,a,n),c[We]=e,Ze(c),a=c;break e;case"link":var f=em("link","href",u).get(a+(n.href||""));if(f){for(var m=0;mRe&&(f=Re,Re=ie,ie=f);var N=af(m,ie),E=af(m,Re);if(N&&E&&(D.rangeCount!==1||D.anchorNode!==N.node||D.anchorOffset!==N.offset||D.focusNode!==E.node||D.focusOffset!==E.offset)){var j=H.createRange();j.setStart(N.node,N.offset),D.removeAllRanges(),ie>Re?(D.addRange(j),D.extend(E.node,E.offset)):(j.setEnd(E.node,E.offset),D.addRange(j))}}}}for(H=[],D=m;D=D.parentNode;)D.nodeType===1&&H.push({element:D,left:D.scrollLeft,top:D.scrollTop});for(typeof m.focus=="function"&&m.focus(),m=0;mn?32:n,U.T=null,n=Hr,Hr=null;var c=On,f=cn;if(Ke=0,Ja=On=null,cn=0,(qe&6)!==0)throw Error(r(331));var m=qe;if(qe|=4,ih(c.current),nh(c,c.current,f,n),qe=m,Gl(0,!1),ht&&typeof ht.onPostCommitFiberRoot=="function")try{ht.onPostCommitFiberRoot(rl,c)}catch{}return!0}finally{Z.p=u,U.T=a,qh(e,t)}}function Th(e,t,n){t=Tt(n,t),t=br(e.stateNode,t,2),e=Nn(e,t,2),e!==null&&(ol(e,2),Yt(e))}function Ce(e,t,n){if(e.tag===3)Th(e,e,n);else for(;t!==null;){if(t.tag===3){Th(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(wn===null||!wn.has(a))){e=Tt(n,e),n=Nd(2),a=Nn(t,n,2),a!==null&&(Cd(n,a,t,e),ol(a,2),Yt(a));break}}t=t.return}}function Gr(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new wy;var u=new Set;a.set(t,u)}else u=a.get(t),u===void 0&&(u=new Set,a.set(t,u));u.has(n)||(Br=!0,u.add(n),e=Uy.bind(null,e,t,n),t.then(e,e))}function Uy(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Me===e&&(he&n)===n&&(ke===4||ke===3&&(he&62914560)===he&&300>dt()-ss?(qe&2)===0&&$a(e,0):Ur|=n,Za===he&&(Za=0)),Yt(e)}function Nh(e,t){t===0&&(t=bo()),e=Fn(e,t),e!==null&&(ol(e,t),Yt(e))}function ky(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Nh(e,n)}function Ly(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,u=e.memoizedState;u!==null&&(n=u.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(r(314))}a!==null&&a.delete(t),Nh(e,n)}function Hy(e,t){return au(e,t)}var hs=null,Wa=null,Xr=!1,ms=!1,Kr=!1,zn=0;function Yt(e){e!==Wa&&e.next===null&&(Wa===null?hs=Wa=e:Wa=Wa.next=e),ms=!0,Xr||(Xr=!0,Vy())}function Gl(e,t){if(!Kr&&ms){Kr=!0;do for(var n=!1,a=hs;a!==null;){if(e!==0){var u=a.pendingLanes;if(u===0)var c=0;else{var f=a.suspendedLanes,m=a.pingedLanes;c=(1<<31-mt(42|e)+1)-1,c&=u&~(f&~m),c=c&201326741?c&201326741|1:c?c|2:0}c!==0&&(n=!0,Rh(a,c))}else c=he,c=gi(a,a===Me?c:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(c&3)===0||cl(a,c)||(n=!0,Rh(a,c));a=a.next}while(n);Kr=!1}}function Yy(){Ch()}function Ch(){ms=Xr=!1;var e=0;zn!==0&&Iy()&&(e=zn);for(var t=dt(),n=null,a=hs;a!==null;){var u=a.next,c=_h(a,t);c===0?(a.next=null,n===null?hs=u:n.next=u,u===null&&(Wa=n)):(n=a,(e!==0||(c&3)!==0)&&(ms=!0)),a=u}Ke!==0&&Ke!==5||Gl(e),zn!==0&&(zn=0)}function _h(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,u=e.expirationTimes,c=e.pendingLanes&-62914561;0m)break;var B=A.transferSize,H=A.initiatorType;B&&kh(H)&&(A=A.responseEnd,f+=B*(A"u"?null:document;function Fh(e,t,n){var a=Ia;if(a&&typeof t=="string"&&t){var u=qt(t);u='link[rel="'+e+'"][href="'+u+'"]',typeof n=="string"&&(u+='[crossorigin="'+n+'"]'),$h.has(u)||($h.add(u),e={rel:e,crossOrigin:n,href:t},a.querySelector(u)===null&&(t=a.createElement("link"),tt(t,"link",e),Ze(t),a.head.appendChild(t)))}}function uv(e){on.D(e),Fh("dns-prefetch",e,null)}function rv(e,t){on.C(e,t),Fh("preconnect",e,t)}function cv(e,t,n){on.L(e,t,n);var a=Ia;if(a&&e&&t){var u='link[rel="preload"][as="'+qt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(u+='[imagesrcset="'+qt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(u+='[imagesizes="'+qt(n.imageSizes)+'"]')):u+='[href="'+qt(e)+'"]';var c=u;switch(t){case"style":c=Pa(e);break;case"script":c=el(e)}Mt.has(c)||(e=x({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Mt.set(c,e),a.querySelector(u)!==null||t==="style"&&a.querySelector(Jl(c))||t==="script"&&a.querySelector($l(c))||(t=a.createElement("link"),tt(t,"link",e),Ze(t),a.head.appendChild(t)))}}function ov(e,t){on.m(e,t);var n=Ia;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+qt(a)+'"][href="'+qt(e)+'"]',c=u;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":c=el(e)}if(!Mt.has(c)&&(e=x({rel:"modulepreload",href:e},t),Mt.set(c,e),n.querySelector(u)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector($l(c)))return}a=n.createElement("link"),tt(a,"link",e),Ze(a),n.head.appendChild(a)}}}function fv(e,t,n){on.S(e,t,n);var a=Ia;if(a&&e){var u=Aa(a).hoistableStyles,c=Pa(e);t=t||"default";var f=u.get(c);if(!f){var m={loading:0,preload:null};if(f=a.querySelector(Jl(c)))m.loading=5;else{e=x({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Mt.get(c))&&rc(e,n);var A=f=a.createElement("link");Ze(A),tt(A,"link",e),A._p=new Promise(function(R,B){A.onload=R,A.onerror=B}),A.addEventListener("load",function(){m.loading|=1}),A.addEventListener("error",function(){m.loading|=2}),m.loading|=4,bs(f,t,a)}f={type:"stylesheet",instance:f,count:1,state:m},u.set(c,f)}}}function dv(e,t){on.X(e,t);var n=Ia;if(n&&e){var a=Aa(n).hoistableScripts,u=el(e),c=a.get(u);c||(c=n.querySelector($l(u)),c||(e=x({src:e,async:!0},t),(t=Mt.get(u))&&cc(e,t),c=n.createElement("script"),Ze(c),tt(c,"link",e),n.head.appendChild(c)),c={type:"script",instance:c,count:1,state:null},a.set(u,c))}}function hv(e,t){on.M(e,t);var n=Ia;if(n&&e){var a=Aa(n).hoistableScripts,u=el(e),c=a.get(u);c||(c=n.querySelector($l(u)),c||(e=x({src:e,async:!0,type:"module"},t),(t=Mt.get(u))&&cc(e,t),c=n.createElement("script"),Ze(c),tt(c,"link",e),n.head.appendChild(c)),c={type:"script",instance:c,count:1,state:null},a.set(u,c))}}function Wh(e,t,n,a){var u=(u=oe.current)?gs(u):null;if(!u)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=Pa(n.href),n=Aa(u).hoistableStyles,a=n.get(t),a||(a={type:"style",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=Pa(n.href);var c=Aa(u).hoistableStyles,f=c.get(e);if(f||(u=u.ownerDocument||u,f={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},c.set(e,f),(c=u.querySelector(Jl(e)))&&!c._p&&(f.instance=c,f.state.loading=5),Mt.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Mt.set(e,n),c||mv(u,e,n,f.state))),t&&a===null)throw Error(r(528,""));return f}if(t&&a!==null)throw Error(r(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=el(n),n=Aa(u).hoistableScripts,a=n.get(t),a||(a={type:"script",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,e))}}function Pa(e){return'href="'+qt(e)+'"'}function Jl(e){return'link[rel="stylesheet"]['+e+"]"}function Ih(e){return x({},e,{"data-precedence":e.precedence,precedence:null})}function mv(e,t,n,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),tt(t,"link",n),Ze(t),e.head.appendChild(t))}function el(e){return'[src="'+qt(e)+'"]'}function $l(e){return"script[async]"+e}function Ph(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+qt(n.href)+'"]');if(a)return t.instance=a,Ze(a),a;var u=x({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),Ze(a),tt(a,"style",u),bs(a,n.precedence,e),t.instance=a;case"stylesheet":u=Pa(n.href);var c=e.querySelector(Jl(u));if(c)return t.state.loading|=4,t.instance=c,Ze(c),c;a=Ih(n),(u=Mt.get(u))&&rc(a,u),c=(e.ownerDocument||e).createElement("link"),Ze(c);var f=c;return f._p=new Promise(function(m,A){f.onload=m,f.onerror=A}),tt(c,"link",a),t.state.loading|=4,bs(c,n.precedence,e),t.instance=c;case"script":return c=el(n.src),(u=e.querySelector($l(c)))?(t.instance=u,Ze(u),u):(a=n,(u=Mt.get(c))&&(a=x({},n),cc(a,u)),e=e.ownerDocument||e,u=e.createElement("script"),Ze(u),tt(u,"link",a),e.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(r(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,bs(a,n.precedence,e));return t.instance}function bs(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=a.length?a[a.length-1]:null,c=u,f=0;f title"):null)}function pv(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function nm(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function yv(e,t,n,a){if(n.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var u=Pa(a.href),c=t.querySelector(Jl(u));if(c){t=c._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=As.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=c,Ze(c);return}c=t.ownerDocument||t,a=Ih(a),(u=Mt.get(u))&&rc(a,u),c=c.createElement("link"),Ze(c);var f=c;f._p=new Promise(function(m,A){f.onload=m,f.onerror=A}),tt(c,"link",a),n.instance=c}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=As.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var oc=0;function vv(e,t){return e.stylesheets&&e.count===0&&qs(e,e.stylesheets),0oc?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(u)}}:null}function As(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)qs(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Ss=null;function qs(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Ss=new Map,t.forEach(gv,e),Ss=null,As.call(e))}function gv(e,t){if(!(t.state.loading&4)){var n=Ss.get(e);if(n)var a=n.get(null);else{n=new Map,Ss.set(e,n);for(var u=e.querySelectorAll("link[data-precedence],style[data-precedence]"),c=0;c"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(l){console.error(l)}}return i(),bc.exports=zv(),bc.exports}var Uv=Bv();var Nm="popstate";function kv(i={}){function l(r,o){let{pathname:h,search:v,hash:b}=r.location;return zc("",{pathname:h,search:v,hash:b},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function s(r,o){return typeof o=="string"?o:ui(o)}return Hv(l,s,null,i)}function Be(i,l){if(i===!1||i===null||typeof i>"u")throw new Error(l)}function Ut(i,l){if(!i){typeof console<"u"&&console.warn(l);try{throw new Error(l)}catch{}}}function Lv(){return Math.random().toString(36).substring(2,10)}function Cm(i,l){return{usr:i.state,key:i.key,idx:l}}function zc(i,l,s=null,r){return{pathname:typeof i=="string"?i:i.pathname,search:"",hash:"",...typeof l=="string"?ll(l):l,state:s,key:l&&l.key||r||Lv()}}function ui({pathname:i="/",search:l="",hash:s=""}){return l&&l!=="?"&&(i+=l.charAt(0)==="?"?l:"?"+l),s&&s!=="#"&&(i+=s.charAt(0)==="#"?s:"#"+s),i}function ll(i){let l={};if(i){let s=i.indexOf("#");s>=0&&(l.hash=i.substring(s),i=i.substring(0,s));let r=i.indexOf("?");r>=0&&(l.search=i.substring(r),i=i.substring(0,r)),i&&(l.pathname=i)}return l}function Hv(i,l,s,r={}){let{window:o=document.defaultView,v5Compat:h=!1}=r,v=o.history,b="POP",p=null,g=S();g==null&&(g=0,v.replaceState({...v.state,idx:g},""));function S(){return(v.state||{idx:null}).idx}function x(){b="POP";let M=S(),O=M==null?null:M-g;g=M,p&&p({action:b,location:_.location,delta:O})}function C(M,O){b="PUSH";let k=zc(_.location,M,O);g=S()+1;let V=Cm(k,g),J=_.createHref(k);try{v.pushState(V,"",J)}catch(G){if(G instanceof DOMException&&G.name==="DataCloneError")throw G;o.location.assign(J)}h&&p&&p({action:b,location:_.location,delta:1})}function T(M,O){b="REPLACE";let k=zc(_.location,M,O);g=S();let V=Cm(k,g),J=_.createHref(k);v.replaceState(V,"",J),h&&p&&p({action:b,location:_.location,delta:0})}function z(M){return Yv(M)}let _={get action(){return b},get location(){return i(o,v)},listen(M){if(p)throw new Error("A history only accepts one active listener");return o.addEventListener(Nm,x),p=M,()=>{o.removeEventListener(Nm,x),p=null}},createHref(M){return l(o,M)},createURL:z,encodeLocation(M){let O=z(M);return{pathname:O.pathname,search:O.search,hash:O.hash}},push:C,replace:T,go(M){return v.go(M)}};return _}function Yv(i,l=!1){let s="http://localhost";typeof window<"u"&&(s=window.location.origin!=="null"?window.location.origin:window.location.href),Be(s,"No window.location.(origin|href) available to create URL");let r=typeof i=="string"?i:ui(i);return r=r.replace(/ $/,"%20"),!l&&r.startsWith("//")&&(r=s+r),new URL(r,s)}function ep(i,l,s="/"){return Vv(i,l,s,!1)}function Vv(i,l,s,r){let o=typeof l=="string"?ll(l):l,h=hn(o.pathname||"/",s);if(h==null)return null;let v=tp(i);Qv(v);let b=null;for(let p=0;b==null&&p{let S={relativePath:g===void 0?v.path||"":g,caseSensitive:v.caseSensitive===!0,childrenIndex:b,route:v};if(S.relativePath.startsWith("/")){if(!S.relativePath.startsWith(r)&&p)return;Be(S.relativePath.startsWith(r),`Absolute route path "${S.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),S.relativePath=S.relativePath.slice(r.length)}let x=fn([r,S.relativePath]),C=s.concat(S);v.children&&v.children.length>0&&(Be(v.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${x}".`),tp(v.children,l,C,x,p)),!(v.path==null&&!v.index)&&l.push({path:x,score:Fv(x,v.index),routesMeta:C})};return i.forEach((v,b)=>{if(v.path===""||!v.path?.includes("?"))h(v,b);else for(let p of np(v.path))h(v,b,!0,p)}),l}function np(i){let l=i.split("/");if(l.length===0)return[];let[s,...r]=l,o=s.endsWith("?"),h=s.replace(/\?$/,"");if(r.length===0)return o?[h,""]:[h];let v=np(r.join("/")),b=[];return b.push(...v.map(p=>p===""?h:[h,p].join("/"))),o&&b.push(...v),b.map(p=>i.startsWith("/")&&p===""?"/":p)}function Qv(i){i.sort((l,s)=>l.score!==s.score?s.score-l.score:Wv(l.routesMeta.map(r=>r.childrenIndex),s.routesMeta.map(r=>r.childrenIndex)))}var Gv=/^:[\w-]+$/,Xv=3,Kv=2,Zv=1,Jv=10,$v=-2,_m=i=>i==="*";function Fv(i,l){let s=i.split("/"),r=s.length;return s.some(_m)&&(r+=$v),l&&(r+=Kv),s.filter(o=>!_m(o)).reduce((o,h)=>o+(Gv.test(h)?Xv:h===""?Zv:Jv),r)}function Wv(i,l){return i.length===l.length&&i.slice(0,-1).every((r,o)=>r===l[o])?i[i.length-1]-l[l.length-1]:0}function Iv(i,l,s=!1){let{routesMeta:r}=i,o={},h="/",v=[];for(let b=0;b{if(S==="*"){let z=b[C]||"";v=h.slice(0,h.length-z.length).replace(/(.)\/+$/,"$1")}const T=b[C];return x&&!T?g[S]=void 0:g[S]=(T||"").replace(/%2F/g,"/"),g},{}),pathname:h,pathnameBase:v,pattern:i}}function Pv(i,l=!1,s=!0){Ut(i==="*"||!i.endsWith("*")||i.endsWith("/*"),`Route path "${i}" will be treated as if it were "${i.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${i.replace(/\*$/,"/*")}".`);let r=[],o="^"+i.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(v,b,p)=>(r.push({paramName:b,isOptional:p!=null}),p?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return i.endsWith("*")?(r.push({paramName:"*"}),o+=i==="*"||i==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):s?o+="\\/*$":i!==""&&i!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,l?void 0:"i"),r]}function eg(i){try{return i.split("/").map(l=>decodeURIComponent(l).replace(/\//g,"%2F")).join("/")}catch(l){return Ut(!1,`The URL path "${i}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${l}).`),i}}function hn(i,l){if(l==="/")return i;if(!i.toLowerCase().startsWith(l.toLowerCase()))return null;let s=l.endsWith("/")?l.length-1:l.length,r=i.charAt(s);return r&&r!=="/"?null:i.slice(s)||"/"}var tg=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ng=i=>tg.test(i);function ag(i,l="/"){let{pathname:s,search:r="",hash:o=""}=typeof i=="string"?ll(i):i,h;if(s)if(ng(s))h=s;else{if(s.includes("//")){let v=s;s=s.replace(/\/\/+/g,"/"),Ut(!1,`Pathnames cannot have embedded double slashes - normalizing ${v} -> ${s}`)}s.startsWith("/")?h=jm(s.substring(1),"/"):h=jm(s,l)}else h=l;return{pathname:h,search:sg(r),hash:ug(o)}}function jm(i,l){let s=l.replace(/\/+$/,"").split("/");return i.split("/").forEach(o=>{o===".."?s.length>1&&s.pop():o!=="."&&s.push(o)}),s.length>1?s.join("/"):"/"}function qc(i,l,s,r){return`Cannot include a '${i}' character in a manually specified \`to.${l}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${s}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function lg(i){return i.filter((l,s)=>s===0||l.route.path&&l.route.path.length>0)}function ap(i){let l=lg(i);return l.map((s,r)=>r===l.length-1?s.pathname:s.pathnameBase)}function lp(i,l,s,r=!1){let o;typeof i=="string"?o=ll(i):(o={...i},Be(!o.pathname||!o.pathname.includes("?"),qc("?","pathname","search",o)),Be(!o.pathname||!o.pathname.includes("#"),qc("#","pathname","hash",o)),Be(!o.search||!o.search.includes("#"),qc("#","search","hash",o)));let h=i===""||o.pathname==="",v=h?"/":o.pathname,b;if(v==null)b=s;else{let x=l.length-1;if(!r&&v.startsWith("..")){let C=v.split("/");for(;C[0]==="..";)C.shift(),x-=1;o.pathname=C.join("/")}b=x>=0?l[x]:"/"}let p=ag(o,b),g=v&&v!=="/"&&v.endsWith("/"),S=(h||v===".")&&s.endsWith("/");return!p.pathname.endsWith("/")&&(g||S)&&(p.pathname+="/"),p}var fn=i=>i.join("/").replace(/\/\/+/g,"/"),ig=i=>i.replace(/\/+$/,"").replace(/^\/*/,"/"),sg=i=>!i||i==="?"?"":i.startsWith("?")?i:"?"+i,ug=i=>!i||i==="#"?"":i.startsWith("#")?i:"#"+i;function rg(i){return i!=null&&typeof i.status=="number"&&typeof i.statusText=="string"&&typeof i.internal=="boolean"&&"data"in i}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var ip=["POST","PUT","PATCH","DELETE"];new Set(ip);var cg=["GET",...ip];new Set(cg);var il=y.createContext(null);il.displayName="DataRouter";var Ws=y.createContext(null);Ws.displayName="DataRouterState";y.createContext(!1);var sp=y.createContext({isTransitioning:!1});sp.displayName="ViewTransition";var og=y.createContext(new Map);og.displayName="Fetchers";var fg=y.createContext(null);fg.displayName="Await";var Gt=y.createContext(null);Gt.displayName="Navigation";var ri=y.createContext(null);ri.displayName="Location";var mn=y.createContext({outlet:null,matches:[],isDataRoute:!1});mn.displayName="Route";var $c=y.createContext(null);$c.displayName="RouteError";function dg(i,{relative:l}={}){Be(ci(),"useHref() may be used only in the context of a component.");let{basename:s,navigator:r}=y.useContext(Gt),{hash:o,pathname:h,search:v}=oi(i,{relative:l}),b=h;return s!=="/"&&(b=h==="/"?s:fn([s,h])),r.createHref({pathname:b,search:v,hash:o})}function ci(){return y.useContext(ri)!=null}function pa(){return Be(ci(),"useLocation() may be used only in the context of a component."),y.useContext(ri).location}var up="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function rp(i){y.useContext(Gt).static||y.useLayoutEffect(i)}function hg(){let{isDataRoute:i}=y.useContext(mn);return i?Ng():mg()}function mg(){Be(ci(),"useNavigate() may be used only in the context of a component.");let i=y.useContext(il),{basename:l,navigator:s}=y.useContext(Gt),{matches:r}=y.useContext(mn),{pathname:o}=pa(),h=JSON.stringify(ap(r)),v=y.useRef(!1);return rp(()=>{v.current=!0}),y.useCallback((p,g={})=>{if(Ut(v.current,up),!v.current)return;if(typeof p=="number"){s.go(p);return}let S=lp(p,JSON.parse(h),o,g.relative==="path");i==null&&l!=="/"&&(S.pathname=S.pathname==="/"?l:fn([l,S.pathname])),(g.replace?s.replace:s.push)(S,g.state,g)},[l,s,h,o,i])}y.createContext(null);function oi(i,{relative:l}={}){let{matches:s}=y.useContext(mn),{pathname:r}=pa(),o=JSON.stringify(ap(s));return y.useMemo(()=>lp(i,JSON.parse(o),r,l==="path"),[i,o,r,l])}function pg(i,l){return cp(i,l)}function cp(i,l,s,r,o){Be(ci(),"useRoutes() may be used only in the context of a component.");let{navigator:h}=y.useContext(Gt),{matches:v}=y.useContext(mn),b=v[v.length-1],p=b?b.params:{},g=b?b.pathname:"/",S=b?b.pathnameBase:"/",x=b&&b.route;{let k=x&&x.path||"";op(g,!x||k.endsWith("*")||k.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${g}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + +Please change the parent to .`)}let C=pa(),T;if(l){let k=typeof l=="string"?ll(l):l;Be(S==="/"||k.pathname?.startsWith(S),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${S}" but pathname "${k.pathname}" was given in the \`location\` prop.`),T=k}else T=C;let z=T.pathname||"/",_=z;if(S!=="/"){let k=S.replace(/^\//,"").split("/");_="/"+z.replace(/^\//,"").split("/").slice(k.length).join("/")}let M=ep(i,{pathname:_});Ut(x||M!=null,`No routes matched location "${T.pathname}${T.search}${T.hash}" `),Ut(M==null||M[M.length-1].route.element!==void 0||M[M.length-1].route.Component!==void 0||M[M.length-1].route.lazy!==void 0,`Matched leaf route at location "${T.pathname}${T.search}${T.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let O=xg(M&&M.map(k=>Object.assign({},k,{params:Object.assign({},p,k.params),pathname:fn([S,h.encodeLocation?h.encodeLocation(k.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:k.pathname]),pathnameBase:k.pathnameBase==="/"?S:fn([S,h.encodeLocation?h.encodeLocation(k.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:k.pathnameBase])})),v,s,r,o);return l&&O?y.createElement(ri.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...T},navigationType:"POP"}},O):O}function yg(){let i=Tg(),l=rg(i)?`${i.status} ${i.statusText}`:i instanceof Error?i.message:JSON.stringify(i),s=i instanceof Error?i.stack:null,r="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:r},h={padding:"2px 4px",backgroundColor:r},v=null;return console.error("Error handled by React Router default ErrorBoundary:",i),v=y.createElement(y.Fragment,null,y.createElement("p",null,"💿 Hey developer 👋"),y.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",y.createElement("code",{style:h},"ErrorBoundary")," or"," ",y.createElement("code",{style:h},"errorElement")," prop on your route.")),y.createElement(y.Fragment,null,y.createElement("h2",null,"Unexpected Application Error!"),y.createElement("h3",{style:{fontStyle:"italic"}},l),s?y.createElement("pre",{style:o},s):null,v)}var vg=y.createElement(yg,null),gg=class extends y.Component{constructor(i){super(i),this.state={location:i.location,revalidation:i.revalidation,error:i.error}}static getDerivedStateFromError(i){return{error:i}}static getDerivedStateFromProps(i,l){return l.location!==i.location||l.revalidation!=="idle"&&i.revalidation==="idle"?{error:i.error,location:i.location,revalidation:i.revalidation}:{error:i.error!==void 0?i.error:l.error,location:l.location,revalidation:i.revalidation||l.revalidation}}componentDidCatch(i,l){this.props.onError?this.props.onError(i,l):console.error("React Router caught the following error during render",i)}render(){return this.state.error!==void 0?y.createElement(mn.Provider,{value:this.props.routeContext},y.createElement($c.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function bg({routeContext:i,match:l,children:s}){let r=y.useContext(il);return r&&r.static&&r.staticContext&&(l.route.errorElement||l.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=l.route.id),y.createElement(mn.Provider,{value:i},s)}function xg(i,l=[],s=null,r=null,o=null){if(i==null){if(!s)return null;if(s.errors)i=s.matches;else if(l.length===0&&!s.initialized&&s.matches.length>0)i=s.matches;else return null}let h=i,v=s?.errors;if(v!=null){let S=h.findIndex(x=>x.route.id&&v?.[x.route.id]!==void 0);Be(S>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(v).join(",")}`),h=h.slice(0,Math.min(h.length,S+1))}let b=!1,p=-1;if(s)for(let S=0;S=0?h=h.slice(0,p+1):h=[h[0]];break}}}let g=s&&r?(S,x)=>{r(S,{location:s.location,params:s.matches?.[0]?.params??{},errorInfo:x})}:void 0;return h.reduceRight((S,x,C)=>{let T,z=!1,_=null,M=null;s&&(T=v&&x.route.id?v[x.route.id]:void 0,_=x.route.errorElement||vg,b&&(p<0&&C===0?(op("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),z=!0,M=null):p===C&&(z=!0,M=x.route.hydrateFallbackElement||null)));let O=l.concat(h.slice(0,C+1)),k=()=>{let V;return T?V=_:z?V=M:x.route.Component?V=y.createElement(x.route.Component,null):x.route.element?V=x.route.element:V=S,y.createElement(bg,{match:x,routeContext:{outlet:S,matches:O,isDataRoute:s!=null},children:V})};return s&&(x.route.ErrorBoundary||x.route.errorElement||C===0)?y.createElement(gg,{location:s.location,revalidation:s.revalidation,component:_,error:T,children:k(),routeContext:{outlet:null,matches:O,isDataRoute:!0},onError:g}):k()},null)}function Fc(i){return`${i} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Ag(i){let l=y.useContext(il);return Be(l,Fc(i)),l}function Sg(i){let l=y.useContext(Ws);return Be(l,Fc(i)),l}function qg(i){let l=y.useContext(mn);return Be(l,Fc(i)),l}function Wc(i){let l=qg(i),s=l.matches[l.matches.length-1];return Be(s.route.id,`${i} can only be used on routes that contain a unique "id"`),s.route.id}function Eg(){return Wc("useRouteId")}function Tg(){let i=y.useContext($c),l=Sg("useRouteError"),s=Wc("useRouteError");return i!==void 0?i:l.errors?.[s]}function Ng(){let{router:i}=Ag("useNavigate"),l=Wc("useNavigate"),s=y.useRef(!1);return rp(()=>{s.current=!0}),y.useCallback(async(o,h={})=>{Ut(s.current,up),s.current&&(typeof o=="number"?i.navigate(o):await i.navigate(o,{fromRouteId:l,...h}))},[i,l])}var Rm={};function op(i,l,s){!l&&!Rm[i]&&(Rm[i]=!0,Ut(!1,s))}y.memo(Cg);function Cg({routes:i,future:l,state:s,unstable_onError:r}){return cp(i,void 0,s,r,l)}function Bc(i){Be(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function _g({basename:i="/",children:l=null,location:s,navigationType:r="POP",navigator:o,static:h=!1}){Be(!ci(),"You cannot render a inside another . You should never have more than one in your app.");let v=i.replace(/^\/*/,"/"),b=y.useMemo(()=>({basename:v,navigator:o,static:h,future:{}}),[v,o,h]);typeof s=="string"&&(s=ll(s));let{pathname:p="/",search:g="",hash:S="",state:x=null,key:C="default"}=s,T=y.useMemo(()=>{let z=hn(p,v);return z==null?null:{location:{pathname:z,search:g,hash:S,state:x,key:C},navigationType:r}},[v,p,g,S,x,C,r]);return Ut(T!=null,` is not able to match the URL "${p}${g}${S}" because it does not start with the basename, so the won't render anything.`),T==null?null:y.createElement(Gt.Provider,{value:b},y.createElement(ri.Provider,{children:l,value:T}))}function jg({children:i,location:l}){return pg(Uc(i),l)}function Uc(i,l=[]){let s=[];return y.Children.forEach(i,(r,o)=>{if(!y.isValidElement(r))return;let h=[...l,o];if(r.type===y.Fragment){s.push.apply(s,Uc(r.props.children,h));return}Be(r.type===Bc,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),Be(!r.props.index||!r.props.children,"An index route cannot have child routes.");let v={id:r.props.id||h.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(v.children=Uc(r.props.children,h)),s.push(v)}),s}var Hs="get",Ys="application/x-www-form-urlencoded";function Is(i){return i!=null&&typeof i.tagName=="string"}function Rg(i){return Is(i)&&i.tagName.toLowerCase()==="button"}function Mg(i){return Is(i)&&i.tagName.toLowerCase()==="form"}function wg(i){return Is(i)&&i.tagName.toLowerCase()==="input"}function Og(i){return!!(i.metaKey||i.altKey||i.ctrlKey||i.shiftKey)}function Dg(i,l){return i.button===0&&(!l||l==="_self")&&!Og(i)}var Ms=null;function zg(){if(Ms===null)try{new FormData(document.createElement("form"),0),Ms=!1}catch{Ms=!0}return Ms}var Bg=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Ec(i){return i!=null&&!Bg.has(i)?(Ut(!1,`"${i}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Ys}"`),null):i}function Ug(i,l){let s,r,o,h,v;if(Mg(i)){let b=i.getAttribute("action");r=b?hn(b,l):null,s=i.getAttribute("method")||Hs,o=Ec(i.getAttribute("enctype"))||Ys,h=new FormData(i)}else if(Rg(i)||wg(i)&&(i.type==="submit"||i.type==="image")){let b=i.form;if(b==null)throw new Error('Cannot submit a {cameraEnabled && (
@@ -224,6 +215,17 @@ function MobileJoystickPanel({ layout }) { />
)} + + +
); } @@ -280,7 +282,7 @@ function AuxMotorPanel({ orientation }) { onPointerLeave={() => handleRelease(button)} onPointerCancel={() => handleRelease(button)} onContextMenu={(event) => event.preventDefault()} - className={`px-0.5 py-0.5 text-left text-sm font-semibold text-white transition ${button.color} hover:brightness-110 disabled:opacity-30`} + className={`px-0.5 py-0.5 text-left text-sm font-semibold text-white transition ${button.color} hover:brightness-110 disabled:opacity-30 h-10`} > {button.label} diff --git a/webui/src/components/VideoTile.jsx b/webui/src/components/VideoTile.jsx index 5a00a5f1..f6a29408 100644 --- a/webui/src/components/VideoTile.jsx +++ b/webui/src/components/VideoTile.jsx @@ -4,7 +4,7 @@ import { WhepPlayer } from '../lib/whepPlayer.js'; const RESTART_DELAY_MS = 2000; const UNMUTE_RETRY_MS = 3000; -export default function VideoTile({ sessionInfo, label, forceMute = false, telemetryFrame, batteryConfig }) { +export default function VideoTile({ sessionInfo, label, forceMute = false, telemetryFrame, batteryConfig, layoutFormat = 'desktop' }) { const videoRef = useRef(null); const restartTimer = useRef(null); const unmuteTimer = useRef(null); @@ -14,6 +14,7 @@ export default function VideoTile({ sessionInfo, label, forceMute = false, telem const [muted, setMuted] = useState(true); const sensors = telemetryFrame?.sensors; const batteryCharge = sensors?.batteryChargeMah ?? null; + const desktopLayout = layoutFormat === 'desktop'; // console.log('[BatteryBarDebug]', { // frameSensors: sensors, // batteryCharge, @@ -157,7 +158,7 @@ export default function VideoTile({ sessionInfo, label, forceMute = false, telem controls={false} className="h-full w-full object-contain" /> - + @@ -200,7 +201,7 @@ function BatteryBar({ charge, config }) { ); } -function HudOverlay({ frame, label, status }) { +function HudOverlay({ frame, label, status, desktopLayout = true }) { const sensors = frame?.sensors; const bumps = sensors?.bumpsAndWheelDrops || {}; const [now, setNow] = useState(() => Date.now()); @@ -224,11 +225,11 @@ function HudOverlay({ frame, label, status }) { {/* bump and wheel drops bar */} -
-
Left bump
-
Left wheel drop
-
Right wheel drop
-
Right bump
+
+
Left bump
+
Left wheel drop
+
Right wheel drop
+
Right bump
);