@ndriadev/react-tools
Version:
A React library of hooks, components, utils and types ready to use
1 lines • 87.5 kB
JavaScript
"use strict";var re=(e,r,t)=>{if(!r.has(e))throw TypeError("Cannot "+t)};var O=(e,r,t)=>(re(e,r,"read from private field"),t?t.call(e):r.get(e)),te=(e,r,t)=>{if(r.has(e))throw TypeError("Cannot add the same private member more than once");r instanceof WeakSet?r.add(e):r.set(e,t)},ne=(e,r,t,n)=>(re(e,r,"write to private field"),n?n.call(e,t):r.set(e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),ze=require("react-dom"),x=require("./detectBrowser-g550P3EY.cjs"),Ve=require("./jsx-runtime-ktsSLzJf.cjs");var ce=typeof document<"u"?document.currentScript:null,M;class ye{constructor(){te(this,M,void 0);ne(this,M,new Map)}subscribe(r,t){O(this,M).has(r)||O(this,M).set(r,[]);const n=O(this,M).get(r);n.push(t),O(this,M).set(r,n)}unsubscribe(r,t){if(!O(this,M).has(r))return!1;const n=O(this,M).get(r).filter(u=>u!==t);return O(this,M).set(r,n),!0}publish(r,t){(O(this,M).get(r)??[]).forEach(u=>u(t))}async publishAsync(r,t){const n=O(this,M).get(r)??[],u=[];n.forEach(i=>u.push(i(t))),await Promise.allSettled(u)}}M=new WeakMap;class We extends EventTarget{constructor(){super()}dispatch(r){this.dispatchEvent(r)}listen(r,t,n){return this.addEventListener(r,t,n),()=>{this.removeEventListener(r,t,n)}}}const Y=new ye,He=e=>{const r=c.useRef(async u=>await Y.publish(e,u)),t=c.useRef(new Set),n=c.useRef(u=>{Y.subscribe(e,u);const i=()=>Y.unsubscribe(e,u);return t.current.add(i),()=>{t.current.delete(i),Y.unsubscribe(e,u)}});return c.useEffect(()=>()=>{t.current.forEach(u=>u())},[e]),[n.current,r.current]},qe=(e,r,t)=>{const n=c.useRef();(!n.current||!t||t(n.current,r))&&(n.current=r),c.useEffect(e,n.current)},je=(e,r)=>{const t=c.useRef();(!t.current||!x.isDeepEqual(t.current,r))&&(t.current=r),c.useEffect(e,t.current)},I=e=>{const r=c.useRef(!1),t=c.useRef(),n=c.useRef(!1);c.useEffect(()=>(r.current||(t.current=e(),r.current=!0,setTimeout(()=>n.current=!0,1)),()=>{n.current&&(t.current&&t.current(),r.current=!1)}),[])},Ue=(e,r,t)=>{const n=c.useRef();(!n.current||!t||t(n.current,r))&&(n.current=r),c.useLayoutEffect(e,n.current)},Ge=(e,r)=>{const t=c.useRef();(!t.current||!x.isDeepEqual(t.current,r))&&(t.current=r),c.useLayoutEffect(e,t.current)};function Q(e){const r=c.useReducer(t=>t+1e-11,0);return e?r:r[1]}const Be=e=>{const r=Q(),t=c.useRef(e),n=c.useRef(),u=c.useRef(!1),i=c.useRef(!1);u.current&&(i.current=!0),c.useLayoutEffect(()=>(u.current||(n.current=t.current(),u.current=!0,r()),()=>{i.current&&(n.current&&n.current(),u.current=!1)}),[])},$e=()=>{const e=c.useRef(!1);return I(()=>(e.current=!0,()=>{e.current=!1})),c.useCallback(()=>e.current,[])};function Je(e){const[r,t]=c.useState(e),n=c.useRef();return e!==r&&(n.current!==null&&clearTimeout(n.current),n.current=setTimeout(()=>t(e))),r}const we=c.useDeferredValue!==void 0?c.useDeferredValue:Je,Ye=(e,r)=>{const t=c.useRef();c.useEffect(()=>{if(!t.current)t.current=r;else{const n=Reflect.ownKeys(r);for(const u of n)Reflect.get(r,u)!==Reflect.get(t.current,u)&&console.log(e+" component updated",t,r)}},[e,r]),c.useEffect(()=>(console.log(e+" component mounted"),()=>{console.log(e+" component unmounted")}),[])},_e=e=>{const r=c.useRef(),t=c.useRef(!0),n=c.useRef(e),u=c.useCallback(i=>t.current=i,[]);return c.useEffect(()=>{t.current?r.current=e:n.current=e},[e]),t.current&&n.current&&(r.current=n.current,n.current=null),[r.current,u]},Xe=(e,r,t)=>{const n=c.useRef();return(!n.current||!t||t(n.current,r))&&(n.current=r),c.useCallback(e,n.current)},Ke=(e,r)=>{const t=c.useRef();return(!t.current||!x.isDeepEqual(t.current,r))&&(t.current=r),c.useCallback(e,t.current)},F=e=>{const r=c.useRef(e),t=c.useCallback((...n)=>r.current(...n),[]);return c.useLayoutEffect(()=>{r.current=e}),t},Qe=(e,r,t)=>{const n=c.useRef();return(!n.current||!t||t(n.current,r))&&(n.current=r),c.useMemo(e,n.current)},Ze=(e,r)=>{const t=c.useRef();return(!t.current||!x.isDeepEqual(t.current,r))&&(t.current=r),c.useMemo(e,t.current)},ke=(...e)=>{const r=c.useRef(null);return c.useMemo(()=>Object.defineProperty({},"current",{get(){return r.current},set(t){r.current=t,e.forEach(n=>typeof n=="function"?n(r.current):n.current=r.current)},enumerable:!1,configurable:!1}),[e])},ue=Symbol("useLazyRef.noValue"),Z=e=>{const r=c.useRef(ue);return r.current===ue&&(r.current=e()),r};let er=0;const rr=()=>`:${(er++).toString(32)}:`;function tr(){return Z(rr).current}const Ce=c.useId===void 0?tr:c.useId;function nr(e){const[r,t]=c.useState(e),n=F(()=>r),u=c.useCallback(()=>t(e),[e]);return[r,t,n,u]}const Se=(e,r="no-limit")=>{const[t,n]=c.useState(e),[,u]=c.useState(0),i=c.useRef([t]),s=c.useRef(r==="no-limit"?1/0:r),o=c.useRef(0),a=c.useRef(!0),l=c.useCallback(v=>a.current=v,[]),f=c.useCallback(v=>{const y=v instanceof Function?v(i.current[o.current]):v;i.current=i.current.slice(0,o.current+1),!a.current&&i.current.pop(),i.current.push(y),i.current.length>s.current?i.current.shift():a.current&&o.current++,n(y),u(b=>b+1)},[s]),m=c.useCallback(()=>{o.current!==0&&(o.current--,n(i.current[o.current]),u(v=>v+1))},[]),h=c.useCallback(()=>{o.current!==i.current.length-1&&(o.current++,n(i.current[o.current]),u(v=>v+1))},[]),g=c.useCallback(v=>{v<0||v>i.current.length-1||(o.current=v,n(i.current[o.current]),u(y=>y+1))},[]),R=c.useCallback(v=>{const y=v||i.current[o.current];i.current=[y],o.current=0,n(i.current[o.current]),u(b=>b+1)},[]),d=o.current>0,p=o.current<i.current.length-1;return[t,f,{history:Object.seal([...i.current]),presentPointer:o.current,trackUpdate:l,canUndo:d,canRedo:p,undo:m,redo:h,go:g,clear:R}]},cr=(e,r="no-limit")=>{const[t,n,u]=Se(e,r),i=F(()=>t);return[t,n,i,u]},ur=(e,r,t)=>{const[n,u]=c.useReducer(e,r,t),i=F(()=>n),s=c.useRef(void 0),o=c.useCallback(()=>u(s.current),[]);return s.current===void 0&&(s.current=n),[n,u,i,o]},Ee=(e,r,t,n="no-limit")=>{const[u,i]=c.useState(()=>t?t(r):r),[,s]=c.useState(0),o=c.useRef([u]),a=c.useRef(n==="no-limit"?1/0:n),l=c.useRef(0),f=c.useRef(!0),m=c.useCallback(b=>f.current=b,[]),h=c.useCallback(b=>{const k=e(o.current[l.current],b);o.current=o.current.slice(0,l.current+1),!f.current&&o.current.pop(),o.current.push(k),o.current.length>a.current?o.current.shift():f.current&&l.current++,i(b),s(E=>E+1)},[a,e]),g=c.useCallback(()=>{l.current!==0&&(l.current--,i(o.current[l.current]),s(b=>b+1))},[]),R=c.useCallback(()=>{l.current!==o.current.length-1&&(l.current++,i(o.current[l.current]),s(b=>b+1))},[]),d=c.useCallback(b=>{b<0||b>o.current.length-1||(l.current=b,i(o.current[l.current]),s(k=>k+1))},[]),p=c.useCallback(b=>{const k=b?e(o.current[l.current],b):o.current[l.current];o.current=[k],l.current=0,i(o.current[l.current]),s(E=>E+1)},[e]),v=l.current>0,y=l.current<o.current.length-1;return[u,h,{history:Object.seal([...o.current]),presentPointer:l.current,trackUpdate:m,canUndo:v,canRedo:y,undo:g,redo:R,go:d,clear:p}]},sr=(e,r,t,n="no-limit")=>{const[u,i,s]=Ee(e,r,t,n),o=F(()=>u);return[u,i,o,s]},se=new We,ee=()=>{const e=c.useRef([]),r=c.useRef((n,u,i)=>{const s=se.listen(n,u,i);return e.current.push(s),s}),t=c.useRef(n=>{se.dispatch(n)});return c.useEffect(()=>()=>{e.current.forEach(n=>n())},[]),[r.current,t.current]};function T({type:e,listener:r,element:t=window,listenerOpts:n,effectType:u="normal"}){const i=c.useRef(n),s=c.useRef(),o=u==="layout"?c.useLayoutEffect:c.useEffect,a=c.useRef(Array.isArray(e)?e:[e]);return o(()=>{const f=i.current;return s.current=Reflect.has(t,"current")?(t==null?void 0:t.current)!==null?t.current:null:t,s.current&&a.current.forEach(m=>s.current.addEventListener(m,r,f)),()=>{s.current&&a.current.forEach(m=>s.current.removeEventListener(m,r,f))}},[t,r]),F(()=>{s.current&&a.current.forEach(f=>s.current.removeEventListener(f,r,i.current))})}const or=(e=window)=>F(t=>{(Reflect.has(e,"current")?e.current:e).dispatchEvent(t)}),ir=e=>{const[r,t]=c.useReducer(o=>o+1e-4,0),n=we(r),u=c.useRef(e),i=c.useRef();return c.useEffect(()=>{n!==0&&(i.current?u.current(...i.current):u.current())},[n]),c.useCallback((...o)=>{i.current=o,t()},[])},ar=()=>S(c.useCallback(e=>(document.addEventListener("visibilitychange",e,{passive:!0}),()=>{document.removeEventListener("visibilitychange",e)}),[]),c.useCallback(()=>document.visibilityState,[]));function lr(e,r){const t=c.useRef({current:!1,previous:!1}),n=c.useMemo(()=>r==null?void 0:r.onEnter,[r==null?void 0:r.onEnter]),u=c.useMemo(()=>r==null?void 0:r.onLeave,[r==null?void 0:r.onLeave]),i=c.useMemo(()=>r==null?void 0:r.onChange,[r==null?void 0:r.onChange]),s=S(c.useCallback(o=>{const a=e!=null&&e.current?e.current:e,l=m=>{t.current.current=!0,n&&n(m),i&&i(!0),o()},f=m=>{t.current.current=!1,u&&u(m),i&&i(!1),o()};return a==null||a.addEventListener("pointerenter",l,{passive:!0}),a==null||a.addEventListener("pointerleave",f,{passive:!0}),()=>{a==null||a.removeEventListener("pointerenter",l),a==null||a.removeEventListener("pointerleave",f)}},[i,n,u,e]),c.useCallback(()=>(t.current.current!==t.current.previous&&(t.current.previous=t.current.current),t.current.previous),[]));if(!r||r.returnValue===!0)return s}const G=new Set,oe=()=>G.forEach(e=>e()),Pe={xs:{value:576,condition:"<"},sm:{value:576,condition:">="},md:{value:768,condition:">="},lg:{value:992,condition:">="},xl:{value:1200,condition:">="}};function ie(e){const r=window.innerWidth,t={},n=e??Pe,u=Object.keys(n);for(const i of u)if(Reflect.get(n,i)){const s=Reflect.get(n,i),{value:o,condition:a}=typeof s=="number"?{value:s,condition:">"}:s;Reflect.set(t,i,Function(`return ${r}${a}${o}`)())}return t}function dr(e){const r=c.useRef(()=>ie(e===void 0?Pe:e));return S(c.useCallback(t=>(G.size===0&&window.addEventListener("resize",oe,{passive:!0}),G.add(t),()=>{G.delete(t),G.size===0&&window.removeEventListener("resize",oe)}),[]),c.useMemo(()=>{let t=r.current();return()=>{const n=r.current(),u=Object.keys(n);for(const i of u)if(Reflect.get(t,i)!==Reflect.get(n,i)){t=n;break}return t}},[]))}const Le=(e,r)=>{if(!e||!r)return!1;if(e.contains(r))return!0;if(e.children.length>0){for(let t=0,n=e.children.length;t<n;t++)if(Le(e.children[t],r))return!0}return!1},fr=(e,r)=>{const t=c.useCallback(n=>{const u=e!=null&&e.current?e.current:e;Le(u,n.target)||r(n)},[e,r]);T({type:"pointerdown",listener:t})},B=new Set,V=()=>B.forEach(e=>e()),ae=()=>{const e=Reflect.get(navigator,"connection"),r={isSupported:!!e,isOnline:navigator.onLine};return e&&(r.isSupported=!0,r.downlink=e.downlink,r.downlinkMax=e.downlinkMax,r.effectiveType=e.effectiveType,r.rtt=e.rtt,r.saveData=e.saveData,r.type=e.type),r};function De(e){const r=c.useRef(e??["isSupported","isOnline","since","downlink","downlinkMax","effectiveType","rtt","saveData","type"]);return S(c.useCallback(t=>{const n=Reflect.get(navigator,"connection");return B.size===0&&(window.addEventListener("online",V,{passive:!0}),window.addEventListener("offline",V,{passive:!0}),n&&n.addEventListener("change",V)),B.add(t),()=>{B.delete(V),B.size===0&&(window.removeEventListener("online",V),window.removeEventListener("offline",V),n&&n.removeEventListener("change",V))}},[]),c.useMemo(()=>{let t=ae();return()=>{const n=ae();for(const u of r.current)if(n[u]!==t[u]){t={...n,...t.isOnline!==n.isOnline&&{since:new Date().getTime()}};break}return t}},[]))}const mr=()=>De(["isOnline"]).isOnline,Te=(e,r)=>{const t=c.useRef(),n=c.useRef(!0),u=c.useRef(),i=c.useRef(e);return I(()=>()=>{var s;u.current=void 0,(s=t.current)==null||s.disconnect(),t.current=void 0}),[c.useCallback(s=>{var o;!n.current||!s||(s&&(!u.current||u.current!==s)&&(u.current=s,t.current=new ResizeObserver(e),t.current.observe(s,r)),i.current!==e&&t.current&&s&&(i.current=e,(o=t.current)==null||o.disconnect(),t.current=void 0,t.current=new ResizeObserver(e),t.current.observe(s,r)))},[e,r]),c.useCallback(()=>{n.current&&(n.current=!1,t.current&&u.current&&t.current.unobserve(u.current))},[]),c.useCallback(()=>{var s;n.current||(n.current=!0,t.current&&u.current&&((s=t.current)==null||s.observe(u.current,r)))},[r])]},vr=(e,r)=>{const t=c.useRef(),n=c.useRef(!0),u=c.useRef(),i=c.useRef(e);return I(()=>()=>{var s;u.current=void 0,(s=t.current)==null||s.disconnect(),t.current=void 0}),[c.useCallback(s=>{var o;!n.current||!s||(s&&(!u.current||u.current!==s)&&(u.current=s,t.current=new IntersectionObserver(e,r),t.current.observe(s)),i.current!==e&&t.current&&s&&(i.current=e,(o=t.current)==null||o.disconnect(),t.current=void 0,t.current=new IntersectionObserver(e,r),t.current.observe(s)))},[e,r]),c.useCallback(()=>{n.current&&(n.current=!1,t.current&&u.current&&t.current.unobserve(u.current))},[]),c.useCallback(()=>{var s;n.current||(n.current=!0,t.current&&u.current&&((s=t.current)==null||s.observe(u.current)))},[])]},hr=(e,r)=>{const t=c.useRef(),n=c.useRef(!0),u=c.useRef();return I(()=>()=>{var i;u.current=void 0,(i=t.current)==null||i.disconnect(),t.current=void 0}),[c.useCallback(i=>{!n.current||!i||i&&(!u.current||u.current!==i)&&(u.current=i,t.current=new MutationObserver(e),t.current.observe(i,r))},[e,r]),c.useCallback(()=>{n.current&&(n.current=!1,t.current&&u.current&&t.current.disconnect())},[]),c.useCallback(()=>{n.current||(n.current=!0,t.current&&u.current&&t.current.observe(u.current,r))},[r]),c.useCallback(()=>{var i;return(i=t.current)==null?void 0:i.takeRecords()},[])]},gr=()=>{const[e,r]=c.useState(()=>new DOMRect),[t]=Te(c.useCallback(n=>{r(u=>{const i=n[0].target.getBoundingClientRect();return i.top!==u.top||i.left!==u.left||i.right!==(u==null?void 0:u.right)||i.bottom!==u.bottom?i:u})},[]));return[t,e]};function pr(e){const r=c.useRef(),t=c.useRef(),n=c.useRef(),u=c.useRef({isVisible:!1,ratio:0}),i=c.useRef({isVisible:!1,ratio:0});I(()=>()=>{var a;r.current=void 0,(a=t.current)==null||a.disconnect(),t.current=void 0});const s=c.useCallback(a=>{a&&a&&(!r.current||r.current!==a)&&(r.current=a,t.current=new IntersectionObserver(l=>{const{isIntersecting:f,intersectionRatio:m}=l[0];i.current={isVisible:f,ratio:m},(f!==u.current.isVisible||m!==u.current.ratio)&&n.current&&n.current()},{root:e==null?void 0:e.root,rootMargin:e==null?void 0:e.rootMargin,threshold:e==null?void 0:e.threshold}),t.current.observe(a))},[e==null?void 0:e.root,e==null?void 0:e.rootMargin,e==null?void 0:e.threshold]),o=S(c.useCallback(a=>(n.current=a,()=>{n.current=void 0}),[]),c.useCallback(()=>((i.current.isVisible!==u.current.isVisible||i.current.ratio!==u.current.ratio)&&(u.current=i.current),e!=null&&e.withRatio?u.current:u.current.isVisible),[e==null?void 0:e.withRatio]));return e!=null&&e.withRatio?[s,o.isVisible,o.ratio]:[s,o]}const Ie=(e,r)=>{const t=c.useRef(c.useMemo(()=>{const{media:n,matches:u}=window.matchMedia(e);return{matches:u,media:n}},[]));return S(c.useCallback(n=>{const u=window.matchMedia(e),i=s=>{r&&r(s),n()};return u.addEventListener("change",i,{passive:!0}),()=>{u.removeEventListener("change",i)}},[e,r]),c.useCallback(()=>{const{media:n,matches:u}=window.matchMedia(e);return u!==t.current.matches&&(t.current={matches:u,media:n}),t.current},[e]))},xe=()=>Ie("(prefers-reduced-motion: reduce)").matches;function Rr(e){return-(Math.cos(Math.PI*e)-1)/2}function br(e,r){const t=r==="x"?"scrollLeft":"scrollTop";return(e?e[t]:document.body[t]+document.documentElement[t])??0}function yr(e,r,t,n,u){if(!r)return 0;const s=(t||document.body).getBoundingClientRect(),o=r.getBoundingClientRect(),a=l=>o[l]-s[l];if(e==="y"){const l=a("top");if(l===0)return 0;if(n==="start")return l-u;const f=t?s.height:window.innerHeight;return n==="end"?l+u-f+o.height:n==="center"?l-f/2+o.height/2:0}else{const l=a("left");if(l===0)return 0;if(n==="start")return l-u;const f=t?s.width:window.innerWidth;return n==="end"?l+u-f+o.width:n==="center"?l-f/2+o.width/2:0}}const wr=({duration:e=1e3,axis:r="y",animation:t=Rr,offset:n=0,cancelable:u=!1,onFinish:i,scrollableElement:s})=>{const o=c.useRef(),a=c.useRef(0),l=c.useRef(!1),f=c.useRef(null),m=xe(),h=c.useCallback(()=>o.current&&cancelAnimationFrame(o.current),[]),g=c.useCallback(()=>u&&(l.current=!0),[u]);T({type:"wheel",listener:g,listenerOpts:{passive:!0}}),T({type:"touchmove",listener:g,listenerOpts:{passive:!0}});const R=c.useCallback((d="start")=>{l.current=!1,h();const p=typeof s=="function"?s():s!=null&&s.current?s.current:s,v=br(p,r),y=yr(r,f.current,p,d,n);function b(){a.current===0&&(a.current=performance.now());const E=performance.now()-a.current,P=m||e===0?1:E/e,w=v+y*t(P),C=r==="x"?"scrollLeft":"scrollTop";p?p[C]=w:(document.body[C]=w,document.documentElement[C]=w),!l.current&&P<1?o.current=requestAnimationFrame(b):(i&&i(),a.current=0,o.current=void 0,h())}b()},[t,r,h,e,n,i,m,s]);return{targetRef:f,scroll:R,cancel:h}},q=new Set;function kr(e={type:"client"}){const r=c.useRef({x:null,y:null}),t=c.useRef({x:null,y:null});return S(c.useCallback(n=>{const u=i=>{var d;const{screenX:s,screenY:o,clientX:a,clientY:l,pageX:f,pageY:m}=i;let h=null,g=null,R;e.type==="client"?(h=a,g=l):e.type==="page"?(h=f,g=m):(h=s,g=o),(e.relativeElement&&"current"in e.relativeElement?e.relativeElement.current:e.relativeElement)&&(R=((d=e.relativeElement)!=null&&d.current?e.relativeElement.current:e.relativeElement).getBoundingClientRect(),h=f-(R.left+window.scrollX),g=m-(R.top+window.scrollY)),t.current={x:h,y:g,relativeElementDim:R},q.forEach(p=>p())};return q.size===0&&(window.addEventListener("pointerdown",u),window.addEventListener("pointermove",u),window.addEventListener("pointerup",u)),q.add(n),()=>{q.delete(n),q.size===0&&(window.removeEventListener("pointerdown",u),window.removeEventListener("pointermove",u),window.removeEventListener("pointerup",u))}},[e.relativeElement,e.type]),c.useCallback(()=>((r.current.x!==t.current.x||r.current.y!==t.current.y)&&(r.current=t.current),r.current),[]))}const Cr=(e,{duration:r=1e3,normalPress:t,onStart:n,onFinish:u})=>{const i=c.useRef(),s=c.useRef(),o=c.useRef(!1),a=c.useRef(),l=c.useCallback(()=>{clearTimeout(s.current),u&&u(i.current),!o.current&&t&&t(i.current)},[t,u]),f=c.useCallback(m=>{o.current=!1,i.current=m,n&&n(m),s.current=setTimeout(async()=>{o.current=!0,await e(m)},r)},[e,r,n]);return c.useCallback(m=>{var h,g;m?(m.addEventListener("pointerdown",f),m.addEventListener("pointerup",l),a.current=m):((h=a.current)==null||h.removeEventListener("pointerdown",f),(g=a.current)==null||g.removeEventListener("pointerup",l),a.current=void 0)},[f,l])},Sr=e=>{const r=c.useRef(0),t=c.useRef("tolerance"in e?e.tolerance:300),n=c.useRef();return c.useCallback(u=>{"persist"in u&&u.persist(),n.current&&clearTimeout(n.current),r.current++,r.current===1&&"singleClick"in e&&e.singleClick&&(n.current=setTimeout(()=>{e.singleClick(u),r.current=0},t.current)),r.current===2&&("doubleClick"in e?e.doubleClick(u):e(u),r.current=0)},[e])},Er=({element:e,listener:r,opts:t})=>T({type:"beforeunload",element:e,listener:r,listenerOpts:t}),j=new Set,Pr=e=>{const r=c.useRef(),t=c.useRef(!1),n=S(c.useCallback(s=>{const o=()=>{console.log("orientation"),t.current=!0,j.forEach(l=>l())};j.add(s);let a=!1;return j.size===1&&(screen.orientation.onchange=o,window&&"getScreenDetails"in window&&(a=!0,window.getScreenDetails().then(l=>{a&&(l.addEventListener("currentscreenchange",o),e&&l.addEventListener("screenschange",o),r.current=l,s())}).catch(()=>{}))),()=>{j.delete(s),j.size===0&&(r.current&&(r.current.removeEventListener("currentscreenchange",o),e&&r.current.removeEventListener("screenschange",o)),a=!1,screen.orientation.onchange=null)}},[e]),c.useMemo(()=>{let s={currentScreen:{availHeight:screen.availWidth,availWidth:screen.availWidth,height:screen.height,width:screen.width,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,orientation:{angle:screen.orientation.angle,type:screen.orientation.type},availLeft:void 0,availTop:void 0,left:void 0,top:void 0,devicePixelRatio:void 0,isInternal:void 0,isPrimary:void 0,label:void 0},screens:void 0};return()=>{var l,f;const o=Reflect.ownKeys(s.currentScreen);s.currentScreen.isPrimary===void 0&&r.current&&(s={currentScreen:{...s.currentScreen,availLeft:r.current.currentScreen.availLeft,availTop:r.current.currentScreen.availTop,left:r.current.currentScreen.left,top:r.current.currentScreen.top,devicePixelRatio:r.current.currentScreen.devicePixelRatio,isInternal:r.current.currentScreen.isInternal,isPrimary:r.current.currentScreen.isPrimary,label:r.current.currentScreen.label},screens:e&&((l=r.current)!=null&&l.screens)?r.current.screens:void 0});let a=!1;if(t.current){t.current=!1;for(let m=0,h=o.length;m<h;m++)if(o[m]==="orientation"?(s.currentScreen.orientation.angle!==screen.orientation.angle||s.currentScreen.orientation.type!==screen.orientation.type)&&(a=!0):o[m]in screen&&s.currentScreen[o[m]]!==screen[o[m]]&&(a=!0),a){s={currentScreen:{availHeight:screen.availWidth,availWidth:screen.availWidth,height:screen.height,width:screen.width,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,orientation:{angle:screen.orientation.angle,type:screen.orientation.type},availLeft:r.current?r.current.currentScreen.availLeft:void 0,availTop:r.current?r.current.currentScreen.availTop:void 0,left:r.current?r.current.currentScreen.left:void 0,top:r.current?r.current.currentScreen.top:void 0,devicePixelRatio:r.current?r.current.currentScreen.devicePixelRatio:void 0,isInternal:r.current?r.current.currentScreen.isInternal:void 0,isPrimary:r.current?r.current.currentScreen.isPrimary:void 0,label:r.current?r.current.currentScreen.label:void 0},screens:e&&((f=r.current)!=null&&f.screens)?r.current.screens:void 0};break}}return s}},[e])),u=c.useRef(s=>screen.orientation.lock(s)),i=c.useRef(()=>screen.orientation.unlock());return[n,u.current,i.current]},Lr=({hotKey:e,type:r="keydown",target:t=window,listener:n,listenerOpts:u})=>{const i=c.useMemo(()=>x.hotKeyHandler(e,n),[e,n]);return T({type:r,listener:i,listenerOpts:u,element:t,effectType:"normal"})},Dr=({target:e=window,listener:r})=>{const t=c.useRef([]),n=c.useRef(-1),u=c.useRef([]),i=c.useRef(a=>{t.current.push(a)}),s=c.useRef(a=>{const l=t.current.findIndex(f=>f.pointerId===a.pointerId);t.current.splice(l,1),t.current.length<2&&(n.current=-1)}),o=c.useCallback(a=>{const l=t.current.findIndex(f=>f.pointerId===a.pointerId);if(t.current[l]=a,t.current.length===2){const f=Math.abs(t.current[0].clientX-t.current[1].clientX);n.current>0&&(f>n.current&&r(a,"zoomIn"),f<n.current&&r(a,"zoomOut")),n.current=f}},[r]);return u.current[0]=T({type:"pointerdown",listener:i.current,effectType:"normal",element:e}),u.current[1]=T({type:"pointermove",listener:o,effectType:"normal",element:e}),u.current[2]=T({type:"pointerup",listener:s.current,effectType:"normal",element:e}),u.current[3]=T({type:"pointercancel",listener:s.current,effectType:"normal",element:e}),u.current[4]=T({type:"pointerout",listener:s.current,effectType:"normal",element:e}),u.current[5]=T({type:"pointerleave",listener:s.current,effectType:"normal",element:e}),c.useCallback(()=>{u.current.forEach(a=>a())},[])},Tr=({target:e,unadjustedMovement:r,onLock:t,onUnlock:n,onError:u})=>{const i=c.useRef(!1),s=c.useCallback(()=>{document.pointerLockElement?t&&t(document.pointerLockElement):(i.current=!1,document.removeEventListener("pointerlockerror",u,!1),document.removeEventListener("pointerlockchange",s),n&&n(e!=null&&e.current?e.current:e))},[u,t,n,e]),o=c.useCallback(async()=>{i.current=!1,await document.exitPointerLock(),n&&n(e!=null&&e.current?e.current:e)},[e,n]);return{lock:c.useCallback(()=>{const l=e!=null&&e.current?e.current:e;return new Promise(f=>!l||i.current?f():(document.addEventListener("pointerlockerror",u,!1),document.addEventListener("pointerlockchange",s),l.requestPointerLock({unadjustedMovement:!!r}).then(()=>{i.current=!0}).catch(m=>{u(m)}).finally(()=>{f()})))},[e,u,r,s]),unlock:o}},Ir=({element:e,listener:r,effectType:t,listenerOpts:n})=>{T({type:"contextmenu",listener:r,effectType:t,listenerOpts:n,element:e})},xr=({target:e,onSwipeStart:r,onSwipe:t,onSwipeEnd:n,options:u})=>{const i=c.useRef((R,d)=>Math.max(Math.abs(R),Math.abs(d))>=((u==null?void 0:u.threshold)??0)),s=c.useRef(),o=c.useRef((R,d)=>i.current(R,d)?Math.abs(R)>Math.abs(d)?R>0?"right":"left":d>0?"down":"up":"none"),a=c.useRef(!1),l=c.useRef({target:{x:0,y:0},start:{x:0,y:0},end:{x:0,y:0}}),f=T({type:["mousedown","touchstart"],element:e,listener:c.useCallback(R=>{var b;a.current=!0,s.current=R.target,R.target&&R.target.style.setProperty("touch-action","none"),R.target&&R.target.style.setProperty("-webkit-user-select","none"),R.target&&R.target.style.setProperty("-ms-user-select","none"),R.target&&R.target.style.setProperty("user-select","none");const{x:d,y:p}=((b=R.target)==null?void 0:b.getBoundingClientRect())??{x:0,y:0},{clientX:v,clientY:y}=x.isTouchEvent(R)?R.touches[0]:R;l.current={target:{x:d,y:p},start:{x:v,y},end:{x:v,y}},r&&r(R)},[r]),listenerOpts:{capture:!0,passive:(u==null?void 0:u.passive)!==void 0?u.passive:!0}}),m=T({type:["mousemove","touchmove"],element:window,listener:c.useCallback(R=>{const{clientX:d,clientY:p}=x.isTouchEvent(R)?R.touches[0]:R;l.current.end={x:d,y:p};const v=l.current.end.x-l.current.start.x,y=l.current.end.y-l.current.start.y;a.current&&i.current(v,y)&&t&&t(R,o.current(v,y),{x:v,y})},[t]),listenerOpts:{capture:!0,passive:(u==null?void 0:u.passive)!==void 0?u.passive:!0}}),h=T({type:["mouseup","mouseleave","touchend","touchcancel"],element:window,listener:c.useCallback(R=>{const d=l.current.end.x-l.current.start.x,p=l.current.end.y-l.current.start.y;a.current&&n&&n(R,o.current(d,p),{x:d,y:p}),a.current=!1,s.current&&s.current.style.removeProperty("touch-action"),s.current&&s.current.style.removeProperty("-webkit-user-select"),s.current&&s.current.style.removeProperty("-ms-user-select"),s.current&&s.current.style.removeProperty("user-select"),s.current=null},[n]),listenerOpts:{capture:!0,passive:(u==null?void 0:u.passive)!==void 0?u.passive:!0}});return c.useCallback(()=>{f(),m(),h()},[f,m,h])},Mr=({request:e,ref:r,hasMoreData:t,threshold:n,onBefore:u,onError:i,onSuccess:s})=>{const o=c.useRef(),a=c.useRef({data:void 0,loading:!0,fullData:!t()}),l=c.useCallback(()=>a.current.loading?Promise.resolve():(a.current.loading=!0,o.current&&o.current(),u&&u(),e(a.current.data).then(g=>{a.current.data=g,a.current.loading=!1,a.current.fullData=!t(g),o.current&&o.current(),s&&s()}).catch(g=>{a.current.loading=!1,o.current&&o.current(),i&&i(g)})),[u,s,i,e,t]),f=c.useCallback(g=>{if(a.current.loading||a.current.fullData)return;const R=g===document.documentElement?Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop):g.scrollTop,d=g.scrollHeight||Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),p=g.clientHeight||Math.max(document.documentElement.clientHeight,document.body.clientHeight);d-R<=p+(n??0)&&l()},[l,n]),m=c.useCallback(g=>{a.current.data=g instanceof Function?g(a.current.data):g,o.current&&o.current()},[]),h=S(c.useCallback(g=>{o.current=g;const R=r.current,d=()=>f(R);return R&&R.addEventListener("scroll",d,{passive:!0}),()=>{o.current=void 0,R&&R.removeEventListener("scroll",d)}},[f,r]),c.useMemo(()=>{let g={loading:!0,fullData:a.current.fullData};return()=>(g.data!==a.current.data&&(g.data=a.current.data===void 0?void 0:Array.isArray(a.current.data)?[...a.current.data]:typeof a.current.data=="object"?{...a.current.data}:a.current.data,g={...a.current}),(g.loading!==a.current.loading||g.fullData!==a.current.fullData)&&(g={...a.current}),g)},[]));return c.useEffect(()=>{u&&u(),a.current.loading=!0,e().then(g=>{a.current.data=g,a.current.loading=!1,a.current.fullData=!t(g),o.current&&o.current(),s&&s()}).catch(g=>{a.current.loading=!1,o.current&&o.current(),i&&i(g)})},[e,i,u,s,t]),{data:h.data,loading:h.loading,fullData:h.fullData,updateData:m,loadData:l}};function Ar({key:e,initialState:r,opts:t}){const[n,u]=ee(),i=c.useRef((t==null?void 0:t.serializer)||JSON.stringify),s=c.useRef((t==null?void 0:t.deserializer)||JSON.parse),o=c.useRef((t==null?void 0:t.mode)||"read/write"),a=c.useRef(c.useMemo(()=>{if(o.current==="write")return null;const d=localStorage.getItem(e);if(d!=null)return s.current(d);if(r){const p=r instanceof Function?r():r;return localStorage.setItem(e,i.current(p)),p}else return null},[])),l=c.useRef(d=>{const p=y=>{y.type==="storage"&&y.storageArea!==localStorage||o.current==="write"||(y instanceof CustomEvent?y.detail.key===e&&d():y.key===e&&d())};window.addEventListener("storage",p,{passive:!0});const v=n("local-strg",p);return()=>{window.removeEventListener("storage",p),v()}}),f=c.useRef(()=>{const d=localStorage.getItem(e)??"null",p=i.current(a.current);return d!==p&&(a.current=d!==null?s.current(d):null),a.current}),m=c.useSyncExternalStore(l.current,f.current),h=c.useRef(d=>{const p=i.current(d instanceof Function?d(a.current):d);localStorage.setItem(e,p),u(new CustomEvent("local-strg",{detail:{key:e}}))}),g=F(()=>a.current),R=c.useRef(()=>{localStorage.removeItem(e),u(new CustomEvent("local-strg",{detail:{key:e}}))});return o.current==="read"?[m,g,R.current]:o.current==="write"?[h.current,g,R.current]:[m,h.current,g,R.current]}function Or({key:e,initialState:r,opts:t}){const[n,u]=ee(),i=c.useRef((t==null?void 0:t.serializer)||JSON.stringify),s=c.useRef((t==null?void 0:t.deserializer)||JSON.parse),o=c.useRef((t==null?void 0:t.mode)||"read/write"),a=c.useRef(c.useMemo(()=>{if(o.current==="write")return null;const d=sessionStorage.getItem(e);if(d!=null)return s.current(d);if(r){const p=r instanceof Function?r():r;return sessionStorage.setItem(e,i.current(p)),p}else return null},[])),l=c.useRef(d=>{const p=y=>{y.type==="storage"&&y.storageArea!==sessionStorage||o.current==="write"||(y instanceof CustomEvent?y.detail.key===e&&d():y.key===e&&d())};window.addEventListener("storage",p,{passive:!0});const v=n("ssn-strg",p);return()=>{window.removeEventListener("storage",p),v()}}),f=c.useRef(()=>{const d=sessionStorage.getItem(e)??"null",p=i.current(a.current);return d!==p&&(a.current=d!==null?s.current(d):null),a.current}),m=c.useSyncExternalStore(l.current,f.current),h=c.useRef(d=>{const p=i.current(d instanceof Function?d(a.current):d);sessionStorage.setItem(e,p),u(new CustomEvent("ssn-strg",{detail:{key:e}}))}),g=c.useRef(()=>{sessionStorage.removeItem(e),u(new CustomEvent("ssn-strg",{detail:{key:e}}))}),R=F(()=>a.current);return o.current==="read"?[m,R,g.current]:o.current==="write"?[h.current,R,g.current]:[m,h.current,R,g.current]}const Nr=e=>{const[r,t]=c.useState(()=>new Map(e instanceof Function?e():e));return r.set=(n,u)=>{const i=new Map(r);return i.set(n,u),t(i),i},r.clear=()=>{t(n=>{const u=new Map(n);return u.clear(),u})},r.delete=n=>{const u=r.has(n);return t(i=>{const s=new Map(i);return s.delete(n),s}),u},r},Fr=e=>{const[r,t]=c.useState(()=>new Set(e instanceof Function?e():e));return r.add=n=>{const u=new Set(r);return u.add(n),t(u),u},r.clear=()=>{t(n=>{const u=new Set(n);return u.clear(),u})},r.delete=n=>{const u=r.has(n);return t(i=>{const s=new Set(i);return s.delete(n),s}),u},r},zr=e=>{const[r,t]=c.useState(()=>e instanceof Function?e():e||new Array);return r.copyWithin=(n,u,i)=>{const s=[...r].copyWithin(n,u,i);return t(s),s},r.fill=(n,u,i)=>{const s=[...r].fill(n,u,i);return t(s),s},r.pop=()=>{const n=[...r],u=n.pop();return t(n),u},r.push=(...n)=>{const u=[...r],i=u.push(...n);return t(u),i},r.reverse=()=>{const n=[...r].reverse();return t(n),n},r.shift=()=>{const n=[...r],u=n.shift();return t(n),u},r.sort=n=>{const u=[...r].sort(n);return t(u),u},r.splice=(n,u,...i)=>{const s=[...r].splice(n,u,...i);return t(s),s},r.unshift=(...n)=>{const u=[...r],i=u.unshift(...n);return t(u),i},r},Vr=(e,r=!1)=>{const t=c.useRef(e instanceof Function?e():e),[,n]=c.useReducer(s=>s+1,0),u=c.useRef(s=>{let o={};if(!r)o=s;else{const a=Reflect.ownKeys(s);for(const l of a)o[l]=t.current[l]instanceof Date||t.current[l]instanceof RegExp||Array.isArray(t.current[l])||typeof t.current[l]!="object"?t.current[l]:u.current(t.current[l])}return new Proxy(o,{set(a,l,f,m){return Reflect.set(a,l,f,m),n(),!0}})});return c.useRef(u.current(t.current)).current};function Wr(e,r){const[t,n]=c.useState(r()),u=c.useCallback(()=>{n(r())},[r]);return c.useEffect(()=>(u(),e(u)),[u,e]),t}const S=c.useSyncExternalStore===void 0?Wr:c.useSyncExternalStore,Hr=(e,r,t)=>{const[,n]=c.useReducer(o=>o+1e-6,0),u=c.useRef({localState:typeof e=="function"?e():e,deps:r});let i;x.isShallowEqual(u.current.deps,r)?i=u.current.localState:(i=typeof e=="function"?e():e,u.current={localState:i,deps:r},n());const s=c.useCallback(o=>{const a=typeof o=="function"?o(u.current.localState):o;u.current.localState=a,n()},[]);return c.useEffect(()=>{let o;return t&&(o=t()),()=>o&&o()},[t]),[i,s]},qr=(e,r)=>{const t=c.useRef(),[n,u]=c.useState(()=>{let s;e instanceof Function?s=e():s=e;let o={};return!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp)&&typeof s=="object"?Reflect.ownKeys(s).forEach(l=>{Reflect.set(o,l,{invalid:!1})}):o={invalid:!1},t.current=o,{state:s,validation:o}}),i=F(s=>{const o=s instanceof Function?s(n.state):s,a=r(o,JSON.parse(JSON.stringify(t.current)));u({state:o,validation:a})});return[n.state,i,n.validation]};let le=0;function Me(e){return{get(r,t){e.push(t);const n=Reflect.get(r,t);return n==null||n instanceof Blob||n instanceof Date||n instanceof RegExp||n instanceof Map||n instanceof Set||typeof n!="object"?n:new Proxy(n,Me(e))}}}function Ae(e,r,t,n){if(e===r){e[t]=n;return}for(const u in e)if(e[u]===r){Array.isArray(e[u])?e[u]=[...e[u]]:e[u]={...e[u]},e[u][t]=n;return}else if(Array.isArray(e[u])||typeof e[u]=="object")return Ae(e[u],r,t,n)}const jr=(e,r,t)=>{const n=new ye,u="pub_Sub_str-"+le;le++;let i;const s={},o=t==="localStorage"?localStorage:sessionStorage;if(t){const m=o.getItem(u);m?i=JSON.parse(m):(i={...e},o.setItem(u,JSON.stringify(i)))}else i={...e};if(r)for(const m in r)s[m]=(...h)=>{const g=a();r[m](g,...h),t&&o.setItem(u,JSON.stringify(g)),n.publish(u,g)};n.subscribe(u,m=>{i=m});function a(){return i}function l(m){const h=a();m(h),t&&o.setItem(u,JSON.stringify(h)),n.publish(u,h)}function f(m){const h=c.useRef([]),g=Z(()=>{if(m){let v=new Proxy(a(),Me(h.current));return m(v),v=null,m(a())}else return a()}),R=S(c.useCallback(v=>{const y=b=>{const k=m?m(b):b;x.isDeepEqual(g.current,k)||(g.current=k,v())};return n.subscribe(u,y),()=>{n.unsubscribe(u,y)}},[m,g]),c.useCallback(()=>g.current,[g])),d=c.useRef(()=>g.current),p=c.useRef(v=>{if(m){const y=v instanceof Function?v(g.current):v;let b=a();for(let k=0;k<h.current.length-1;k++)!(h.current[k]in b)&&(b[h.current[k]]=a()[h.current[k]]),b=b[h.current[k]];if(Array.isArray(y)||typeof y=="object")b[h.current[h.current.length-1]]=y,t&&o.setItem(u,JSON.stringify(a())),n.publish(u,a());else{const k=a();Ae(k,b,h.current[h.current.length-1],y),b=k,t&&o.setItem(u,JSON.stringify(b)),n.publish(u,b)}}else{const y=v instanceof Function?v(g.current):v;t&&o.setItem(u,JSON.stringify(y)),n.publish(u,y)}});return[R,p.current,d.current,s]}return{getStore:a,mutateStore:l,mutators:s,usePubSubStore:f}},U=e=>{let r="script";for(const[t,n]of Object.entries(e))n&&(r+=`[${t}${typeof n=="boolean"?"":`="${n}"`}]`);return document.querySelector(r)},Ur=e=>{const r=document.createElement("script");return e.src&&(r.src=e.src),e.async&&(r.async=!0),e.defer&&(r.defer=!0),e.type&&r.setAttribute("type",e.type),e.crossorigin&&r.setAttribute("crossorigin",e.crossorigin),e.fetchpriority&&r.setAttribute("fetchpriority",e.fetchpriority),e.integrity&&r.setAttribute("integrity",e.integrity),e.nonce&&r.setAttribute("nonce",e.nonce),e.nomodule&&r.setAttribute("nomodule",e.nomodule.toString()),e.referrerpolicy&&r.setAttribute("referrerpolicy",e.referrerpolicy),r.setAttribute("data-status","loading"),r},Gr=function(e,r){const t=c.useRef(r),n=c.useRef(e),[u,i]=c.useState(t.current.handleAppending?1:0),s=c.useCallback((l,f)=>{l&&(n.current=l),f&&(t.current.iframe=f),i(m=>m+1)},[]),o=c.useCallback(()=>{var f;const l=U(n.current);(f=l==null?void 0:l.parentElement)==null||f.removeChild(l)},[]);return I(()=>()=>{t.current.removeOnUnmount&&o()}),[S(c.useCallback(l=>{var f,m;if(u%2===0){let h,g=!0;h=U(n.current),h||(g=!1,h=Ur(n.current));const R=d=>{const p=U(n.current);p==null||p.setAttribute("data-status",d.type==="load"?"ready":"error"),l()};return h.addEventListener("load",R,{passive:!0}),h.addEventListener("error",R,{passive:!0}),!g&&(((m=(f=t.current.iframe)==null?void 0:f.contentWindow)==null?void 0:m.document)||document).body.appendChild(h),()=>{const d=U(n.current);d==null||d.removeEventListener("load",R),d==null||d.removeEventListener("error",R)}}else return()=>{}},[u]),c.useCallback(()=>{var f;return((f=U(n.current))==null?void 0:f.getAttribute("data-status"))??(t.current.handleAppending?"idle":"loading")},[])),s,o]},Br=(e,r,t=!1)=>{if(!t||typeof requestAnimationFrame>"u")return{id:setTimeout(e,r)};const n={id:0},u=new Date().getTime(),i=()=>{const s=new Date().getTime();console.log(((s-u)/1e3).toFixed(0)),s-u>=r?e():n.id=requestAnimationFrame(i)};return n.id=requestAnimationFrame(i),n},_=(e,r=!1)=>{if(!r||typeof cancelAnimationFrame>"u")return clearTimeout(e.id);cancelAnimationFrame(e.id)},$r=(e,r)=>{const t=c.useRef({id:0}),n=c.useRef(r),u=c.useCallback((...o)=>{_(t.current,n.current.focusedWindow),t.current=Br(()=>e(...o),n.current.delay,n.current.focusedWindow)},[e]),i=c.useCallback(()=>{_(t.current,n.current.focusedWindow)},[]),s=c.useCallback((...o)=>{_(t.current,n.current.focusedWindow),e(...o)},[e]);return[u,i,s]},Jr=(e,r)=>{const t=c.useRef(r),n=c.useRef(!1),u=c.useRef(),i=c.useCallback((...a)=>{if(!n.current)if(n.current=!0,t.current.delay)e(...a),u.current=setTimeout(()=>n.current=!1,t.current.delay);else if(t.current.waitFn){const l=e(...a);x.isAsync(l)?l.finally(()=>n.current=!1):n.current=!1}else throw Error("useThrottled: options aren't setted correctly.")},[e]),s=c.useCallback(()=>{n.current=!1},[]),o=c.useCallback((...a)=>{n.current=!1,e(...a)},[e]);return[i,s,o]},Yr=()=>{const e=c.useRef(null);return S(c.useCallback(r=>{e.current=document.activeElement;const t={id:0},n=u=>{u.type==="focusout"?t.id=setTimeout(()=>{r()},0):(clearTimeout(t.id),r())};if(typeof addEventListener>"u")throw Error("useActiveElement: hook works only in browser context.");return addEventListener("focusin",n,{capture:!0,passive:!0}),addEventListener("focusout",n,{capture:!0,passive:!0}),()=>{removeEventListener("focusin",n,!0),removeEventListener("focusout",n,!0),e.current=null}},[]),c.useCallback(()=>{const r=document.activeElement;return e.current!==r&&(e.current=r),e.current},[]))},Oe=e=>{const r=c.useRef();return[c.useCallback((...t)=>{const n=()=>{r.current=requestAnimationFrame(u=>e(u,n,...t))};r.current=requestAnimationFrame(u=>e(u,n,...t))},[e]),c.useCallback(()=>{r.current&&cancelAnimationFrame(r.current)},[])]},_r=(e,r)=>{const t=c.useRef(),n=c.useCallback((...s)=>{clearTimeout(t.current),t.current=setTimeout(()=>e(...s),r)},[e,r]),u=c.useCallback((...s)=>(clearTimeout(t.current),new Promise(o=>{t.current=setTimeout(()=>{o(e(...s))},r)})),[e,r]),i=c.useCallback(()=>{clearTimeout(t.current)},[]);return c.useEffect(()=>{clearTimeout(t.current)},[]),[n,i,u]},Xr=(e,r)=>{const t=c.useRef(),n=c.useCallback((...s)=>{clearInterval(t.current),t.current=setInterval(()=>e(...s),r)},[e,r]),u=c.useCallback((...s)=>(clearInterval(t.current),new Promise(o=>{t.current=setInterval(()=>{o(e(...s))},r)})),[e,r]),i=c.useCallback(()=>{clearInterval(t.current)},[]);return c.useEffect(()=>{clearInterval(t.current)},[]),[n,i,u]},Kr=({target:e,onStart:r,onChange:t,onEnd:n}={})=>{const u=c.useRef(!1),i=c.useRef(null),s=c.useRef(),o=c.useRef(null),a=c.useCallback(R=>{const d=e?e!=null&&e.current?e.current:e:document.body;o.current=Zr(d??document.body),n&&n(R),s.current&&s.current()},[n,e]),l=c.useCallback(()=>{u.current=!0,i.current=null},[]),f=c.useCallback(R=>{u.current=!1,(getSelection()??"").toString()===i.current&&(i.current=null,a(R))},[a]),m=c.useCallback(R=>{u.current=!0,r&&r(R),t&&document.addEventListener("selectionchange",t,{passive:!0})},[t,r]),h=c.useCallback(()=>{u.current=!1,i.current=(getSelection()??"").toString(),t&&document.removeEventListener("selectionchange",t)},[t]),g=c.useCallback(R=>{u.current&&(getSelection()??"").toString()===""&&(r&&r(R),t&&document.addEventListener("selectionchange",t,{passive:!0}))},[r,t]);return S(c.useCallback(R=>{s.current=R;const d=e?e!=null&&e.current?e.current:e:document.body;return document.addEventListener("pointerdown",l,{passive:!0}),document.addEventListener("pointerup",f,{passive:!0}),document.addEventListener("pointerleave",f,{passive:!0}),d&&d.addEventListener("pointerdown",m,{passive:!0}),d&&d.addEventListener("pointerup",h,{passive:!0}),d&&d.addEventListener("pointerleave",h,{passive:!0}),d&&d.addEventListener("pointerenter",g,{passive:!0}),()=>{document.removeEventListener("pointerdown",l),document.removeEventListener("pointerup",f),document.removeEventListener("pointerleave",f),d&&d.removeEventListener("pointerdown",m),d&&d.removeEventListener("pointerup",h),d&&d.removeEventListener("pointerleave",h),d&&d.removeEventListener("pointerenter",g)}},[l,f,m,h,g,e]),c.useMemo(()=>{let R=e?e!=null&&e.current?e.current:e:document.body,d=o.current;return()=>{const p=e?e!=null&&e.current?e.current:e:document.body;return(R!==p||!x.isDeepEqual(d,o.current))&&(R=p,d=o.current),d}},[e]))};function Qr(e){const r=e.anchorNode.compareDocumentPosition(e.focusNode);let t=!1;return(!r&&e.anchorOffset>e.focusOffset||r===Node.DOCUMENT_POSITION_PRECEDING)&&(t=!0),t?"backward":"forward"}function Zr(e){const r=window.getSelection();if(r===null||r.toString().trim()==="")return null;const t=e.getBoundingClientRect(),n=r.getRangeAt(0).getBoundingClientRect();return{text:r.toString(),direction:Qr(r),outsideRectangle:new DOMRect(n.x-t.x,n.y-t.y,n.width,n.height),innerRectangles:Array.from(r.getRangeAt(0).getClientRects()||[]).map(i=>(i.x=i.x-t.x,i.y=i.y-t.y,i))}}const X=e=>navigator.permissions.query({name:e}).then(r=>{if(r.state==="denied")throw Error(`Permission to ${e.includes("read")?"copy to":"paste from"} Clipboard denied.`)}).catch(r=>{throw r}),K=()=>navigator.clipboard.read===void 0;function et({useValue:e,dataType:r,target:t}){const n=c.useRef(""),u=c.useRef(),i=c.useRef(),s=c.useRef(m=>navigator.clipboard.write(Array.isArray(m)?m.map(h=>new ClipboardItem({[h.type]:h})):[new ClipboardItem({[m.type]:m})]).then(()=>{n.current=m,i.current&&i.current()}).catch(h=>{throw h})),o=c.useRef(m=>navigator.clipboard.writeText(m).then(()=>{n.current=m,i.current&&i.current()}).catch(h=>{throw h})),a=c.useRef(()=>n.current||K()?Promise.resolve(n.current):X("clipboard-read").then(()=>navigator.clipboard.read()).then(m=>{const h=[];for(const g of m)for(let R=0,d=g.types.length;R<d;R++)h.push(g.getType(g.types[R]));return Promise.all(h)}).then(m=>Promise.all(m.map(h=>h.type.includes("text")?h.text():Promise.resolve(h)))).then(m=>(n.current=m,m)).catch(m=>{throw m})),l=c.useRef(()=>n.current||K()?Promise.resolve(n.current):X("clipboard-read").then(()=>navigator.clipboard.read()).then(m=>{const h=[];for(const g of m)for(let R=0,d=g.types.length;R<d;R++)g.types[R]==="text/plain"&&h.push(g.getType(g.types[R]));return Promise.all(h)}).then(m=>Promise.all(m.map(h=>h.text()))).then(m=>(n.current=m[0],n.current)).catch(m=>{throw m})),f=S(c.useCallback(m=>{i.current=m;const h=t?t!=null&&t.current?t.current:t:document,g=R=>{var d;if(["cut","copy"].includes(R.type))r==="text"||K()?(n.current=((d=getSelection())==null?void 0:d.toString())??"",m()):X("clipboard-read").then(()=>navigator.clipboard.read()).then(p=>{const v=[];for(const y of p)for(let b=0,k=y.types.length;b<k;b++)v.push(y.getType(y.types[b]));return Promise.all(v)}).then(p=>Promise.all(p.map(v=>v.type.includes("text")?v.text():Promise.resolve(v)))).then(p=>{n.current=p,m()});else{const p=[],{clipboardData:v}=R;if(v!==null){const y=v.items;for(const b of y)r==="text"?b.type==="text/plain"&&p.push(v.getData(b.type)):b.kind==="string"?p.push(v.getData(b.type)):p.push(b.getAsFile())}n.current=p.length===1?p[0]:p,m()}};return h==null||h.addEventListener("cut",g,{passive:!0}),h==null||h.addEventListener("copy",g,{passive:!0}),h==null||h.addEventListener("cut",g,{passive:!0}),()=>{i.current=void 0,h==null||h.removeEventListener("cut",g),h==null||h.removeEventListener("copy",g),h==null||h.removeEventListener("cut",g)}},[t,r]),c.useCallback(()=>e?(u.current!==n.current&&(u.current=n.current),u.current):"",[e]));return e?r==="text"?[f,o.current,l.current]:[f,s.current,a.current]:r==="text"?[o.current,l.current]:[s.current,a.current]}function rt({defaultValue:e,getter:r,setter:t,returnValue:n}){const u=c.useRef(c.useMemo(()=>{let l=r?r():null;return l||(l=e==="mediaQuery"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e,t&&t(l)),l},[])),i=c.useRef(u.current),s=c.useRef(),o=c.useCallback(l=>{u.current=l,t&&t(u.current),s.current&&s.current()},[t]),a=S(c.useCallback(l=>{s.current=l;const f=window.matchMedia("(prefers-color-scheme: dark)"),m=h=>{o(h.matches?"dark":"light")};return e==="mediaQuery"&&f.addEventListener("change",m,{passive:!0}),()=>{e==="mediaQuery"&&f.removeEventListener("change",m),s.current=null}},[e,o]),c.useCallback(()=>(u.current!==i.current&&(i.current=u.current),i.current),[]));return n?[a,o]:o}const de=e=>{document.title=e},fe=()=>document.title,tt=e=>{e&&(document.title=e);try{c.useLayoutEffect(()=>{e&&(document.title=e)},[])}catch{return[fe,de]}return[fe,de]},nt=(e,r)=>{const{timeout:t,unsupportedBehavior:n}=r||{},u="requestIdleCallback"in window,i=c.useRef(),s=c.useRef("requestIdleCallback"in window?(a,l)=>requestIdleCallback(a,l):n?n==="immediatly"?void 0:n==="animationFrame"?a=>requestAnimationFrame(a):(a,l)=>setTimeout(a,l.timeout):()=>{}),o=c.useRef("requestIdleCallback"in window?cancelIdleCallback:n?n==="immediatly"?void 0:n==="animationFrame"?cancelAnimationFrame:clearTimeout:()=>{});return[u,c.useCallback(()=>{let a;s.current&&(a=s.current(e,{timeout:t})),i.current=a||void 0},[e,t]),c.useCallback(()=>i.current&&o.current&&o.current(i.current),[])]},ct=(e,r,t)=>{const n=c.useRef(),u=c.useRef(),i=c.useCallback(f=>{r&&r(f),n.current&&n.current()},[r]),s=c.useCallback(f=>{var m,h;f?(u.current=f,f.addEventListener("fullscreenchange",i,{passive:!0}),f.addEventListener("webkitfullscreenchange",i,{passive:!0})):((m=u.current)==null||m.removeEventListener("fullscreenchange",i),(h=u.current)==null||h.removeEventListener("webkitfullscreenchange",i),u.current=void 0)},[i]),o=c.useCallback(async f=>{var m,h,g;e&&await e(),await((m=u.current)!=null&&m.requestFullscreen?(h=u.current)==null?void 0:h.requestFullscreen(f):(g=u.current)==null?void 0:g.webkitRequestFullScreen(f))},[e]),a=c.useCallback(async()=>{t&&await t(),await document.exitFullscreen()},[t]);return[S(c.useCallback(f=>(n.current=f,()=>{n.current=void 0}),[]),c.useMemo(()=>{let f=document.fullscreenElement??document.webkitFullscreenElement;return()=>{const m=document.fullscreenElement??document.webkitFullscreenElement;return f!==m&&(f=m),f!==null}},[])),s,o,a]},z=new Set,A={onCharging:new Set,onChargingTime:new Set,onDischargingTime:new Set,onLevel:new Set};let N;const ut=e=>{const r=c.useRef({isSupported:!!navigator&&"getBattery"in navigator,charging:!1,chargingTime:0,dischargingTime:0,level:0});return S(c.useCallback(t=>(z.add(t),z.size===1&&navigator&&"getBattery"in navigator&&navigator.getBattery().then(n=>{N=n,r.current={isSupported:!0,level:n.level,charging:n.charging,chargingTime:n.chargingTime,dischargingTime:n.dischargingTime},z.forEach(u=>u()),e!=null&&e.onChargingChange&&A.onCharging.add(e.onChargingChange),e!=null&&e.onChargingTimeChange&&A.onChargingTime.add(e.onChargingTimeChange),e!=null&&e.onDischargingTimeChange&&A.onDischargingTime.add(e.onDischargingTimeChange),e!=null&&e.onLevelChange&&A.onLevel.add(e.onLevelChange),n.onchargingchange=u=>{r.current={isSupported:!0,level:n.level,charging:n.charging,chargingTime:n.chargingTime,dischargingTime:n.dischargingTime},A.onCharging.forEach(i=>i(u)),z.forEach(i=>i())},n.onchargingtimechange=u=>{r.current={isSupported:!0,level:n.level,charging:n.charging,chargingTime:n.chargingTime,dischargingTime:n.dischargingTime},A.onChargingTime.forEach(i=>i(u)),z.forEach(i=>i())},n.ondischargingtimechange=u=>{r.current={isSupported:!0,level:n.level,charging:n.charging,chargingTime:n.chargingTime,dischargingTime:n.dischargingTime},A.onDischargingTime.forEach(i=>i(u)),z.forEach(i=>i())},n.onlevelchange=u=>{r.current={isSupported:!0,level:n.level,charging:n.charging,chargingTime:n.chargingTime,dischargingTime:n.dischargingTime},A.onLevel.forEach(i=>i(u)),z.forEach(i=>i())}}),()=>{e!=null&&e.onChargingChange&&A.onCharging.delete(e.onChargingChange),e!=null&&e.onChargingTimeChange&&A.onChargingTime.delete(e.onChargingTimeChange),e!=null&&e.onDischargingTimeChange&&A.onDischargingTime.delete(e.onDischargingTimeChange),e!=null&&e.onLevelChange&&A.onLevel.delete(e.onLevelChange),z.delete(t),z.size===0&&(N&&(N.onchargingchange=null),N&&(N.onchargingtimechange=null),N&&(N.ondischargingtimechange=null),N&&(N.onlevelchange=null),N=void 0)}),[e==null?void 0:e.onChargingChange,e==null?void 0:e.onChargingTimeChange,e==null?void 0:e.onDischargingTimeChange,e==null?void 0:e.onLevelChange]),c.useMemo(()=>{let t={...r.current};return()=>((r.current.isSupported!==t.isSupported||r.current.level!==t.level||r.current.charging!==t.charging||r.current.chargingTime!==t.chargingTime||r.current.dischargingTime!==t.dischargingTime)&&(t=r.current),t)},[]))},st=({mode:e,locationOptions:r,onError:t})=>{const n=c.useRef(),u=c.useRef({isSupported:!!navigator&&"geolocation"in navigator}),i=c.useRef({isSupported:!!navigator&&"geolocation"in navigator}),s=c.useRef(),o=c.useCallback(h=>{i.current={position:h,isSupported:!0},s.current&&s.current()},[]),a=c.useCallback(h=>{if(t)t(h);else throw h},[t]),l=S(c.useCallback(h=>(navigator&&"geolocation"in navigator?(s.current=h,e==="observe"?n.current=navigator.geolocation.watchPosition(o,a,r):e==="current"?navigator.geolocation.getCurrentPosition(o,a,r):h()):i.current={isSupported:!1},()=>{s.current=void 0,e==="observe"&&n.current&&navigator.geolocation.clearWatch(n.current)}),[o,a,r,e]),c.useCallback(