rooks
Version:
Essential React custom hooks ⚓ to super charge your components!
12 lines • 52.3 kB
JavaScript
/*
* Rooks v8.0.1
* 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 jo=Object.create;var Ge=Object.defineProperty;var zo=Object.getOwnPropertyDescriptor;var Yo=Object.getOwnPropertyNames;var Bo=Object.getPrototypeOf,Xo=Object.prototype.hasOwnProperty;var v=(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 he=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Go=(e,t)=>{for(var n in t)Ge(e,n,{get:t[n],enumerable:!0})},Vt=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Yo(t))!Xo.call(e,r)&&r!==n&&Ge(e,r,{get:()=>t[r],enumerable:!(o=zo(t,r))||o.enumerable});return e};var _e=(e,t,n)=>(n=e!=null?jo(Bo(e)):{},Vt(t||!e||!e.__esModule?Ge(n,"default",{value:e,enumerable:!0}):n,e)),_o=e=>Vt(Ge({},"__esModule",{value:!0}),e);var tn=he((Gs,en)=>{var er="Expected a function",Qt=NaN,tr="[object Symbol]",nr=/^\s+|\s+$/g,or=/^[-+]0x[0-9a-f]+$/i,rr=/^0b[01]+$/i,sr=/^0o[0-7]+$/i,ur=parseInt,ir=typeof global=="object"&&global&&global.Object===Object&&global,lr=typeof self=="object"&&self&&self.Object===Object&&self,ar=ir||lr||Function("return this")(),cr=Object.prototype,fr=cr.toString,dr=Math.max,mr=Math.min,wt=function(){return ar.Date.now()};function pr(e,t,n){var o,r,s,u,i,l,a=0,c=!1,d=!1,f=!0;if(typeof e!="function")throw new TypeError(er);t=Zt(t)||0,Rt(n)&&(c=!!n.leading,d="maxWait"in n,s=d?dr(Zt(n.maxWait)||0,t):s,f="trailing"in n?!!n.trailing:f);function m(T){var O=o,L=r;return o=r=void 0,a=T,u=e.apply(L,O),u}function p(T){return a=T,i=setTimeout(y,t),c?m(T):u}function b(T){var O=T-l,L=T-a,A=t-O;return d?mr(A,s-L):A}function E(T){var O=T-l,L=T-a;return l===void 0||O>=t||O<0||d&&L>=s}function y(){var T=wt();if(E(T))return x(T);i=setTimeout(y,b(T))}function x(T){return i=void 0,f&&o?m(T):(o=r=void 0,u)}function h(){i!==void 0&&clearTimeout(i),a=0,o=l=r=i=void 0}function S(){return i===void 0?u:x(wt())}function R(){var T=wt(),O=E(T);if(o=arguments,r=this,l=T,O){if(i===void 0)return p(l);if(d)return i=setTimeout(y,t),m(l)}return i===void 0&&(i=setTimeout(y,t)),u}return R.cancel=h,R.flush=S,R}function Rt(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function vr(e){return!!e&&typeof e=="object"}function br(e){return typeof e=="symbol"||vr(e)&&fr.call(e)==tr}function Zt(e){if(typeof e=="number")return e;if(br(e))return Qt;if(Rt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Rt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(nr,"");var n=rr.test(e);return n||sr.test(e)?ur(e.slice(2),n?2:8):or.test(e)?Qt:+e}en.exports=pr});var an=he((lu,ln)=>{"use strict";ln.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 o,r,s;if(Array.isArray(t)){if(o=t.length,o!=n.length)return!1;for(r=o;r--!==0;)if(!e(t[r],n[r]))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),o=s.length,o!==Object.keys(n).length)return!1;for(r=o;r--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[r]))return!1;for(r=o;r--!==0;){var u=s[r];if(!e(t[u],n[u]))return!1}return!0}return t!==t&&n!==n}});var $n=he(qn=>{"use strict";var Ie=v("react");function Pr(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Wr=typeof Object.is=="function"?Object.is:Pr,Nr=Ie.useState,Hr=Ie.useEffect,Kr=Ie.useLayoutEffect,jr=Ie.useDebugValue;function zr(e,t){var n=t(),o=Nr({inst:{value:n,getSnapshot:t}}),r=o[0].inst,s=o[1];return Kr(function(){r.value=n,r.getSnapshot=t,Ot(r)&&s({inst:r})},[e,n,t]),Hr(function(){return Ot(r)&&s({inst:r}),e(function(){Ot(r)&&s({inst:r})})},[e]),jr(n),n}function Ot(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Wr(e,n)}catch{return!0}}function Yr(e,t){return t()}var Br=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Yr:zr;qn.useSyncExternalStore=Ie.useSyncExternalStore!==void 0?Ie.useSyncExternalStore:Br});var Qn=he((Yi,Jn)=>{"use strict";Jn.exports=$n()});var ao=he((lo,Ye)=>{(function(){var e,t,n,o,r,s;typeof performance<"u"&&performance!==null&&performance.now?Ye.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(Ye.exports=function(){return(e()-r)/1e6},t=process.hrtime,e=function(){var u;return u=t(),u[0]*1e9+u[1]},o=e(),s=process.uptime()*1e9,r=o-s):Date.now?(Ye.exports=function(){return Date.now()-n},n=Date.now()):(Ye.exports=function(){return new Date().getTime()-n},n=new Date().getTime())}).call(lo)});var fo=he((rl,yt)=>{var _r=ao(),ne=typeof window>"u"?global:window,Et=["moz","webkit"],Ae="AnimationFrame",Pe=ne["request"+Ae],Be=ne["cancel"+Ae]||ne["cancelRequest"+Ae];for(Ue=0;!Pe&&Ue<Et.length;Ue++)Pe=ne[Et[Ue]+"Request"+Ae],Be=ne[Et[Ue]+"Cancel"+Ae]||ne[Et[Ue]+"CancelRequest"+Ae];var Ue;(!Pe||!Be)&&(gt=0,Mt=0,me=[],co=1e3/60,Pe=function(e){if(me.length===0){var t=_r(),n=Math.max(0,co-(t-gt));gt=n+t,setTimeout(function(){var o=me.slice(0);me.length=0;for(var r=0;r<o.length;r++)if(!o[r].cancelled)try{o[r].callback(gt)}catch(s){setTimeout(function(){throw s},0)}},Math.round(n))}return me.push({handle:++Mt,callback:e,cancelled:!1}),Mt},Be=function(e){for(var t=0;t<me.length;t++)me[t].handle===e&&(me[t].cancelled=!0)});var gt,Mt,me,co;yt.exports=function(e){return Pe.call(ne,e)};yt.exports.cancel=function(){Be.apply(ne,arguments)};yt.exports.polyfill=function(e){e||(e=ne),e.requestAnimationFrame=Pe,e.cancelAnimationFrame=Be}});var rs={};Go(rs,{useArrayState:()=>Ht,useAsyncEffect:()=>Kt,useAudio:()=>jt,useBoundingclientrect:()=>Bt,useBoundingclientrectRef:()=>_t,useCountdown:()=>$t,useCounter:()=>Jt,useDebounce:()=>ot,useDebounceFn:()=>rn,useDebouncedValue:()=>un,useDeepCompareEffect:()=>fn,useDidMount:()=>K,useDidUpdate:()=>fe,useDimensionsRef:()=>mn,useDocumentEventListener:()=>pn,useDocumentTitle:()=>vn,useDocumentVisibilityState:()=>bn,useEffectOnceWhen:()=>En,useEventListenerRef:()=>yn,useFileDropRef:()=>Tn,useFocus:()=>Sn,useFocusWithin:()=>wn,useForkRef:()=>Ze,useFreshCallback:()=>w,useFreshRef:()=>P,useFreshTick:()=>Le,useFullscreen:()=>hn,useGeolocation:()=>Rn,useGetIsMounted:()=>se,useInViewRef:()=>On,useInput:()=>xn,useIntersectionObserverRef:()=>Ln,useIntervalWhen:()=>tt,useIsDroppingFiles:()=>Mn,useIsomorphicEffect:()=>H,useKey:()=>ft,useKeyBindings:()=>Dn,useKeyRef:()=>Fn,useKeys:()=>Cn,useLifecycleLogger:()=>kn,useLocalstorageState:()=>Un,useLockBodyScroll:()=>Vn,useMapState:()=>Nt,useMediaMatch:()=>Pn,useMergeRefs:()=>Nn,useMouse:()=>Hn,useMouseMoveDelta:()=>Kn,useMouseWheelDelta:()=>jn,useMultiSelectableList:()=>zn,useMutationObserver:()=>Je,useMutationObserverRef:()=>et,useNativeMapState:()=>An,useNavigatorLanguage:()=>Xn,useObjectState:()=>Nt,useOnClickRef:()=>Gn,useOnHoverRef:()=>_n,useOnLongHover:()=>Pt,useOnLongHoverRef:()=>Pt,useOnLongPress:()=>Wt,useOnLongPressRef:()=>Wt,useOnWindowResize:()=>Oe,useOnWindowScroll:()=>Me,useOnline:()=>eo,useOrientation:()=>to,useOutsideClick:()=>no,useOutsideClickRef:()=>oo,usePreviousDifferent:()=>ro,usePreviousImmediate:()=>so,usePromise:()=>uo,useQueueState:()=>io,useRaf:()=>mo,useRefElement:()=>at,useRenderCount:()=>bo,useResizeObserverRef:()=>po,useSafeSetState:()=>Eo,useSelect:()=>go,useSelectableList:()=>yo,useSessionstorageState:()=>To,useSetState:()=>ho,useSpeech:()=>wo,useStackState:()=>So,useThrottle:()=>Mo,useTimeTravelState:()=>Oo,useTimeoutWhen:()=>Q,useToggle:()=>Fo,useUndoRedoState:()=>ko,useUndoState:()=>Co,useVibrate:()=>Vo,useVideo:()=>Uo,useWhyDidYouUpdate:()=>Ao,useWillUnmount:()=>ae,useWindowEventListener:()=>mt,useWindowScrollPosition:()=>Wo,useWindowSize:()=>Ko});var Z=v("react");var Ut=v("react");var $e=v("react");var qe=v("react"),H=typeof window>"u"?qe.useEffect:qe.useLayoutEffect;function P(e,t=!1){let n=t?H:$e.useEffect,o=(0,$e.useRef)(e);return n(()=>{o.current=e}),o}function w(e){let t=P(e);return(0,Ut.useCallback)((...o)=>t.current(...o),[t])}var At=v("react");var g=()=>{};function Q(e,t=0,n=!0,o=0){let r=w(e);(0,At.useEffect)(()=>{if(n){let u=function(){r()};var s=u;if(typeof window<"u"){let i=window.setTimeout(u,t);return()=>{window.clearTimeout(i)}}else console.warn("useTimeoutWhen: window is undefined.")}return g},[t,n,o,r])}var Pt=(e,{duration:t=300}={})=>{let[n,o]=(0,Z.useState)(null),r=(0,Z.useCallback)(c=>{o(c)},[]),[s,u]=(0,Z.useState)(!1),i=w(e);Q(()=>{i()},t,s);let l=(0,Z.useCallback)(()=>{u(!0)},[]),a=(0,Z.useCallback)(c=>{u(!1)},[]);return(0,Z.useEffect)(()=>(n&&(n.addEventListener("mouseenter",l),n.addEventListener("mouseleave",a)),()=>{n&&(n.removeEventListener("mouseenter",l),n.removeEventListener("mouseleave",a))}),[l,a,n]),r};var ee=v("react");var qo=()=>{},Wt=(e,{onClick:t,duration:n=300}={})=>{let[o,r]=(0,ee.useState)(null),s=(0,ee.useCallback)(f=>{r(f)},[]),[u,i]=(0,ee.useState)(!1),l=w(e),a=w(t??qo);Q(l,n,u);let c=(0,ee.useCallback)(f=>{i(!0)},[]),d=(0,ee.useCallback)(f=>{i(!1),a(f)},[a]);return(0,ee.useEffect)(()=>(o&&(o.addEventListener("mousedown",c),o.addEventListener("mouseup",d),o.addEventListener("mouseleave",d),o.addEventListener("touchstart",c),o.addEventListener("touchend",d),o.addEventListener("touchcancel",d)),()=>{o&&(o.removeEventListener("mousedown",c),o.removeEventListener("mouseup",d),o.removeEventListener("mouseleave",d),o.removeEventListener("touchstart",c),o.removeEventListener("touchend",d),o.removeEventListener("touchcancel",d))}),[c,d,o]),s};var te=v("react");function Nt(e){let[t,n]=(0,te.useState)(e),o=(0,te.useCallback)((a,c)=>{n(d=>({...d,[a]:c}))},[]),r=(0,te.useCallback)(a=>typeof t[a]<"u",[t]),s=(0,te.useCallback)(a=>{n(c=>({...c,...a}))},[]),u=(0,te.useCallback)((...a)=>{n(c=>{let d={...c};for(let f of a)delete d[f];return d})},[n]),i=(0,te.useCallback)(a=>{n(c=>{let d={...c};return delete d[a],d})},[n]),l=(0,te.useCallback)(()=>{n(a=>{let c={...a};for(let d in c)c.hasOwnProperty(d)&&delete c[d];return c})},[n]);return[t,{has:r,remove:i,removeAll:l,removeMultiple:u,set:o,setMultiple:s}]}var M=v("react");function Ht(e){let[t,n]=(0,M.useState)(e??[]),o=(0,M.useCallback)(h=>{n([...t,h])},[t]),r=(0,M.useCallback)(()=>{n(t.slice(0,t.length-1))},[t]),s=(0,M.useCallback)(()=>{n([])},[]),u=(0,M.useCallback)(h=>{n([h,...t])},[t]),i=(0,M.useCallback)(()=>{n(t.slice(1))},[t]),l=(0,M.useCallback)(()=>{n([...t].reverse())},[t]),a=(0,M.useCallback)(h=>{n([...t,...h])},[t]),c=(0,M.useCallback)((h,S,R)=>{n([...t].fill(h,S,R))},[t]),d=(0,M.useCallback)((h,S)=>{n(R=>{let T=[...R];return T[h]=S,T})},[n]),f=(0,M.useCallback)((...h)=>{n(S=>{let R=[...S];return R.splice(...h),R})},[n]),m=(0,M.useCallback)(h=>{n(S=>{let R=[...S];return R.splice(h,1),R})},[n]),p=(0,M.useCallback)((h,S)=>{n(R=>{let T=[...R];return T.splice(h,1,S),T})},[n]),b=(0,M.useCallback)((h,S)=>{n(R=>{let T=[...R];return T.splice(h,0,S),T})},[n]),E=(0,M.useCallback)(h=>{n([...t].sort(h))},[t]),y=(0,M.useMemo)(()=>({push:o,pop:r,clear:s,unshift:u,shift:i,reverse:l,concat:a,fill:c,updateItemAtIndex:d,setArray:n,splice:f,removeItemAtIndex:m,replaceItemAtIndex:p,insertItemAtIndex:b,sort:E}),[o,r,s,u,i,l,a,c,d,n,f,m,p,b,E]);return(0,M.useMemo)(()=>[t,y],[t,y])}var we=v("react");var Se=v("react"),se=()=>{let e=(0,Se.useRef)(!1),t=(0,Se.useCallback)(()=>e.current,[]);return(0,Se.useEffect)(()=>(e.current=!0,()=>{e.current=!1}),[]),t};function Kt(e,t,n){let o=(0,we.useRef)(0),r=se(),s=P(e),u=(0,we.useCallback)(async()=>{let i=++o.current,l=()=>r()&&i===o.current;try{return await s.current(l)}catch(a){throw a}},[r,...t]);(0,we.useEffect)(()=>{let i;return u().then(l=>{i=l}),()=>{n?.(i)}},[u,n])}var ue=v("react");var He=()=>{};function jt(e={},t={}){let{autoPlay:n=!1,isMuted:o=!1}=e,[r,s]=(0,ue.useState)(n),[u,i]=(0,ue.useState)(o),[l,a]=(0,ue.useState)(null),c=w(t.onPlay??He),d=w(t.onPause??He),f=w(t.onMute??He),m=w(t.onUnmute??He),p=w(t.onLoadedMetadata??He),b=L=>{L!==null&&a(L)};(0,ue.useEffect)(()=>{l&&(r?l.play():l.pause())},[l,r]),(0,ue.useEffect)(()=>{l&&(l.muted=u)},[l,u]),(0,ue.useEffect)(()=>{if(!l)return;let L=()=>{n&&l?.play(),p()},A=()=>{c()},kt=()=>{d()},It=()=>{s(!1)};return l?.addEventListener("loadedmetadata",L),l?.addEventListener("play",A),l?.addEventListener("pause",kt),l?.addEventListener("ended",It),()=>{l?.removeEventListener("loadedmetadata",L),l?.removeEventListener("play",A),l?.removeEventListener("pause",kt),l?.removeEventListener("ended",It)}},[n,p,c,d,l]);let E=()=>{s(!0)},y=()=>{s(!1)},x=()=>{s(!r)},h=()=>{i(!0),f()},S=()=>{i(!1),m()};return[b,{isPlaying:r,isMuted:u},{play:E,pause:y,togglePlay:x,mute:h,unmute:S,toggleMute:()=>{u?S():h()}}]}var Qe=v("react");var zt=v("react");function K(e){(0,zt.useEffect)(()=>{typeof e=="function"&&e()},[])}var Yt=v("react");var $o={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Je(e,t,n=$o){(0,Yt.useEffect)(()=>{if(e.current){let o=new MutationObserver(t);return o.observe(e.current,n),()=>{o.disconnect()}}return g},[t,n,e])}function Jo(e){return e.getBoundingClientRect()}function Bt(e){let[t,n]=(0,Qe.useState)(null),o=(0,Qe.useCallback)(()=>{n(e.current?Jo(e.current):null)},[e]);return K(()=>{o()}),Je(e,o),t}var ie=v("react");var Gt=v("react");function Xt(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Ze(e,t){return(0,Gt.useMemo)(()=>e===null&&t===null?null:n=>{Xt(e,n),Xt(t,n)},[e,t])}var Re=v("react");var Qo={attributes:!0,characterData:!0,childList:!0,subtree:!0};function et(e,t=Qo){let[n,o]=(0,Re.useState)(null);return(0,Re.useEffect)(()=>{if(n){let s=new MutationObserver(e);return s.observe(n,t),()=>{s.disconnect()}}return g},[n,e,t]),[(0,Re.useCallback)(s=>{o(s)},[])]}function Zo(e){return e.getBoundingClientRect()}function _t(){let[e,t]=(0,ie.useState)(null),[n,o]=(0,ie.useState)(null),r=(0,ie.useCallback)(()=>{t(n?Zo(n):null)},[n]);(0,ie.useEffect)(()=>{r()},[r]);let s=(0,ie.useCallback)(l=>{o(l)},[]),[u]=et(r);return[Ze(s,u),e,r]}var qt=v("react");var Ke=v("react");function tt(e,t=0,n=!0,o=!1){let r=(0,Ke.useRef)(void 0);(0,Ke.useEffect)(()=>{r.current=e}),(0,Ke.useEffect)(()=>{if(n){let u=function(){r.current?.()};var s=u;o&&u();let i=window.setInterval(u,t);return()=>{window.clearInterval(i)}}return g},[n,t,o])}function $t(e,t={}){let{interval:n=1e3,onDown:o,onEnd:r}=t,[s,u]=(0,qt.useState)(()=>new Date),i=e.getTime()-s.getTime(),l=i>0?Math.ceil(i/n):0;return tt(a,l?n:void 0,!0,!0),l;function a(){let c=new Date;if(c>e){r&&r(c),u(e);return}o&&o(i,c),u(c)}}var le=v("react");function Jt(e){let[t,n]=(0,le.useState)(e),o=(0,le.useCallback)(l=>{n(a=>a+l)},[]),r=(0,le.useCallback)(l=>{o(-l)},[o]),s=(0,le.useCallback)(()=>{o(1)},[o]),u=(0,le.useCallback)(()=>{o(-1)},[o]),i=(0,le.useCallback)(()=>{n(e)},[e]);return{decrement:u,decrementBy:r,increment:s,incrementBy:o,reset:i,value:t}}var on=_e(tn()),nt=v("react");var nn=v("react");function ae(e){(0,nn.useEffect)(()=>e,[])}function ot(e,t,n){let o=(0,nt.useCallback)(i=>(0,on.default)(i,t,n),[t,n]),r=P(e);function s(...i){r.current?.(...i)}let u=(0,nt.useRef)(o(s));return ae(()=>{u.current?.cancel()}),u.current}var ce=v("react");function rn(e,t,n={leading:!1,trailing:!0}){let{leading:o,trailing:r,maxWait:s}=n;if(!o&&!r)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=w(e),[i,l]=(0,ce.useState)(!1),[a,c]=(0,ce.useState)(0),d=(0,ce.useRef)(0),f=(0,ce.useRef)(void 0),m=(0,ce.useCallback)((...b)=>{f.current=b;let E=typeof s<"u"&&d.current&&Date.now()-d.current>s;if(o){if(i&&E){c(y=>y+1),d.current=Date.now();try{u(...b)}catch(y){console.warn(y)}}else if(E&&!i){l(!0),d.current=Date.now();try{u(...b)}catch(y){console.warn(y)}}else if(!(i&&!E)){l(!0),d.current=Date.now();try{u(...b)}catch(y){console.warn(y)}}}r&&(i?c(y=>y+1):l(!0))},[s,i,o,r,u]);return Q(()=>{if(typeof s<"u"&&r){if(!f.current)return;d.current=Date.now();try{u(...f.current)}catch(b){console.warn(b)}}},s??1/0,i&&typeof s<"u"&&r,a),Q(()=>{if(r){if(!f.current)return;d.current=Date.now();try{u(...f.current)}catch(b){console.warn(b)}}l(!1)},t,i&&r,a),[w(m),i]}var sn=v("react");var xe=v("react");function fe(e,t){let n=(0,xe.useRef)(!1),o=(0,xe.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,xe.useEffect)(()=>{n.current&&e()},o),K(()=>{n.current=!0}),ae(()=>{n.current=!1})}var Er={initializeWithNull:!1},un=(e,t,n={})=>{let{initializeWithNull:o}=Object.assign({},Er,n),[r,s]=(0,sn.useState)(o?null:e),u=ot(s,t);return K(()=>{o&&u(e)}),fe(()=>{u(e)},[e]),[r,s]};var st=v("react"),cn=_e(an());var rt=()=>{};function gr(e){let t=typeof e;return t==="string"||t==="number"||t==="bigint"||t==="boolean"||t==="undefined"||t==="symbol"}function fn(e,t){let n=(0,st.useRef)(t);if(!Array.isArray(t))throw new Error("useDeepCompareEffect should be used with an array of dependencies");let o=t.every(gr);rt(!o,"useDeepCompareEffect should not be used with primitive values as dependencies"),(0,cn.default)(n.current,t)||(n.current=t),(0,st.useEffect)(e,n.current)}var de=v("react");var dn=v("react");function Le(e){let t=P(e);function n(...o){typeof t.current=="function"&&t.current(...o)}return n}function j(e,t,n,o={},r=!0,s=!1){let u=Le(n);(s?H:dn.useEffect)(()=>(rt(typeof e<"u","[useGlobalObjectEventListener]: Cannot attach event handlers to undefined."),typeof e<"u"&&r?(e.addEventListener(t,u,o),()=>{e.removeEventListener(t,u,o)}):()=>{}),[t,o])}function Oe(e,t=!0,n=!1){j(global.window,"resize",e,{passive:!0},t,n)}function Me(e,t=!0,n=!1){j(global.window,"scroll",e,{passive:!0},t,n)}var yr=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}},Tr=[void 0,null,null],mn=({updateOnScroll:e=!0,updateOnResize:t=!0}={})=>{let[n,o]=(0,de.useState)(null),[r,s]=(0,de.useState)(null),u=(0,de.useCallback)(l=>{s(l)},[]),i=(0,de.useCallback)(()=>{window.requestAnimationFrame(()=>{r&&o(yr(r))})},[r]);return(0,de.useLayoutEffect)(()=>{i()},[i]),Oe(()=>{i()},t,!0),Me(()=>{i()},e,!0),typeof window>"u"?(console.warn("useDimensionsRef: window is undefined."),Tr):[u,n,r]};function pn(e,t,n={},o=!1){j(global.document,e,t,n,!0,o)}var ut=v("react");function vn(e,t={}){let n=typeof window<"u",o=(0,ut.useRef)(n?document.title:""),{resetOnUnmount:r=!1}=t;(0,ut.useEffect)(()=>{if(n){document.title=e;let s=o.current;if(r)return()=>{document.title=s}}return g},[e,n,r])}var it=v("react");function bn(){let[e,t]=(0,it.useState)(document?document.visibilityState:null),n=(0,it.useCallback)(()=>{t(document?document.visibilityState:null)},[]);return j(global.document,"visibilitychange",n,{},!0,!0),e}var De=v("react");function En(e,t=!0){let n=(0,De.useRef)(!1),o=(0,De.useRef)(e);(0,De.useEffect)(()=>{o.current=e}),(0,De.useEffect)(()=>{t&&!n.current&&(o.current(),n.current=!0)},[t])}var gn=v("react");var lt=v("react");function at(){let[e,t]=(0,lt.useState)(null);return[(0,lt.useCallback)(o=>{t(o)},[]),e]}function yn(e,t,n={},o=!1){let[r,s]=at(),u=Le(t);return(o?H:gn.useEffect)(()=>s?.addEventListener?(s.addEventListener(e,u,n),()=>{s.removeEventListener(e,u,n)}):g,[s,e,n]),r}var z=v("react");function Tn(e={},t={}){let{accept:n,maxFileSize:o,maxFiles:r}=e,{onDrop:s=g,onFileAccepted:u=g,onFileRejected:i=g,onDragEnter:l=g,onDragLeave:a=g}=t,[c,d]=(0,z.useState)(null),f=w(s),m=w(u),p=w(i),b=w(l),E=w(a);(0,z.useCallback)(S=>{d(S)},[]);let y=(0,z.useCallback)(S=>n&&!n.includes(S.type)?{valid:!1,reason:"File type not allowed"}:o&&S.size>o?{valid:!1,reason:"File size exceeds the limit"}:{valid:!0},[n,o]),x=(0,z.useCallback)(S=>{S.preventDefault();let R=Array.from(S.dataTransfer?.files||[]),T=[],O=[];if(r&&R.length>r)for(let L of R)p(L,"Exceeded maximum number of files");else R.forEach(L=>{let A=y(L);A.valid?(T.push(L),m(L)):(O.push(L),p(L,A.reason||"Unknown reason"))});f(T,O)},[y,m,p,r,f]),h=(0,z.useCallback)(S=>{S.preventDefault()},[]);return(0,z.useEffect)(()=>c?(c.addEventListener("drop",x),c.addEventListener("dragover",h),c.addEventListener("dragenter",b),c.addEventListener("dragleave",E),()=>{c.removeEventListener("drop",x),c.removeEventListener("dragover",h),c.removeEventListener("dragenter",b),c.removeEventListener("dragleave",E)}):()=>{},[c,x,h,b,E]),(0,z.useCallback)(S=>{d(S)},[])}var I=v("react"),Y={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,o=n.requestFullscreen||n.webkitRequestFullscreen||n.webkitRequestFullScreen||n.mozRequestFullScreen||n.msRequestFullscreen;if(!o)throw new Error(this.FULLSCREEN_UNSUPPORTED_ERROR);return o.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 hn(e={}){let{target:t,onChange:n,onError:o,requestFullScreenOptions:r}=e,[s,u]=(0,I.useState)(!1),[i,l]=(0,I.useState)(null),[a,c]=(0,I.useState)(!1),d=(0,I.useCallback)(()=>Y.requestFullscreen(t?.current||null,r),[t,r]),f=(0,I.useCallback)(()=>Y.exitFullscreen(),[]),m=(0,I.useCallback)(()=>Y.fullscreenElement?f():d(),[d,f]),p=(0,I.useCallback)(E=>{let y=Y.fullscreenElement;l(y),c(!!y),n?.(E)},[n]),b=(0,I.useCallback)(E=>{let y=Y.fullscreenElement;l(y),c(!!y),o?.(E)},[o]);return(0,I.useEffect)(()=>{u(Y.fullscreenEnabled)},[]),(0,I.useEffect)(()=>(Y.on("change",p),Y.on("error",b),()=>{Y.off("change",p),Y.off("error",b)}),[p,b]),{isFullscreenAvailable:s,fullscreenElement:i,isFullscreenEnabled:a,enableFullscreen:d,disableFullscreen:f,toggleFullscreen:m}}var xt=v("react"),Sn=e=>{let{onBlur:t,onFocus:n,onFocusChange:o}=e,r=(0,xt.useCallback)(u=>{u.target===u.currentTarget&&(t&&t(u),o&&o(!1))},[t,o]);return{focusProps:{onFocus:(0,xt.useCallback)(u=>{u.target===u.currentTarget&&(n&&n(u),o&&o(!0))},[o,n]),onBlur:r}}};var je=v("react"),wn=e=>{let{onBlurWithin:t,onFocusWithin:n,onFocusWithinChange:o}=e,r=(0,je.useRef)({isFocusWithin:!1}),s=(0,je.useCallback)(i=>{r.current.isFocusWithin&&!i.currentTarget.contains(i.relatedTarget)&&(r.current.isFocusWithin=!1,t&&t(i),o&&o(!1))},[t,o]);return{focusWithinProps:{onFocus:(0,je.useCallback)(i=>{r.current.isFocusWithin||(n&&n(i),o&&o(!0),r.current.isFocusWithin=!0)},[n,o]),onBlur:s}}};var ct=v("react");function hr(e){return new Promise((t,n)=>{navigator.geolocation?navigator.geolocation.getCurrentPosition(o=>{let{coords:r}=o,{latitude:s,longitude:u}=r;t({isError:!1,lat:s,lng:u,message:""})},o=>{t({isError:!0,message:o&&typeof o=="object"&&"message"in o?o.message:"Geolocation error"})},e):t({isError:!0,message:"Geolocation is not supported for this Browser/OS."})})}var Sr={enableHighAccuracy:!1,maximumAge:0,timeout:Number.POSITIVE_INFINITY,when:!0},Rn=(e=Sr)=>{let[t,n]=(0,ct.useState)(null),{when:o,enableHighAccuracy:r,timeout:s,maximumAge:u}=e,i=se();return(0,ct.useEffect)(()=>{async function l(){try{let a=await hr({enableHighAccuracy:r,maximumAge:u,timeout:s,when:o});i()&&n(a)}catch(a){i()&&n({isError:!0,message:a instanceof Error?a.message:String(a)})}}o&&l()},[o,r,s,u,i]),t};var Fe=v("react"),wr={};function xn(e="",t=wr){let[n,o]=(0,Fe.useState)(e),r=(0,Fe.useCallback)(u=>{let i=u.target.value,l=!0;typeof t.validate=="function"&&(l=t.validate(i,n)),l&&o(i)},[t,n]);return(0,Fe.useEffect)(()=>{o(e)},[e]),{onChange:r,value:n}}var B=v("react");var Rr={root:null,rootMargin:"0px 0px 0px 0px",threshold:[0,1]};function Ln(e,t=Rr){let{root:n=null,rootMargin:o,threshold:r}=t,[s,u]=(0,B.useState)(null),i=(0,B.useRef)(e);(0,B.useEffect)(()=>{i.current=e});let l=(0,B.useCallback)((...c)=>i.current?.(...c),[]);return(0,B.useEffect)(()=>{if(s){let c=new IntersectionObserver(l,{root:n,rootMargin:o,threshold:r});return c.observe(s),()=>{c.disconnect()}}return g},[s,l,n,o,r]),[(0,B.useCallback)(c=>{u(c)},[])]}var be=v("react");var xr={root:null,rootMargin:"0px 0px 0px 0px",threshold:[0,1]};function On(e,t){let n=typeof e=="function"?e:g,o=typeof e=="object"?e:t||xr,{root:r=null,rootMargin:s,threshold:u}=o,[i,l]=(0,be.useState)(null),[a,c]=(0,be.useState)(!1);return(0,be.useEffect)(()=>{if(i){let f=new IntersectionObserver((m,p)=>{for(let{isIntersecting:b}of m)c(b);n(m,p)},o);return f.observe(i),()=>{f.disconnect()}}return g},[i,n,r,s,u,o]),[(0,be.useCallback)(f=>{l(f)},[]),a]}var W=v("react");function Mn(e=!1){let[t,n]=(0,W.useState)(null),o=(0,W.useCallback)(p=>{n(p)},[]),[r,s]=(0,W.useState)(!1),u=(0,W.useCallback)(p=>{p.preventDefault(),p.dataTransfer?.types.includes("Files")?r||s(!0):s(!1)},[r]),i=(0,W.useCallback)(p=>{p.preventDefault(),p.dataTransfer?.types.includes("Files")?r||s(!0):s(!1)},[r]),l=(0,W.useCallback)(p=>{p.preventDefault(),s(!1)},[]),a=(0,W.useCallback)(p=>{p.preventDefault(),s(!1)},[]),c=w(u),d=w(i),f=w(l),m=w(a);return(0,W.useEffect)(()=>{let p=e?window:t;return p&&(p.addEventListener("dragenter",c),p.addEventListener("dragover",d),p.addEventListener("dragleave",f),p.addEventListener("drop",m)),()=>{p&&(p.removeEventListener("dragenter",c),p.removeEventListener("dragover",d),p.removeEventListener("dragleave",f),p.removeEventListener("drop",m))}},[c,f,d,m,r,e,t]),e?r:[o,r]}var X=v("react");var Ee=(e,t)=>e.key===t||e.code===t||e.keyCode===t||e.which===t||e.charCode===t;var Lr={eventTypes:["keydown"],when:!0};function ft(e,t,n){let o=(0,X.useMemo)(()=>Array.isArray(e)?e:[e],[e]),r=(0,X.useMemo)(()=>({...Lr,...n}),[n]),{when:s,eventTypes:u}=r,i=(0,X.useRef)(t),{target:l}=r;(0,X.useEffect)(()=>{i.current=t});let a=(0,X.useCallback)(c=>{o.some(d=>Ee(c,d))&&i.current(c)},[o]);(0,X.useEffect)(()=>{if(s&&typeof window<"u")if(l){let c=l.current;if(c){for(let d of u)c.addEventListener(d,a);return()=>{for(let d of u)c.removeEventListener(d,a)}}}else{for(let c of u)window.addEventListener(c,a);return()=>{for(let c of u)window.removeEventListener(c,a)}}return g},[s,u,o,l,t,a])}var Dn=(e,t)=>{for(let n in e){let o=e[n];o&&ft(n,o,t)}};var V=v("react");var Or={eventTypes:["keydown"],when:!0};function Fn(e,t,n){let[o,r]=(0,V.useState)(null),s=(0,V.useCallback)(f=>{r(f)},[]),u=(0,V.useMemo)(()=>Array.isArray(e)?e:[e],[e]),i=(0,V.useMemo)(()=>({...Or,...n}),[n]),{when:l,eventTypes:a}=i,c=(0,V.useRef)(t);(0,V.useEffect)(()=>{c.current=t});let d=(0,V.useCallback)(f=>{u.some(m=>Ee(f,m))&&c.current(f)},[u]);return(0,V.useEffect)(()=>{if(l&&o){for(let f of a)o.addEventListener(f,d);return()=>{for(let f of a)o.removeEventListener(f,d)}}return g},[o,l,a,u,d]),s}var G=v("react");var Mr={continuous:!1,when:!0};function Cn(e,t,n){let o={...Mr,...n},{target:r,when:s,continuous:u,preventLostKeyup:i}=o,l=(0,G.useRef)(t),c=(0,G.useRef)({}).current;(0,G.useEffect)(()=>{l.current=t});let d=(0,G.useCallback)(m=>{let p=null,b=!1;for(let E of e)Ee(m,E)&&(c[E]=!0,p=E);e.every(E=>!!c[E])&&(b=!0),b&&(l.current(m),!u&&p!==null&&(c[p]=!1))},[e,c,u]),f=(0,G.useCallback)(m=>{for(let p of e)Ee(m,p)&&(c[p]=void 0)},[c,e]);(0,G.useEffect)(()=>{if(s&&typeof window<"u"){let m=r?.current?r.current:document;return m.addEventListener("keydown",d),m.addEventListener("keyup",f),()=>{m.removeEventListener("keydown",d),m.removeEventListener("keyup",f)}}return g},[s,r,e,d,f]),(0,G.useEffect)(()=>{if(i!==!0)return g;if(typeof window<"u"){let m=window.alert;window.alert=E=>{for(let y of e)c[y]=void 0;return m(E)};let p=window.confirm;window.confirm=E=>{for(let y of e)c[y]=void 0;return p(E)};let b=window.prompt;return window.prompt=(E,y)=>{for(let x of e)c[x]=void 0;return b(E,y)},()=>{window.alert=m,window.confirm=p,window.prompt=b}}return g},[c,e,i])}var kn=(e="Component",...t)=>{K(()=>(console.log(`${e} mounted`,...t),()=>console.log(`${e} unmounted`))),fe(()=>{console.log(`${e} updated`,...t)}),ae(()=>{console.log(`${e} unmounted`)})};var In=v("react");function Vn(e){(0,In.useEffect)(()=>{if(e){let t=window.getComputedStyle(document.body).overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=t}}else return g},[e])}var D=v("react");function Dr(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 Fr(e,t){return typeof localStorage>"u"?null:t===void 0?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(t))}function Cr(e,t){let n=Dr(e);return n===null?typeof t=="function"?t():t:n}function Un(e,t){let[n,o]=(0,D.useState)(()=>Cr(e,t)),r=(0,D.useRef)(!1),s=(0,D.useRef)(!1),u=(0,D.useMemo)(()=>`rooks-${e}-localstorage-update`,[e]);(0,D.useEffect)(()=>{(!r.current||!s.current)&&Fr(e,n)},[e,n]);let i=(0,D.useCallback)(m=>{if(m.storageArea===localStorage&&m.key===e)try{r.current=!0;let p=JSON.parse(m.newValue??"null");n!==p&&o(p)}catch(p){console.log(p)}},[e,n]);(0,D.useEffect)(()=>typeof window<"u"?(window.addEventListener("storage",i),()=>{window.removeEventListener("storage",i)}):(console.warn("useLocalstorageState: window is undefined."),()=>{}),[i]);let l=(0,D.useCallback)(m=>{try{s.current=!0;let{newValue:p}=m.detail;n!==p&&o(p)}catch(p){console.log(p)}},[n]);(0,D.useEffect)(()=>typeof document<"u"?(document.addEventListener(u,l),()=>{document.removeEventListener(u,l)}):(console.warn("[useLocalstorageState] document is undefined."),()=>{}),[u,l]);let a=(0,D.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]),c=P(n,!0),d=(0,D.useCallback)(m=>{let p=typeof m=="function"?m(c.current):m;r.current=!1,s.current=!1,o(p),a(p)},[a,c]),f=(0,D.useCallback)(()=>{localStorage.removeItem(e)},[e]);return[n,d,f]}var U=v("react");function An(e){let[t,n]=(0,U.useState)(e||new Map),o=(0,U.useCallback)((p,b)=>{n(E=>new Map(E.set(p,b)))},[]),r=(0,U.useCallback)(p=>{n(b=>{let E=new Map(b);return p.forEach(([y,x])=>{E.set(y,x)}),E})},[]),s=(0,U.useCallback)(p=>{n(b=>{let E=new Map(b);return E.delete(p),E})},[]),u=(0,U.useCallback)(p=>{n(b=>{let E=new Map(b);return p.forEach(y=>{E.delete(y)}),E})},[]),i=(0,U.useCallback)(()=>{n(new Map)},[]),l=(0,U.useCallback)(p=>t.has(p),[t]),a=(0,U.useCallback)(p=>p.some(b=>t.has(b)),[t]),c=(0,U.useCallback)(p=>p.every(b=>t.has(b)),[t]),d=(0,U.useCallback)(p=>t.get(p),[t]),f=(0,U.useCallback)(()=>t.size,[t]);return[t,{set:o,remove:s,clear:i,has:l,get:d,size:f,setMultiple:r,removeMultiple:u,hasSome:a,hasEvery:c}]}var Ce=v("react");function Pn(e){let t=(0,Ce.useMemo)(()=>window.matchMedia(e),[e]),[n,o]=(0,Ce.useState)(()=>t.matches);return(0,Ce.useEffect)(()=>{o(t.matches);let r=s=>o(s.matches);return t.addEventListener?(t.addEventListener("change",r),()=>t.removeEventListener("change",r)):(t.addListener(r),()=>t.removeListener(r))},[t]),typeof window>"u"?(console.warn("useMediaMatch cannot function as window is undefined."),!1):n}var Wn=v("react");function kr(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Nn(...e){return(0,Wn.useMemo)(()=>e.every(t=>t===null)?null:t=>{for(let n of e)kr(n,t)},[e])}var dt=v("react"),Ir={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 Vr(e){let{screenX:t,screenY:n,movementX:o,movementY:r,pageX:s,pageY:u,clientX:i,clientY:l,offsetX:a,offsetY:c}=e;return{clientX:i,clientY:l,movementX:o,movementY:r,offsetX:a,offsetY:c,pageX:s,pageY:u,screenX:t,screenY:n,x:t,y:n}}function Hn(){let[e,t]=(0,dt.useState)(Ir);function n(o){t(Vr(o))}return(0,dt.useEffect)(()=>(document.addEventListener("mousemove",n),()=>{document.removeEventListener("mousemove",n)}),[]),e}var _=v("react");var Ur={deltaX:0,deltaY:0,clientX:null,clientY:null,velocityX:0,velocityY:0,timeStamp:Date.now()};function Kn(){let[e,t]=(0,_.useState)(()=>({...Ur,timeStamp:Date.now()})),n=(0,_.useRef)(null),o=(0,_.useCallback)(s=>{let u=s.timeStamp,i=n.current;if(i&&i.clientX!==null&&i.clientY!==null){let l=s.clientX-i.clientX,a=s.clientY-i.clientY,c=u-i.timeStamp,d=c===0?0:l/c,f=c===0?0:a/c;n.current=e,t({deltaX:l,clientX:s.clientX,clientY:s.clientY,deltaY:a,velocityX:d,velocityY:f,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]),r=w(o);return(0,_.useEffect)(()=>(document.addEventListener("mousemove",r,{passive:!0}),()=>{document.removeEventListener("mousemove",r)}),[r]),(0,_.useMemo)(()=>{let{deltaX:s,deltaY:u,velocityX:i,velocityY:l}=e;return{deltaX:s,deltaY:u,velocityX:i,velocityY:l}},[e])}var q=v("react");var Ar={delta:0,velocity:0,timeStamp:Date.now()};function jn(){let[e,t]=(0,q.useState)(()=>({...Ar,timeStamp:Date.now()})),n=(0,q.useRef)(null),o=(0,q.useCallback)(s=>{let u=s.timeStamp,i=n.current;if(i){let l=s.deltaY,a=u-i.timeStamp;console.log(a);let c=a===0?0:l/a;console.log("delta",l),console.log("timedelta",a),console.log("velocity",c),n.current=e,t({delta:l,velocity:c,timeStamp:u})}else n.current={velocity:0,delta:0,timeStamp:s.timeStamp},t({delta:s.deltaY,velocity:0,timeStamp:s.timeStamp})},[e]),r=w(o);return(0,q.useEffect)(()=>(document.addEventListener("wheel",r),()=>{document.removeEventListener("wheel",r)}),[r]),console.log(e),(0,q.useMemo)(()=>{let{delta:s,velocity:u}=e;return{delta:s,velocity:u}},[e])}var ke=v("react");function Lt(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 zn(e=[],t=[0],n=!1){let[o,r]=(0,ke.useState)(t),s=o.map(f=>e[f]).filter(f=>f!==void 0),u=[o,s],i=({indices:f,values:m})=>()=>{if(Lt("updateSelections",{indices:f,values:m}),typeof f<"u"){if(!n&&f.length===0){console.warn("updateSelections failed. indices is an empty list.");return}r(f)}else if(typeof m<"u"){let p=e.reduce((b,E,y)=>m.includes(E)?[...b,y]:b,[]);p.length>0||n?r(p):console.warn("updateSelections failed. Do the values exist in the list?")}},l=(0,ke.useCallback)(f=>{let m;if(!o.includes(f))m=[...o,f];else{m=[...o];let p=o.indexOf(f);p!==-1&&m.splice(p,1)}m.length>0||n?r(m):console.warn("toggleSelection failed. Do the values exist in the list?")},[n,o]),a=(0,ke.useCallback)(({index:f,value:m})=>()=>{if(Lt("toggleSelection",{index:f,value:m}),typeof f<"u")l(f);else if(typeof m<"u"){let p=e.indexOf(m);p>-1&&l(p)}},[e,l]),d={matchSelection:(0,ke.useCallback)(({index:f,value:m})=>(Lt("matchSelection",{index:f,value:m}),typeof f<"u"?o.includes(f):typeof m<"u"?s.includes(m):!1),[o,s]),toggleSelection:a,updateSelections:i};return[u,d]}var Bn=v("react");function mt(e,t,n={},o=!1){j(global.window,e,t,n,!0,o)}function Yn(){return typeof navigator<"u"?navigator.language:null}function Xn(){let[e,t]=(0,Bn.useState)(Yn);return mt("languagechange",()=>{t(Yn)}),e}var ge=v("react");function Gn(e){let[t,n]=(0,ge.useState)(null),o=(0,ge.useCallback)(u=>{u.preventDefault(),e()},[e]),r=w(o);return(0,ge.useEffect)(()=>t?(t.addEventListener("click",r),t.addEventListener("touchend",r),()=>{t.removeEventListener("click",r),t.removeEventListener("touchend",r)}):g,[t,r]),(0,ge.useCallback)(u=>{u&&n(u)},[])}var ye=v("react");function _n(e,t){let[n,o]=(0,ye.useState)(null),r=(0,ye.useCallback)(a=>{e?.(a)},[e]),s=(0,ye.useCallback)(a=>{t?.(a)},[t]),u=w(r),i=w(s);return(0,ye.useEffect)(()=>n?(n.addEventListener("mouseenter",u),n.addEventListener("mouseleave",i),()=>{n.removeEventListener("mouseenter",u),n.removeEventListener("mouseleave",i)}):g,[u,i,n]),a=>{o(a)}}var Zn=_e(Qn());function Xr(){return typeof window>"u"?null:navigator.onLine}function Gr(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."),g)}function eo(){return(0,Zn.useSyncExternalStore)(Gr,Xr)}var pt=v("react"),to=()=>{let[e,t]=(0,pt.useState)(typeof window<"u"?window.screen.orientation:null);return(0,pt.useEffect)(()=>{let n=()=>{t(window.screen.orientation)};return window.screen.orientation.addEventListener("change",n),()=>{window.screen.orientation.removeEventListener("change",n)}},[]),e};var Te=v("react");function no(e,t,n=!0){let o=(0,Te.useRef)(t),r=(0,Te.useCallback)(s=>{e.current&&!e.current.contains(s.target)&&o.current(s)},[e]);(0,Te.useEffect)(()=>{o.current=t}),(0,Te.useEffect)(()=>n?(document.addEventListener("click",r,!0),document.addEventListener("touchstart",r,!0),()=>{document.removeEventListener("click",r,!0),document.removeEventListener("touchstart",r,!0)}):g,[e,t,n,r])}var $=v("react");function oo(e,t=!0){let[n,o]=(0,$.useState)(null),r=(0,$.useRef)(e),s=(0,$.useCallback)(i=>{n&&!n.contains(i.target)&&r.current(i)},[n]);(0,$.useEffect)(()=>{r.current=e});let u=(0,$.useCallback)(i=>{o(i)},[]);return(0,$.useEffect)(()=>t?(document.addEventListener("click",s,!0),document.addEventListener("touchstart",s,!0),()=>{document.removeEventListener("click",s,!0),document.removeEventListener("touchstart",s,!0)}):g,[t,s]),[u]}var ze=v("react");function ro(e){let t=(0,ze.useRef)(null),n=(0,ze.useRef)(null);return(0,ze.useEffect)(()=>{n.current=t.current,t.current=e},[e]),e===t.current?n.current:t.current}var vt=v("react");function so(e){let t=(0,vt.useRef)(null);return(0,vt.useEffect)(()=>{t.current=e}),t.current}var bt=v("react");function uo(e,t=[]){let[n,o]=(0,bt.useState)({data:null,loading:!0,error:null}),r=w(e);return(0,bt.useEffect)(()=>{let s=!0;async function u(){try{let i=await r();s&&o({data:i,loading:!1,error:null})}catch(i){s&&o({data:null,loading:!1,error:i instanceof Error?i:new Error(String(i))})}}return u(),()=>{s=!1}},[r,...t]),n}var Ve=v("react");function io(e){let[t,n]=(0,Ve.useState)([...e]),o=(0,Ve.useCallback)(i=>{let l=[...t,i];return n(l),l.length},[t]),r=(0,Ve.useCallback)(()=>{if(t.length>0){let i=t[0];return n([...t.slice(1)]),i}},[t]),s=(0,Ve.useCallback)(()=>{if(t.length>0)return t[0]},[t]),u={dequeue:r,enqueue:o,length:t.length,peek:s};return[t,u]}var Dt=_e(fo()),Xe=v("react");function mo(e,t){let n=(0,Xe.useRef)(null);(0,Xe.useEffect)(()=>{n.current=e},[e]),(0,Xe.useEffect)(()=>{let o,r=Date.now();function s(){let i=Date.now()-r;r=Date.now(),u(),n.current?.(i)}function u(){o=(0,Dt.default)(s)}return t?(r=Date.now(),u(),()=>{o&&Dt.default.cancel(o)}):g},[t])}var J=v("react"),qr={box:"content-box"};function po(e,t=qr){let{box:n}=t,[o,r]=(0,J.useState)(null),s=(0,J.useRef)(e);(0,J.useEffect)(()=>{s.current=e});let u=(0,J.useCallback)((...l)=>{s.current?.(...l)},[]);return(0,J.useEffect)(()=>{if(o){let l=new ResizeObserver(u);return l.observe(o,{box:n}),()=>{l.disconnect()}}return g},[o,u,n]),[(0,J.useCallback)(l=>{r(l)},[])]}var vo=v("react");function bo(){return++(0,vo.useRef)(0).current}var Tt=v("react");function Eo(e){let[t,n]=(0,Tt.useState)(e),o=se(),r=(0,Tt.useCallback)(s=>{o()&&n(s)},[o]);return[t,r]}var ht=v("react");function go(e,t=0){let[n,o]=(0,ht.useState)(t),r=(0,ht.useCallback)(s=>{o(e.indexOf(s))},[e]);return{index:n,item:e[n],setIndex:o,setItem:r}}var We=v("react");function Ft(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 yo(e=[],t=0,n=!1){let[o,r]=(0,We.useState)(t),s=e[o],u=[o,s],i=(0,We.useCallback)(({index:d,value:f})=>()=>{if(Ft("updateSelection",{index:d,value:f}),typeof d<"u")r(d);else if(typeof f<"u"){let m=e.indexOf(f);m>-1?r(m):console.warn(`updateSelection failed. Does the value ${f} exist in the list?`)}},[e]),l=(0,We.useCallback)(({index:d,value:f})=>()=>{if(Ft("toggleSelection",{index:d,value:f}),typeof d<"u")o===d?n?r(-1):console.warn("allowUnselected is false. Cannot unselect item"):r(d);else if(typeof f<"u"){let m=e.indexOf(f);m>-1?o===m?n?r(-1):console.warn("allowUnselected is false. Cannot unselect item"):r(m):(console.log("as"),console.warn(`toggleSelection failed. Does the value ${f} exist in the list?`))}},[n,o,e]),c={matchSelection:(0,We.useCallback)(({index:d,value:f})=>(Ft("matchSelection",{index:d,value:f}),typeof d<"u"?d===o:f===s),[o,s]),toggleSelection:l,updateSelection:i};return[u,c]}var F=v("react");function $r(e){if(typeof sessionStorage>"u")return null;let t=sessionStorage.getItem(e)??"null";try{return JSON.parse(t)}catch(n){console.error(n)}return t}function Jr(e,t){return typeof sessionStorage>"u"?null:sessionStorage.setItem(e,JSON.stringify(t))}function Qr(e,t){let n=$r(e);return n===null?t:n}function To(e,t){let[n,o]=(0,F.useState)(()=>Qr(e,t)),r=(0,F.useRef)(!1),s=(0,F.useRef)(!1),u=(0,F.useMemo)(()=>`rooks-${e}-sessionstorage-update`,[e]);(0,F.useEffect)(()=>{r.current||Jr(e,n)},[e,n]);let i=(0,F.useCallback)(f=>{if(f.storageArea===sessionStorage&&f.key===e)try{r.current=!0;let m=JSON.parse(f.newValue??"null");n!==m&&o(m)}catch(m){console.log(m)}},[e,n]);(0,F.useEffect)(()=>typeof window<"u"?(window.addEventListener("storage",i),()=>{window.removeEventListener("storage",i)}):(console.warn("[useSessionstorageState] window is undefined."),()=>{}),[i]);let l=(0,F.useCallback)(f=>{try{s.current=!0;let{newValue:m}=f.detail;n!==m&&o(m)}catch(m){console.log(m)}},[n]);(0,F.useEffect)(()=>typeof document<"u"?(document.addEventListener(u,l),()=>{document.removeEventListener(u,l)}):(console.warn("[useSessionstorageState] document is undefined."),()=>{}),[u,l]);let a=(0,F.useCallback)(f=>{if(typeof document<"u"){let m=new CustomEvent(u,{detail:{newValue:f}});document.dispatchEvent(m)}else console.warn("[useSessionstorageState] document is undefined.")},[u]),c=(0,F.useCallback)(f=>{let m=typeof f=="function"?f(n):f;r.current=!1,s.current=!1,o(m),a(m)},[a,n]),d=(0,F.useCallback)(()=>{sessionStorage.removeItem(e)},[e]);return[n,c,d]}var oe=v("react");function ho(e){let[t,n]=(0,oe.useState)(new Set(e)),o=(0,oe.useCallback)((...l)=>{n(new Set(t.add(...l)))},[t,n]),r=(0,oe.useCallback)((...l)=>{let a=new Set(t);a.delete(...l),n(a)},[t,n]),s=(0,oe.useCallback)(()=>{n(new Set)},[n]),u=(0,oe.useMemo)(()=>({add:o,delete:r,clear:s}),[o,r,s]);return(0,oe.useMemo)(()=>[t,u],[t,u])}var re=v("react");function So(e){let[t,n]=(0,re.useState)([...e]),o=t.length,r=(0,re.useMemo)(()=>{let d=[...t];return d.reverse(),d},[t]),s=(0,re.useCallback)(d=>{let f=[...t,d];return n(f),f.length},[t]),u=(0,re.useCallback)(()=>{if(t.length>0){let d=t[t.length-1];return n([...t.slice(0,t.length-1)]),d}},[t]),i=(0,re.useCallback)(()=>{if(t.length>0)return t[t.length-1]},[t]),l=()=>n([]),a=(0,re.useCallback)(()=>t.length===0,[t]);return[t,{clear:l,isEmpty:a,length:o,peek:i,pop:u,push:s},r]}var N=v("react");function wo(e){let{text:t,language:n="en-US",voiceURI:o,onEnd:r=g,volume:s=1,pitch:u=1,rate:i=1}=e,l=w(r),a=(0,N.useRef)(null),[c,d]=(0,N.useState)(!1);(0,N.useEffect)(()=>{if(a.current&&c&&(a.current.text=t,a.current.lang=n,a.current.volume=s,a.current.pitch=u,a.current.rate=i,o)){let y=window.speechSynthesis.getVoices().find(x=>x.voiceURI===o);y&&(a.current.voice=y)}},[t,c,n,o,s,u,i]);let f=(0,N.useCallback)(()=>{if(!("speechSynthesis"in window)){console.error("Web Speech API is not supported in your browser.");return}if(a.current&&window.speechSynthesis.cancel(),a.current=new SpeechSynthesisUtterance(t),a.current.lang=n,a.current.volume=s,a.current.pitch=u,a.current.rate=i,o){let y=window.speechSynthesis.getVoices().find(x=>x.voiceURI===o);y&&(a.current.voice=y)}a.current.onstart=()=>d(!0),a.current.onend=()=>{d(!1),l()},a.current.onerror=()=>d(!1),window.speechSynthesis.speak(a.current)},[t,n,s,u,i,o,l]),m=(0,N.useCallback)(()=>{window.speechSynthesis&&c&&(window.speechSynthesis.pause(),d(!1))},[c]),p=(0,N.useCallback)(()=>{window.speechSynthesis&&!c&&(window.speechSynthesis.resume(),d(!0))},[c]),b=(0,N.useCallback)(()=>{window.speechSynthesis&&(window.speechSynthesis.cancel(),d(!1))},[]);return{start:f,pause:m,resume:p,stop:b,isPlaying:c}}var Ro=e=>typeof e=="function";var xo=e=>typeof e=="number";var C=v("react"),Zr=(e,t)=>{let n=e>0?e-1:t.length+e;return n>=t.length-1&&(n=t.length-1),n<0&&(n=0),n},Lo=(e,t)=>{let n=Zr(e,t);return{_current:t[n],_before:t.slice(0,n),_after:t.slice(n+1)}};function Oo(e){let[t,n]=(0,C.useState)({present:e,past:[],future:[]}),{present:o,past:r,future:s}=t,u=(0,C.useRef)(e),i=(0,C.useCallback)(x=>{let h=x??u.current;u.current=h,n({present:h,future:[],past:[]})},[u,n]),l=(0,C.useCallback)((x,h)=>{n(S=>{let{past:R,present:T}=S,{overwriteLastEntry:O=!1}=h||{},L;return Ro(x)?L=x(T):L=x,O?{present:L,past:R,future:[]}:{present:L,future:[],past:[...R,T]}})},[]),a=(0,C.useCallback)((x=1)=>{n(h=>{let{future:S,past:R,present:T}=h;if(S.length===0)return h;let{_before:O,_current:L,_after:A}=Lo(x,S);return{past:[...R,T,...O],present:L,future:A}})},[]),c=(0,C.useCallback)((x=-1)=>{n(h=>{let{future:S,past:R,present:T}=h;if(R.length===0)return h;let{_before:O,_current:L,_after:A}=Lo(x,R);return{past:O,present:L,future:[...A,T,...S]}})},[]),d=(0,C.useCallback)(x=>{let h=xo(x)?x:Number(x);if(h!==0){if(h>0)return a(h);c(h)}},[c,a]),f=(0,C.useCallback)(()=>{d(-1)},[d]),m=(0,C.useCallback)(()=>{d(1)},[d]),p=(0,C.useMemo)(()=>r.length>0,[r.length]),b=(0,C.useMemo)(()=>s.length>0,[s.length]),E=(0,C.useMemo)(()=>({backLength:r.length,forwardLength:s.length,go:d,back:f,forward:m,reset:i,undo:f,redo:m,canUndo:p,canRedo:b}),[f,b,p,m,s.length,d,r.length,i]);return(0,C.useMemo)(()=>[o,l,E],[E,o,l])}var pe=v("react");function Mo(e,t=300){let[n,o]=(0,pe.useState)(!0),r=(0,pe.useRef)(void 0),s=(0,pe.useCallback)((...u)=>{n&&(o(!1),e(...u))},[n,e]);return(0,pe.useEffect)(()=>n?g:(r.current=window.setTimeout(()=>{o(!0)},t),()=>window.clearTimeout(r.current)),[n,t]),[s,n]}var Do=v("react"),es=e=>!e;function Fo(e=!1,t=es){return(0,Do.useReducer)(t,e)}var ve=v("react"),ts={maxSize:100},Co=(e,t)=>{let{maxSize:n}=(0,ve.useMemo)(()=>({...ts,...t}),[t]),[o,r]=(0,ve.useState)([e]),s=(0,ve.useCallback)(l=>r(a=>{let c=a.length>=n?a.slice(0,n):a;return typeof l=="function"?[l(a[0]),...c]:[l,...c]}),[n]),u=(0,ve.useCallback)(()=>{r(l=>{if(l.length===1)return l;let[,...a]=l;return a})},[]);return(0,ve.useMemo)(()=>[o[0],s,u],[s,u,o])};var k=v("react");function ns(e){return typeof e=="function"}function ko(e,t){let[n,o]=(0,k.useState)(e),[r,s]=(0,k.useState)([]),[u,i]=(0,k.useState)([]),l=t?.maxDepth??100,a=(0,k.useCallback)(()=>{s(S=>{let R=[...S],T=R.pop();return typeof T<"u"&&(i(O=>[n,...O]),o(T)),R})},[n]),c=(0,k.useCallback)(()=>{i(S=>{let R=[...S],T=R.shift();return typeof T<"u"&&(s(O=>[...O,n]),o(T)),R})},[n]),d=(0,k.useCallback)(()=>r.length>0,[r]),f=(0,k.useCallback)(()=>u.length>0,[u]),m=(0,k.useMemo)(()=>r.length>0,[r]),p=(0,k.useMemo)(()=>u.length>0,[u]),b=(0,k.useCallback)(S=>{o(R=>{let T=ns(S)?S(R):S;return s(O=>{let L=[...O,R];return L.length>l&&L.shift(),L}),i([]),T})},[l]),E=(0,k.useCallback)(()=>{s([])},[]),y=(0,k.useCallback)(()=>{i([])},[]),x=(0,k.useCallback)(()=>{s([]),i([])},[]),h=(0,k.useMemo)(()=>({undo:a,redo:c,canUndo:d,canRedo:f,clearUndoStack:E,clearRedoStack:y,clearAll:x,isUndoPossible:m,isRedoPossible:p}),[a,c,d,f,E,y,x,m,p]);return[n,b,h]}var Io=v("react");function Vo({isEnabled:e,pattern:t}){(0,Io.useEffect)(()=>{if(!("vibrate"in navigator)||typeof navigator.vibrate!="function"){console.warn("Vibration API not supported by the current browser");return}return e?navigator.vibrate(t):navigator.vibrate(0),()=>{navigator.vibrate(0)}},[e,t])}var Ne=v("react"),Uo=()=>{let e=(0,Ne.useRef)(null),[t,n]=(0,Ne.useState)({currentTime:0,duration:0,isPaused:!0,isMuted:!1,volume:1}),o={play:()=>{e.current&&(e.current.play(),n({...t,isPaused:!1}))},pause:()=>{e.current&&(e.current.pause(),n({...t,isPaused:!0}))},toggleMute:()=>{e.current&&(e.current.muted=!e.current.muted,n({...t,isMuted:e.current.muted}))},setVolume:r=>{e.current&&(e.current.volume=r,n({...t,volume:r}))},setCurrentTime:r=>{e.current&&(e.current.currentTime=r,n({.