rooks
Version:
Essential React custom hooks ⚓ to super charge your components!
12 lines • 63.3 kB
JavaScript
/*
* Rooks v8.4.0
* https://github.com/imbhargav5/rooks
* (c) 2025 Bhargav Ponnapalli
* Released under the MIT License
*/
(function(global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('react-dom')) :
typeof define === 'function' && define.amd ? define(['react', 'react-dom'], factory) :
(global = global || self, global.rooks = factory(global.React, global.ReactDOM));
}(this, function(React, ReactDOM) {
"use strict";var rooks=(()=>{var So=Object.create;var ot=Object.defineProperty;var To=Object.getOwnPropertyDescriptor;var wo=Object.getOwnPropertyNames;var Lo=Object.getPrototypeOf,Ro=Object.prototype.hasOwnProperty;var b=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ke=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),xo=(e,t)=>{for(var n in t)ot(e,n,{get:t[n],enumerable:!0})},rn=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wo(t))!Ro.call(e,o)&&o!==n&&ot(e,o,{get:()=>t[o],enumerable:!(r=To(t,o))||r.enumerable});return e};var st=(e,t,n)=>(n=e!=null?So(Lo(e)):{},rn(t||!e||!e.__esModule?ot(n,"default",{value:e,enumerable:!0}):n,e)),Do=e=>rn(ot({},"__esModule",{value:!0}),e);var Rn=ke((Ui,Ln)=>{var Fo="Expected a function",Tn=NaN,Po="[object Symbol]",Ao=/^\s+|\s+$/g,Uo=/^[-+]0x[0-9a-f]+$/i,Vo=/^0b[01]+$/i,Wo=/^0o[0-7]+$/i,Ho=parseInt,No=typeof global=="object"&&global&&global.Object===Object&&global,Ko=typeof self=="object"&&self&&self.Object===Object&&self,jo=No||Ko||Function("return this")(),zo=Object.prototype,Bo=zo.toString,Yo=Math.max,qo=Math.min,Ft=function(){return jo.Date.now()};function Xo(e,t,n){var r,o,s,u,l,i,c=0,a=!1,f=!1,d=!0;if(typeof e!="function")throw new TypeError(Fo);t=wn(t)||0,Pt(n)&&(a=!!n.leading,f="maxWait"in n,s=f?Yo(wn(n.maxWait)||0,t):s,d="trailing"in n?!!n.trailing:d);function m(h){var D=r,E=o;return r=o=void 0,c=h,u=e.apply(E,D),u}function p(h){return c=h,l=setTimeout(L,t),a?m(h):u}function v(h){var D=h-i,E=h-c,k=t-D;return f?qo(k,s-E):k}function S(h){var D=h-i,E=h-c;return i===void 0||D>=t||D<0||f&&E>=s}function L(){var h=Ft();if(S(h))return T(h);l=setTimeout(L,v(h))}function T(h){return l=void 0,d&&r?m(h):(r=o=void 0,u)}function g(){l!==void 0&&clearTimeout(l),c=0,r=i=o=l=void 0}function y(){return l===void 0?u:T(Ft())}function w(){var h=Ft(),D=S(h);if(r=arguments,o=this,i=h,D){if(l===void 0)return p(i);if(f)return l=setTimeout(L,t),m(i)}return l===void 0&&(l=setTimeout(L,t)),u}return w.cancel=g,w.flush=y,w}function Pt(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function _o(e){return!!e&&typeof e=="object"}function Go(e){return typeof e=="symbol"||_o(e)&&Bo.call(e)==Po}function wn(e){if(typeof e=="number")return e;if(Go(e))return Tn;if(Pt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Pt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(Ao,"");var n=Vo.test(e);return n||Wo.test(e)?Ho(e.slice(2),n?2:8):Uo.test(e)?Tn:+e}Ln.exports=Xo});var In=ke((Ji,Cn)=>{"use strict";Cn.exports=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,o,s;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(o=r;o--!==0;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(s=Object.keys(t),r=s.length,r!==Object.keys(n).length)return!1;for(o=r;o--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[o]))return!1;for(o=r;o--!==0;){var u=s[o];if(!e(t[u],n[u]))return!1}return!0}return t!==t&&n!==n}});var yr=ke(Er=>{"use strict";var ze=b("react");function Ts(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ws=typeof Object.is=="function"?Object.is:Ts,Ls=ze.useState,Rs=ze.useEffect,xs=ze.useLayoutEffect,Ds=ze.useDebugValue;function Os(e,t){var n=t(),r=Ls({inst:{value:n,getSnapshot:t}}),o=r[0].inst,s=r[1];return xs(function(){o.value=n,o.getSnapshot=t,Wt(o)&&s({inst:o})},[e,n,t]),Rs(function(){return Wt(o)&&s({inst:o}),e(function(){Wt(o)&&s({inst:o})})},[e]),Ds(n),n}function Wt(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!ws(e,n)}catch{return!0}}function Ms(e,t){return t()}var ks=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Ms:Os;Er.useSyncExternalStore=ze.useSyncExternalStore!==void 0?ze.useSyncExternalStore:ks});var Tr=ke((kl,Sr)=>{"use strict";Sr.exports=yr()});var Pr=ke((Fr,Ze)=>{(function(){var e,t,n,r,o,s;typeof performance<"u"&&performance!==null&&performance.now?Ze.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(Ze.exports=function(){return(e()-o)/1e6},t=process.hrtime,e=function(){var u;return u=t(),u[0]*1e9+u[1]},r=e(),s=process.uptime()*1e9,o=r-s):Date.now?(Ze.exports=function(){return Date.now()-n},n=Date.now()):(Ze.exports=function(){return new Date().getTime()-n},n=new Date().getTime())}).call(Fr)});var Ur=ke((ql,Ot)=>{var Fs=Pr(),ce=typeof window>"u"?global:window,xt=["moz","webkit"],qe="AnimationFrame",Xe=ce["request"+qe],et=ce["cancel"+qe]||ce["cancelRequest"+qe];for(Ye=0;!Xe&&Ye<xt.length;Ye++)Xe=ce[xt[Ye]+"Request"+qe],et=ce[xt[Ye]+"Cancel"+qe]||ce[xt[Ye]+"CancelRequest"+qe];var Ye;(!Xe||!et)&&(Dt=0,Ht=0,Se=[],Ar=1e3/60,Xe=function(e){if(Se.length===0){var t=Fs(),n=Math.max(0,Ar-(t-Dt));Dt=n+t,setTimeout(function(){var r=Se.slice(0);Se.length=0;for(var o=0;o<r.length;o++)if(!r[o].cancelled)try{r[o].callback(Dt)}catch(s){setTimeout(function(){throw s},0)}},Math.round(n))}return Se.push({handle:++Ht,callback:e,cancelled:!1}),Ht},et=function(e){for(var t=0;t<Se.length;t++)Se[t].handle===e&&(Se[t].cancelled=!0)});var Dt,Ht,Se,Ar;Ot.exports=function(e){return Xe.call(ce,e)};Ot.exports.cancel=function(){et.apply(ce,arguments)};Ot.exports.polyfill=function(e){e||(e=ce),e.requestAnimationFrame=Xe,e.cancelAnimationFrame=et}});var zs={};xo(zs,{useArrayState:()=>cn,useAsyncEffect:()=>fn,useAudio:()=>dn,useBoundingclientrect:()=>vn,useBoundingclientrectRef:()=>gn,useCountdown:()=>yn,useCounter:()=>Sn,useDebounce:()=>pt,useDebounceFn:()=>On,useDebouncedValue:()=>kn,useDeepCompareEffect:()=>Pn,useDidMount:()=>$,useDidUpdate:()=>ge,useDimensionsRef:()=>Un,useDocumentEventListener:()=>Vn,useDocumentTitle:()=>Wn,useDocumentVisibilityState:()=>Nn,useEffectOnceWhen:()=>Kn,useEventListenerRef:()=>zn,useFileDropRef:()=>Bn,useFocus:()=>qn,useFocusWithin:()=>Xn,useForkRef:()=>ct,useFreshCallback:()=>R,useFreshRef:()=>q,useFreshTick:()=>Ue,useFullscreen:()=>Yn,useGeolocation:()=>_n,useGetIsMounted:()=>me,useIdleDetectionApi:()=>Gn,useInViewRef:()=>Qn,useInput:()=>$n,useIntersectionObserverRef:()=>Jn,useIntervalWhen:()=>dt,useIsDroppingFiles:()=>Zn,useIsomorphicEffect:()=>G,useKey:()=>St,useKeyBindings:()=>er,useKeyRef:()=>tr,useKeys:()=>nr,useLifecycleLogger:()=>rr,useLocalstorageState:()=>ir,useLockBodyScroll:()=>sr,useMapState:()=>an,useMediaMatch:()=>lr,useMergeRefs:()=>cr,useMouse:()=>fr,useMouseMoveDelta:()=>dr,useMouseWheelDelta:()=>mr,useMultiSelectableList:()=>pr,useMutationObserver:()=>lt,useMutationObserverRef:()=>ft,useNativeMapState:()=>ur,useNavigatorLanguage:()=>br,useObjectState:()=>an,useOnClickRef:()=>hr,useOnHoverRef:()=>gr,useOnLongHover:()=>un,useOnLongHoverRef:()=>un,useOnLongPress:()=>ln,useOnLongPressRef:()=>ln,useOnWindowResize:()=>Ve,useOnWindowScroll:()=>We,useOnline:()=>Lr,useOrientation:()=>Rr,useOutsideClick:()=>Dr,useOutsideClickRef:()=>Or,usePictureInPictureApi:()=>xr,usePreviousDifferent:()=>Mr,usePreviousImmediate:()=>kr,usePromise:()=>Cr,useQueueState:()=>Ir,useRaf:()=>Vr,useRefElement:()=>Et,useRenderCount:()=>Nr,useResizeObserverRef:()=>Wr,useSafeSetState:()=>Kr,useScreenDetailsApi:()=>jr,useSelect:()=>zr,useSelectableList:()=>Br,useSessionstorageState:()=>Yr,useSetState:()=>qr,useSpeech:()=>_r,useStackState:()=>Xr,useThrottle:()=>Zr,useTimeTravelState:()=>Qr,useTimeoutWhen:()=>ie,useToggle:()=>to,useUndoRedoState:()=>ro,useUndoState:()=>no,useVibrate:()=>so,useVideo:()=>io,useWebLocksApi:()=>uo,useWhyDidYouUpdate:()=>lo,useWillUnmount:()=>be,useWindowEventListener:()=>ao,useWindowScrollPosition:()=>fo,useWindowSize:()=>vo});var ue=b("react");var on=b("react");var ut=b("react");var it=b("react"),G=typeof window>"u"?it.useEffect:it.useLayoutEffect;function q(e,t=!1){let n=t?G:ut.useEffect,r=(0,ut.useRef)(e);return n(()=>{r.current=e}),r}function R(e){let t=q(e);return(0,on.useCallback)((...r)=>t.current(...r),[t])}var sn=b("react");var x=()=>{};function ie(e,t=0,n=!0,r=0){let o=R(e);(0,sn.useEffect)(()=>{if(n){let u=function(){o()};var s=u;if(typeof window<"u"){let l=window.setTimeout(u,t);return()=>{window.clearTimeout(l)}}else console.warn("useTimeoutWhen: window is undefined.")}return x},[t,n,r,o])}var un=(e,{duration:t=300}={})=>{let[n,r]=(0,ue.useState)(null),o=(0,ue.useCallback)(a=>{r(a)},[]),[s,u]=(0,ue.useState)(!1),l=R(e);ie(()=>{l()},t,s);let i=(0,ue.useCallback)(()=>{u(!0)},[]),c=(0,ue.useCallback)(a=>{u(!1)},[]);return(0,ue.useEffect)(()=>(n&&(n.addEventListener("mouseenter",i),n.addEventListener("mouseleave",c)),()=>{n&&(n.removeEventListener("mouseenter",i),n.removeEventListener("mouseleave",c))}),[i,c,n]),o};var le=b("react");var Oo=()=>{},ln=(e,{onClick:t,duration:n=300}={})=>{let[r,o]=(0,le.useState)(null),s=(0,le.useCallback)(d=>{o(d)},[]),[u,l]=(0,le.useState)(!1),i=R(e),c=R(t??Oo);ie(i,n,u);let a=(0,le.useCallback)(d=>{l(!0)},[]),f=(0,le.useCallback)(d=>{l(!1),c(d)},[c]);return(0,le.useEffect)(()=>(r&&(r.addEventListener("mousedown",a),r.addEventListener("mouseup",f),r.addEventListener("mouseleave",f),r.addEventListener("touchstart",a),r.addEventListener("touchend",f),r.addEventListener("touchcancel",f)),()=>{r&&(r.removeEventListener("mousedown",a),r.removeEventListener("mouseup",f),r.removeEventListener("mouseleave",f),r.removeEventListener("touchstart",a),r.removeEventListener("touchend",f),r.removeEventListener("touchcancel",f))}),[a,f,r]),s};var ae=b("react");function an(e){let[t,n]=(0,ae.useState)(e),r=(0,ae.useCallback)((c,a)=>{n(f=>({...f,[c]:a}))},[]),o=(0,ae.useCallback)(c=>typeof t[c]<"u",[t]),s=(0,ae.useCallback)(c=>{n(a=>({...a,...c}))},[]),u=(0,ae.useCallback)((...c)=>{n(a=>{let f={...a};for(let d of c)delete f[d];return f})},[n]),l=(0,ae.useCallback)(c=>{n(a=>{let f={...a};return delete f[c],f})},[n]),i=(0,ae.useCallback)(()=>{n(c=>{let a={...c};for(let f in a)a.hasOwnProperty(f)&&delete a[f];return a})},[n]);return[t,{has:o,remove:l,removeAll:i,removeMultiple:u,set:r,setMultiple:s}]}var I=b("react");function cn(e){let[t,n]=(0,I.useState)(e??[]),r=(0,I.useCallback)(g=>{n([...t,g])},[t]),o=(0,I.useCallback)(()=>{n(t.slice(0,t.length-1))},[t]),s=(0,I.useCallback)(()=>{n([])},[]),u=(0,I.useCallback)(g=>{n([g,...t])},[t]),l=(0,I.useCallback)(()=>{n(t.slice(1))},[t]),i=(0,I.useCallback)(()=>{n([...t].reverse())},[t]),c=(0,I.useCallback)(g=>{n([...t,...g])},[t]),a=(0,I.useCallback)((g,y,w)=>{n([...t].fill(g,y,w))},[t]),f=(0,I.useCallback)((g,y)=>{n(w=>{let h=[...w];return h[g]=y,h})},[n]),d=(0,I.useCallback)((...g)=>{n(y=>{let w=[...y];return w.splice(...g),w})},[n]),m=(0,I.useCallback)(g=>{n(y=>{let w=[...y];return w.splice(g,1),w})},[n]),p=(0,I.useCallback)((g,y)=>{n(w=>{let h=[...w];return h.splice(g,1,y),h})},[n]),v=(0,I.useCallback)((g,y)=>{n(w=>{let h=[...w];return h.splice(g,0,y),h})},[n]),S=(0,I.useCallback)(g=>{n([...t].sort(g))},[t]),L=(0,I.useMemo)(()=>({push:r,pop:o,clear:s,unshift:u,shift:l,reverse:i,concat:c,fill:a,updateItemAtIndex:f,setArray:n,splice:d,removeItemAtIndex:m,replaceItemAtIndex:p,insertItemAtIndex:v,sort:S}),[r,o,s,u,l,i,c,a,f,n,d,m,p,v,S]);return(0,I.useMemo)(()=>[t,L],[t,L])}var Ie=b("react");var Ce=b("react"),me=()=>{let e=(0,Ce.useRef)(!1),t=(0,Ce.useCallback)(()=>e.current,[]);return(0,Ce.useEffect)(()=>(e.current=!0,()=>{e.current=!1}),[]),t};function fn(e,t,n){let r=(0,Ie.useRef)(0),o=me(),s=q(e),u=(0,Ie.useCallback)(async()=>{let l=++r.current,i=()=>o()&&l===r.current;try{return await s.current(i)}catch(c){throw c}},[o,...t]);(0,Ie.useEffect)(()=>{let l;return u().then(i=>{l=i}),()=>{n?.(l)}},[u,n])}var Fe=b("react");var N=()=>{};function dn(e={},t={}){let{autoPlay:n=!1,isMuted:r=!1,volume:o=1,playbackRate:s=1,loop:u=!1,preload:l="metadata"}=e,[i,c]=(0,Fe.useState)(null),[a,f]=(0,Fe.useState)({isPlaying:!1,isMuted:r,volume:o,currentTime:0,duration:0,playbackRate:s,isLoading:!1,isBuffering:!1,loop:u,hasError:!1}),d=R(t.onPlay??N),m=R(t.onPause??N),p=R(t.onEnded??N),v=R(t.onMute??N),S=R(t.onUnmute??N),L=R(t.onLoadedMetadata??N),T=R(t.onTimeUpdate??N),g=R(t.onDurationChange??N),y=R(t.onVolumeChange??N),w=R(t.onRateChange??N),h=R(t.onError??N),D=R(t.onLoadStart??N),E=R(t.onCanPlay??N),k=R(t.onWaiting??N),Me=C=>{C!==null&&c(C)};(0,Fe.useEffect)(()=>{i&&(i.muted=a.isMuted,i.volume=a.volume,i.playbackRate=a.playbackRate,i.loop=a.loop,i.preload=l,n&&(i.autoplay=!0))},[i,n,l]),(0,Fe.useEffect)(()=>{if(!i)return;let C=()=>{f(O=>({...O,isLoading:!0,hasError:!1})),D()},K=()=>{f(O=>({...O,duration:i.duration,isLoading:!1,hasError:!1})),L(),g(i.duration)},nt=()=>{f(O=>({...O,isBuffering:!1,hasError:!1})),E()},_t=()=>{f(O=>({...O,isBuffering:!0})),k()},Gt=()=>{f(O=>({...O,isPlaying:!0,hasError:!1})),d()},$t=()=>{f(O=>({...O,isPlaying:!1})),m()},Jt=()=>{f(O=>({...O,isPlaying:!1})),p()},Qt=()=>{let O=i.currentTime;f(Y=>({...Y,currentTime:O})),T(O)},Zt=()=>{let O=i.duration;f(Y=>({...Y,duration:O})),g(O)},en=()=>{let O=i.volume,Y=i.muted;f(rt=>{let yo={...rt,volume:O,isMuted:Y};return Y!==rt.isMuted&&(Y?v():S()),yo}),y(O)},tn=()=>{let O=i.playbackRate;f(Y=>({...Y,playbackRate:O})),w(O)},nn=()=>{let O=i.error,Y=O?`Audio error (${O.code}): ${O.message}`:"Unknown audio error occurred";f(rt=>({...rt,hasError:!0,error:Y,isLoading:!1,isBuffering:!1,isPlaying:!1})),h(Y)};return i.addEventListener("loadstart",C),i.addEventListener("loadedmetadata",K),i.addEventListener("canplay",nt),i.addEventListener("waiting",_t),i.addEventListener("play",Gt),i.addEventListener("pause",$t),i.addEventListener("ended",Jt),i.addEventListener("timeupdate",Qt),i.addEventListener("durationchange",Zt),i.addEventListener("volumechange",en),i.addEventListener("ratechange",tn),i.addEventListener("error",nn),()=>{i.removeEventListener("loadstart",C),i.removeEventListener("loadedmetadata",K),i.removeEventListener("canplay",nt),i.removeEventListener("waiting",_t),i.removeEventListener("play",Gt),i.removeEventListener("pause",$t),i.removeEventListener("ended",Jt),i.removeEventListener("timeupdate",Qt),i.removeEventListener("durationchange",Zt),i.removeEventListener("volumechange",en),i.removeEventListener("ratechange",tn),i.removeEventListener("error",nn)}},[i,D,L,E,k,d,m,p,T,g,y,w,h,v,S]);let zt=()=>{i&&i.play().catch(C=>{let K=C instanceof Error?C.message:"Failed to play audio";f(nt=>({...nt,hasError:!0,error:K,isPlaying:!1})),h(K)})},Bt=()=>{i&&i.pause()},bo=()=>{a.isPlaying?Bt():zt()},Yt=()=>{i&&(i.muted=!0)},qt=()=>{i&&(i.muted=!1)},ho=()=>{a.isMuted?qt():Yt()},go=C=>{if(!i)return;let K=Math.max(0,Math.min(1,C));i.volume=K},Xt=C=>{if(!i)return;let K=Math.max(0,Math.min(a.duration||0,C));i.currentTime=K},Eo=C=>{if(!i)return;let K=Math.max(.25,Math.min(4,C));i.playbackRate=K},It=C=>{Xt(a.currentTime+C)};return[Me,a,{play:zt,pause:Bt,togglePlay:bo,mute:Yt,unmute:qt,toggleMute:ho,setVolume:go,setCurrentTime:Xt,setPlaybackRate:Eo,seek:It,fastForward:(C=10)=>{It(C)},rewind:(C=10)=>{It(-C)},setLoop:C=>{i&&(i.loop=C,f(K=>({...K,loop:C})))}}]}var at=b("react");var mn=b("react");function $(e){(0,mn.useEffect)(()=>{typeof e=="function"&&e()},[])}var pn=b("react");var Mo={attributes:!0,characterData:!0,childList:!0,subtree:!0};function lt(e,t,n=Mo){(0,pn.useEffect)(()=>{if(e.current){let r=new MutationObserver(t);return r.observe(e.current,n),()=>{r.disconnect()}}return x},[t,n,e])}function ko(e){return e.getBoundingClientRect()}function vn(e){let[t,n]=(0,at.useState)(null),r=(0,at.useCallback)(()=>{n(e.current?ko(e.current):null)},[e]);return $(()=>{r()}),lt(e,r),t}var pe=b("react");var hn=b("react");function bn(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function ct(e,t){return(0,hn.useMemo)(()=>e===null&&t===null?null:n=>{bn(e,n),bn(t,n)},[e,t])}var Pe=b("react");var Co={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ft(e,t=Co){let[n,r]=(0,Pe.useState)(null);return(0,Pe.useEffect)(()=>{if(n){let s=new MutationObserver(e);return s.observe(n,t),()=>{s.disconnect()}}return x},[n,e,t]),[(0,Pe.useCallback)(s=>{r(s)},[])]}function Io(e){return e.getBoundingClientRect()}function gn(){let[e,t]=(0,pe.useState)(null),[n,r]=(0,pe.useState)(null),o=(0,pe.useCallback)(()=>{t(n?Io(n):null)},[n]);(0,pe.useEffect)(()=>{o()},[o]);let s=(0,pe.useCallback)(i=>{r(i)},[]),[u]=ft(o);return[ct(s,u),e,o]}var En=b("react");var $e=b("react");function dt(e,t=0,n=!0,r=!1){let o=(0,$e.useRef)(void 0);(0,$e.useEffect)(()=>{o.current=e}),(0,$e.useEffect)(()=>{if(n){let u=function(){o.current?.()};var s=u;r&&u();let l=window.setInterval(u,t);return()=>{window.clearInterval(l)}}return x},[n,t,r])}function yn(e,t={}){let{interval:n=1e3,onDown:r,onEnd:o}=t,[s,u]=(0,En.useState)(()=>new Date),l=e.getTime()-s.getTime(),i=l>0?Math.ceil(l/n):0;return dt(c,i?n:void 0,!0,!0),i;function c(){let a=new Date;if(a>e){o&&o(a),u(e);return}r&&r(l,a),u(a)}}var ve=b("react");function Sn(e){let[t,n]=(0,ve.useState)(e),r=(0,ve.useCallback)(i=>{n(c=>c+i)},[]),o=(0,ve.useCallback)(i=>{r(-i)},[r]),s=(0,ve.useCallback)(()=>{r(1)},[r]),u=(0,ve.useCallback)(()=>{r(-1)},[r]),l=(0,ve.useCallback)(()=>{n(e)},[e]);return{decrement:u,decrementBy:o,increment:s,incrementBy:r,reset:l,value:t}}var Dn=st(Rn()),mt=b("react");var xn=b("react");function be(e){(0,xn.useEffect)(()=>e,[])}function pt(e,t,n){let r=(0,mt.useCallback)(l=>(0,Dn.default)(l,t,n),[t,n]),o=q(e);function s(...l){o.current?.(...l)}let u=(0,mt.useRef)(r(s));return be(()=>{u.current?.cancel()}),u.current}var he=b("react");function On(e,t,n={leading:!1,trailing:!0}){let{leading:r,trailing:o,maxWait:s}=n;if(!r&&!o)throw new Error("leading and trailing cannot both be false");if(typeof s<"u"&&s<t)throw new Error("maxWait cannot be less than delay");let u=R(e),[l,i]=(0,he.useState)(!1),[c,a]=(0,he.useState)(0),f=(0,he.useRef)(0),d=(0,he.useRef)(void 0),m=(0,he.useCallback)((...v)=>{d.current=v;let S=typeof s<"u"&&f.current&&Date.now()-f.current>s;if(r){if(l&&S){a(L=>L+1),f.current=Date.now();try{u(...v)}catch(L){console.warn(L)}}else if(S&&!l){i(!0),f.current=Date.now();try{u(...v)}catch(L){console.warn(L)}}else if(!(l&&!S)){i(!0),f.current=Date.now();try{u(...v)}catch(L){console.warn(L)}}}o&&(l?a(L=>L+1):i(!0))},[s,l,r,o,u]);return ie(()=>{if(typeof s<"u"&&o){if(!d.current)return;f.current=Date.now();try{u(...d.current)}catch(v){console.warn(v)}}},s??1/0,l&&typeof s<"u"&&o,c),ie(()=>{if(o){if(!d.current)return;f.current=Date.now();try{u(...d.current)}catch(v){console.warn(v)}}i(!1)},t,l&&o,c),[R(m),l]}var Mn=b("react");var Ae=b("react");function ge(e,t){let n=(0,Ae.useRef)(!1),r=(0,Ae.useMemo)(()=>typeof t<"u"&&!Array.isArray(t)?[t]:(Array.isArray(t)&&t.length===0&&console.warn("Using [] as the second argument makes useDidUpdate a noop. The second argument should either be `undefined` or an array of length greater than 0."),t),[t]);(0,Ae.useEffect)(()=>{n.current&&e()},r),$(()=>{n.current=!0}),be(()=>{n.current=!1})}var $o={initializeWithNull:!1},kn=(e,t,n={})=>{let{initializeWithNull:r}=Object.assign({},$o,n),[o,s]=(0,Mn.useState)(r?null:e),u=pt(s,t);return $(()=>{r&&u(e)}),ge(()=>{u(e)},[e]),[o,s]};var bt=b("react"),Fn=st(In());var vt=()=>{};function Jo(e){let t=typeof e;return t==="string"||t==="number"||t==="bigint"||t==="boolean"||t==="undefined"||t==="symbol"}function Pn(e,t){let n=(0,bt.useRef)(t);if(!Array.isArray(t))throw new Error("useDeepCompareEffect should be used with an array of dependencies");let r=t.every(Jo);vt(!r,"useDeepCompareEffect should not be used with primitive values as dependencies"),(0,Fn.default)(n.current,t)||(n.current=t),(0,bt.useEffect)(e,n.current)}var ye=b("react");var An=b("react");function Ue(e){let t=q(e);function n(...r){typeof t.current=="function"&&t.current(...r)}return n}function Ee(e,t,n,r={},o=!0,s=!1){let u=Ue(n);(s?G:An.useEffect)(()=>(vt(typeof e<"u","[useGlobalObjectEventListener]: Cannot attach event handlers to undefined."),typeof e<"u"&&o?(e.addEventListener(t,u,r),()=>{e.removeEventListener(t,u,r)}):()=>{}),[t,r])}function Ve(e,t=!0,n=!1){Ee(global.window,"resize",e,{passive:!0},t,n)}function We(e,t=!0,n=!1){Ee(global.window,"scroll",e,{passive:!0},t,n)}var Qo=e=>{let t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left,right:t.right,top:t.top,width:t.width,x:t.left,y:t.top}},Zo=[void 0,null,null],Un=({updateOnScroll:e=!0,updateOnResize:t=!0}={})=>{let[n,r]=(0,ye.useState)(null),[o,s]=(0,ye.useState)(null),u=(0,ye.useCallback)(i=>{s(i)},[]),l=(0,ye.useCallback)(()=>{window.requestAnimationFrame(()=>{o&&r(Qo(o))})},[o]);return(0,ye.useLayoutEffect)(()=>{l()},[l]),Ve(()=>{l()},t,!0),We(()=>{l()},e,!0),typeof window>"u"?(console.warn("useDimensionsRef: window is undefined."),Zo):[u,n,o]};function Vn(e,t,n={},r=!1){Ee(global.document,e,t,n,!0,r)}var ht=b("react");function Wn(e,t={}){let n=typeof window<"u",r=(0,ht.useRef)(n?document.title:""),{resetOnUnmount:o=!1}=t;(0,ht.useEffect)(()=>{if(n){document.title=e;let s=r.current;if(o)return()=>{document.title=s}}return x},[e,n,o])}var Hn=b("react");function es(){return typeof document<"u"?document.visibilityState:null}function ts(e){return typeof document<"u"?(document.addEventListener("visibilitychange",e),()=>{document.removeEventListener("visibilitychange",e)}):()=>{}}function ns(){return null}function Nn(){return(0,Hn.useSyncExternalStore)(ts,es,ns)}var He=b("react");function Kn(e,t=!0){let n=(0,He.useRef)(!1),r=(0,He.useRef)(e);(0,He.useEffect)(()=>{r.current=e}),(0,He.useEffect)(()=>{t&&!n.current&&(r.current(),n.current=!0)},[t])}var jn=b("react");var gt=b("react");function Et(){let[e,t]=(0,gt.useState)(null);return[(0,gt.useCallback)(r=>{t(r)},[]),e]}function zn(e,t,n={},r=!1){let[o,s]=Et(),u=Ue(t);return(r?G:jn.useEffect)(()=>s?.addEventListener?(s.addEventListener(e,u,n),()=>{s.removeEventListener(e,u,n)}):x,[s,e,n]),o}var J=b("react");function Bn(e={},t={}){let{accept:n,maxFileSize:r,maxFiles:o}=e,{onDrop:s=x,onFileAccepted:u=x,onFileRejected:l=x,onDragEnter:i=x,onDragLeave:c=x}=t,[a,f]=(0,J.useState)(null),d=R(s),m=R(u),p=R(l),v=R(i),S=R(c);(0,J.useCallback)(y=>{f(y)},[]);let L=(0,J.useCallback)(y=>n&&!n.includes(y.type)?{valid:!1,reason:"File type not allowed"}:r&&y.size>r?{valid:!1,reason:"File size exceeds the limit"}:{valid:!0},[n,r]),T=(0,J.useCallback)(y=>{y.preventDefault();let w=Array.from(y.dataTransfer?.files||[]),h=[],D=[];if(o&&w.length>o)for(let E of w)p(E,"Exceeded maximum number of files");else w.forEach(E=>{let k=L(E);k.valid?(h.push(E),m(E)):(D.push(E),p(E,k.reason||"Unknown reason"))});d(h,D)},[L,m,p,o,d]),g=(0,J.useCallback)(y=>{y.preventDefault()},[]);return(0,J.useEffect)(()=>a?(a.addEventListener("drop",T),a.addEventListener("dragover",g),a.addEventListener("dragenter",v),a.addEventListener("dragleave",S),()=>{a.removeEventListener("drop",T),a.removeEventListener("dragover",g),a.removeEventListener("dragenter",v),a.removeEventListener("dragleave",S)}):()=>{},[a,T,g,v,S]),(0,J.useCallback)(y=>{f(y)},[])}var j=b("react"),Q={DOM_UNAVAILABLE_ERROR:"DOM is unavailable server-side. Please use this method client-side only.",FULLSCREEN_UNSUPPORTED_ERROR:"Your browser does not support Fullscreen API.",getEventsNames(){if(typeof document>"u")return null;let e=document;return"exitFullscreen"in e?["fullscreenchange","fullscreenerror"]:"webkitExitFullscreen"in e?["webkitfullscreenchange","webkitfullscreenerror"]:"webkitCancelFullScreen"in e?["webkitfullscreenchange","webkitfullscreenerror"]:"mozCancelFullScreen"in e?["mozfullscreenchange","mozfullscreenerror"]:"msExitFullscreen"in e?["MSFullscreenChange","MSFullscreenError"]:null},getEventName(e){let t=this.getEventsNames();return t?e==="change"?t[0]:t[1]:null},get fullscreenEnabled(){if(typeof document>"u")return!1;let e=document;return e.fullscreenEnabled||e.webkitFullscreenEnabled||!!e.webkitCancelFullScreen||e.mozFullScreenEnabled||e.msFullscreenEnabled||!1},get fullscreenElement(){if(typeof document>"u")return null;let e=document;return e.fullscreenElement||e.webkitFullscreenElement||e.webkitCurrentFullScreenElement||e.mozFullScreenElement||e.msFullscreenElement||null},requestFullscreen(e,t){if(typeof document>"u")throw new Error(this.DOM_UNAVAILABLE_ERROR);let n=e??document.documentElement,r=n.requestFullscreen||n.webkitRequestFullscreen||n.webkitRequestFullScreen||n.mozRequestFullScreen||n.msRequestFullscreen;if(!r)throw new Error(this.FULLSCREEN_UNSUPPORTED_ERROR);return r.call(n,t)},exitFullscreen(){if(typeof document>"u")throw new Error(this.DOM_UNAVAILABLE_ERROR);let e=document,t=e.exitFullscreen||e.webkitExitFullscreen||e.webkitCancelFullScreen||e.mozCancelFullScreen||e.msExitFullscreen;if(!t)throw new Error(this.FULLSCREEN_UNSUPPORTED_ERROR);return t.call(e)},on(e,t){let n=this.getEventName(e);n&&document.addEventListener(n,t)},off(e,t){let n=this.getEventName(e);n&&document.removeEventListener(n,t)}};function Yn(e={}){let{target:t,onChange:n,onError:r,requestFullScreenOptions:o}=e,[s,u]=(0,j.useState)(!1),[l,i]=(0,j.useState)(null),[c,a]=(0,j.useState)(!1),f=(0,j.useCallback)(()=>Q.requestFullscreen(t?.current||null,o),[t,o]),d=(0,j.useCallback)(()=>Q.exitFullscreen(),[]),m=(0,j.useCallback)(()=>Q.fullscreenElement?d():f(),[f,d]),p=(0,j.useCallback)(S=>{let L=Q.fullscreenElement;i(L),a(!!L),n?.(S)},[n]),v=(0,j.useCallback)(S=>{let L=Q.fullscreenElement;i(L),a(!!L),r?.(S)},[r]);return(0,j.useEffect)(()=>{u(Q.fullscreenEnabled)},[]),(0,j.useEffect)(()=>(Q.on("change",p),Q.on("error",v),()=>{Q.off("change",p),Q.off("error",v)}),[p,v]),{isFullscreenAvailable:s,fullscreenElement:l,isFullscreenEnabled:c,enableFullscreen:f,disableFullscreen:d,toggleFullscreen:m}}var At=b("react"),qn=e=>{let{onBlur:t,onFocus:n,onFocusChange:r}=e,o=(0,At.useCallback)(u=>{u.target===u.currentTarget&&(t&&t(u),r&&r(!1))},[t,r]);return{focusProps:{onFocus:(0,At.useCallback)(u=>{u.target===u.currentTarget&&(n&&n(u),r&&r(!0))},[r,n]),onBlur:o}}};var Je=b("react"),Xn=e=>{let{onBlurWithin:t,onFocusWithin:n,onFocusWithinChange:r}=e,o=(0,Je.useRef)({isFocusWithin:!1}),s=(0,Je.useCallback)(l=>{o.current.isFocusWithin&&!l.currentTarget.contains(l.relatedTarget)&&(o.current.isFocusWithin=!1,t&&t(l),r&&r(!1))},[t,r]);return{focusWithinProps:{onFocus:(0,Je.useCallback)(l=>{o.current.isFocusWithin||(n&&n(l),r&&r(!0),o.current.isFocusWithin=!0)},[n,r]),onBlur:s}}};var yt=b("react");function rs(e){return new Promise((t,n)=>{navigator.geolocation?navigator.geolocation.getCurrentPosition(r=>{let{coords:o}=r,{latitude:s,longitude:u}=o;t({isError:!1,lat:s,lng:u,message:""})},r=>{t({isError:!0,message:r&&typeof r=="object"&&"message"in r?r.message:"Geolocation error"})},e):t({isError:!0,message:"Geolocation is not supported for this Browser/OS."})})}var os={enableHighAccuracy:!1,maximumAge:0,timeout:Number.POSITIVE_INFINITY,when:!0},_n=(e=os)=>{let[t,n]=(0,yt.useState)(null),{when:r,enableHighAccuracy:o,timeout:s,maximumAge:u}=e,l=me();return(0,yt.useEffect)(()=>{async function i(){try{let c=await rs({enableHighAccuracy:o,maximumAge:u,timeout:s,when:r});l()&&n(c)}catch(c){l()&&n({isError:!0,message:c instanceof Error?c.message:String(c)})}}r&&i()},[r,o,s,u,l]),t};var W=b("react"),Ut=class{threshold;isIdle=!1;_userState="active";_screenState="unlocked";listeners=[];timeoutId=null;started=!1;constructor(t){this.threshold=Math.max(t,6e4)}handleUserActivity=()=>{this.isIdle&&(this.isIdle=!1,this._userState="active",this.notifyListeners()),this.resetIdleTimer()};handleVisibilityChange=()=>{this._screenState=document.hidden?"locked":"unlocked",this.notifyListeners()};resetIdleTimer(){this.timeoutId&&clearTimeout(this.timeoutId),this.timeoutId=window.setTimeout(()=>{this.isIdle=!0,this._userState="idle",this.notifyListeners()},this.threshold)}notifyListeners(){this.listeners.forEach(t=>t())}get userState(){return this._userState}get screenState(){return this._screenState}get isIdleState(){return this.isIdle}addEventListener(t,n){t==="change"&&this.listeners.push(n)}removeEventListener(t,n){if(t==="change"){let r=this.listeners.indexOf(n);r>-1&&this.listeners.splice(r,1)}}start(){if(this.started)return;this.started=!0,["mousemove","keydown","click","scroll","touchstart"].forEach(n=>{document.addEventListener(n,this.handleUserActivity,!0)}),document.addEventListener("visibilitychange",this.handleVisibilityChange),this.resetIdleTimer()}stop(){if(!this.started)return;this.started=!1,["mousemove","keydown","click","scroll","touchstart"].forEach(n=>{document.removeEventListener(n,this.handleUserActivity,!0)}),document.removeEventListener("visibilitychange",this.handleVisibilityChange),this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null),this.isIdle=!1,this._userState="active",this._screenState="unlocked"}};function Gn(e={}){let{threshold:t=6e4,autoStart:n=!1,requestPermission:r=!1,onIdleChange:o,onError:s}=e,[u,l]=(0,W.useState)(!1),[i,c]=(0,W.useState)("active"),[a,f]=(0,W.useState)("unlocked"),[d,m]=(0,W.useState)(!1),p=(0,W.useRef)(null),v=(0,W.useRef)(null),S=(0,W.useRef)(!1),L=typeof window<"u"&&"IdleDetector"in window,T=Math.max(t,6e4),g=(0,W.useCallback)(()=>{let h=p.current,D=v.current,E=!1,k="active",Me="unlocked";h&&h.userState&&h.screenState?(E=h.userState==="idle",k=h.userState,Me=h.screenState):D&&(E=D.isIdleState,k=D.userState,Me=D.screenState),l(E),c(k),f(Me),o?.({isIdle:E,userState:k,screenState:Me})},[o]),y=(0,W.useCallback)(async()=>{if(!S.current){S.current=!0;try{if(L&&window.IdleDetector){let h=new window.IdleDetector;if(p.current=h,r){let D=await window.IdleDetector.requestPermission();if(m(D==="granted"),D==="denied"){s?.(new Error("Permission denied"));return}}else m(!0);h.addEventListener("change",g),await h.start({threshold:T})}else{let h=new Ut(T);v.current=h,h.addEventListener("change",g),h.start(),m(!0)}}catch(h){s?.(h instanceof Error?h:new Error("Failed to start idle detection"))}}},[L,r,T,g,s]),w=(0,W.useCallback)(()=>{S.current&&(S.current=!1,p.current&&(p.current.removeEventListener("change",g),p.current=null),v.current&&(v.current.removeEventListener("change",g),v.current.stop(),v.current=null),l(!1),c("active"),f("unlocked"))},[g]);return(0,W.useEffect)(()=>{n&&!S.current&&y()},[n,y]),(0,W.useEffect)(()=>()=>{w()},[w]),{isIdle:u,userState:i,screenState:a,isSupported:L,isPermissionGranted:d,start:y,stop:w}}var Ne=b("react"),ss={};function $n(e="",t=ss){let[n,r]=(0,Ne.useState)(e),o=(0,Ne.useCallback)(u=>{let l=u.target.value,i=!0;typeof t.validate=="function"&&(i=t.validate(l,n)),i&&r(l)},[t,n]);return(0,Ne.useEffect)(()=>{r(e)},[e]),{onChange:o,value:n}}var Z=b("react");var is={root:null,rootMargin:"0px 0px 0px 0px",threshold:[0,1]};function Jn(e,t=is){let{root:n=null,rootMargin:r,threshold:o}=t,[s,u]=(0,Z.useState)(null),l=(0,Z.useRef)(e);(0,Z.useEffect)(()=>{l.current=e});let i=(0,Z.useCallback)((...a)=>l.current?.(...a),[]);return(0,Z.useEffect)(()=>{if(s){let a=new IntersectionObserver(i,{root:n,rootMargin:r,threshold:o});return a.observe(s),()=>{a.disconnect()}}return x},[s,i,n,r,o]),[(0,Z.useCallback)(a=>{u(a)},[])]}var Le=b("react");var us={root:null,rootMargin:"0px 0px 0px 0px",threshold:[0,1]};function Qn(e,t){let n=typeof e=="function"?e:x,r=typeof e=="object"?e:t||us,{root:o=null,rootMargin:s,threshold:u}=r,[l,i]=(0,Le.useState)(null),[c,a]=(0,Le.useState)(!1);return(0,Le.useEffect)(()=>{if(l){let d=new IntersectionObserver((m,p)=>{for(let{isIntersecting:v}of m)a(v);n(m,p)},r);return d.observe(l),()=>{d.disconnect()}}return x},[l,n,o,s,u,r]),[(0,Le.useCallback)(d=>{i(d)},[]),c]}var X=b("react");function Zn(e=!1){let[t,n]=(0,X.useState)(null),r=(0,X.useCallback)(p=>{n(p)},[]),[o,s]=(0,X.useState)(!1),u=(0,X.useCallback)(p=>{p.preventDefault(),p.dataTransfer?.types.includes("Files")?o||s(!0):s(!1)},[o]),l=(0,X.useCallback)(p=>{p.preventDefault(),p.dataTransfer?.types.includes("Files")?o||s(!0):s(!1)},[o]),i=(0,X.useCallback)(p=>{p.preventDefault(),s(!1)},[]),c=(0,X.useCallback)(p=>{p.preventDefault(),s(!1)},[]),a=R(u),f=R(l),d=R(i),m=R(c);return(0,X.useEffect)(()=>{let p=e?window:t;return p&&(p.addEventListener("dragenter",a),p.addEventListener("dragover",f),p.addEventListener("dragleave",d),p.addEventListener("drop",m)),()=>{p&&(p.removeEventListener("dragenter",a),p.removeEventListener("dragover",f),p.removeEventListener("dragleave",d),p.removeEventListener("drop",m))}},[a,d,f,m,o,e,t]),e?o:[r,o]}var ee=b("react");var Re=(e,t)=>e.key===t||e.code===t||e.keyCode===t||e.which===t||e.charCode===t;var ls={eventTypes:["keydown"],when:!0};function St(e,t,n){let r=(0,ee.useMemo)(()=>Array.isArray(e)?e:[e],[e]),o=(0,ee.useMemo)(()=>({...ls,...n}),[n]),{when:s,eventTypes:u}=o,l=(0,ee.useRef)(t),{target:i}=o;(0,ee.useEffect)(()=>{l.current=t});let c=(0,ee.useCallback)(a=>{r.some(f=>Re(a,f))&&l.current(a)},[r]);(0,ee.useEffect)(()=>{if(s&&typeof window<"u")if(i){let a=i.current;if(a){for(let f of u)a.addEventListener(f,c);return()=>{for(let f of u)a.removeEventListener(f,c)}}}else{for(let a of u)window.addEventListener(a,c);return()=>{for(let a of u)window.removeEventListener(a,c)}}return x},[s,u,r,i,t,c])}var er=(e,t)=>{for(let n in e){let r=e[n];r&&St(n,r,t)}};var z=b("react");var as={eventTypes:["keydown"],when:!0};function tr(e,t,n){let[r,o]=(0,z.useState)(null),s=(0,z.useCallback)(d=>{o(d)},[]),u=(0,z.useMemo)(()=>Array.isArray(e)?e:[e],[e]),l=(0,z.useMemo)(()=>({...as,...n}),[n]),{when:i,eventTypes:c}=l,a=(0,z.useRef)(t);(0,z.useEffect)(()=>{a.current=t});let f=(0,z.useCallback)(d=>{u.some(m=>Re(d,m))&&a.current(d)},[u]);return(0,z.useEffect)(()=>{if(i&&r){for(let d of c)r.addEventListener(d,f);return()=>{for(let d of c)r.removeEventListener(d,f)}}return x},[r,i,c,u,f]),s}var te=b("react");var cs={continuous:!1,when:!0};function nr(e,t,n){let r={...cs,...n},{target:o,when:s,continuous:u,preventLostKeyup:l}=r,i=(0,te.useRef)(t),a=(0,te.useRef)({}).current;(0,te.useEffect)(()=>{i.current=t});let f=(0,te.useCallback)(m=>{let p=null,v=!1;for(let S of e)Re(m,S)&&(a[S]=!0,p=S);e.every(S=>!!a[S])&&(v=!0),v&&(i.current(m),!u&&p!==null&&(a[p]=!1))},[e,a,u]),d=(0,te.useCallback)(m=>{for(let p of e)Re(m,p)&&(a[p]=void 0)},[a,e]);(0,te.useEffect)(()=>{if(s&&typeof window<"u"){let m=o?.current?o.current:document;return m.addEventListener("keydown",f),m.addEventListener("keyup",d),()=>{m.removeEventListener("keydown",f),m.removeEventListener("keyup",d)}}return x},[s,o,e,f,d]),(0,te.useEffect)(()=>{if(l!==!0)return x;if(typeof window<"u"){let m=window.alert;window.alert=S=>{for(let L of e)a[L]=void 0;return m(S)};let p=window.confirm;window.confirm=S=>{for(let L of e)a[L]=void 0;return p(S)};let v=window.prompt;return window.prompt=(S,L)=>{for(let T of e)a[T]=void 0;return v(S,L)},()=>{window.alert=m,window.confirm=p,window.prompt=v}}return x},[a,e,l])}var rr=(e="Component",...t)=>{$(()=>(console.log(`${e} mounted`,...t),()=>console.log(`${e} unmounted`))),ge(()=>{console.log(`${e} updated`,...t)}),be(()=>{console.log(`${e} unmounted`)})};var or=b("react");function sr(e){(0,or.useEffect)(()=>{if(e){let t=window.getComputedStyle(document.body).overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=t}}else return x},[e])}var F=b("react");function fs(e){if(typeof localStorage>"u")return null;let t=localStorage.getItem(e)??"null";try{return JSON.parse(t)}catch(n){console.error(n)}return t}function ds(e,t){return typeof localStorage>"u"?null:t===void 0?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(t))}function ms(e,t){let n=fs(e);return n===null?typeof t=="function"?t():t:n}function ir(e,t){let[n,r]=(0,F.useState)(()=>ms(e,t)),o=(0,F.useRef)(!1),s=(0,F.useRef)(!1),u=(0,F.useMemo)(()=>`rooks-${e}-localstorage-update`,[e]);(0,F.useEffect)(()=>{(!o.current||!s.current)&&ds(e,n)},[e,n]);let l=(0,F.useCallback)(m=>{if(m.storageArea===localStorage&&m.key===e)try{o.current=!0;let p=JSON.parse(m.newValue??"null");n!==p&&r(p)}catch(p){console.log(p)}},[e,n]);(0,F.useEffect)(()=>typeof window<"u"?(window.addEventListener("storage",l),()=>{window.removeEventListener("storage",l)}):(console.warn("useLocalstorageState: window is undefined."),()=>{}),[l]);let i=(0,F.useCallback)(m=>{try{s.current=!0;let{newValue:p}=m.detail;n!==p&&r(p)}catch(p){console.log(p)}},[n]);(0,F.useEffect)(()=>typeof document<"u"?(document.addEventListener(u,i),()=>{document.removeEventListener(u,i)}):(console.warn("[useLocalstorageState] document is undefined."),()=>{}),[u,i]);let c=(0,F.useCallback)(m=>{if(typeof document<"u"){let p=new CustomEvent(u,{detail:{newValue:m}});document.dispatchEvent(p)}else console.warn("[useLocalstorageState] document is undefined.")},[u]),a=q(n,!0),f=(0,F.useCallback)(m=>{let p=typeof m=="function"?m(a.current):m;o.current=!1,s.current=!1,r(p),c(p)},[c,a]),d=(0,F.useCallback)(()=>{localStorage.removeItem(e)},[e]);return[n,f,d]}var B=b("react");function ur(e){let[t,n]=(0,B.useState)(e||new Map),r=(0,B.useCallback)((p,v)=>{n(S=>new Map(S.set(p,v)))},[]),o=(0,B.useCallback)(p=>{n(v=>{let S=new Map(v);return p.forEach(([L,T])=>{S.set(L,T)}),S})},[]),s=(0,B.useCallback)(p=>{n(v=>{let S=new Map(v);return S.delete(p),S})},[]),u=(0,B.useCallback)(p=>{n(v=>{let S=new Map(v);return p.forEach(L=>{S.delete(L)}),S})},[]),l=(0,B.useCallback)(()=>{n(new Map)},[]),i=(0,B.useCallback)(p=>t.has(p),[t]),c=(0,B.useCallback)(p=>p.some(v=>t.has(v)),[t]),a=(0,B.useCallback)(p=>p.every(v=>t.has(v)),[t]),f=(0,B.useCallback)(p=>t.get(p),[t]),d=(0,B.useCallback)(()=>t.size,[t]);return[t,{set:r,remove:s,clear:l,has:i,get:f,size:d,setMultiple:o,removeMultiple:u,hasSome:c,hasEvery:a}]}var Ke=b("react");function lr(e){let t=(0,Ke.useMemo)(()=>window.matchMedia(e),[e]),[n,r]=(0,Ke.useState)(()=>t.matches);return(0,Ke.useEffect)(()=>{r(t.matches);let o=s=>r(s.matches);return t.addEventListener?(t.addEventListener("change",o),()=>t.removeEventListener("change",o)):(t.addListener(o),()=>t.removeListener(o))},[t]),typeof window>"u"?(console.warn("useMediaMatch cannot function as window is undefined."),!1):n}var ar=b("react");function ps(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function cr(...e){return(0,ar.useMemo)(()=>e.every(t=>t===null)?null:t=>{for(let n of e)ps(n,t)},[e])}var Tt=b("react"),vs={clientX:null,clientY:null,movementX:null,movementY:null,offsetX:null,offsetY:null,pageX:null,pageY:null,screenX:null,screenY:null,x:null,y:null};function bs(e){let{screenX:t,screenY:n,movementX:r,movementY:o,pageX:s,pageY:u,clientX:l,clientY:i,offsetX:c,offsetY:a}=e;return{clientX:l,clientY:i,movementX:r,movementY:o,offsetX:c,offsetY:a,pageX:s,pageY:u,screenX:t,screenY:n,x:t,y:n}}function fr(){let[e,t]=(0,Tt.useState)(vs);function n(r){t(bs(r))}return(0,Tt.useEffect)(()=>(document.addEventListener("mousemove",n),()=>{document.removeEventListener("mousemove",n)}),[]),e}var ne=b("react");var hs={deltaX:0,deltaY:0,clientX:null,clientY:null,velocityX:0,velocityY:0,timeStamp:Date.now()};function dr(){let[e,t]=(0,ne.useState)(()=>({...hs,timeStamp:Date.now()})),n=(0,ne.useRef)(null),r=(0,ne.useCallback)(s=>{let u=s.timeStamp,l=n.current;if(l&&l.clientX!==null&&l.clientY!==null){let i=s.clientX-l.clientX,c=s.clientY-l.clientY,a=u-l.timeStamp,f=a===0?0:i/a,d=a===0?0:c/a;n.current=e,t({deltaX:i,clientX:s.clientX,clientY:s.clientY,deltaY:c,velocityX:f,velocityY:d,timeStamp:u})}else n.current={...e,clientX:s.clientX,clientY:s.clientY,timeStamp:s.timeStamp},t({clientX:s.clientX,clientY:s.clientY,deltaX:0,deltaY:0,velocityX:0,velocityY:0,timeStamp:s.timeStamp})},[e]),o=R(r);return(0,ne.useEffect)(()=>(document.addEventListener("mousemove",o,{passive:!0}),()=>{document.removeEventListener("mousemove",o)}),[o]),(0,ne.useMemo)(()=>{let{deltaX:s,deltaY:u,velocityX:l,velocityY:i}=e;return{deltaX:s,deltaY:u,velocityX:l,velocityY:i}},[e])}var re=b("react");var gs={delta:0,velocity:0,timeStamp:Date.now()};function mr(){let[e,t]=(0,re.useState)(()=>({...gs,timeStamp:Date.now()})),n=(0,re.useRef)(null),r=(0,re.useCallback)(s=>{let u=s.timeStamp,l=n.current;if(l){let i=s.deltaY,c=u-l.timeStamp;console.log(c);let a=c===0?0:i/c;console.log("delta",i),console.log("timedelta",c),console.log("velocity",a),n.current=e,t({delta:i,velocity:a,timeStamp:u})}else n.current={velocity:0,delta:0,timeStamp:s.timeStamp},t({delta:s.deltaY,velocity:0,timeStamp:s.timeStamp})},[e]),o=R(r);return(0,re.useEffect)(()=>(document.addEventListener("wheel",o),()=>{document.removeEventListener("wheel",o)}),[o]),console.log(e),(0,re.useMemo)(()=>{let{delta:s,velocity:u}=e;return{delta:s,velocity:u}},[e])}var je=b("react");function Vt(e,t){Object.values(t).every(n=>typeof n<"u")?console.warn(`${e}. Expected either ${Object.keys(t).join(" or ")} to be provided. However all were provided`):Object.values(t).every(n=>typeof n>"u")&&console.warn(`${e}. ${Object.keys(t).join(" , ")} are all undefined.`)}function pr(e=[],t=[0],n=!1){let[r,o]=(0,je.useState)(t),s=r.map(d=>e[d]).filter(d=>d!==void 0),u=[r,s],l=({indices:d,values:m})=>()=>{if(Vt("updateSelections",{indices:d,values:m}),typeof d<"u"){if(!n&&d.length===0){console.warn("updateSelections failed. indices is an empty list.");return}o(d)}else if(typeof m<"u"){let p=e.reduce((v,S,L)=>m.includes(S)?[...v,L]:v,[]);p.length>0||n?o(p):console.warn("updateSelections failed. Do the values exist in the list?")}},i=(0,je.useCallback)(d=>{let m;if(!r.includes(d))m=[...r,d];else{m=[...r];let p=r.indexOf(d);p!==-1&&m.splice(p,1)}m.length>0||n?o(m):console.warn("toggleSelection failed. Do the values exist in the list?")},[n,r]),c=(0,je.useCallback)(({index:d,value:m})=>()=>{if(Vt("toggleSelection",{index:d,value:m}),typeof d<"u")i(d);else if(typeof m<"u"){let p=e.indexOf(m);p>-1&&i(p)}},[e,i]),f={matchSelection:(0,je.useCallback)(({index:d,value:m})=>(Vt("matchSelection",{index:d,value:m}),typeof d<"u"?r.includes(d):typeof m<"u"?s.includes(m):!1),[r,s]),toggleSelection:c,updateSelections:l};return[u,f]}var vr=b("react");function Es(){return typeof navigator<"u"?navigator.language:null}function ys(e){return typeof window<"u"?(window.addEventListener("languagechange",e),()=>{window.removeEventListener("languagechange",e)}):()=>{}}function Ss(){return null}function br(){return(0,vr.useSyncExternalStore)(ys,Es,Ss)}var xe=b("react");function hr(e){let[t,n]=(0,xe.useState)(null),r=(0,xe.useCallback)(u=>{u.preventDefault(),e()},[e]),o=R(r);return(0,xe.useEffect)(()=>t?(t.addEventListener("click",o),t.addEventListener("touchend",o),()=>{t.removeEventListener("click",o),t.removeEventListener("touchend",o)}):x,[t,o]),(0,xe.useCallback)(u=>{u&&n(u)},[])}var De=b("react");function gr(e,t){let[n,r]=(0,De.useState)(null),o=(0,De.useCallback)(c=>{e?.(c)},[e]),s=(0,De.useCallback)(c=>{t?.(c)},[t]),u=R(o),l=R(s);return(0,De.useEffect)(()=>n?(n.addEventListener("mouseenter",u),n.addEventListener("mouseleave",l),()=>{n.removeEventListener("mouseenter",u),n.removeEventListener("mouseleave",l)}):x,[u,l,n]),c=>{r(c)}}var wr=st(Tr());function Cs(){return typeof window>"u"?null:navigator.onLine}function Is(e){return typeof window<"u"?(window.addEventListener("online",e),window.addEventListener("offline",e),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",e)}):(console.warn("useOnline: window is undefined."),x)}function Lr(){return(0,wr.useSyncExternalStore)(Is,Cs)}var wt=b("react"),Rr=()=>{let[e,t]=(0,wt.useState)(typeof window<"u"?window.screen.orientation:null);return(0,wt.useEffect)(()=>{let n=()=>{t(window.screen.orientation)};return window.screen.orientation.addEventListener("change",n),()=>{window.screen.orientation.removeEventListener("change",n)}},[]),e};var H=b("react");function xr(e){let[t,n]=(0,H.useState)(!1),[r,o]=(0,H.useState)(null),[s,u]=(0,H.useState)(null),l=(0,H.useCallback)(()=>!(!e.current||!document.pictureInPictureEnabled||!e.current.requestPictureInPicture||e.current.disablePictureInPicture),[e]),i=(0,H.useCallback)(()=>document.pictureInPictureElement===e.current,[e]),c=(0,H.useCallback)(()=>{n(i())},[i]),a=(0,H.useCallback)(async()=>{if(!(!l()||!e.current))try{o(null),await e.current.requestPictureInPicture()}catch(v){o(v instanceof Error?v:new Error(String(v)))}},[l,e]),f=(0,H.useCallback)(async()=>{if(document.pictureInPictureElement)try{o(null),await document.exitPictureInPicture()}catch(v){o(v instanceof Error?v:new Error(String(v)))}},[]),d=(0,H.useCallback)(async()=>{i()?await f():await a()},[i,f,a]),m=(0,H.useCallback)(v=>{u(v.pictureInPictureWindow),n(!0)},[]),p=(0,H.useCallback)(()=>{u(null),n(!1)},[]);return(0,H.useEffect)(()=>{let v=e.current;if(v)return v.addEventListener("enterpictureinpicture",m),v.addEventListener("leavepictureinpicture",p),c(),()=>{v.removeEventListener("enterpictureinpicture",m),v.removeEventListener("leavepictureinpicture",p)}},[e.current,m,p,c]),{isPiPActive:t,isSupported:l(),error:r,pipWindow:s,enterPiP:a,exitPiP:f,toggle:d}}var Oe=b("react");function Dr(e,t,n=!0){let r=(0,Oe.useRef)(t),o=(0,Oe.useCallback)(s=>{e.current&&!e.current.contains(s.target)&&r.current(s)},[e]);(0,Oe.useEffect)(()=>{r.current=t}),(0,Oe.useEffect)(()=>n?(document.addEventListener("click",o,!0),document.addEventListener("touchstart",o,!0),()=>{document.removeEventListener("click",o,!0),document.removeEventListener("touchstart",o,!0)}):x,[e,t,n,o])}var oe=b("react");function Or(e,t=!0){let[n,r]=(0,oe.useState)(null),o=(0,oe.useRef)(e),s=(0,oe.useCallback)(l=>{n&&!n.contains(l.target)&&o.current(l)},[n]);(0,oe.useEffect)(()=>{o.current=e});let u=(0,oe.useCallback)(l=>{r(l)},[]);return(0,oe.useEffect)(()=>t?(document.addEventListener("click",s,!0),document.addEventListener("touchstart",s,!0),()=>{document.removeEventListener("click",s,!0),document.removeEventListener("touchstart",s,!0)}):x,[t,s]),[u]}var Qe=b("react");function Mr(e){let t=(0,Qe.useRef)(null),n=(0,Qe.useRef)(null);return(0,Qe.useEffect)(()=>{n.current=t.current,t.current=e},[e]),e===t.current?n.current:t.current}var Lt=b("react");function kr(e){let t=(0,Lt.useRef)(null);return(0,Lt.useEffect)(()=>{t.current=e}),t.current}var Rt=b("react");function Cr(e,t=[]){let[n,r]=(0,Rt.useState)({data:null,loading:!0,error:null}),o=R(e);return(0,Rt.useEffect)(()=>{let s=!0;async function u(){try{let l=await o();s&&r({data:l,loading:!1,error:null})}catch(l){s&&r({data:null,loading:!1,error:l instanceof Error?l:new Error(String(l))})}}return u(),()=>{s=!1}},[o,...t]),n}var Be=b("react");function Ir(e){let[t,n]=(0,Be.useState)([...e]),r=(0,Be.useCallback)(l=>{let i=[...t,l];return n(i),i.length},[t]),o=(0,Be.useCallback)(()=>{if(t.length>0){let l=t[0];return n([...t.slice(1)]),l}},[t]),s=(0,Be.useCallback)(()=>{if(t.length>0)return t[0]},[t]),u={dequeue:o,enqueue:r,length:t.length,peek:s};return[t,u]}var Nt=st(Ur()),tt=b("react");function Vr(e,t){let n=(0,tt.useRef)(null);(0,tt.useEffect)(()=>{n.current=e},[e]),(0,tt.useEffect)(()=>{let r,o=Date.now();function s(){let l=Date.now()-o;o=Date.now(),u(),n.current?.(l)}function u(){r=(0,Nt.default)(s)}return t?(o=Date.now(),u(),()=>{r&&Nt.default.cancel(r)}):x},[t])}var se=b("react"),Ps={box:"content-box"};function Wr(e,t=Ps){let{box:n}=t,[r,o]=(0,se.useState)(null),s=(0,se.useRef)(e);(0,se.useEffect)(()=>{s.current=e});let u=(0,se.useCallback)((...i)=>{s.current?.(...i)},[]);return(0,se.useEffect)(()=>{if(r){let i=new ResizeObserver(u);return i.observe(r,{box:n}),()=>{i.disconnect()}}return x},[r,u,n]),[(0,se.useCallback)(i=>{o(i)},[])]}var Hr=b("react");function Nr(){return++(0,Hr.useRef)(0).current}var Mt=b("react");function Kr(e){let[t,n]=(0,Mt.useState)(e),r=me(),o=(0,Mt.useCallback)(s=>{r()&&n(s)},[r]);return[t,o]}var M=b("react");function jr(e={}){let{requestOnMount:t=!1,autoRefresh:n=!0}=e,[r,o]=(0,M.useState)([]),[s,u]=(0,M.useState)(null),[l,i]=(0,M.useState)(!1),[c,a]=(0,M.useState)(!1),[f,d]=(0,M.useState)(null),m=(0,M.useRef)(null),p=(0,M.useRef)(null),v=(0,M.useMemo)(()=>typeof window<"u"&&typeof window.getScreenDetails=="function",[]),S=(0,M.useMemo)(()=>r.find(E=>E.isPrimary)||null,[r]),L=(0,M.useMemo)(()=>r.filter(E=>!E.isPrimary),[r]),T=(0,M.useCallback)(async()=>{if(v){i(!0),d(null);try{let E=await window.getScreenDetails();m.current=E,o(E.screens),u(E.currentScreen),a(!0)}catch(E){let k=E instanceof Error?E.message:String(E);d(k),a(!1)}finally{i(!1)}}},[v]),g=(0,M.useCallback)(async()=>{if(!v){d("Screen Details API is not supported");return}i(!0),d(null);try{let E=await navigator.permissions.query({name:"window-management"});if(p.current=E,E.state==="denied"){d("Permission denied for window-management"),a(!1),i(!1);return}await T()}catch(E){let k=E instanceof Error?E.message:String(E);d(k),a(!1),i(!1)}},[v,T]),y=(0,M.useCallback)(async()=>{if(c)try{await T()}catch(E){let k=E instanceof Error?E.message:String(E);d(k)}},[c,T]),w=(0,M.useCallback)(()=>{n&&y()},[n,y]),h=(0,M.useCallback)(()=>{n&&y()},[n,y]),D=(0,M.useCallback)(()=>{if(p.current){let E=p.current.state;E==="denied"?(a(!1),o([]),u(null),d("Permission denied for window-management")):E==="granted"&&(a(!0),d(null),n&&y())}},[n,y]);return(0,M.useEffect)(()=>{if(!m.current)return;let E=m.current;return E.addEventListener("screenschange",w),E.addEventListener("currentscreenchange",h),()=>{E.removeEventListener("screenschange",w),E.removeEventListener("currentscreenchange",h)}},[w,h]),(0,M.useEffect)(()=>{if(!p.current)return;let E=p.current;return E.addEventListener("change",D),()=>{E.removeEventListener("change",D)}},[D]),(0,M.useEffect)(()=>{t&&v&&g()},[t,v,g]),{screens:r,currentScreen:s,primaryScreen:S,externalScreens:L,isSupported:v,isLoadi