diff --git a/frontend-tools/video-js/src/components/video-player/VideoJSPlayer.jsx b/frontend-tools/video-js/src/components/video-player/VideoJSPlayer.jsx index 9d75e004..9c7fd4af 100644 --- a/frontend-tools/video-js/src/components/video-player/VideoJSPlayer.jsx +++ b/frontend-tools/video-js/src/components/video-player/VideoJSPlayer.jsx @@ -2411,9 +2411,9 @@ function VideoJSPlayer({ videoId = 'default-video' }) { // Store components reference for potential cleanup - // BEGIN: Add custom arrow key seek functionality - const handleKeyDown = (event) => { - // Only handle if the player has focus or no input elements are focused + // BEGIN: Add comprehensive keyboard event handling + const handleAllKeyboardEvents = (event) => { + // Only handle if no input elements are focused const activeElement = document.activeElement; const isInputFocused = activeElement && @@ -2425,6 +2425,20 @@ function VideoJSPlayer({ videoId = 'default-video' }) { return; // Don't interfere with input fields } + // Handle space key for play/pause + if (event.code === 'Space' || event.key === ' ') { + event.preventDefault(); + if (playerRef.current) { + if (playerRef.current.paused()) { + playerRef.current.play(); + } else { + playerRef.current.pause(); + } + } + return; + } + + // Handle arrow keys for seeking const seekAmount = 5; // 5 seconds if (event.key === 'ArrowRight' || event.keyCode === 39) { @@ -2450,14 +2464,14 @@ function VideoJSPlayer({ videoId = 'default-video' }) { }; // Add keyboard event listener to the document - document.addEventListener('keydown', handleKeyDown); + document.addEventListener('keydown', handleAllKeyboardEvents); - // Store cleanup function - customComponents.current.cleanupKeyboardHandler = () => { - document.removeEventListener('keydown', handleKeyDown); + // Store cleanup function for arrow keys + customComponents.current.cleanupArrowKeyHandler = () => { + document.removeEventListener('keydown', handleAllKeyboardEvents); }; - // END: Add custom arrow key seek functionality + // END: Add comprehensive keyboard event handling }); // Listen for next video event @@ -2632,48 +2646,40 @@ function VideoJSPlayer({ videoId = 'default-video' }) { }); // Focus the player element so keyboard controls work - // This ensures spacebar can pause/play the video + // This ensures keyboard events work properly in both normal and fullscreen modes playerRef.current.ready(() => { - // Focus the player element and set up keyboard controls + // Focus the player element and set up focus handling if (playerRef.current.el()) { // Make the video element focusable const videoElement = playerRef.current.el(); videoElement.setAttribute('tabindex', '0'); videoElement.focus(); + } + }); - // Add custom keyboard event handler for space key - const handleKeyPress = (event) => { - // Only handle space key when video element is focused or no other input is focused - if (event.code === 'Space' || event.key === ' ') { - const activeElement = document.activeElement; - const isInputFocused = - activeElement && - (activeElement.tagName === 'INPUT' || - activeElement.tagName === 'TEXTAREA' || - activeElement.contentEditable === 'true'); + // Handle focus when entering/exiting fullscreen to ensure keyboard events work + playerRef.current.on('fullscreenchange', () => { + setTimeout(() => { + if (playerRef.current && playerRef.current.el()) { + const videoElement = playerRef.current.el(); + videoElement.setAttribute('tabindex', '0'); + videoElement.focus(); - // Only prevent default and control video if no input is focused - if (!isInputFocused) { - event.preventDefault(); - if (playerRef.current) { - if (playerRef.current.paused()) { - playerRef.current.play(); - } else { - playerRef.current.pause(); - } - } + // In fullscreen mode, ensure the player container has focus + if (playerRef.current.isFullscreen()) { + // Focus the fullscreen element to ensure keyboard events are captured + const fullscreenElement = + document.fullscreenElement || + document.webkitFullscreenElement || + document.mozFullScreenElement || + document.msFullscreenElement; + if (fullscreenElement) { + fullscreenElement.setAttribute('tabindex', '0'); + fullscreenElement.focus(); } } - }; - - // Add event listener to document for global space key handling - document.addEventListener('keydown', handleKeyPress); - - // Store cleanup function - customComponents.current.cleanupKeyboardHandler = () => { - document.removeEventListener('keydown', handleKeyPress); - }; - } + } + }, 100); // Small delay to ensure fullscreen transition is complete }); } }, 0); @@ -2685,9 +2691,9 @@ function VideoJSPlayer({ videoId = 'default-video' }) { // Cleanup function return () => { - // Clean up keyboard event listener if it exists - if (customComponents.current && customComponents.current.cleanupKeyboardHandler) { - customComponents.current.cleanupKeyboardHandler(); + // Clean up keyboard event listeners if they exist + if (customComponents.current && customComponents.current.cleanupArrowKeyHandler) { + customComponents.current.cleanupArrowKeyHandler(); } if (playerRef.current && !playerRef.current.isDisposed()) { diff --git a/static/video_js/video-js.js b/static/video_js/video-js.js index 9381b066..e993aba5 100644 --- a/static/video_js/video-js.js +++ b/static/video_js/video-js.js @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */Qc.exports;var k_;function OD(){return k_||(k_=1,function(s,e){(function(){function i(D,X){Object.defineProperty(u.prototype,D,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",X[0],X[1])}})}function r(D){return D===null||typeof D!="object"?null:(D=Ze&&D[Ze]||D["@@iterator"],typeof D=="function"?D:null)}function o(D,X){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var ye=D+"."+X;pt[ye]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",X,D),pt[ye]=!0)}function u(D,X,ye){this.props=D,this.context=X,this.refs=Sn,this.updater=ye||At}function c(){}function f(D,X,ye){this.props=D,this.context=X,this.refs=Sn,this.updater=ye||At}function m(D){return""+D}function b(D){try{m(D);var X=!1}catch{X=!0}if(X){X=console;var ye=X.error,Ee=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.constructor.name||"Object";return ye.call(X,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",Ee),m(D)}}function S(D){if(D==null)return null;if(typeof D=="function")return D.$$typeof===xn?null:D.displayName||D.name||null;if(typeof D=="string")return D;switch(D){case ee:return"Fragment";case ve:return"Profiler";case we:return"StrictMode";case at:return"Suspense";case Ne:return"SuspenseList";case ft:return"Activity"}if(typeof D=="object")switch(typeof D.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),D.$$typeof){case Be:return"Portal";case Ue:return(D.displayName||"Context")+".Provider";case Re:return(D._context.displayName||"Context")+".Consumer";case ht:var X=D.render;return D=D.displayName,D||(D=X.displayName||X.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case ke:return X=D.displayName||null,X!==null?X:S(D.type)||"Memo";case ut:X=D._payload,D=D._init;try{return S(D(X))}catch{}}return null}function x(D){if(D===ee)return"<>";if(typeof D=="object"&&D!==null&&D.$$typeof===ut)return"<...>";try{var X=S(D);return X?"<"+X+">":"<...>"}catch{return"<...>"}}function w(){var D=_e.A;return D===null?null:D.getOwner()}function R(){return Error("react-stack-top-frame")}function L(D){if(Ei.call(D,"key")){var X=Object.getOwnPropertyDescriptor(D,"key").get;if(X&&X.isReactWarning)return!1}return D.key!==void 0}function A(D,X){function ye(){$t||($t=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",X))}ye.isReactWarning=!0,Object.defineProperty(D,"key",{get:ye,configurable:!0})}function q(){var D=S(this.type);return Hr[D]||(Hr[D]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),D=this.props.ref,D!==void 0?D:null}function U(D,X,ye,Ee,Pe,Je,Ge,ct){return ye=Je.ref,D={$$typeof:Oe,type:D,key:X,props:Je,_owner:Pe},(ye!==void 0?ye:null)!==null?Object.defineProperty(D,"ref",{enumerable:!1,get:q}):Object.defineProperty(D,"ref",{enumerable:!1,value:null}),D._store={},Object.defineProperty(D._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(D,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(D,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Ge}),Object.defineProperty(D,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ct}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function G(D,X){return X=U(D.type,X,void 0,void 0,D._owner,D.props,D._debugStack,D._debugTask),D._store&&(X._store.validated=D._store.validated),X}function $(D){return typeof D=="object"&&D!==null&&D.$$typeof===Oe}function W(D){var X={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(ye){return X[ye]})}function K(D,X){return typeof D=="object"&&D!==null&&D.key!=null?(b(D.key),W(""+D.key)):X.toString(36)}function le(){}function Y(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(le,le):(D.status="pending",D.then(function(X){D.status==="pending"&&(D.status="fulfilled",D.value=X)},function(X){D.status==="pending"&&(D.status="rejected",D.reason=X)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function J(D,X,ye,Ee,Pe){var Je=typeof D;(Je==="undefined"||Je==="boolean")&&(D=null);var Ge=!1;if(D===null)Ge=!0;else switch(Je){case"bigint":case"string":case"number":Ge=!0;break;case"object":switch(D.$$typeof){case Oe:case Be:Ge=!0;break;case ut:return Ge=D._init,J(Ge(D._payload),X,ye,Ee,Pe)}}if(Ge){Ge=D,Pe=Pe(Ge);var ct=Ee===""?"."+K(Ge,0):Ee;return dt(Pe)?(ye="",ct!=null&&(ye=ct.replace(Ba,"$&/")+"/"),J(Pe,X,ye,"",function(si){return si})):Pe!=null&&($(Pe)&&(Pe.key!=null&&(Ge&&Ge.key===Pe.key||b(Pe.key)),ye=G(Pe,ye+(Pe.key==null||Ge&&Ge.key===Pe.key?"":(""+Pe.key).replace(Ba,"$&/")+"/")+ct),Ee!==""&&Ge!=null&&$(Ge)&&Ge.key==null&&Ge._store&&!Ge._store.validated&&(ye._store.validated=2),Pe=ye),X.push(Pe)),1}if(Ge=0,ct=Ee===""?".":Ee+":",dt(D))for(var Ye=0;Ye";if(typeof D=="object"&&D!==null&&D.$$typeof===ut)return"<...>";try{var X=S(D);return X?"<"+X+">":"<...>"}catch{return"<...>"}}function w(){var D=_e.A;return D===null?null:D.getOwner()}function R(){return Error("react-stack-top-frame")}function L(D){if(Ei.call(D,"key")){var X=Object.getOwnPropertyDescriptor(D,"key").get;if(X&&X.isReactWarning)return!1}return D.key!==void 0}function A(D,X){function ge(){$t||($t=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",X))}ge.isReactWarning=!0,Object.defineProperty(D,"key",{get:ge,configurable:!0})}function q(){var D=S(this.type);return Hr[D]||(Hr[D]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),D=this.props.ref,D!==void 0?D:null}function U(D,X,ge,Ee,Pe,Je,Ge,ct){return ge=Je.ref,D={$$typeof:Oe,type:D,key:X,props:Je,_owner:Pe},(ge!==void 0?ge:null)!==null?Object.defineProperty(D,"ref",{enumerable:!1,get:q}):Object.defineProperty(D,"ref",{enumerable:!1,value:null}),D._store={},Object.defineProperty(D._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(D,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(D,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Ge}),Object.defineProperty(D,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:ct}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function G(D,X){return X=U(D.type,X,void 0,void 0,D._owner,D.props,D._debugStack,D._debugTask),D._store&&(X._store.validated=D._store.validated),X}function $(D){return typeof D=="object"&&D!==null&&D.$$typeof===Oe}function W(D){var X={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(ge){return X[ge]})}function K(D,X){return typeof D=="object"&&D!==null&&D.key!=null?(b(D.key),W(""+D.key)):X.toString(36)}function le(){}function Y(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(le,le):(D.status="pending",D.then(function(X){D.status==="pending"&&(D.status="fulfilled",D.value=X)},function(X){D.status==="pending"&&(D.status="rejected",D.reason=X)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function J(D,X,ge,Ee,Pe){var Je=typeof D;(Je==="undefined"||Je==="boolean")&&(D=null);var Ge=!1;if(D===null)Ge=!0;else switch(Je){case"bigint":case"string":case"number":Ge=!0;break;case"object":switch(D.$$typeof){case Oe:case Be:Ge=!0;break;case ut:return Ge=D._init,J(Ge(D._payload),X,ge,Ee,Pe)}}if(Ge){Ge=D,Pe=Pe(Ge);var ct=Ee===""?"."+K(Ge,0):Ee;return dt(Pe)?(ge="",ct!=null&&(ge=ct.replace(Ba,"$&/")+"/"),J(Pe,X,ge,"",function(si){return si})):Pe!=null&&($(Pe)&&(Pe.key!=null&&(Ge&&Ge.key===Pe.key||b(Pe.key)),ge=G(Pe,ge+(Pe.key==null||Ge&&Ge.key===Pe.key?"":(""+Pe.key).replace(Ba,"$&/")+"/")+ct),Ee!==""&&Ge!=null&&$(Ge)&&Ge.key==null&&Ge._store&&!Ge._store.validated&&(ge._store.validated=2),Pe=ge),X.push(Pe)),1}if(Ge=0,ct=Ee===""?".":Ee+":",dt(D))for(var Ye=0;Ye import('./MyComponent')) @@ -18,7 +18,7 @@ Your code should look like: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),D}function be(){}function me(D){if(gt===null)try{var X=("require"+Math.random()).slice(0,7);gt=(s&&s[X]).call(s,"timers").setImmediate}catch{gt=function(Ee){Ua===!1&&(Ua=!0,typeof MessageChannel>"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var Pe=new MessageChannel;Pe.port1.onmessage=Ee,Pe.port2.postMessage(void 0)}}return gt(D)}function fe(D){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(Ye,si){Pe=!0,Ge.then(function(ws){if(He(X,ye),ye===0){try{Ce(Ee),me(function(){return ce(ws,Ye,si)})}catch(Ud){_e.thrownErrors.push(Ud)}if(0<_e.thrownErrors.length){var Bd=fe(_e.thrownErrors);_e.thrownErrors.length=0,si(Bd)}}else Ye(ws)},function(ws){He(X,ye),0<_e.thrownErrors.length&&(ws=fe(_e.thrownErrors),_e.thrownErrors.length=0),si(ws)})}}}var ct=Je;if(He(X,ye),ye===0&&(Ce(Ee),Ee.length!==0&&ir(function(){Pe||Wi||(Wi=!0,console.error("A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"))}),_e.actQueue=null),0<_e.thrownErrors.length)throw D=fe(_e.thrownErrors),_e.thrownErrors.length=0,D;return{then:function(Ye,si){Pe=!0,ye===0?(_e.actQueue=Ee,me(function(){return ce(ct,Ye,si)})):Ye(ct)}}},e.cache=function(D){return function(){return D.apply(null,arguments)}},e.captureOwnerStack=function(){var D=_e.getCurrentStack;return D===null?null:D()},e.cloneElement=function(D,X,ye){if(D==null)throw Error("The argument must be a React element, but you passed "+D+".");var Ee=Vt({},D.props),Pe=D.key,Je=D._owner;if(X!=null){var Ge;e:{if(Ei.call(X,"ref")&&(Ge=Object.getOwnPropertyDescriptor(X,"ref").get)&&Ge.isReactWarning){Ge=!1;break e}Ge=X.ref!==void 0}Ge&&(Je=w()),L(X)&&(b(X.key),Pe=""+X.key);for(ct in X)!Ei.call(X,ct)||ct==="key"||ct==="__self"||ct==="__source"||ct==="ref"&&X.ref===void 0||(Ee[ct]=X[ct])}var ct=arguments.length-2;if(ct===1)Ee.children=ye;else if(1_e.recentlyCreatedOwnerStacks++;return U(D,Pe,void 0,void 0,w(),Ee,Ye?Error("react-stack-top-frame"):Pa,Ye?ci(x(D)):er)},e.createRef=function(){var D={current:null};return Object.seal(D),D},e.forwardRef=function(D){D!=null&&D.$$typeof===ke?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof D!="function"?console.error("forwardRef requires a render function but was given %s.",D===null?"null":typeof D):D.length!==0&&D.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",D.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),D!=null&&D.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var X={$$typeof:ht,render:D},ye;return Object.defineProperty(X,"displayName",{enumerable:!1,configurable:!0,get:function(){return ye},set:function(Ee){ye=Ee,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Ee}),D.displayName=Ee)}}),X},e.isValidElement=$,e.lazy=function(D){return{$$typeof:ut,_payload:{_status:-1,_result:D},_init:xe}},e.memo=function(D,X){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),X={$$typeof:ke,type:D,compare:X===void 0?null:X};var ye;return Object.defineProperty(X,"displayName",{enumerable:!1,configurable:!0,get:function(){return ye},set:function(Ee){ye=Ee,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Ee}),D.displayName=Ee)}}),X},e.startTransition=function(D){var X=_e.T,ye={};_e.T=ye,ye._updatedFibers=new Set;try{var Ee=D(),Pe=_e.S;Pe!==null&&Pe(ye,Ee),typeof Ee=="object"&&Ee!==null&&typeof Ee.then=="function"&&Ee.then(be,zr)}catch(Je){zr(Je)}finally{X===null&&ye._updatedFibers&&(D=ye._updatedFibers.size,ye._updatedFibers.clear(),10"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var Pe=new MessageChannel;Pe.port1.onmessage=Ee,Pe.port2.postMessage(void 0)}}return gt(D)}function pe(D){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(Ye,si){Pe=!0,Ge.then(function(ws){if(He(X,ge),ge===0){try{Ce(Ee),ye(function(){return ce(ws,Ye,si)})}catch(Ud){_e.thrownErrors.push(Ud)}if(0<_e.thrownErrors.length){var Bd=pe(_e.thrownErrors);_e.thrownErrors.length=0,si(Bd)}}else Ye(ws)},function(ws){He(X,ge),0<_e.thrownErrors.length&&(ws=pe(_e.thrownErrors),_e.thrownErrors.length=0),si(ws)})}}}var ct=Je;if(He(X,ge),ge===0&&(Ce(Ee),Ee.length!==0&&ir(function(){Pe||Wi||(Wi=!0,console.error("A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"))}),_e.actQueue=null),0<_e.thrownErrors.length)throw D=pe(_e.thrownErrors),_e.thrownErrors.length=0,D;return{then:function(Ye,si){Pe=!0,ge===0?(_e.actQueue=Ee,ye(function(){return ce(ct,Ye,si)})):Ye(ct)}}},e.cache=function(D){return function(){return D.apply(null,arguments)}},e.captureOwnerStack=function(){var D=_e.getCurrentStack;return D===null?null:D()},e.cloneElement=function(D,X,ge){if(D==null)throw Error("The argument must be a React element, but you passed "+D+".");var Ee=Vt({},D.props),Pe=D.key,Je=D._owner;if(X!=null){var Ge;e:{if(Ei.call(X,"ref")&&(Ge=Object.getOwnPropertyDescriptor(X,"ref").get)&&Ge.isReactWarning){Ge=!1;break e}Ge=X.ref!==void 0}Ge&&(Je=w()),L(X)&&(b(X.key),Pe=""+X.key);for(ct in X)!Ei.call(X,ct)||ct==="key"||ct==="__self"||ct==="__source"||ct==="ref"&&X.ref===void 0||(Ee[ct]=X[ct])}var ct=arguments.length-2;if(ct===1)Ee.children=ge;else if(1_e.recentlyCreatedOwnerStacks++;return U(D,Pe,void 0,void 0,w(),Ee,Ye?Error("react-stack-top-frame"):Pa,Ye?ci(x(D)):er)},e.createRef=function(){var D={current:null};return Object.seal(D),D},e.forwardRef=function(D){D!=null&&D.$$typeof===ke?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof D!="function"?console.error("forwardRef requires a render function but was given %s.",D===null?"null":typeof D):D.length!==0&&D.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",D.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),D!=null&&D.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var X={$$typeof:ht,render:D},ge;return Object.defineProperty(X,"displayName",{enumerable:!1,configurable:!0,get:function(){return ge},set:function(Ee){ge=Ee,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Ee}),D.displayName=Ee)}}),X},e.isValidElement=$,e.lazy=function(D){return{$$typeof:ut,_payload:{_status:-1,_result:D},_init:xe}},e.memo=function(D,X){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),X={$$typeof:ke,type:D,compare:X===void 0?null:X};var ge;return Object.defineProperty(X,"displayName",{enumerable:!1,configurable:!0,get:function(){return ge},set:function(Ee){ge=Ee,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Ee}),D.displayName=Ee)}}),X},e.startTransition=function(D){var X=_e.T,ge={};_e.T=ge,ge._updatedFibers=new Set;try{var Ee=D(),Pe=_e.S;Pe!==null&&Pe(ge,Ee),typeof Ee=="object"&&Ee!==null&&typeof Ee.then=="function"&&Ee.then(be,zr)}catch(Je){zr(Je)}finally{X===null&&ge._updatedFibers&&(D=ge._updatedFibers.size,ge._updatedFibers.clear(),10";if(typeof ee=="object"&&ee!==null&&ee.$$typeof===J)return"<...>";try{var we=s(ee);return we?"<"+we+">":"<...>"}catch{return"<...>"}}function o(){var ee=he.A;return ee===null?null:ee.getOwner()}function u(){return Error("react-stack-top-frame")}function c(ee){if(be.call(ee,"key")){var we=Object.getOwnPropertyDescriptor(ee,"key").get;if(we&&we.isReactWarning)return!1}return ee.key!==void 0}function f(ee,we){function ve(){He||(He=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",we))}ve.isReactWarning=!0,Object.defineProperty(ee,"key",{get:ve,configurable:!0})}function m(){var ee=s(this.type);return ce[ee]||(ce[ee]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),ee=this.props.ref,ee!==void 0?ee:null}function b(ee,we,ve,Re,Ue,ht,at,Ne){return ve=ht.ref,ee={$$typeof:R,type:ee,key:we,props:ht,_owner:Ue},(ve!==void 0?ve:null)!==null?Object.defineProperty(ee,"ref",{enumerable:!1,get:m}):Object.defineProperty(ee,"ref",{enumerable:!1,value:null}),ee._store={},Object.defineProperty(ee._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(ee,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(ee,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:at}),Object.defineProperty(ee,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Ne}),Object.freeze&&(Object.freeze(ee.props),Object.freeze(ee)),ee}function S(ee,we,ve,Re,Ue,ht,at,Ne){var ke=we.children;if(ke!==void 0)if(Re)if(me(ke)){for(Re=0;Re";if(typeof ee=="object"&&ee!==null&&ee.$$typeof===J)return"<...>";try{var we=s(ee);return we?"<"+we+">":"<...>"}catch{return"<...>"}}function o(){var ee=he.A;return ee===null?null:ee.getOwner()}function u(){return Error("react-stack-top-frame")}function c(ee){if(be.call(ee,"key")){var we=Object.getOwnPropertyDescriptor(ee,"key").get;if(we&&we.isReactWarning)return!1}return ee.key!==void 0}function f(ee,we){function ve(){He||(He=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",we))}ve.isReactWarning=!0,Object.defineProperty(ee,"key",{get:ve,configurable:!0})}function m(){var ee=s(this.type);return ce[ee]||(ce[ee]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),ee=this.props.ref,ee!==void 0?ee:null}function b(ee,we,ve,Re,Ue,ht,at,Me){return ve=ht.ref,ee={$$typeof:R,type:ee,key:we,props:ht,_owner:Ue},(ve!==void 0?ve:null)!==null?Object.defineProperty(ee,"ref",{enumerable:!1,get:m}):Object.defineProperty(ee,"ref",{enumerable:!1,value:null}),ee._store={},Object.defineProperty(ee._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(ee,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(ee,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:at}),Object.defineProperty(ee,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Me}),Object.freeze&&(Object.freeze(ee.props),Object.freeze(ee)),ee}function S(ee,we,ve,Re,Ue,ht,at,Me){var ke=we.children;if(ke!==void 0)if(Re)if(ye(ke)){for(Re=0;Re React keys must be passed directly to JSX without using spread: let props = %s; - <%s key={someKey} {...props} />`,Re,ke,ut,ke),Be[ke+Re]=!0)}if(ke=null,ve!==void 0&&(i(ve),ke=""+ve),c(we)&&(i(we.key),ke=""+we.key),"key"in we){ve={};for(var ft in we)ft!=="key"&&(ve[ft]=we[ft])}else ve=we;return ke&&f(ve,typeof ee=="function"?ee.displayName||ee.name||"Unknown":ee),b(ee,ke,ht,Ue,o(),ve,at,Ne)}function x(ee){typeof ee=="object"&&ee!==null&&ee.$$typeof===R&&ee._store&&(ee._store.validated=1)}var w=Ri,R=Symbol.for("react.transitional.element"),L=Symbol.for("react.portal"),A=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),U=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),$=Symbol.for("react.context"),W=Symbol.for("react.forward_ref"),K=Symbol.for("react.suspense"),le=Symbol.for("react.suspense_list"),Y=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),te=Symbol.for("react.activity"),xe=Symbol.for("react.client.reference"),he=w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,be=Object.prototype.hasOwnProperty,me=Array.isArray,fe=console.createTask?console.createTask:function(){return null};w={"react-stack-bottom-frame":function(ee){return ee()}};var He,ce={},Ce=w["react-stack-bottom-frame"].bind(w,u)(),Oe=fe(r(u)),Be={};Wc.Fragment=A,Wc.jsx=function(ee,we,ve,Re,Ue){var ht=1e4>he.recentlyCreatedOwnerStacks++;return S(ee,we,ve,!1,Re,Ue,ht?Error("react-stack-top-frame"):Ce,ht?fe(r(ee)):Oe)},Wc.jsxs=function(ee,we,ve,Re,Ue){var ht=1e4>he.recentlyCreatedOwnerStacks++;return S(ee,we,ve,!0,Re,Ue,ht?Error("react-stack-top-frame"):Ce,ht?fe(r(ee)):Oe)}}()),Wc}A_.exports=RD();var Fl=A_.exports,R_={exports:{}},Ng={exports:{}},Pg={};/** + <%s key={someKey} {...props} />`,Re,ke,ut,ke),Be[ke+Re]=!0)}if(ke=null,ve!==void 0&&(i(ve),ke=""+ve),c(we)&&(i(we.key),ke=""+we.key),"key"in we){ve={};for(var ft in we)ft!=="key"&&(ve[ft]=we[ft])}else ve=we;return ke&&f(ve,typeof ee=="function"?ee.displayName||ee.name||"Unknown":ee),b(ee,ke,ht,Ue,o(),ve,at,Me)}function x(ee){typeof ee=="object"&&ee!==null&&ee.$$typeof===R&&ee._store&&(ee._store.validated=1)}var w=Ri,R=Symbol.for("react.transitional.element"),L=Symbol.for("react.portal"),A=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),U=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),$=Symbol.for("react.context"),W=Symbol.for("react.forward_ref"),K=Symbol.for("react.suspense"),le=Symbol.for("react.suspense_list"),Y=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),te=Symbol.for("react.activity"),xe=Symbol.for("react.client.reference"),he=w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,be=Object.prototype.hasOwnProperty,ye=Array.isArray,pe=console.createTask?console.createTask:function(){return null};w={"react-stack-bottom-frame":function(ee){return ee()}};var He,ce={},Ce=w["react-stack-bottom-frame"].bind(w,u)(),Oe=pe(r(u)),Be={};Wc.Fragment=A,Wc.jsx=function(ee,we,ve,Re,Ue){var ht=1e4>he.recentlyCreatedOwnerStacks++;return S(ee,we,ve,!1,Re,Ue,ht?Error("react-stack-top-frame"):Ce,ht?pe(r(ee)):Oe)},Wc.jsxs=function(ee,we,ve,Re,Ue){var ht=1e4>he.recentlyCreatedOwnerStacks++;return S(ee,we,ve,!0,Re,Ue,ht?Error("react-stack-top-frame"):Ce,ht?pe(r(ee)):Oe)}}()),Wc}A_.exports=RD();var Fl=A_.exports,R_={exports:{}},Ng={exports:{}},Pg={};/** * @license React * scheduler.development.js * @@ -39,7 +39,7 @@ React keys must be passed directly to JSX without using spread: * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var M_;function MD(){return M_||(M_=1,function(s){(function(){function e(){if(K=!1,te){var ce=s.unstable_now();be=ce;var Ce=!0;try{e:{$=!1,W&&(W=!1,Y(xe),xe=-1),G=!0;var Oe=U;try{t:{for(c(ce),q=r(R);q!==null&&!(q.expirationTime>ce&&m());){var Be=q.callback;if(typeof Be=="function"){q.callback=null,U=q.priorityLevel;var ee=Be(q.expirationTime<=ce);if(ce=s.unstable_now(),typeof ee=="function"){q.callback=ee,c(ce),Ce=!0;break t}q===r(R)&&o(R),c(ce)}else o(R);q=r(R)}if(q!==null)Ce=!0;else{var we=r(L);we!==null&&b(f,we.startTime-ce),Ce=!1}}break e}finally{q=null,U=Oe,G=!1}Ce=void 0}}finally{Ce?me():te=!1}}}function i(ce,Ce){var Oe=ce.length;ce.push(Ce);e:for(;0>>1,ee=ce[Be];if(0>>1;Beu(Re,Oe))Ueu(ht,Re)?(ce[Be]=ht,ce[Ue]=Oe,Be=Ue):(ce[Be]=Re,ce[ve]=Oe,Be=ve);else if(Ueu(ht,Oe))ce[Be]=ht,ce[Ue]=Oe,Be=Ue;else break e}}return Ce}function u(ce,Ce){var Oe=ce.sortIndex-Ce.sortIndex;return Oe!==0?Oe:ce.id-Ce.id}function c(ce){for(var Ce=r(L);Ce!==null;){if(Ce.callback===null)o(L);else if(Ce.startTime<=ce)o(L),Ce.sortIndex=Ce.expirationTime,i(R,Ce);else break;Ce=r(L)}}function f(ce){if(W=!1,c(ce),!$)if(r(R)!==null)$=!0,te||(te=!0,me());else{var Ce=r(L);Ce!==null&&b(f,Ce.startTime-ce)}}function m(){return K?!0:!(s.unstable_now()-bece||125Be?(ce.sortIndex=Oe,i(L,ce),r(R)===null&&ce===r(L)&&(W?(Y(xe),xe=-1):W=!0,b(f,Oe-Be))):(ce.sortIndex=ee,i(R,ce),$||G||($=!0,te||(te=!0,me()))),ce},s.unstable_shouldYield=m,s.unstable_wrapCallback=function(ce){var Ce=U;return function(){var Oe=U;U=Ce;try{return ce.apply(this,arguments)}finally{U=Oe}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()}(Pg)),Pg}var L_;function LD(){return L_||(L_=1,Ng.exports=MD()),Ng.exports}var Bg={exports:{}},Vi={};/** + */var M_;function MD(){return M_||(M_=1,function(s){(function(){function e(){if(K=!1,te){var ce=s.unstable_now();be=ce;var Ce=!0;try{e:{$=!1,W&&(W=!1,Y(xe),xe=-1),G=!0;var Oe=U;try{t:{for(c(ce),q=r(R);q!==null&&!(q.expirationTime>ce&&m());){var Be=q.callback;if(typeof Be=="function"){q.callback=null,U=q.priorityLevel;var ee=Be(q.expirationTime<=ce);if(ce=s.unstable_now(),typeof ee=="function"){q.callback=ee,c(ce),Ce=!0;break t}q===r(R)&&o(R),c(ce)}else o(R);q=r(R)}if(q!==null)Ce=!0;else{var we=r(L);we!==null&&b(f,we.startTime-ce),Ce=!1}}break e}finally{q=null,U=Oe,G=!1}Ce=void 0}}finally{Ce?ye():te=!1}}}function i(ce,Ce){var Oe=ce.length;ce.push(Ce);e:for(;0>>1,ee=ce[Be];if(0>>1;Beu(Re,Oe))Ueu(ht,Re)?(ce[Be]=ht,ce[Ue]=Oe,Be=Ue):(ce[Be]=Re,ce[ve]=Oe,Be=ve);else if(Ueu(ht,Oe))ce[Be]=ht,ce[Ue]=Oe,Be=Ue;else break e}}return Ce}function u(ce,Ce){var Oe=ce.sortIndex-Ce.sortIndex;return Oe!==0?Oe:ce.id-Ce.id}function c(ce){for(var Ce=r(L);Ce!==null;){if(Ce.callback===null)o(L);else if(Ce.startTime<=ce)o(L),Ce.sortIndex=Ce.expirationTime,i(R,Ce);else break;Ce=r(L)}}function f(ce){if(W=!1,c(ce),!$)if(r(R)!==null)$=!0,te||(te=!0,ye());else{var Ce=r(L);Ce!==null&&b(f,Ce.startTime-ce)}}function m(){return K?!0:!(s.unstable_now()-bece||125Be?(ce.sortIndex=Oe,i(L,ce),r(R)===null&&ce===r(L)&&(W?(Y(xe),xe=-1):W=!0,b(f,Oe-Be))):(ce.sortIndex=ee,i(R,ce),$||G||($=!0,te||(te=!0,ye()))),ce},s.unstable_shouldYield=m,s.unstable_wrapCallback=function(ce){var Ce=U;return function(){var Oe=U;U=Ce;try{return ce.apply(this,arguments)}finally{U=Oe}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()}(Pg)),Pg}var L_;function LD(){return L_||(L_=1,Ng.exports=MD()),Ng.exports}var Bg={exports:{}},Vi={};/** * @license React * react-dom.development.js * @@ -59,9 +59,9 @@ See https://react.dev/link/invalid-hook-call for tips about how to debug and fix * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var P_;function PD(){return P_||(P_=1,function(){function s(t,n){for(t=t.memoizedState;t!==null&&0=n.length)return l;var d=n[a],p=Fi(t)?t.slice():it({},t);return p[d]=e(t[d],n,a+1,l),p}function i(t,n,a){if(n.length!==a.length)console.warn("copyWithRename() expects paths of the same length");else{for(var l=0;lca?console.error("Unexpected pop."):(n!==db[ca]&&console.error("Unexpected Fiber popped."),t.current=cb[ca],cb[ca]=null,db[ca]=null,ca--)}function be(t,n,a){ca++,cb[ca]=t.current,db[ca]=a,t.current=n}function me(t){return t===null&&console.error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."),t}function fe(t,n){be(oo,n,t),be(Vh,t,t),be(ao,null,t);var a=n.nodeType;switch(a){case 9:case 11:a=a===9?"#document":"#fragment",n=(n=n.documentElement)&&(n=n.namespaceURI)?wC(n):Sa;break;default:if(a=n.tagName,n=n.namespaceURI)n=wC(n),n=AC(n,a);else switch(a){case"svg":n=Gc;break;case"math":n=Dg;break;default:n=Sa}}a=a.toLowerCase(),a=Cn(null,a),a={context:n,ancestorInfo:a},he(ao,t),be(ao,a,t)}function He(t){he(ao,t),he(Vh,t),he(oo,t)}function ce(){return me(ao.current)}function Ce(t){t.memoizedState!==null&&be(zm,t,t);var n=me(ao.current),a=t.type,l=AC(n.context,a);a=Cn(n.ancestorInfo,a),l={context:l,ancestorInfo:a},n!==l&&(be(Vh,t,t),be(ao,l,t))}function Oe(t){Vh.current===t&&(he(ao,t),he(Vh,t)),zm.current===t&&(he(zm,t),kf._currentValue=ql)}function Be(t){return typeof Symbol=="function"&&Symbol.toStringTag&&t[Symbol.toStringTag]||t.constructor.name||"Object"}function ee(t){try{return we(t),!1}catch{return!0}}function we(t){return""+t}function ve(t,n){if(ee(t))return console.error("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",n,Be(t)),we(t)}function Re(t,n){if(ee(t))return console.error("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",n,Be(t)),we(t)}function Ue(t){if(ee(t))return console.error("Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.",Be(t)),we(t)}function ht(t){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var n=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(n.isDisabled)return!0;if(!n.supportsFiber)return console.error("The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools"),!0;try{fc=n.inject(t),Ki=n}catch(a){console.error("React instrumentation encountered an error: %s.",a)}return!!n.checkDCE}function at(t){if(typeof dL=="function"&&hL(t),Ki&&typeof Ki.setStrictMode=="function")try{Ki.setStrictMode(fc,t)}catch(n){Er||(Er=!0,console.error("React instrumentation encountered an error: %s",n))}}function Ne(t){Ae=t}function ke(){Ae!==null&&typeof Ae.markCommitStopped=="function"&&Ae.markCommitStopped()}function ut(t){Ae!==null&&typeof Ae.markComponentRenderStarted=="function"&&Ae.markComponentRenderStarted(t)}function ft(){Ae!==null&&typeof Ae.markComponentRenderStopped=="function"&&Ae.markComponentRenderStopped()}function Ze(t){Ae!==null&&typeof Ae.markRenderStarted=="function"&&Ae.markRenderStarted(t)}function pt(){Ae!==null&&typeof Ae.markRenderStopped=="function"&&Ae.markRenderStopped()}function At(t,n){Ae!==null&&typeof Ae.markStateUpdateScheduled=="function"&&Ae.markStateUpdateScheduled(t,n)}function Vt(t){return t>>>=0,t===0?32:31-(fL(t)/pL|0)|0}function Sn(t){if(t&1)return"SyncHydrationLane";if(t&2)return"Sync";if(t&4)return"InputContinuousHydration";if(t&8)return"InputContinuous";if(t&16)return"DefaultHydration";if(t&32)return"Default";if(t&128)return"TransitionHydration";if(t&4194048)return"Transition";if(t&62914560)return"Retry";if(t&67108864)return"SelectiveHydration";if(t&134217728)return"IdleHydration";if(t&268435456)return"Idle";if(t&536870912)return"Offscreen";if(t&1073741824)return"Deferred"}function kt(t){var n=t&42;if(n!==0)return n;switch(t&-t){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 t&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return console.error("Should have found matching lanes. This is a bug in React."),t}}function Ot(t,n,a){var l=t.pendingLanes;if(l===0)return 0;var d=0,p=t.suspendedLanes,T=t.pingedLanes;t=t.warmLanes;var C=l&134217727;return C!==0?(l=C&~p,l!==0?d=kt(l):(T&=C,T!==0?d=kt(T):a||(a=C&~t,a!==0&&(d=kt(a))))):(C=l&~p,C!==0?d=kt(C):T!==0?d=kt(T):a||(a=l&~t,a!==0&&(d=kt(a)))),d===0?0:n!==0&&n!==d&&!(n&p)&&(p=d&-d,a=n&-n,p>=a||p===32&&(a&4194048)!==0)?n:d}function dt(t,n){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&n)===0}function xn(t,n){switch(t){case 1:case 2:case 4:case 8:case 64:return n+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 n+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 console.error("Should have found matching lanes. This is a bug in React."),-1}}function _e(){var t=Vm;return Vm<<=1,!(Vm&4194048)&&(Vm=256),t}function Ei(){var t=$m;return $m<<=1,!($m&62914560)&&($m=4194304),t}function ci(t){for(var n=[],a=0;31>a;a++)n.push(t);return n}function $t(t,n){t.pendingLanes|=n,n!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Ci(t,n,a,l,d,p){var T=t.pendingLanes;t.pendingLanes=a,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=a,t.entangledLanes&=a,t.errorRecoveryDisabledLanes&=a,t.shellSuspendCounter=0;var C=t.entanglements,O=t.expirationTimes,I=t.hiddenUpdates;for(a=T&~a;0Gh&&console.error("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}function En(t){if(vb===void 0)try{throw Error()}catch(a){var n=a.stack.trim().match(/\n( *(at )?)/);vb=n&&n[1]||"",cw=-1=n.length)return l;var d=n[a],p=Fi(t)?t.slice():it({},t);return p[d]=e(t[d],n,a+1,l),p}function i(t,n,a){if(n.length!==a.length)console.warn("copyWithRename() expects paths of the same length");else{for(var l=0;lca?console.error("Unexpected pop."):(n!==db[ca]&&console.error("Unexpected Fiber popped."),t.current=cb[ca],cb[ca]=null,db[ca]=null,ca--)}function be(t,n,a){ca++,cb[ca]=t.current,db[ca]=a,t.current=n}function ye(t){return t===null&&console.error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."),t}function pe(t,n){be(oo,n,t),be(Vh,t,t),be(ao,null,t);var a=n.nodeType;switch(a){case 9:case 11:a=a===9?"#document":"#fragment",n=(n=n.documentElement)&&(n=n.namespaceURI)?wC(n):Sa;break;default:if(a=n.tagName,n=n.namespaceURI)n=wC(n),n=AC(n,a);else switch(a){case"svg":n=Gc;break;case"math":n=Dg;break;default:n=Sa}}a=a.toLowerCase(),a=Cn(null,a),a={context:n,ancestorInfo:a},he(ao,t),be(ao,a,t)}function He(t){he(ao,t),he(Vh,t),he(oo,t)}function ce(){return ye(ao.current)}function Ce(t){t.memoizedState!==null&&be(zm,t,t);var n=ye(ao.current),a=t.type,l=AC(n.context,a);a=Cn(n.ancestorInfo,a),l={context:l,ancestorInfo:a},n!==l&&(be(Vh,t,t),be(ao,l,t))}function Oe(t){Vh.current===t&&(he(ao,t),he(Vh,t)),zm.current===t&&(he(zm,t),kf._currentValue=ql)}function Be(t){return typeof Symbol=="function"&&Symbol.toStringTag&&t[Symbol.toStringTag]||t.constructor.name||"Object"}function ee(t){try{return we(t),!1}catch{return!0}}function we(t){return""+t}function ve(t,n){if(ee(t))return console.error("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",n,Be(t)),we(t)}function Re(t,n){if(ee(t))return console.error("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",n,Be(t)),we(t)}function Ue(t){if(ee(t))return console.error("Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.",Be(t)),we(t)}function ht(t){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var n=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(n.isDisabled)return!0;if(!n.supportsFiber)return console.error("The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools"),!0;try{fc=n.inject(t),Ki=n}catch(a){console.error("React instrumentation encountered an error: %s.",a)}return!!n.checkDCE}function at(t){if(typeof dL=="function"&&hL(t),Ki&&typeof Ki.setStrictMode=="function")try{Ki.setStrictMode(fc,t)}catch(n){Er||(Er=!0,console.error("React instrumentation encountered an error: %s",n))}}function Me(t){Ae=t}function ke(){Ae!==null&&typeof Ae.markCommitStopped=="function"&&Ae.markCommitStopped()}function ut(t){Ae!==null&&typeof Ae.markComponentRenderStarted=="function"&&Ae.markComponentRenderStarted(t)}function ft(){Ae!==null&&typeof Ae.markComponentRenderStopped=="function"&&Ae.markComponentRenderStopped()}function Ze(t){Ae!==null&&typeof Ae.markRenderStarted=="function"&&Ae.markRenderStarted(t)}function pt(){Ae!==null&&typeof Ae.markRenderStopped=="function"&&Ae.markRenderStopped()}function At(t,n){Ae!==null&&typeof Ae.markStateUpdateScheduled=="function"&&Ae.markStateUpdateScheduled(t,n)}function Vt(t){return t>>>=0,t===0?32:31-(fL(t)/pL|0)|0}function Sn(t){if(t&1)return"SyncHydrationLane";if(t&2)return"Sync";if(t&4)return"InputContinuousHydration";if(t&8)return"InputContinuous";if(t&16)return"DefaultHydration";if(t&32)return"Default";if(t&128)return"TransitionHydration";if(t&4194048)return"Transition";if(t&62914560)return"Retry";if(t&67108864)return"SelectiveHydration";if(t&134217728)return"IdleHydration";if(t&268435456)return"Idle";if(t&536870912)return"Offscreen";if(t&1073741824)return"Deferred"}function kt(t){var n=t&42;if(n!==0)return n;switch(t&-t){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 t&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return console.error("Should have found matching lanes. This is a bug in React."),t}}function Ot(t,n,a){var l=t.pendingLanes;if(l===0)return 0;var d=0,p=t.suspendedLanes,T=t.pingedLanes;t=t.warmLanes;var C=l&134217727;return C!==0?(l=C&~p,l!==0?d=kt(l):(T&=C,T!==0?d=kt(T):a||(a=C&~t,a!==0&&(d=kt(a))))):(C=l&~p,C!==0?d=kt(C):T!==0?d=kt(T):a||(a=l&~t,a!==0&&(d=kt(a)))),d===0?0:n!==0&&n!==d&&!(n&p)&&(p=d&-d,a=n&-n,p>=a||p===32&&(a&4194048)!==0)?n:d}function dt(t,n){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&n)===0}function xn(t,n){switch(t){case 1:case 2:case 4:case 8:case 64:return n+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 n+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 console.error("Should have found matching lanes. This is a bug in React."),-1}}function _e(){var t=Vm;return Vm<<=1,!(Vm&4194048)&&(Vm=256),t}function Ei(){var t=$m;return $m<<=1,!($m&62914560)&&($m=4194304),t}function ci(t){for(var n=[],a=0;31>a;a++)n.push(t);return n}function $t(t,n){t.pendingLanes|=n,n!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Ci(t,n,a,l,d,p){var T=t.pendingLanes;t.pendingLanes=a,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=a,t.entangledLanes&=a,t.errorRecoveryDisabledLanes&=a,t.shellSuspendCounter=0;var C=t.entanglements,O=t.expirationTimes,I=t.hiddenUpdates;for(a=T&~a;0Gh&&console.error("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}function En(t){if(vb===void 0)try{throw Error()}catch(a){var n=a.stack.trim().match(/\n( *(at )?)/);vb=n&&n[1]||"",cw=-1)":-1T||I[p]!==Z[T]){var re=` `+I[p].replace(" at new "," at ");return t.displayName&&re.includes("")&&(re=re.replace("",t.displayName)),typeof t=="function"&&_b.set(t,re),re}while(1<=p&&0<=T);break}}}finally{bb=!1,se.H=l,Ud(),Error.prepareStackTrace=a}return I=(I=t?t.displayName||t.name:"")?En(I):"",typeof t=="function"&&_b.set(t,I),I}function Fd(t){var n=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,t=t.stack,Error.prepareStackTrace=n,t.startsWith(`Error: react-stack-top-frame @@ -73,7 +73,7 @@ Error generating stack: `+O.message+` `+l))}else if(t.debugStack!=null){var d=t.debugStack;(t=t.owner)&&d&&(n+=` `+Fd(d))}else break;var p=n}catch(T){p=` Error generating stack: `+T.message+` -`+T.stack}return p}function Ie(t,n,a,l,d,p,T){var C=Wn;Fn(t);try{return t!==null&&t._debugTask?t._debugTask.run(n.bind(null,a,l,d,p,T)):n(a,l,d,p,T)}finally{Fn(C)}throw Error("runWithFiberInDEV should never be called in production. This is a bug in React.")}function Fn(t){se.getCurrentStack=t===null?null:Hy,wr=!1,Wn=t}function Ii(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return Ue(t),t;default:return""}}function Et(t){var n=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function jy(t){var n=Et(t)?"checked":"value",a=Object.getOwnPropertyDescriptor(t.constructor.prototype,n);Ue(t[n]);var l=""+t[n];if(!t.hasOwnProperty(n)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var d=a.get,p=a.set;return Object.defineProperty(t,n,{configurable:!0,get:function(){return d.call(this)},set:function(T){Ue(T),l=""+T,p.call(this,T)}}),Object.defineProperty(t,n,{enumerable:a.enumerable}),{getValue:function(){return l},setValue:function(T){Ue(T),l=""+T},stopTracking:function(){t._valueTracker=null,delete t[n]}}}}function Vr(t){t._valueTracker||(t._valueTracker=jy(t))}function Ho(t){if(!t)return!1;var n=t._valueTracker;if(!n)return!0;var a=n.getValue(),l="";return t&&(l=Et(t)?t.checked?"true":"false":t.value),t=l,t!==a?(n.setValue(t),!0):!1}function Du(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function di(t){return t.replace(bL,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function Nt(t,n){n.checked===void 0||n.defaultChecked===void 0||hw||(console.error("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",Au()||"A component",n.type),hw=!0),n.value===void 0||n.defaultValue===void 0||dw||(console.error("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components",Au()||"A component",n.type),dw=!0)}function ku(t,n,a,l,d,p,T,C){t.name="",T!=null&&typeof T!="function"&&typeof T!="symbol"&&typeof T!="boolean"?(ve(T,"type"),t.type=T):t.removeAttribute("type"),n!=null?T==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+Ii(n)):t.value!==""+Ii(n)&&(t.value=""+Ii(n)):T!=="submit"&&T!=="reset"||t.removeAttribute("value"),n!=null?jd(t,T,Ii(n)):a!=null?jd(t,T,Ii(a)):l!=null&&t.removeAttribute("value"),d==null&&p!=null&&(t.defaultChecked=!!p),d!=null&&(t.checked=d&&typeof d!="function"&&typeof d!="symbol"),C!=null&&typeof C!="function"&&typeof C!="symbol"&&typeof C!="boolean"?(ve(C,"name"),t.name=""+Ii(C)):t.removeAttribute("name")}function jo(t,n,a,l,d,p,T,C){if(p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"&&(ve(p,"type"),t.type=p),n!=null||a!=null){if(!(p!=="submit"&&p!=="reset"||n!=null))return;a=a!=null?""+Ii(a):"",n=n!=null?""+Ii(n):a,C||n===t.value||(t.value=n),t.defaultValue=n}l=l??d,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=C?t.checked:!!l,t.defaultChecked=!!l,T!=null&&typeof T!="function"&&typeof T!="symbol"&&typeof T!="boolean"&&(ve(T,"name"),t.name=T)}function jd(t,n,a){n==="number"&&Du(t.ownerDocument)===t||t.defaultValue===""+a||(t.defaultValue=""+a)}function Fp(t,n){n.value==null&&(typeof n.children=="object"&&n.children!==null?sb.Children.forEach(n.children,function(a){a==null||typeof a=="string"||typeof a=="number"||typeof a=="bigint"||pw||(pw=!0,console.error("Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to