@siberiacancode/reactuse 0.3.8 → 0.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs +2 -0
  2. package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs.map +1 -0
  3. package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
  4. package/dist/cjs/hooks/useSize/useSize.cjs +2 -0
  5. package/dist/cjs/hooks/useSize/useSize.cjs.map +1 -0
  6. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs +2 -0
  7. package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs.map +1 -0
  8. package/dist/cjs/hooks/useVisibility/useVisibility.cjs +1 -1
  9. package/dist/cjs/hooks/useVisibility/useVisibility.cjs.map +1 -1
  10. package/dist/cjs/index.cjs +1 -1
  11. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs +19 -0
  12. package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs.map +1 -0
  13. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs +7 -7
  14. package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
  15. package/dist/esm/hooks/useSize/useSize.mjs +31 -0
  16. package/dist/esm/hooks/useSize/useSize.mjs.map +1 -0
  17. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs +22 -0
  18. package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs.map +1 -0
  19. package/dist/esm/hooks/useVisibility/useVisibility.mjs +22 -22
  20. package/dist/esm/hooks/useVisibility/useVisibility.mjs.map +1 -1
  21. package/dist/esm/index.mjs +100 -96
  22. package/dist/esm/index.mjs.map +1 -1
  23. package/dist/types/hooks/sensors.d.ts +1 -1
  24. package/dist/types/hooks/useDebounceEffect/useDebounceEffect.d.ts +15 -0
  25. package/dist/types/hooks/useSize/useSize.d.ts +43 -0
  26. package/dist/types/hooks/useThrottleEffect/useThrottleEffect.d.ts +15 -0
  27. package/dist/types/hooks/useVisibility/useVisibility.d.ts +1 -1
  28. package/dist/types/hooks/utilities.d.ts +2 -0
  29. package/package.json +1 -1
  30. package/dist/cjs/hooks/useElementSize/useElementSize.cjs +0 -2
  31. package/dist/cjs/hooks/useElementSize/useElementSize.cjs.map +0 -1
  32. package/dist/esm/hooks/useElementSize/useElementSize.mjs +0 -30
  33. package/dist/esm/hooks/useElementSize/useElementSize.mjs.map +0 -1
  34. package/dist/types/hooks/useElementSize/useElementSize.d.ts +0 -39
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),i=(u,n,s)=>{const c=r.useRef(!0),e=r.useRef(null),t=r.useRef(void 0),f=r.useRef(u),o=r.useRef(n);f.current=u,o.current=n,r.useEffect(()=>{if(c.current){c.current=!1;return}return e.current&&(clearTimeout(e.current),e.current=null),e.current=setTimeout(()=>{t.current=f.current()},o.current),()=>{e.current&&clearTimeout(e.current),e.current=null,typeof t.current=="function"&&t.current()}},s)};exports.useDebounceEffect=i;
2
+ //# sourceMappingURL=useDebounceEffect.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounceEffect.cjs","sources":["../../../../src/hooks/useDebounceEffect/useDebounceEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useDebounceEffect\n * @description – Hook that runs an effect after a delay when dependencies change\n * @category Utilities\n * @usage high\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useDebounceEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useDebounceEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"names":["useDebounceEffect","effect","delay","deps","mountedRef","useRef","timeoutRef","cleanupRef","effectRef","delayRef","useEffect"],"mappings":"yGAiBaA,EAAoB,CAACC,EAAwBC,EAAeC,IAA0B,CACjG,MAAMC,EAAaC,EAAAA,OAAO,EAAI,EACxBC,EAAaD,EAAAA,OAA6C,IAAI,EAC9DE,EAAaF,EAAAA,OAAmC,MAAS,EACzDG,EAAYH,EAAAA,OAAOJ,CAAM,EACzBQ,EAAWJ,EAAAA,OAAOH,CAAK,EAE7BM,EAAU,QAAUP,EACpBQ,EAAS,QAAUP,EAEnBQ,EAAAA,UAAU,IAAM,CACd,GAAIN,EAAW,QAAS,CACtBA,EAAW,QAAU,GACrB,MAAA,CAGF,OAAIE,EAAW,UACb,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,MAGvBA,EAAW,QAAU,WAAW,IAAM,CACpCC,EAAW,QAAUC,EAAU,QAAA,CAAQ,EACtCC,EAAS,OAAO,EAEZ,IAAM,CACPH,EAAW,SAAS,aAAaA,EAAW,OAAO,EACvDA,EAAW,QAAU,KACjB,OAAOC,EAAW,SAAY,cAAuB,QAAA,CAAQ,CACnE,EACCJ,CAAI,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDidUpdate.cjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mounted = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mounted","useRef","useIsomorphicLayoutEffect"],"mappings":"iLAkBaA,EAAe,CAACC,EAAwBC,IAA0B,CAC7E,MAAMC,EAAUC,EAAAA,OAAO,EAAK,EAE5BC,EAAAA,0BACE,IAAM,IAAM,CACVF,EAAQ,QAAU,EAAA,EAEpB,CAAA,CAAC,EAGHE,EAAAA,0BAA0B,IAAM,CAC9B,GAAIF,EAAQ,QACV,OAAOF,EAAA,EAGTE,EAAQ,QAAU,EACX,EACND,CAAI,CACT"}
1
+ {"version":3,"file":"useDidUpdate.cjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mountedRef = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mountedRef.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n return effect();\n }\n\n mountedRef.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mountedRef","useRef","useIsomorphicLayoutEffect"],"mappings":"iLAkBaA,EAAe,CAACC,EAAwBC,IAA0B,CAC7E,MAAMC,EAAaC,EAAAA,OAAO,EAAK,EAE/BC,EAAAA,0BACE,IAAM,IAAM,CACVF,EAAW,QAAU,EAAA,EAEvB,CAAA,CAAC,EAGHE,EAAAA,0BAA0B,IAAM,CAC9B,GAAIF,EAAW,QACb,OAAOF,EAAA,EAGTE,EAAW,QAAU,EACd,EACND,CAAI,CACT"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),S=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),v=require("../useRefState/useRefState.cjs"),c=require("../../utils/helpers/isTarget.cjs"),b=((...a)=>{const e=a[0],[i,n]=u.useState({width:0,height:0}),[o,g]=u.useState(),r=v.useRefState();return S.useIsomorphicLayoutEffect(()=>{const t=e?c.isTarget.getElement(e):r.current;if(!t)return;const{width:h,height:f}=t.getBoundingClientRect();n({width:h,height:f});const s=new ResizeObserver(()=>{const{width:l,height:d}=t.getBoundingClientRect();n({width:l,height:d})});return g(s),s.observe(t),()=>{s.disconnect()}},[r.state,e&&c.isTarget.getRawElement(e)]),e?{observer:o,value:i}:{observer:o,ref:r,value:i}});exports.useSize=b;
2
+ //# sourceMappingURL=useSize.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSize.cjs","sources":["../../../../src/hooks/useSize/useSize.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The size value type */\nexport interface UseSizeValue {\n /** The element's height */\n height: number;\n /** The element's width */\n width: number;\n}\n\n/** The use size return type */\nexport interface UseSizeReturn {\n /** The resize observer instance */\n observer?: ResizeObserver;\n /** The current size value */\n value: UseSizeValue;\n}\n\nexport interface UseSize {\n (target: HookTarget): UseSizeReturn;\n\n <Target extends Element>(\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseSizeReturn;\n}\n\n/**\n * @name useSize\n * @description - Hook that observes and returns the width and height of element\n * @category Elements\n * @usage low\n *\n * @overload\n * @param {HookTarget} target The target element to observe\n * @returns {UseSizeReturn} An object containing the resize observer, current width and height of the element\n *\n * @example\n * const { value, observer } = useSize(ref);\n *\n * @overload\n * @template Target The target element type\n * @returns { { ref: StateRef<Target> } & UseSizeReturn } An object containing the resize observer, current width and height of the element\n *\n * @example\n * const { ref, value, observer } = useSize();\n */\nexport const useSize = ((...params: any[]) => {\n const target = params[0] as HookTarget | undefined;\n const [size, setSize] = useState({ width: 0, height: 0 });\n const [observer, setObserver] = useState<ResizeObserver>();\n const internalRef = useRefState<Element>();\n\n useIsomorphicLayoutEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const { width, height } = element.getBoundingClientRect();\n setSize({\n width,\n height\n });\n\n const observer = new ResizeObserver(() => {\n const { width, height } = element.getBoundingClientRect();\n setSize({ width, height });\n });\n\n setObserver(observer);\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { observer, value: size };\n return {\n observer,\n ref: internalRef,\n value: size\n };\n}) as UseSize;\n"],"names":["useSize","params","target","size","setSize","useState","observer","setObserver","internalRef","useRefState","useIsomorphicLayoutEffect","element","isTarget","width","height"],"mappings":"2QAyDaA,GAAW,IAAIC,IAAkB,CAC5C,MAAMC,EAASD,EAAO,CAAC,EACjB,CAACE,EAAMC,CAAO,EAAIC,EAAAA,SAAS,CAAE,MAAO,EAAG,OAAQ,EAAG,EAClD,CAACC,EAAUC,CAAW,EAAIF,WAAA,EAC1BG,EAAcC,EAAAA,YAAA,EA0BpB,OAxBAC,EAAAA,0BAA0B,IAAM,CAC9B,MAAMC,EAAWT,EAASU,EAAAA,SAAS,WAAWV,CAAM,EAAIM,EAAY,QAEpE,GAAI,CAACG,EAAS,OAEd,KAAM,CAAE,MAAAE,EAAO,OAAAC,GAAWH,EAAQ,sBAAA,EAClCP,EAAQ,CACN,MAAAS,EACA,OAAAC,CAAA,CACD,EAED,MAAMR,EAAW,IAAI,eAAe,IAAM,CACxC,KAAM,CAAE,MAAAO,EAAO,OAAAC,CAAAA,EAAWH,EAAQ,sBAAA,EAClCP,EAAQ,CAAE,MAAAS,EAAO,OAAAC,EAAQ,CAAA,CAC1B,EAED,OAAAP,EAAYD,CAAQ,EACpBA,EAAS,QAAQK,CAAO,EAEjB,IAAM,CACXL,EAAS,WAAA,CAAW,CACtB,EACC,CAACE,EAAY,MAAON,GAAUU,EAAAA,SAAS,cAAcV,CAAM,CAAC,CAAC,EAE5DA,EAAe,CAAE,SAAAI,EAAU,MAAOH,CAAA,EAC/B,CACL,SAAAG,EACA,IAAKE,EACL,MAAOL,CAAA,CAEX"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),i=(f,s,l)=>{const o=e.useRef(!0),r=e.useRef(void 0),t=e.useRef(null),u=e.useRef(!1),n=e.useRef(f),c=e.useRef(s);n.current=f,c.current=s,e.useEffect(()=>{if(o.current){o.current=!1;return}if(!u.current)return r.current=n.current(),u.current=!0,setTimeout(()=>{u.current=!1,t.current=setTimeout(()=>{r.current=n.current()},c.current)},c.current),()=>{t.current&&clearTimeout(t.current),t.current=null,typeof r.current=="function"&&r.current()}},l)};exports.useThrottleEffect=i;
2
+ //# sourceMappingURL=useThrottleEffect.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThrottleEffect.cjs","sources":["../../../../src/hooks/useThrottleEffect/useThrottleEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useThrottleEffect\n * @description – Hook that runs an effect at most once per delay period when dependencies change\n * @category Utilities\n * @usage medium\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useThrottleEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useThrottleEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isCalledRef = useRef(false);\n\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (isCalledRef.current) return;\n\n cleanupRef.current = effectRef.current();\n isCalledRef.current = true;\n\n setTimeout(() => {\n isCalledRef.current = false;\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"names":["useThrottleEffect","effect","delay","deps","mountedRef","useRef","cleanupRef","timeoutRef","isCalledRef","effectRef","delayRef","useEffect"],"mappings":"yGAiBaA,EAAoB,CAACC,EAAwBC,EAAeC,IAA0B,CACjG,MAAMC,EAAaC,EAAAA,OAAO,EAAI,EACxBC,EAAaD,EAAAA,OAAmC,MAAS,EACzDE,EAAaF,EAAAA,OAA6C,IAAI,EAC9DG,EAAcH,EAAAA,OAAO,EAAK,EAE1BI,EAAYJ,EAAAA,OAAOJ,CAAM,EACzBS,EAAWL,EAAAA,OAAOH,CAAK,EAE7BO,EAAU,QAAUR,EACpBS,EAAS,QAAUR,EAEnBS,EAAAA,UAAU,IAAM,CACd,GAAIP,EAAW,QAAS,CACtBA,EAAW,QAAU,GACrB,MAAA,CAGF,GAAI,CAAAI,EAAY,QAEhB,OAAAF,EAAW,QAAUG,EAAU,QAAA,EAC/BD,EAAY,QAAU,GAEtB,WAAW,IAAM,CACfA,EAAY,QAAU,GAEtBD,EAAW,QAAU,WAAW,IAAM,CACpCD,EAAW,QAAUG,EAAU,QAAA,CAAQ,EACtCC,EAAS,OAAO,CAAA,EAClBA,EAAS,OAAO,EAEZ,IAAM,CACPH,EAAW,SAAS,aAAaA,EAAW,OAAO,EACvDA,EAAW,QAAU,KACjB,OAAOD,EAAW,SAAY,cAAuB,QAAA,CAAQ,CACnE,EACCH,CAAI,CACT"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),S=require("../useRefState/useRefState.cjs"),i=require("../../utils/helpers/isTarget.cjs"),T=((...e)=>{const n=i.isTarget(e[0])?e[0]:void 0,t=n?typeof e[1]=="object"?e[1]:{onChange:e[1]}:typeof e[0]=="object"?e[0]:{onChange:e[0]},u=t?.onChange,l=t?.enabled??!0,[g,y]=s.useState(),[r,d]=s.useState(),o=S.useRefState(),b=s.useRef(u);return b.current=u,s.useEffect(()=>{if(!l||!n&&!o.state)return;const a=n?i.isTarget.getElement(n):o.current;if(!a)return;const c=new IntersectionObserver((v,R)=>{const f=v.pop();d(f),b.current?.(f,R)},{...t,root:t?.root?i.isTarget.getElement(t.root):document});return y(c),c.observe(a),()=>{c.disconnect()}},[n&&i.isTarget.getRawElement(n),o.state,t?.rootMargin,t?.threshold,t?.root,l]),n?{observer:g,entry:r,inView:!!r?.isIntersecting}:{observer:g,ref:o,entry:r,inView:!!r?.isIntersecting}});exports.useVisibility=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),S=require("../useRefState/useRefState.cjs"),s=require("../../utils/helpers/isTarget.cjs"),T=((...e)=>{const n=s.isTarget(e[0])?e[0]:void 0,t=n?typeof e[1]=="object"?e[1]:{onChange:e[1]}:typeof e[0]=="object"?e[0]:{onChange:e[0]},l=t?.onChange,f=t?.enabled??!0,[g,d]=o.useState(),[i,v]=o.useState(),a=i?.isIntersecting??!1,r=S.useRefState(),b=o.useRef(l);return b.current=l,o.useEffect(()=>{if(!f||!n&&!r.state)return;const y=n?s.isTarget.getElement(n):r.current;if(!y)return;const c=new IntersectionObserver((E,R)=>{const u=E[0];u&&(v(u),b.current?.(u,R))},{...t,root:t?.root?s.isTarget.getElement(t.root):document});return d(c),c.observe(y),()=>{c.disconnect()}},[n&&s.isTarget.getRawElement(n),r.state,t?.rootMargin,t?.threshold,t?.root,f]),n?{observer:g,entry:i,inView:a}:{observer:g,ref:r,entry:i,inView:a}});exports.useVisibility=T;
2
2
  //# sourceMappingURL=useVisibility.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useVisibility.cjs","sources":["../../../../src/hooks/useVisibility/useVisibility.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The visibility callback type */\nexport type UseVisibilityCallback = (\n entry: IntersectionObserverEntry,\n observer: IntersectionObserver\n) => void;\n\n/** The visibility options type */\nexport interface UseVisibilityOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseVisibilityCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseVisibilityReturn {\n /** The intersection observer entry */\n entry?: IntersectionObserverEntry;\n /** The intersection observer in view */\n inView?: boolean;\n\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseVisibility {\n <Target extends Element>(\n options?: UseVisibilityOptions,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseVisibilityOptions): UseVisibilityReturn;\n\n <Target extends Element>(\n callback: UseVisibilityCallback,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseVisibilityCallback): UseVisibilityReturn;\n}\n\n/**\n * @name useVisibility\n * @description - Hook that gives you visibility observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = useVisibility();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entries, observer } = useVisibility(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useVisibility(() => console.log('callback'));\n *\n * @overload\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useVisibility(ref, () => console.log('callback'));\n */\nexport const useVisibility = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseVisibilityOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n const entry = entries.pop()!;\n setEntry(entry);\n internalCallbackRef.current?.(entry, observer);\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entry, inView: !!entry?.isIntersecting };\n return {\n observer,\n ref: internalRef,\n entry,\n inView: !!entry?.isIntersecting\n };\n}) as UseVisibility;\n"],"names":["useVisibility","params","target","isTarget","options","callback","enabled","observer","setObserver","useState","entry","setEntry","internalRef","useRefState","internalCallbackRef","useRef","useEffect","element","entries"],"mappings":"mMAiGaA,GAAiB,IAAIC,IAAkB,CAClD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAE5CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EACtB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EAGtBI,EAAWD,GAAS,SACpBE,EAAUF,GAAS,SAAW,GAE9B,CAACG,EAAUC,CAAW,EAAIC,WAAA,EAC1B,CAACC,EAAOC,CAAQ,EAAIF,WAAA,EAEpBG,EAAcC,EAAAA,YAAA,EACdC,EAAsBC,EAAAA,OAAOV,CAAQ,EAoC3C,OAnCAS,EAAoB,QAAUT,EAE9BW,EAAAA,UAAU,IAAM,CACd,GAAI,CAACV,GAAY,CAACJ,GAAU,CAACU,EAAY,MAAQ,OAEjD,MAAMK,EAAUf,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIU,EAAY,QACnE,GAAI,CAACK,EAAS,OAEd,MAAMV,EAAW,IAAI,qBACnB,CAACW,EAAsCX,IAAmC,CACxE,MAAMG,EAAQQ,EAAQ,IAAA,EACtBP,EAASD,CAAK,EACdI,EAAoB,UAAUJ,EAAOH,CAAQ,CAAA,EAE/C,CACE,GAAGH,EACH,KAAMA,GAAS,KAAQD,EAAAA,SAAS,WAAWC,EAAQ,IAAI,EAA2B,QAAA,CACpF,EAGF,OAAAI,EAAYD,CAAQ,EACpBA,EAAS,QAAQU,CAAkB,EAE5B,IAAM,CACXV,EAAS,WAAA,CAAW,CACtB,EACC,CACDL,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EACvCU,EAAY,MACZR,GAAS,WACTA,GAAS,UACTA,GAAS,KACTE,CAAA,CACD,EAEGJ,EAAe,CAAE,SAAAK,EAAU,MAAAG,EAAO,OAAQ,CAAC,CAACA,GAAO,cAAA,EAChD,CACL,SAAAH,EACA,IAAKK,EACL,MAAAF,EACA,OAAQ,CAAC,CAACA,GAAO,cAAA,CAErB"}
1
+ {"version":3,"file":"useVisibility.cjs","sources":["../../../../src/hooks/useVisibility/useVisibility.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The visibility callback type */\nexport type UseVisibilityCallback = (\n entry: IntersectionObserverEntry,\n observer: IntersectionObserver\n) => void;\n\n/** The visibility options type */\nexport interface UseVisibilityOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseVisibilityCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseVisibilityReturn {\n /** The intersection observer entry */\n entry?: IntersectionObserverEntry;\n /** The intersection observer in view */\n inView: boolean;\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseVisibility {\n <Target extends Element>(\n options?: UseVisibilityOptions,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseVisibilityOptions): UseVisibilityReturn;\n\n <Target extends Element>(\n callback: UseVisibilityCallback,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseVisibilityCallback): UseVisibilityReturn;\n}\n\n/**\n * @name useVisibility\n * @description - Hook that gives you visibility observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = useVisibility();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entries, observer } = useVisibility(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useVisibility(() => console.log('callback'));\n *\n * @overload\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useVisibility(ref, () => console.log('callback'));\n */\nexport const useVisibility = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseVisibilityOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n const inView = entry?.isIntersecting ?? false;\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n const firstEntry = entries[0];\n if (firstEntry) {\n setEntry(firstEntry);\n internalCallbackRef.current?.(firstEntry, observer);\n }\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entry, inView };\n return {\n observer,\n ref: internalRef,\n entry,\n inView\n };\n}) as UseVisibility;\n"],"names":["useVisibility","params","target","isTarget","options","callback","enabled","observer","setObserver","useState","entry","setEntry","inView","internalRef","useRefState","internalCallbackRef","useRef","useEffect","element","entries","firstEntry"],"mappings":"mMAgGaA,GAAiB,IAAIC,IAAkB,CAClD,MAAMC,EAAUC,EAAAA,SAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAE5CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EACtB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,SAAUA,EAAO,CAAC,CAAA,EAGtBI,EAAWD,GAAS,SACpBE,EAAUF,GAAS,SAAW,GAE9B,CAACG,EAAUC,CAAW,EAAIC,WAAA,EAC1B,CAACC,EAAOC,CAAQ,EAAIF,WAAA,EACpBG,EAASF,GAAO,gBAAkB,GAElCG,EAAcC,EAAAA,YAAA,EACdC,EAAsBC,EAAAA,OAAOX,CAAQ,EAsC3C,OArCAU,EAAoB,QAAUV,EAE9BY,EAAAA,UAAU,IAAM,CACd,GAAI,CAACX,GAAY,CAACJ,GAAU,CAACW,EAAY,MAAQ,OAEjD,MAAMK,EAAUhB,EAASC,EAAAA,SAAS,WAAWD,CAAM,EAAIW,EAAY,QACnE,GAAI,CAACK,EAAS,OAEd,MAAMX,EAAW,IAAI,qBACnB,CAACY,EAAsCZ,IAAmC,CACxE,MAAMa,EAAaD,EAAQ,CAAC,EACxBC,IACFT,EAASS,CAAU,EACnBL,EAAoB,UAAUK,EAAYb,CAAQ,EACpD,EAEF,CACE,GAAGH,EACH,KAAMA,GAAS,KAAQD,EAAAA,SAAS,WAAWC,EAAQ,IAAI,EAA2B,QAAA,CACpF,EAGF,OAAAI,EAAYD,CAAQ,EACpBA,EAAS,QAAQW,CAAkB,EAE5B,IAAM,CACXX,EAAS,WAAA,CAAW,CACtB,EACC,CACDL,GAAUC,EAAAA,SAAS,cAAcD,CAAM,EACvCW,EAAY,MACZT,GAAS,WACTA,GAAS,UACTA,GAAS,KACTE,CAAA,CACD,EAEGJ,EAAe,CAAE,SAAAK,EAAU,MAAAG,EAAO,OAAAE,CAAA,EAC/B,CACL,SAAAL,EACA,IAAKM,EACL,MAAAH,EACA,OAAAE,CAAA,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("./helpers/createContext/createContext.cjs"),I=require("./helpers/createEventEmitter/createEventEmitter.cjs"),O=require("./helpers/createReactiveContext/createReactiveContext.cjs"),v=require("./helpers/createStore/createStore.cjs"),A=require("./hooks/useAsync/useAsync.cjs"),b=require("./hooks/useLockCallback/useLockCallback.cjs"),D=require("./hooks/useMutation/useMutation.cjs"),L=require("./hooks/useOptimistic/useOptimistic.cjs"),M=require("./hooks/useQuery/useQuery.cjs"),_=require("./hooks/useAudio/useAudio.cjs"),B=require("./hooks/useBattery/useBattery.cjs"),N=require("./hooks/useBluetooth/useBluetooth.cjs"),F=require("./hooks/useBroadcastChannel/useBroadcastChannel.cjs"),K=require("./hooks/useClipboard/useClipboard.cjs"),V=require("./hooks/useCopy/useCopy.cjs"),w=require("./hooks/useCssVar/useCssVar.cjs"),U=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),H=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),x=require("./hooks/useEventSource/useEventSource.cjs"),W=require("./hooks/useEyeDropper/useEyeDropper.cjs"),z=require("./hooks/useFavicon/useFavicon.cjs"),Q=require("./hooks/useFps/useFps.cjs"),G=require("./hooks/useFullscreen/useFullscreen.cjs"),n=require("./hooks/useGamepad/useGamepad.cjs"),X=require("./hooks/useGeolocation/useGeolocation.cjs"),c=require("./hooks/useMediaControls/useMediaControls.cjs"),Z=require("./hooks/useMemory/useMemory.cjs"),a=require("./hooks/useNetwork/useNetwork.cjs"),j=require("./hooks/useOnline/useOnline.cjs"),J=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Y=require("./hooks/usePermission/usePermission.cjs"),$=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),ee=require("./hooks/usePointerLock/usePointerLock.cjs"),se=require("./hooks/usePostMessage/usePostMessage.cjs"),ue=require("./hooks/useRaf/useRaf.cjs"),re=require("./hooks/useShare/useShare.cjs"),l=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),te=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),oe=require("./hooks/useVibrate/useVibrate.cjs"),ie=require("./hooks/useVirtualKeyboard/useVirtualKeyboard.cjs"),ne=require("./hooks/useWakeLock/useWakeLock.cjs"),ce=require("./hooks/useWebSocket/useWebSocket.cjs"),ae=require("./hooks/useLogger/useLogger.cjs"),le=require("./hooks/useRenderCount/useRenderCount.cjs"),Se=require("./hooks/useRenderInfo/useRenderInfo.cjs"),qe=require("./hooks/useRerender/useRerender.cjs"),de=require("./hooks/useActiveElement/useActiveElement.cjs"),ge=require("./hooks/useAutoScroll/useAutoScroll.cjs"),Te=require("./hooks/useClickOutside/useClickOutside.cjs"),S=require("./hooks/useDoubleClick/useDoubleClick.cjs"),Ee=require("./hooks/useDropZone/useDropZone.cjs"),Re=require("./hooks/useFileDialog/useFileDialog.cjs"),Ce=require("./hooks/useFocus/useFocus.cjs"),q=require("./hooks/useFocusTrap/useFocusTrap.cjs"),Pe=require("./hooks/useHover/useHover.cjs"),me=require("./hooks/useImage/useImage.cjs"),ye=require("./hooks/useLongPress/useLongPress.cjs"),t=require("./hooks/usePaint/usePaint.cjs"),pe=require("./hooks/useRightClick/useRightClick.cjs"),d=require("./hooks/useScript/useScript.cjs"),ke=require("./hooks/useSticky/useSticky.cjs"),fe=require("./hooks/useTextareaAutosize/useTextareaAutosize.cjs"),he=require("./hooks/useTextDirection/useTextDirection.cjs"),Ie=require("./hooks/useFul/useFul.cjs"),Oe=require("./hooks/useLess/useLess.cjs"),ve=require("./hooks/useOnce/useOnce.cjs"),Ae=require("./hooks/useAsyncEffect/useAsyncEffect.cjs"),be=require("./hooks/useDidUpdate/useDidUpdate.cjs"),De=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),Le=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),Me=require("./hooks/useMount/useMount.cjs"),g=require("./hooks/useShallowEffect/useShallowEffect.cjs"),_e=require("./hooks/useUnmount/useUnmount.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),Be=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),Ne=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),Fe=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),Ke=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),Ve=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),we=require("./hooks/useElementSize/useElementSize.cjs"),Ue=require("./hooks/useEventListener/useEventListener.cjs"),T=require("./hooks/useHotkeys/useHotkeys.cjs"),He=require("./hooks/useIdle/useIdle.cjs"),xe=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),We=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),ze=require("./hooks/useKeyboard/useKeyboard.cjs"),Qe=require("./hooks/useKeyPress/useKeyPress.cjs"),Ge=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),Xe=require("./hooks/useKeysPressed/useKeysPressed.cjs"),Ze=require("./hooks/useLockScroll/useLockScroll.cjs"),je=require("./hooks/useMeasure/useMeasure.cjs"),Je=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Ye=require("./hooks/useMouse/useMouse.cjs"),$e=require("./hooks/useMutationObserver/useMutationObserver.cjs"),es=require("./hooks/useOrientation/useOrientation.cjs"),ss=require("./hooks/usePageLeave/usePageLeave.cjs"),us=require("./hooks/useParallax/useParallax.cjs"),rs=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),ts=require("./hooks/useResizeObserver/useResizeObserver.cjs"),os=require("./hooks/useScroll/useScroll.cjs"),is=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),ns=require("./hooks/useScrollTo/useScrollTo.cjs"),E=require("./hooks/useTextSelection/useTextSelection.cjs"),cs=require("./hooks/useVisibility/useVisibility.cjs"),as=require("./hooks/useWindowEvent/useWindowEvent.cjs"),ls=require("./hooks/useWindowFocus/useWindowFocus.cjs"),R=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Ss=require("./hooks/useWindowSize/useWindowSize.cjs"),qs=require("./hooks/useBoolean/useBoolean.cjs"),ds=require("./hooks/useControllableState/useControllableState.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),C=require("./hooks/useCookies/useCookies.cjs"),gs=require("./hooks/useCounter/useCounter.cjs"),Ts=require("./hooks/useDefault/useDefault.cjs"),Es=require("./hooks/useDisclosure/useDisclosure.cjs"),Rs=require("./hooks/useField/useField.cjs"),P=require("./hooks/useHash/useHash.cjs"),Cs=require("./hooks/useList/useList.cjs"),Ps=require("./hooks/useLocalStorage/useLocalStorage.cjs"),ms=require("./hooks/useMap/useMap.cjs"),o=require("./hooks/useMergedRef/useMergedRef.cjs"),ys=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),ps=require("./hooks/useQueue/useQueue.cjs"),ks=require("./hooks/useRafState/useRafState.cjs"),m=require("./hooks/useRefState/useRefState.cjs"),fs=require("./hooks/useSessionStorage/useSessionStorage.cjs"),hs=require("./hooks/useSet/useSet.cjs"),y=require("./hooks/useStateHistory/useStateHistory.cjs"),Is=require("./hooks/useStep/useStep.cjs"),i=require("./hooks/useStorage/useStorage.cjs"),Os=require("./hooks/useToggle/useToggle.cjs"),r=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),vs=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),As=require("./hooks/useWizard/useWizard.cjs"),bs=require("./hooks/useInterval/useInterval.cjs"),Ds=require("./hooks/useStopwatch/useStopwatch.cjs"),Ls=require("./hooks/useTime/useTime.cjs"),Ms=require("./hooks/useTimeout/useTimeout.cjs"),p=require("./hooks/useTimer/useTimer.cjs"),_s=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),k=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),Bs=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),Ns=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),Fs=require("./hooks/usePreferredDark/usePreferredDark.cjs"),Ks=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),Vs=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),ws=require("./hooks/useBatchedCallback/useBatchedCallback.cjs"),Us=require("./hooks/useConst/useConst.cjs"),Hs=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),xs=require("./hooks/useDebounceState/useDebounceState.cjs"),Ws=require("./hooks/useDebounceValue/useDebounceValue.cjs"),zs=require("./hooks/useEvent/useEvent.cjs"),Qs=require("./hooks/useLastChanged/useLastChanged.cjs"),Gs=require("./hooks/useLatest/useLatest.cjs"),Xs=require("./hooks/usePrevious/usePrevious.cjs"),Zs=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),js=require("./hooks/useThrottleState/useThrottleState.cjs"),Js=require("./hooks/useThrottleValue/useThrottleValue.cjs"),f=require("./utils/helpers/copy.cjs"),Ys=require("./utils/helpers/debounce.cjs"),$s=require("./utils/helpers/getDate.cjs"),eu=require("./utils/helpers/getRetry.cjs"),u=require("./utils/helpers/isTarget.cjs"),su=require("./utils/helpers/throttle.cjs");exports.createContext=h.createContext;exports.createEventEmitter=I.createEventEmitter;exports.createReactiveContext=O.createReactiveContext;exports.createStore=v.createStore;exports.useAsync=A.useAsync;exports.useLockCallback=b.useLockCallback;exports.useMutation=D.useMutation;exports.useOptimistic=L.useOptimistic;exports.useQuery=M.useQuery;exports.useAudio=_.useAudio;exports.useBattery=B.useBattery;exports.useBluetooth=N.useBluetooth;exports.useBroadcastChannel=F.useBroadcastChannel;exports.useClipboard=K.useClipboard;exports.useCopy=V.useCopy;exports.useCssVar=w.useCssVar;exports.useDisplayMedia=U.useDisplayMedia;exports.useDocumentTitle=H.useDocumentTitle;exports.useEventSource=x.useEventSource;exports.useEyeDropper=W.useEyeDropper;exports.useFavicon=z.useFavicon;exports.useFps=Q.useFps;exports.useFullscreen=G.useFullscreen;exports.mapGamepadToXbox360Controller=n.mapGamepadToXbox360Controller;exports.useGamepad=n.useGamepad;exports.useGeolocation=X.useGeolocation;exports.timeRangeToArray=c.timeRangeToArray;exports.useMediaControls=c.useMediaControls;exports.useMemory=Z.useMemory;exports.getConnection=a.getConnection;exports.useNetwork=a.useNetwork;exports.useOnline=j.useOnline;exports.useOtpCredential=J.useOtpCredential;exports.usePermission=Y.usePermission;exports.usePictureInPicture=$.usePictureInPicture;exports.usePointerLock=ee.usePointerLock;exports.usePostMessage=se.usePostMessage;exports.useRaf=ue.useRaf;exports.useShare=re.useShare;exports.getSpeechRecognition=l.getSpeechRecognition;exports.useSpeechRecognition=l.useSpeechRecognition;exports.useSpeechSynthesis=te.useSpeechSynthesis;exports.useVibrate=oe.useVibrate;exports.useVirtualKeyboard=ie.useVirtualKeyboard;exports.useWakeLock=ne.useWakeLock;exports.useWebSocket=ce.useWebSocket;exports.useLogger=ae.useLogger;exports.useRenderCount=le.useRenderCount;exports.useRenderInfo=Se.useRenderInfo;exports.useRerender=qe.useRerender;exports.useActiveElement=de.useActiveElement;exports.useAutoScroll=ge.useAutoScroll;exports.useClickOutside=Te.useClickOutside;exports.DEFAULT_THRESHOLD_TIME=S.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=S.useDoubleClick;exports.useDropZone=Ee.useDropZone;exports.useFileDialog=Re.useFileDialog;exports.useFocus=Ce.useFocus;exports.FOCUS_SELECTOR=q.FOCUS_SELECTOR;exports.useFocusTrap=q.useFocusTrap;exports.useHover=Pe.useHover;exports.useImage=me.useImage;exports.useLongPress=ye.useLongPress;exports.Paint=t.Paint;exports.Pointer=t.Pointer;exports.usePaint=t.usePaint;exports.useRightClick=pe.useRightClick;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=d.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=d.useScript;exports.useSticky=ke.useSticky;exports.useTextareaAutosize=fe.useTextareaAutosize;exports.useTextDirection=he.useTextDirection;exports.useFul=Ie.useFul;exports.useLess=Oe.useLess;exports.useOnce=ve.useOnce;exports.useAsyncEffect=Ae.useAsyncEffect;exports.useDidUpdate=be.useDidUpdate;exports.useIsFirstRender=De.useIsFirstRender;exports.useIsomorphicLayoutEffect=Le.useIsomorphicLayoutEffect;exports.useMount=Me.useMount;exports.deepEqual=g.deepEqual;exports.useShallowEffect=g.useShallowEffect;exports.useUnmount=_e.useUnmount;exports.BREAKPOINTS_ANT_DESIGN=e.BREAKPOINTS_ANT_DESIGN;exports.BREAKPOINTS_BOOTSTRAP_V5=e.BREAKPOINTS_BOOTSTRAP_V5;exports.BREAKPOINTS_MANTINE=e.BREAKPOINTS_MANTINE;exports.BREAKPOINTS_MASTER_CSS=e.BREAKPOINTS_MASTER_CSS;exports.BREAKPOINTS_MATERIAL_UI=e.BREAKPOINTS_MATERIAL_UI;exports.BREAKPOINTS_PRIME_FLEX=e.BREAKPOINTS_PRIME_FLEX;exports.BREAKPOINTS_QUASAR_V2=e.BREAKPOINTS_QUASAR_V2;exports.BREAKPOINTS_SEMANTIC=e.BREAKPOINTS_SEMANTIC;exports.BREAKPOINTS_TAILWIND=e.BREAKPOINTS_TAILWIND;exports.useBreakpoints=e.useBreakpoints;exports.useDeviceMotion=Be.useDeviceMotion;exports.useDeviceOrientation=Ne.useDeviceOrientation;exports.useDevicePixelRatio=Fe.useDevicePixelRatio;exports.useDocumentEvent=Ke.useDocumentEvent;exports.useDocumentVisibility=Ve.useDocumentVisibility;exports.useElementSize=we.useElementSize;exports.useEventListener=Ue.useEventListener;exports.isHotkeyMatch=T.isHotkeyMatch;exports.useHotkeys=T.useHotkeys;exports.useIdle=He.useIdle;exports.useInfiniteScroll=xe.useInfiniteScroll;exports.useIntersectionObserver=We.useIntersectionObserver;exports.useKeyboard=ze.useKeyboard;exports.useKeyPress=Qe.useKeyPress;exports.useKeyPressEvent=Ge.useKeyPressEvent;exports.useKeysPressed=Xe.useKeysPressed;exports.useLockScroll=Ze.useLockScroll;exports.useMeasure=je.useMeasure;exports.useMediaQuery=Je.useMediaQuery;exports.useMouse=Ye.useMouse;exports.useMutationObserver=$e.useMutationObserver;exports.useOrientation=es.useOrientation;exports.usePageLeave=ss.usePageLeave;exports.useParallax=us.useParallax;exports.usePerformanceObserver=rs.usePerformanceObserver;exports.useResizeObserver=ts.useResizeObserver;exports.useScroll=os.useScroll;exports.useScrollIntoView=is.useScrollIntoView;exports.useScrollTo=ns.useScrollTo;exports.getRangesSelection=E.getRangesSelection;exports.useTextSelection=E.useTextSelection;exports.useVisibility=cs.useVisibility;exports.useWindowEvent=as.useWindowEvent;exports.useWindowFocus=ls.useWindowFocus;exports.scrollTo=R.scrollTo;exports.useWindowScroll=R.useWindowScroll;exports.useWindowSize=Ss.useWindowSize;exports.useBoolean=qs.useBoolean;exports.useControllableState=ds.useControllableState;exports.COOKIE_EVENT=s.COOKIE_EVENT;exports.dispatchCookieEvent=s.dispatchCookieEvent;exports.getCookie=s.getCookie;exports.getCookies=s.getCookies;exports.removeCookie=s.removeCookie;exports.removeCookieItem=s.removeCookieItem;exports.setCookie=s.setCookie;exports.setCookieItem=s.setCookieItem;exports.useCookie=s.useCookie;exports.clearCookies=C.clearCookies;exports.useCookies=C.useCookies;exports.useCounter=gs.useCounter;exports.useDefault=Ts.useDefault;exports.useDisclosure=Es.useDisclosure;exports.useField=Rs.useField;exports.getHash=P.getHash;exports.useHash=P.useHash;exports.useList=Cs.useList;exports.useLocalStorage=Ps.useLocalStorage;exports.useMap=ms.useMap;exports.assignRef=o.assignRef;exports.mergeRefs=o.mergeRefs;exports.useMergedRef=o.useMergedRef;exports.useOffsetPagination=ys.useOffsetPagination;exports.useQueue=ps.useQueue;exports.useRafState=ks.useRafState;exports.createRefState=m.createRefState;exports.useRefState=m.useRefState;exports.useSessionStorage=fs.useSessionStorage;exports.useSet=hs.useSet;exports.stateHistoryReducer=y.stateHistoryReducer;exports.useStateHistory=y.useStateHistory;exports.useStep=Is.useStep;exports.STORAGE_EVENT=i.STORAGE_EVENT;exports.dispatchStorageEvent=i.dispatchStorageEvent;exports.useStorage=i.useStorage;exports.useToggle=Os.useToggle;exports.URL_SEARCH_PARAMS_EVENT=r.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=r.createQueryString;exports.dispatchUrlSearchParamsEvent=r.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=r.getUrlSearchParams;exports.useUrlSearchParam=r.useUrlSearchParam;exports.useUrlSearchParams=vs.useUrlSearchParams;exports.useWizard=As.useWizard;exports.useInterval=bs.useInterval;exports.useStopwatch=Ds.useStopwatch;exports.useTime=Ls.useTime;exports.useTimeout=Ms.useTimeout;exports.getTimeFromSeconds=p.getTimeFromSeconds;exports.useTimer=p.useTimer;exports.useBrowserLanguage=_s.useBrowserLanguage;exports.getOperatingSystem=k.getOperatingSystem;exports.useOperatingSystem=k.useOperatingSystem;exports.usePreferredColorScheme=Bs.usePreferredColorScheme;exports.usePreferredContrast=Ns.usePreferredContrast;exports.usePreferredDark=Fs.usePreferredDark;exports.usePreferredLanguages=Ks.usePreferredLanguages;exports.usePreferredReducedMotion=Vs.usePreferredReducedMotion;exports.useBatchedCallback=ws.useBatchedCallback;exports.useConst=Us.useConst;exports.useDebounceCallback=Hs.useDebounceCallback;exports.useDebounceState=xs.useDebounceState;exports.useDebounceValue=Ws.useDebounceValue;exports.useEvent=zs.useEvent;exports.useLastChanged=Qs.useLastChanged;exports.useLatest=Gs.useLatest;exports.usePrevious=Xs.usePrevious;exports.useThrottleCallback=Zs.useThrottleCallback;exports.useThrottleState=js.useThrottleState;exports.useThrottleValue=Js.useThrottleValue;exports.copy=f.copy;exports.legacyCopyToClipboard=f.legacyCopyToClipboard;exports.debounce=Ys.debounce;exports.getDate=$s.getDate;exports.getRetry=eu.getRetry;exports.getRawElement=u.getRawElement;exports.getRefState=u.getRefState;exports.isBrowserTarget=u.isBrowserTarget;exports.isRef=u.isRef;exports.isRefState=u.isRefState;exports.isTarget=u.isTarget;exports.target=u.target;exports.targetSymbol=u.targetSymbol;exports.throttle=su.throttle;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("./helpers/createContext/createContext.cjs"),I=require("./helpers/createEventEmitter/createEventEmitter.cjs"),O=require("./helpers/createReactiveContext/createReactiveContext.cjs"),b=require("./helpers/createStore/createStore.cjs"),v=require("./hooks/useAsync/useAsync.cjs"),A=require("./hooks/useLockCallback/useLockCallback.cjs"),D=require("./hooks/useMutation/useMutation.cjs"),L=require("./hooks/useOptimistic/useOptimistic.cjs"),M=require("./hooks/useQuery/useQuery.cjs"),_=require("./hooks/useAudio/useAudio.cjs"),B=require("./hooks/useBattery/useBattery.cjs"),N=require("./hooks/useBluetooth/useBluetooth.cjs"),F=require("./hooks/useBroadcastChannel/useBroadcastChannel.cjs"),K=require("./hooks/useClipboard/useClipboard.cjs"),V=require("./hooks/useCopy/useCopy.cjs"),w=require("./hooks/useCssVar/useCssVar.cjs"),U=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),H=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),x=require("./hooks/useEventSource/useEventSource.cjs"),W=require("./hooks/useEyeDropper/useEyeDropper.cjs"),z=require("./hooks/useFavicon/useFavicon.cjs"),Q=require("./hooks/useFps/useFps.cjs"),G=require("./hooks/useFullscreen/useFullscreen.cjs"),n=require("./hooks/useGamepad/useGamepad.cjs"),X=require("./hooks/useGeolocation/useGeolocation.cjs"),c=require("./hooks/useMediaControls/useMediaControls.cjs"),Z=require("./hooks/useMemory/useMemory.cjs"),a=require("./hooks/useNetwork/useNetwork.cjs"),j=require("./hooks/useOnline/useOnline.cjs"),J=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Y=require("./hooks/usePermission/usePermission.cjs"),$=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),ee=require("./hooks/usePointerLock/usePointerLock.cjs"),se=require("./hooks/usePostMessage/usePostMessage.cjs"),ue=require("./hooks/useRaf/useRaf.cjs"),re=require("./hooks/useShare/useShare.cjs"),l=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),te=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),oe=require("./hooks/useVibrate/useVibrate.cjs"),ie=require("./hooks/useVirtualKeyboard/useVirtualKeyboard.cjs"),ne=require("./hooks/useWakeLock/useWakeLock.cjs"),ce=require("./hooks/useWebSocket/useWebSocket.cjs"),ae=require("./hooks/useLogger/useLogger.cjs"),le=require("./hooks/useRenderCount/useRenderCount.cjs"),Se=require("./hooks/useRenderInfo/useRenderInfo.cjs"),qe=require("./hooks/useRerender/useRerender.cjs"),de=require("./hooks/useActiveElement/useActiveElement.cjs"),ge=require("./hooks/useAutoScroll/useAutoScroll.cjs"),Te=require("./hooks/useClickOutside/useClickOutside.cjs"),S=require("./hooks/useDoubleClick/useDoubleClick.cjs"),Ee=require("./hooks/useDropZone/useDropZone.cjs"),Re=require("./hooks/useFileDialog/useFileDialog.cjs"),Ce=require("./hooks/useFocus/useFocus.cjs"),q=require("./hooks/useFocusTrap/useFocusTrap.cjs"),Pe=require("./hooks/useHover/useHover.cjs"),me=require("./hooks/useImage/useImage.cjs"),ye=require("./hooks/useLongPress/useLongPress.cjs"),t=require("./hooks/usePaint/usePaint.cjs"),fe=require("./hooks/useRightClick/useRightClick.cjs"),d=require("./hooks/useScript/useScript.cjs"),pe=require("./hooks/useSticky/useSticky.cjs"),he=require("./hooks/useTextareaAutosize/useTextareaAutosize.cjs"),ke=require("./hooks/useTextDirection/useTextDirection.cjs"),Ie=require("./hooks/useFul/useFul.cjs"),Oe=require("./hooks/useLess/useLess.cjs"),be=require("./hooks/useOnce/useOnce.cjs"),ve=require("./hooks/useAsyncEffect/useAsyncEffect.cjs"),Ae=require("./hooks/useDidUpdate/useDidUpdate.cjs"),De=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),Le=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),Me=require("./hooks/useMount/useMount.cjs"),g=require("./hooks/useShallowEffect/useShallowEffect.cjs"),_e=require("./hooks/useUnmount/useUnmount.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),Be=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),Ne=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),Fe=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),Ke=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),Ve=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),we=require("./hooks/useEventListener/useEventListener.cjs"),T=require("./hooks/useHotkeys/useHotkeys.cjs"),Ue=require("./hooks/useIdle/useIdle.cjs"),He=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),xe=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),We=require("./hooks/useKeyboard/useKeyboard.cjs"),ze=require("./hooks/useKeyPress/useKeyPress.cjs"),Qe=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),Ge=require("./hooks/useKeysPressed/useKeysPressed.cjs"),Xe=require("./hooks/useLockScroll/useLockScroll.cjs"),Ze=require("./hooks/useMeasure/useMeasure.cjs"),je=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Je=require("./hooks/useMouse/useMouse.cjs"),Ye=require("./hooks/useMutationObserver/useMutationObserver.cjs"),$e=require("./hooks/useOrientation/useOrientation.cjs"),es=require("./hooks/usePageLeave/usePageLeave.cjs"),ss=require("./hooks/useParallax/useParallax.cjs"),us=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),rs=require("./hooks/useResizeObserver/useResizeObserver.cjs"),ts=require("./hooks/useScroll/useScroll.cjs"),os=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),is=require("./hooks/useScrollTo/useScrollTo.cjs"),ns=require("./hooks/useSize/useSize.cjs"),E=require("./hooks/useTextSelection/useTextSelection.cjs"),cs=require("./hooks/useVisibility/useVisibility.cjs"),as=require("./hooks/useWindowEvent/useWindowEvent.cjs"),ls=require("./hooks/useWindowFocus/useWindowFocus.cjs"),R=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Ss=require("./hooks/useWindowSize/useWindowSize.cjs"),qs=require("./hooks/useBoolean/useBoolean.cjs"),ds=require("./hooks/useControllableState/useControllableState.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),C=require("./hooks/useCookies/useCookies.cjs"),gs=require("./hooks/useCounter/useCounter.cjs"),Ts=require("./hooks/useDefault/useDefault.cjs"),Es=require("./hooks/useDisclosure/useDisclosure.cjs"),Rs=require("./hooks/useField/useField.cjs"),P=require("./hooks/useHash/useHash.cjs"),Cs=require("./hooks/useList/useList.cjs"),Ps=require("./hooks/useLocalStorage/useLocalStorage.cjs"),ms=require("./hooks/useMap/useMap.cjs"),o=require("./hooks/useMergedRef/useMergedRef.cjs"),ys=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),fs=require("./hooks/useQueue/useQueue.cjs"),ps=require("./hooks/useRafState/useRafState.cjs"),m=require("./hooks/useRefState/useRefState.cjs"),hs=require("./hooks/useSessionStorage/useSessionStorage.cjs"),ks=require("./hooks/useSet/useSet.cjs"),y=require("./hooks/useStateHistory/useStateHistory.cjs"),Is=require("./hooks/useStep/useStep.cjs"),i=require("./hooks/useStorage/useStorage.cjs"),Os=require("./hooks/useToggle/useToggle.cjs"),r=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),bs=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),vs=require("./hooks/useWizard/useWizard.cjs"),As=require("./hooks/useInterval/useInterval.cjs"),Ds=require("./hooks/useStopwatch/useStopwatch.cjs"),Ls=require("./hooks/useTime/useTime.cjs"),Ms=require("./hooks/useTimeout/useTimeout.cjs"),f=require("./hooks/useTimer/useTimer.cjs"),_s=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),p=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),Bs=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),Ns=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),Fs=require("./hooks/usePreferredDark/usePreferredDark.cjs"),Ks=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),Vs=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),ws=require("./hooks/useBatchedCallback/useBatchedCallback.cjs"),Us=require("./hooks/useConst/useConst.cjs"),Hs=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),xs=require("./hooks/useDebounceEffect/useDebounceEffect.cjs"),Ws=require("./hooks/useDebounceState/useDebounceState.cjs"),zs=require("./hooks/useDebounceValue/useDebounceValue.cjs"),Qs=require("./hooks/useEvent/useEvent.cjs"),Gs=require("./hooks/useLastChanged/useLastChanged.cjs"),Xs=require("./hooks/useLatest/useLatest.cjs"),Zs=require("./hooks/usePrevious/usePrevious.cjs"),js=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),Js=require("./hooks/useThrottleEffect/useThrottleEffect.cjs"),Ys=require("./hooks/useThrottleState/useThrottleState.cjs"),$s=require("./hooks/useThrottleValue/useThrottleValue.cjs"),h=require("./utils/helpers/copy.cjs"),eu=require("./utils/helpers/debounce.cjs"),su=require("./utils/helpers/getDate.cjs"),uu=require("./utils/helpers/getRetry.cjs"),u=require("./utils/helpers/isTarget.cjs"),ru=require("./utils/helpers/throttle.cjs");exports.createContext=k.createContext;exports.createEventEmitter=I.createEventEmitter;exports.createReactiveContext=O.createReactiveContext;exports.createStore=b.createStore;exports.useAsync=v.useAsync;exports.useLockCallback=A.useLockCallback;exports.useMutation=D.useMutation;exports.useOptimistic=L.useOptimistic;exports.useQuery=M.useQuery;exports.useAudio=_.useAudio;exports.useBattery=B.useBattery;exports.useBluetooth=N.useBluetooth;exports.useBroadcastChannel=F.useBroadcastChannel;exports.useClipboard=K.useClipboard;exports.useCopy=V.useCopy;exports.useCssVar=w.useCssVar;exports.useDisplayMedia=U.useDisplayMedia;exports.useDocumentTitle=H.useDocumentTitle;exports.useEventSource=x.useEventSource;exports.useEyeDropper=W.useEyeDropper;exports.useFavicon=z.useFavicon;exports.useFps=Q.useFps;exports.useFullscreen=G.useFullscreen;exports.mapGamepadToXbox360Controller=n.mapGamepadToXbox360Controller;exports.useGamepad=n.useGamepad;exports.useGeolocation=X.useGeolocation;exports.timeRangeToArray=c.timeRangeToArray;exports.useMediaControls=c.useMediaControls;exports.useMemory=Z.useMemory;exports.getConnection=a.getConnection;exports.useNetwork=a.useNetwork;exports.useOnline=j.useOnline;exports.useOtpCredential=J.useOtpCredential;exports.usePermission=Y.usePermission;exports.usePictureInPicture=$.usePictureInPicture;exports.usePointerLock=ee.usePointerLock;exports.usePostMessage=se.usePostMessage;exports.useRaf=ue.useRaf;exports.useShare=re.useShare;exports.getSpeechRecognition=l.getSpeechRecognition;exports.useSpeechRecognition=l.useSpeechRecognition;exports.useSpeechSynthesis=te.useSpeechSynthesis;exports.useVibrate=oe.useVibrate;exports.useVirtualKeyboard=ie.useVirtualKeyboard;exports.useWakeLock=ne.useWakeLock;exports.useWebSocket=ce.useWebSocket;exports.useLogger=ae.useLogger;exports.useRenderCount=le.useRenderCount;exports.useRenderInfo=Se.useRenderInfo;exports.useRerender=qe.useRerender;exports.useActiveElement=de.useActiveElement;exports.useAutoScroll=ge.useAutoScroll;exports.useClickOutside=Te.useClickOutside;exports.DEFAULT_THRESHOLD_TIME=S.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=S.useDoubleClick;exports.useDropZone=Ee.useDropZone;exports.useFileDialog=Re.useFileDialog;exports.useFocus=Ce.useFocus;exports.FOCUS_SELECTOR=q.FOCUS_SELECTOR;exports.useFocusTrap=q.useFocusTrap;exports.useHover=Pe.useHover;exports.useImage=me.useImage;exports.useLongPress=ye.useLongPress;exports.Paint=t.Paint;exports.Pointer=t.Pointer;exports.usePaint=t.usePaint;exports.useRightClick=fe.useRightClick;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=d.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=d.useScript;exports.useSticky=pe.useSticky;exports.useTextareaAutosize=he.useTextareaAutosize;exports.useTextDirection=ke.useTextDirection;exports.useFul=Ie.useFul;exports.useLess=Oe.useLess;exports.useOnce=be.useOnce;exports.useAsyncEffect=ve.useAsyncEffect;exports.useDidUpdate=Ae.useDidUpdate;exports.useIsFirstRender=De.useIsFirstRender;exports.useIsomorphicLayoutEffect=Le.useIsomorphicLayoutEffect;exports.useMount=Me.useMount;exports.deepEqual=g.deepEqual;exports.useShallowEffect=g.useShallowEffect;exports.useUnmount=_e.useUnmount;exports.BREAKPOINTS_ANT_DESIGN=e.BREAKPOINTS_ANT_DESIGN;exports.BREAKPOINTS_BOOTSTRAP_V5=e.BREAKPOINTS_BOOTSTRAP_V5;exports.BREAKPOINTS_MANTINE=e.BREAKPOINTS_MANTINE;exports.BREAKPOINTS_MASTER_CSS=e.BREAKPOINTS_MASTER_CSS;exports.BREAKPOINTS_MATERIAL_UI=e.BREAKPOINTS_MATERIAL_UI;exports.BREAKPOINTS_PRIME_FLEX=e.BREAKPOINTS_PRIME_FLEX;exports.BREAKPOINTS_QUASAR_V2=e.BREAKPOINTS_QUASAR_V2;exports.BREAKPOINTS_SEMANTIC=e.BREAKPOINTS_SEMANTIC;exports.BREAKPOINTS_TAILWIND=e.BREAKPOINTS_TAILWIND;exports.useBreakpoints=e.useBreakpoints;exports.useDeviceMotion=Be.useDeviceMotion;exports.useDeviceOrientation=Ne.useDeviceOrientation;exports.useDevicePixelRatio=Fe.useDevicePixelRatio;exports.useDocumentEvent=Ke.useDocumentEvent;exports.useDocumentVisibility=Ve.useDocumentVisibility;exports.useEventListener=we.useEventListener;exports.isHotkeyMatch=T.isHotkeyMatch;exports.useHotkeys=T.useHotkeys;exports.useIdle=Ue.useIdle;exports.useInfiniteScroll=He.useInfiniteScroll;exports.useIntersectionObserver=xe.useIntersectionObserver;exports.useKeyboard=We.useKeyboard;exports.useKeyPress=ze.useKeyPress;exports.useKeyPressEvent=Qe.useKeyPressEvent;exports.useKeysPressed=Ge.useKeysPressed;exports.useLockScroll=Xe.useLockScroll;exports.useMeasure=Ze.useMeasure;exports.useMediaQuery=je.useMediaQuery;exports.useMouse=Je.useMouse;exports.useMutationObserver=Ye.useMutationObserver;exports.useOrientation=$e.useOrientation;exports.usePageLeave=es.usePageLeave;exports.useParallax=ss.useParallax;exports.usePerformanceObserver=us.usePerformanceObserver;exports.useResizeObserver=rs.useResizeObserver;exports.useScroll=ts.useScroll;exports.useScrollIntoView=os.useScrollIntoView;exports.useScrollTo=is.useScrollTo;exports.useSize=ns.useSize;exports.getRangesSelection=E.getRangesSelection;exports.useTextSelection=E.useTextSelection;exports.useVisibility=cs.useVisibility;exports.useWindowEvent=as.useWindowEvent;exports.useWindowFocus=ls.useWindowFocus;exports.scrollTo=R.scrollTo;exports.useWindowScroll=R.useWindowScroll;exports.useWindowSize=Ss.useWindowSize;exports.useBoolean=qs.useBoolean;exports.useControllableState=ds.useControllableState;exports.COOKIE_EVENT=s.COOKIE_EVENT;exports.dispatchCookieEvent=s.dispatchCookieEvent;exports.getCookie=s.getCookie;exports.getCookies=s.getCookies;exports.removeCookie=s.removeCookie;exports.removeCookieItem=s.removeCookieItem;exports.setCookie=s.setCookie;exports.setCookieItem=s.setCookieItem;exports.useCookie=s.useCookie;exports.clearCookies=C.clearCookies;exports.useCookies=C.useCookies;exports.useCounter=gs.useCounter;exports.useDefault=Ts.useDefault;exports.useDisclosure=Es.useDisclosure;exports.useField=Rs.useField;exports.getHash=P.getHash;exports.useHash=P.useHash;exports.useList=Cs.useList;exports.useLocalStorage=Ps.useLocalStorage;exports.useMap=ms.useMap;exports.assignRef=o.assignRef;exports.mergeRefs=o.mergeRefs;exports.useMergedRef=o.useMergedRef;exports.useOffsetPagination=ys.useOffsetPagination;exports.useQueue=fs.useQueue;exports.useRafState=ps.useRafState;exports.createRefState=m.createRefState;exports.useRefState=m.useRefState;exports.useSessionStorage=hs.useSessionStorage;exports.useSet=ks.useSet;exports.stateHistoryReducer=y.stateHistoryReducer;exports.useStateHistory=y.useStateHistory;exports.useStep=Is.useStep;exports.STORAGE_EVENT=i.STORAGE_EVENT;exports.dispatchStorageEvent=i.dispatchStorageEvent;exports.useStorage=i.useStorage;exports.useToggle=Os.useToggle;exports.URL_SEARCH_PARAMS_EVENT=r.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=r.createQueryString;exports.dispatchUrlSearchParamsEvent=r.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=r.getUrlSearchParams;exports.useUrlSearchParam=r.useUrlSearchParam;exports.useUrlSearchParams=bs.useUrlSearchParams;exports.useWizard=vs.useWizard;exports.useInterval=As.useInterval;exports.useStopwatch=Ds.useStopwatch;exports.useTime=Ls.useTime;exports.useTimeout=Ms.useTimeout;exports.getTimeFromSeconds=f.getTimeFromSeconds;exports.useTimer=f.useTimer;exports.useBrowserLanguage=_s.useBrowserLanguage;exports.getOperatingSystem=p.getOperatingSystem;exports.useOperatingSystem=p.useOperatingSystem;exports.usePreferredColorScheme=Bs.usePreferredColorScheme;exports.usePreferredContrast=Ns.usePreferredContrast;exports.usePreferredDark=Fs.usePreferredDark;exports.usePreferredLanguages=Ks.usePreferredLanguages;exports.usePreferredReducedMotion=Vs.usePreferredReducedMotion;exports.useBatchedCallback=ws.useBatchedCallback;exports.useConst=Us.useConst;exports.useDebounceCallback=Hs.useDebounceCallback;exports.useDebounceEffect=xs.useDebounceEffect;exports.useDebounceState=Ws.useDebounceState;exports.useDebounceValue=zs.useDebounceValue;exports.useEvent=Qs.useEvent;exports.useLastChanged=Gs.useLastChanged;exports.useLatest=Xs.useLatest;exports.usePrevious=Zs.usePrevious;exports.useThrottleCallback=js.useThrottleCallback;exports.useThrottleEffect=Js.useThrottleEffect;exports.useThrottleState=Ys.useThrottleState;exports.useThrottleValue=$s.useThrottleValue;exports.copy=h.copy;exports.legacyCopyToClipboard=h.legacyCopyToClipboard;exports.debounce=eu.debounce;exports.getDate=su.getDate;exports.getRetry=uu.getRetry;exports.getRawElement=u.getRawElement;exports.getRefState=u.getRefState;exports.isBrowserTarget=u.isBrowserTarget;exports.isRef=u.isRef;exports.isRefState=u.isRefState;exports.isTarget=u.isTarget;exports.target=u.target;exports.targetSymbol=u.targetSymbol;exports.throttle=ru.throttle;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,19 @@
1
+ import { useRef as r, useEffect as s } from "react";
2
+ const m = (u, n, i) => {
3
+ const c = r(!0), e = r(null), t = r(void 0), f = r(u), o = r(n);
4
+ f.current = u, o.current = n, s(() => {
5
+ if (c.current) {
6
+ c.current = !1;
7
+ return;
8
+ }
9
+ return e.current && (clearTimeout(e.current), e.current = null), e.current = setTimeout(() => {
10
+ t.current = f.current();
11
+ }, o.current), () => {
12
+ e.current && clearTimeout(e.current), e.current = null, typeof t.current == "function" && t.current();
13
+ };
14
+ }, i);
15
+ };
16
+ export {
17
+ m as useDebounceEffect
18
+ };
19
+ //# sourceMappingURL=useDebounceEffect.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounceEffect.mjs","sources":["../../../../src/hooks/useDebounceEffect/useDebounceEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useDebounceEffect\n * @description – Hook that runs an effect after a delay when dependencies change\n * @category Utilities\n * @usage high\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useDebounceEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useDebounceEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"names":["useDebounceEffect","effect","delay","deps","mountedRef","useRef","timeoutRef","cleanupRef","effectRef","delayRef","useEffect"],"mappings":";AAiBO,MAAMA,IAAoB,CAACC,GAAwBC,GAAeC,MAA0B;AACjG,QAAMC,IAAaC,EAAO,EAAI,GACxBC,IAAaD,EAA6C,IAAI,GAC9DE,IAAaF,EAAmC,MAAS,GACzDG,IAAYH,EAAOJ,CAAM,GACzBQ,IAAWJ,EAAOH,CAAK;AAE7B,EAAAM,EAAU,UAAUP,GACpBQ,EAAS,UAAUP,GAEnBQ,EAAU,MAAM;AACd,QAAIN,EAAW,SAAS;AACtB,MAAAA,EAAW,UAAU;AACrB;AAAA,IAAA;AAGF,WAAIE,EAAW,YACb,aAAaA,EAAW,OAAO,GAC/BA,EAAW,UAAU,OAGvBA,EAAW,UAAU,WAAW,MAAM;AACpC,MAAAC,EAAW,UAAUC,EAAU,QAAA;AAAA,IAAQ,GACtCC,EAAS,OAAO,GAEZ,MAAM;AACX,MAAIH,EAAW,WAAS,aAAaA,EAAW,OAAO,GACvDA,EAAW,UAAU,MACjB,OAAOC,EAAW,WAAY,gBAAuB,QAAA;AAAA,IAAQ;AAAA,EACnE,GACCJ,CAAI;AACT;"}
@@ -1,16 +1,16 @@
1
1
  import { useRef as u } from "react";
2
- import { useIsomorphicLayoutEffect as e } from "../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
2
+ import { useIsomorphicLayoutEffect as r } from "../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
3
3
  const s = (t, o) => {
4
- const r = u(!1);
5
- e(
4
+ const e = u(!1);
5
+ r(
6
6
  () => () => {
7
- r.current = !1;
7
+ e.current = !1;
8
8
  },
9
9
  []
10
- ), e(() => {
11
- if (r.current)
10
+ ), r(() => {
11
+ if (e.current)
12
12
  return t();
13
- r.current = !0;
13
+ e.current = !0;
14
14
  }, o);
15
15
  };
16
16
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"useDidUpdate.mjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mounted = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mounted","useRef","useIsomorphicLayoutEffect"],"mappings":";;AAkBO,MAAMA,IAAe,CAACC,GAAwBC,MAA0B;AAC7E,QAAMC,IAAUC,EAAO,EAAK;AAE5B,EAAAC;AAAA,IACE,MAAM,MAAM;AACV,MAAAF,EAAQ,UAAU;AAAA,IAAA;AAAA,IAEpB,CAAA;AAAA,EAAC,GAGHE,EAA0B,MAAM;AAC9B,QAAIF,EAAQ;AACV,aAAOF,EAAA;AAGT,IAAAE,EAAQ,UAAU;AAAA,EACX,GACND,CAAI;AACT;"}
1
+ {"version":3,"file":"useDidUpdate.mjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n * @usage necessary\n\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mountedRef = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mountedRef.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n return effect();\n }\n\n mountedRef.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mountedRef","useRef","useIsomorphicLayoutEffect"],"mappings":";;AAkBO,MAAMA,IAAe,CAACC,GAAwBC,MAA0B;AAC7E,QAAMC,IAAaC,EAAO,EAAK;AAE/B,EAAAC;AAAA,IACE,MAAM,MAAM;AACV,MAAAF,EAAW,UAAU;AAAA,IAAA;AAAA,IAEvB,CAAA;AAAA,EAAC,GAGHE,EAA0B,MAAM;AAC9B,QAAIF,EAAW;AACb,aAAOF,EAAA;AAGT,IAAAE,EAAW,UAAU;AAAA,EACd,GACND,CAAI;AACT;"}
@@ -0,0 +1,31 @@
1
+ import { useState as c } from "react";
2
+ import { useIsomorphicLayoutEffect as l } from "../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
3
+ import { useRefState as v } from "../useRefState/useRefState.mjs";
4
+ import { isTarget as h } from "../../utils/helpers/isTarget.mjs";
5
+ const z = ((...u) => {
6
+ const e = u[0], [n, o] = c({ width: 0, height: 0 }), [s, g] = c(), r = v();
7
+ return l(() => {
8
+ const t = e ? h.getElement(e) : r.current;
9
+ if (!t) return;
10
+ const { width: m, height: f } = t.getBoundingClientRect();
11
+ o({
12
+ width: m,
13
+ height: f
14
+ });
15
+ const i = new ResizeObserver(() => {
16
+ const { width: a, height: d } = t.getBoundingClientRect();
17
+ o({ width: a, height: d });
18
+ });
19
+ return g(i), i.observe(t), () => {
20
+ i.disconnect();
21
+ };
22
+ }, [r.state, e && h.getRawElement(e)]), e ? { observer: s, value: n } : {
23
+ observer: s,
24
+ ref: r,
25
+ value: n
26
+ };
27
+ });
28
+ export {
29
+ z as useSize
30
+ };
31
+ //# sourceMappingURL=useSize.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSize.mjs","sources":["../../../../src/hooks/useSize/useSize.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The size value type */\nexport interface UseSizeValue {\n /** The element's height */\n height: number;\n /** The element's width */\n width: number;\n}\n\n/** The use size return type */\nexport interface UseSizeReturn {\n /** The resize observer instance */\n observer?: ResizeObserver;\n /** The current size value */\n value: UseSizeValue;\n}\n\nexport interface UseSize {\n (target: HookTarget): UseSizeReturn;\n\n <Target extends Element>(\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseSizeReturn;\n}\n\n/**\n * @name useSize\n * @description - Hook that observes and returns the width and height of element\n * @category Elements\n * @usage low\n *\n * @overload\n * @param {HookTarget} target The target element to observe\n * @returns {UseSizeReturn} An object containing the resize observer, current width and height of the element\n *\n * @example\n * const { value, observer } = useSize(ref);\n *\n * @overload\n * @template Target The target element type\n * @returns { { ref: StateRef<Target> } & UseSizeReturn } An object containing the resize observer, current width and height of the element\n *\n * @example\n * const { ref, value, observer } = useSize();\n */\nexport const useSize = ((...params: any[]) => {\n const target = params[0] as HookTarget | undefined;\n const [size, setSize] = useState({ width: 0, height: 0 });\n const [observer, setObserver] = useState<ResizeObserver>();\n const internalRef = useRefState<Element>();\n\n useIsomorphicLayoutEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const { width, height } = element.getBoundingClientRect();\n setSize({\n width,\n height\n });\n\n const observer = new ResizeObserver(() => {\n const { width, height } = element.getBoundingClientRect();\n setSize({ width, height });\n });\n\n setObserver(observer);\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { observer, value: size };\n return {\n observer,\n ref: internalRef,\n value: size\n };\n}) as UseSize;\n"],"names":["useSize","params","target","size","setSize","useState","observer","setObserver","internalRef","useRefState","useIsomorphicLayoutEffect","element","isTarget","width","height"],"mappings":";;;;AAyDO,MAAMA,KAAW,IAAIC,MAAkB;AAC5C,QAAMC,IAASD,EAAO,CAAC,GACjB,CAACE,GAAMC,CAAO,IAAIC,EAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,GAClD,CAACC,GAAUC,CAAW,IAAIF,EAAA,GAC1BG,IAAcC,EAAA;AA0BpB,SAxBAC,EAA0B,MAAM;AAC9B,UAAMC,IAAWT,IAASU,EAAS,WAAWV,CAAM,IAAIM,EAAY;AAEpE,QAAI,CAACG,EAAS;AAEd,UAAM,EAAE,OAAAE,GAAO,QAAAC,MAAWH,EAAQ,sBAAA;AAClC,IAAAP,EAAQ;AAAA,MACN,OAAAS;AAAA,MACA,QAAAC;AAAA,IAAA,CACD;AAED,UAAMR,IAAW,IAAI,eAAe,MAAM;AACxC,YAAM,EAAE,OAAAO,GAAO,QAAAC,EAAAA,IAAWH,EAAQ,sBAAA;AAClC,MAAAP,EAAQ,EAAE,OAAAS,GAAO,QAAAC,GAAQ;AAAA,IAAA,CAC1B;AAED,WAAAP,EAAYD,CAAQ,GACpBA,EAAS,QAAQK,CAAO,GAEjB,MAAM;AACXL,MAAAA,EAAS,WAAA;AAAA,IAAW;AAAA,EACtB,GACC,CAACE,EAAY,OAAON,KAAUU,EAAS,cAAcV,CAAM,CAAC,CAAC,GAE5DA,IAAe,EAAE,UAAAI,GAAU,OAAOH,EAAA,IAC/B;AAAA,IACL,UAAAG;AAAA,IACA,KAAKE;AAAA,IACL,OAAOL;AAAA,EAAA;AAEX;"}
@@ -0,0 +1,22 @@
1
+ import { useRef as e, useEffect as l } from "react";
2
+ const R = (f, o, i) => {
3
+ const s = e(!0), r = e(void 0), t = e(null), u = e(!1), n = e(f), c = e(o);
4
+ n.current = f, c.current = o, l(() => {
5
+ if (s.current) {
6
+ s.current = !1;
7
+ return;
8
+ }
9
+ if (!u.current)
10
+ return r.current = n.current(), u.current = !0, setTimeout(() => {
11
+ u.current = !1, t.current = setTimeout(() => {
12
+ r.current = n.current();
13
+ }, c.current);
14
+ }, c.current), () => {
15
+ t.current && clearTimeout(t.current), t.current = null, typeof r.current == "function" && r.current();
16
+ };
17
+ }, i);
18
+ };
19
+ export {
20
+ R as useThrottleEffect
21
+ };
22
+ //# sourceMappingURL=useThrottleEffect.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThrottleEffect.mjs","sources":["../../../../src/hooks/useThrottleEffect/useThrottleEffect.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * @name useThrottleEffect\n * @description – Hook that runs an effect at most once per delay period when dependencies change\n * @category Utilities\n * @usage medium\n *\n * @param {EffectCallback} effect The effect callback to run\n * @param {number} delay The delay in milliseconds\n * @param {DependencyList} deps The dependencies list for the effect\n *\n * @example\n * useThrottleEffect(() => console.log('effect'), 500, [value]);\n */\nexport const useThrottleEffect = (effect: EffectCallback, delay: number, deps?: DependencyList) => {\n const mountedRef = useRef(true);\n const cleanupRef = useRef<ReturnType<EffectCallback>>(undefined);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isCalledRef = useRef(false);\n\n const effectRef = useRef(effect);\n const delayRef = useRef(delay);\n\n effectRef.current = effect;\n delayRef.current = delay;\n\n useEffect(() => {\n if (mountedRef.current) {\n mountedRef.current = false;\n return;\n }\n\n if (isCalledRef.current) return;\n\n cleanupRef.current = effectRef.current();\n isCalledRef.current = true;\n\n setTimeout(() => {\n isCalledRef.current = false;\n\n timeoutRef.current = setTimeout(() => {\n cleanupRef.current = effectRef.current();\n }, delayRef.current);\n }, delayRef.current);\n\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n if (typeof cleanupRef.current === 'function') cleanupRef.current();\n };\n }, deps);\n};\n"],"names":["useThrottleEffect","effect","delay","deps","mountedRef","useRef","cleanupRef","timeoutRef","isCalledRef","effectRef","delayRef","useEffect"],"mappings":";AAiBO,MAAMA,IAAoB,CAACC,GAAwBC,GAAeC,MAA0B;AACjG,QAAMC,IAAaC,EAAO,EAAI,GACxBC,IAAaD,EAAmC,MAAS,GACzDE,IAAaF,EAA6C,IAAI,GAC9DG,IAAcH,EAAO,EAAK,GAE1BI,IAAYJ,EAAOJ,CAAM,GACzBS,IAAWL,EAAOH,CAAK;AAE7B,EAAAO,EAAU,UAAUR,GACpBS,EAAS,UAAUR,GAEnBS,EAAU,MAAM;AACd,QAAIP,EAAW,SAAS;AACtB,MAAAA,EAAW,UAAU;AACrB;AAAA,IAAA;AAGF,QAAI,CAAAI,EAAY;AAEhB,aAAAF,EAAW,UAAUG,EAAU,QAAA,GAC/BD,EAAY,UAAU,IAEtB,WAAW,MAAM;AACf,QAAAA,EAAY,UAAU,IAEtBD,EAAW,UAAU,WAAW,MAAM;AACpC,UAAAD,EAAW,UAAUG,EAAU,QAAA;AAAA,QAAQ,GACtCC,EAAS,OAAO;AAAA,MAAA,GAClBA,EAAS,OAAO,GAEZ,MAAM;AACX,QAAIH,EAAW,WAAS,aAAaA,EAAW,OAAO,GACvDA,EAAW,UAAU,MACjB,OAAOD,EAAW,WAAY,gBAAuB,QAAA;AAAA,MAAQ;AAAA,EACnE,GACCH,CAAI;AACT;"}
@@ -1,40 +1,40 @@
1
- import { useState as d, useRef as E, useEffect as R } from "react";
2
- import { useRefState as m } from "../useRefState/useRefState.mjs";
3
- import { isTarget as s } from "../../utils/helpers/isTarget.mjs";
4
- const V = ((...e) => {
5
- const n = s(e[0]) ? e[0] : void 0, t = n ? typeof e[1] == "object" ? e[1] : { onChange: e[1] } : typeof e[0] == "object" ? e[0] : { onChange: e[0] }, i = t?.onChange, f = t?.enabled ?? !0, [u, v] = d(), [o, y] = d(), r = m(), l = E(i);
6
- return l.current = i, R(() => {
7
- if (!f || !n && !r.state) return;
8
- const b = n ? s.getElement(n) : r.current;
9
- if (!b) return;
1
+ import { useState as d, useRef as R, useEffect as m } from "react";
2
+ import { useRefState as C } from "../useRefState/useRefState.mjs";
3
+ import { isTarget as r } from "../../utils/helpers/isTarget.mjs";
4
+ const I = ((...e) => {
5
+ const n = r(e[0]) ? e[0] : void 0, t = n ? typeof e[1] == "object" ? e[1] : { onChange: e[1] } : typeof e[0] == "object" ? e[0] : { onChange: e[0] }, f = t?.onChange, l = t?.enabled ?? !0, [u, v] = d(), [s, y] = d(), b = s?.isIntersecting ?? !1, o = C(), g = R(f);
6
+ return g.current = f, m(() => {
7
+ if (!l || !n && !o.state) return;
8
+ const a = n ? r.getElement(n) : o.current;
9
+ if (!a) return;
10
10
  const c = new IntersectionObserver(
11
- (a, h) => {
12
- const g = a.pop();
13
- y(g), l.current?.(g, h);
11
+ (E, h) => {
12
+ const i = E[0];
13
+ i && (y(i), g.current?.(i, h));
14
14
  },
15
15
  {
16
16
  ...t,
17
- root: t?.root ? s.getElement(t.root) : document
17
+ root: t?.root ? r.getElement(t.root) : document
18
18
  }
19
19
  );
20
- return v(c), c.observe(b), () => {
20
+ return v(c), c.observe(a), () => {
21
21
  c.disconnect();
22
22
  };
23
23
  }, [
24
- n && s.getRawElement(n),
25
- r.state,
24
+ n && r.getRawElement(n),
25
+ o.state,
26
26
  t?.rootMargin,
27
27
  t?.threshold,
28
28
  t?.root,
29
- f
30
- ]), n ? { observer: u, entry: o, inView: !!o?.isIntersecting } : {
29
+ l
30
+ ]), n ? { observer: u, entry: s, inView: b } : {
31
31
  observer: u,
32
- ref: r,
33
- entry: o,
34
- inView: !!o?.isIntersecting
32
+ ref: o,
33
+ entry: s,
34
+ inView: b
35
35
  };
36
36
  });
37
37
  export {
38
- V as useVisibility
38
+ I as useVisibility
39
39
  };
40
40
  //# sourceMappingURL=useVisibility.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useVisibility.mjs","sources":["../../../../src/hooks/useVisibility/useVisibility.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The visibility callback type */\nexport type UseVisibilityCallback = (\n entry: IntersectionObserverEntry,\n observer: IntersectionObserver\n) => void;\n\n/** The visibility options type */\nexport interface UseVisibilityOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseVisibilityCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseVisibilityReturn {\n /** The intersection observer entry */\n entry?: IntersectionObserverEntry;\n /** The intersection observer in view */\n inView?: boolean;\n\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseVisibility {\n <Target extends Element>(\n options?: UseVisibilityOptions,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseVisibilityOptions): UseVisibilityReturn;\n\n <Target extends Element>(\n callback: UseVisibilityCallback,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseVisibilityCallback): UseVisibilityReturn;\n}\n\n/**\n * @name useVisibility\n * @description - Hook that gives you visibility observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = useVisibility();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entries, observer } = useVisibility(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useVisibility(() => console.log('callback'));\n *\n * @overload\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useVisibility(ref, () => console.log('callback'));\n */\nexport const useVisibility = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseVisibilityOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n const entry = entries.pop()!;\n setEntry(entry);\n internalCallbackRef.current?.(entry, observer);\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entry, inView: !!entry?.isIntersecting };\n return {\n observer,\n ref: internalRef,\n entry,\n inView: !!entry?.isIntersecting\n };\n}) as UseVisibility;\n"],"names":["useVisibility","params","target","isTarget","options","callback","enabled","observer","setObserver","useState","entry","setEntry","internalRef","useRefState","internalCallbackRef","useRef","useEffect","element","entries"],"mappings":";;;AAiGO,MAAMA,KAAiB,IAAIC,MAAkB;AAClD,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAE5CG,IACJF,IACI,OAAOD,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,UAAUA,EAAO,CAAC,EAAA,IACtB,OAAOA,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,UAAUA,EAAO,CAAC,EAAA,GAGtBI,IAAWD,GAAS,UACpBE,IAAUF,GAAS,WAAW,IAE9B,CAACG,GAAUC,CAAW,IAAIC,EAAA,GAC1B,CAACC,GAAOC,CAAQ,IAAIF,EAAA,GAEpBG,IAAcC,EAAA,GACdC,IAAsBC,EAAOV,CAAQ;AAoC3C,SAnCAS,EAAoB,UAAUT,GAE9BW,EAAU,MAAM;AACd,QAAI,CAACV,KAAY,CAACJ,KAAU,CAACU,EAAY,MAAQ;AAEjD,UAAMK,IAAUf,IAASC,EAAS,WAAWD,CAAM,IAAIU,EAAY;AACnE,QAAI,CAACK,EAAS;AAEd,UAAMV,IAAW,IAAI;AAAA,MACnB,CAACW,GAAsCX,MAAmC;AACxE,cAAMG,IAAQQ,EAAQ,IAAA;AACtB,QAAAP,EAASD,CAAK,GACdI,EAAoB,UAAUJ,GAAOH,CAAQ;AAAA,MAAA;AAAA,MAE/C;AAAA,QACE,GAAGH;AAAA,QACH,MAAMA,GAAS,OAAQD,EAAS,WAAWC,EAAQ,IAAI,IAA2B;AAAA,MAAA;AAAA,IACpF;AAGF,WAAAI,EAAYD,CAAQ,GACpBA,EAAS,QAAQU,CAAkB,GAE5B,MAAM;AACXV,MAAAA,EAAS,WAAA;AAAA,IAAW;AAAA,EACtB,GACC;AAAA,IACDL,KAAUC,EAAS,cAAcD,CAAM;AAAA,IACvCU,EAAY;AAAA,IACZR,GAAS;AAAA,IACTA,GAAS;AAAA,IACTA,GAAS;AAAA,IACTE;AAAA,EAAA,CACD,GAEGJ,IAAe,EAAE,UAAAK,GAAU,OAAAG,GAAO,QAAQ,CAAC,CAACA,GAAO,eAAA,IAChD;AAAA,IACL,UAAAH;AAAA,IACA,KAAKK;AAAA,IACL,OAAAF;AAAA,IACA,QAAQ,CAAC,CAACA,GAAO;AAAA,EAAA;AAErB;"}
1
+ {"version":3,"file":"useVisibility.mjs","sources":["../../../../src/hooks/useVisibility/useVisibility.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The visibility callback type */\nexport type UseVisibilityCallback = (\n entry: IntersectionObserverEntry,\n observer: IntersectionObserver\n) => void;\n\n/** The visibility options type */\nexport interface UseVisibilityOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseVisibilityCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseVisibilityReturn {\n /** The intersection observer entry */\n entry?: IntersectionObserverEntry;\n /** The intersection observer in view */\n inView: boolean;\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseVisibility {\n <Target extends Element>(\n options?: UseVisibilityOptions,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseVisibilityOptions): UseVisibilityReturn;\n\n <Target extends Element>(\n callback: UseVisibilityCallback,\n target?: never\n ): UseVisibilityReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseVisibilityCallback): UseVisibilityReturn;\n}\n\n/**\n * @name useVisibility\n * @description - Hook that gives you visibility observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = useVisibility();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The Intersection options\n * @param {((entries: IntersectionEntry[], observer: Intersection) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entries, observer } = useVisibility(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @returns {UseVisibilityReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useVisibility(() => console.log('callback'));\n *\n * @overload\n * @param {UseVisibilityCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseVisibilityReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useVisibility(ref, () => console.log('callback'));\n */\nexport const useVisibility = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseVisibilityOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n const inView = entry?.isIntersecting ?? false;\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n const firstEntry = entries[0];\n if (firstEntry) {\n setEntry(firstEntry);\n internalCallbackRef.current?.(firstEntry, observer);\n }\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entry, inView };\n return {\n observer,\n ref: internalRef,\n entry,\n inView\n };\n}) as UseVisibility;\n"],"names":["useVisibility","params","target","isTarget","options","callback","enabled","observer","setObserver","useState","entry","setEntry","inView","internalRef","useRefState","internalCallbackRef","useRef","useEffect","element","entries","firstEntry"],"mappings":";;;AAgGO,MAAMA,KAAiB,IAAIC,MAAkB;AAClD,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAE5CG,IACJF,IACI,OAAOD,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,UAAUA,EAAO,CAAC,EAAA,IACtB,OAAOA,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,UAAUA,EAAO,CAAC,EAAA,GAGtBI,IAAWD,GAAS,UACpBE,IAAUF,GAAS,WAAW,IAE9B,CAACG,GAAUC,CAAW,IAAIC,EAAA,GAC1B,CAACC,GAAOC,CAAQ,IAAIF,EAAA,GACpBG,IAASF,GAAO,kBAAkB,IAElCG,IAAcC,EAAA,GACdC,IAAsBC,EAAOX,CAAQ;AAsC3C,SArCAU,EAAoB,UAAUV,GAE9BY,EAAU,MAAM;AACd,QAAI,CAACX,KAAY,CAACJ,KAAU,CAACW,EAAY,MAAQ;AAEjD,UAAMK,IAAUhB,IAASC,EAAS,WAAWD,CAAM,IAAIW,EAAY;AACnE,QAAI,CAACK,EAAS;AAEd,UAAMX,IAAW,IAAI;AAAA,MACnB,CAACY,GAAsCZ,MAAmC;AACxE,cAAMa,IAAaD,EAAQ,CAAC;AAC5B,QAAIC,MACFT,EAASS,CAAU,GACnBL,EAAoB,UAAUK,GAAYb,CAAQ;AAAA,MACpD;AAAA,MAEF;AAAA,QACE,GAAGH;AAAA,QACH,MAAMA,GAAS,OAAQD,EAAS,WAAWC,EAAQ,IAAI,IAA2B;AAAA,MAAA;AAAA,IACpF;AAGF,WAAAI,EAAYD,CAAQ,GACpBA,EAAS,QAAQW,CAAkB,GAE5B,MAAM;AACXX,MAAAA,EAAS,WAAA;AAAA,IAAW;AAAA,EACtB,GACC;AAAA,IACDL,KAAUC,EAAS,cAAcD,CAAM;AAAA,IACvCW,EAAY;AAAA,IACZT,GAAS;AAAA,IACTA,GAAS;AAAA,IACTA,GAAS;AAAA,IACTE;AAAA,EAAA,CACD,GAEGJ,IAAe,EAAE,UAAAK,GAAU,OAAAG,GAAO,QAAAE,EAAA,IAC/B;AAAA,IACL,UAAAL;AAAA,IACA,KAAKM;AAAA,IACL,OAAAH;AAAA,IACA,QAAAE;AAAA,EAAA;AAEJ;"}
@@ -11,7 +11,7 @@ import { useAudio as d } from "./hooks/useAudio/useAudio.mjs";
11
11
  import { useBattery as P } from "./hooks/useBattery/useBattery.mjs";
12
12
  import { useBluetooth as I } from "./hooks/useBluetooth/useBluetooth.mjs";
13
13
  import { useBroadcastChannel as O } from "./hooks/useBroadcastChannel/useBroadcastChannel.mjs";
14
- import { useClipboard as h } from "./hooks/useClipboard/useClipboard.mjs";
14
+ import { useClipboard as k } from "./hooks/useClipboard/useClipboard.mjs";
15
15
  import { useCopy as _ } from "./hooks/useCopy/useCopy.mjs";
16
16
  import { useCssVar as D } from "./hooks/useCssVar/useCssVar.mjs";
17
17
  import { useDisplayMedia as M } from "./hooks/useDisplayMedia/useDisplayMedia.mjs";
@@ -36,7 +36,7 @@ import { useRaf as Re } from "./hooks/useRaf/useRaf.mjs";
36
36
  import { useShare as Ce } from "./hooks/useShare/useShare.mjs";
37
37
  import { getSpeechRecognition as Ae, useSpeechRecognition as Ie } from "./hooks/useSpeechRecognition/useSpeechRecognition.mjs";
38
38
  import { useSpeechSynthesis as Oe } from "./hooks/useSpeechSynthesis/useSpeechSynthesis.mjs";
39
- import { useVibrate as he } from "./hooks/useVibrate/useVibrate.mjs";
39
+ import { useVibrate as ke } from "./hooks/useVibrate/useVibrate.mjs";
40
40
  import { useVirtualKeyboard as _e } from "./hooks/useVirtualKeyboard/useVirtualKeyboard.mjs";
41
41
  import { useWakeLock as De } from "./hooks/useWakeLock/useWakeLock.mjs";
42
42
  import { useWebSocket as Me } from "./hooks/useWebSocket/useWebSocket.mjs";
@@ -60,7 +60,7 @@ import { useRightClick as go } from "./hooks/useRightClick/useRightClick.mjs";
60
60
  import { SCRIPT_STATUS_ATTRIBUTE_NAME as Co, useScript as Po } from "./hooks/useScript/useScript.mjs";
61
61
  import { useSticky as Io } from "./hooks/useSticky/useSticky.mjs";
62
62
  import { useTextareaAutosize as Oo } from "./hooks/useTextareaAutosize/useTextareaAutosize.mjs";
63
- import { useTextDirection as ho } from "./hooks/useTextDirection/useTextDirection.mjs";
63
+ import { useTextDirection as ko } from "./hooks/useTextDirection/useTextDirection.mjs";
64
64
  import { useFul as _o } from "./hooks/useFul/useFul.mjs";
65
65
  import { useLess as Do } from "./hooks/useLess/useLess.mjs";
66
66
  import { useOnce as Mo } from "./hooks/useOnce/useOnce.mjs";
@@ -77,29 +77,29 @@ import { useDeviceOrientation as ar } from "./hooks/useDeviceOrientation/useDevi
77
77
  import { useDevicePixelRatio as nr } from "./hooks/useDevicePixelRatio/useDevicePixelRatio.mjs";
78
78
  import { useDocumentEvent as lr } from "./hooks/useDocumentEvent/useDocumentEvent.mjs";
79
79
  import { useDocumentVisibility as Er } from "./hooks/useDocumentVisibility/useDocumentVisibility.mjs";
80
- import { useElementSize as gr } from "./hooks/useElementSize/useElementSize.mjs";
81
- import { useEventListener as dr } from "./hooks/useEventListener/useEventListener.mjs";
82
- import { isHotkeyMatch as Pr, useHotkeys as Ar } from "./hooks/useHotkeys/useHotkeys.mjs";
83
- import { useIdle as yr } from "./hooks/useIdle/useIdle.mjs";
84
- import { useInfiniteScroll as kr } from "./hooks/useInfiniteScroll/useInfiniteScroll.mjs";
85
- import { useIntersectionObserver as vr } from "./hooks/useIntersectionObserver/useIntersectionObserver.mjs";
86
- import { useKeyboard as br } from "./hooks/useKeyboard/useKeyboard.mjs";
87
- import { useKeyPress as Lr } from "./hooks/useKeyPress/useKeyPress.mjs";
88
- import { useKeyPressEvent as Nr } from "./hooks/useKeyPressEvent/useKeyPressEvent.mjs";
89
- import { useKeysPressed as Kr } from "./hooks/useKeysPressed/useKeysPressed.mjs";
90
- import { useLockScroll as Ur } from "./hooks/useLockScroll/useLockScroll.mjs";
91
- import { useMeasure as wr } from "./hooks/useMeasure/useMeasure.mjs";
92
- import { useMediaQuery as Wr } from "./hooks/useMediaQuery/useMediaQuery.mjs";
93
- import { useMouse as Gr } from "./hooks/useMouse/useMouse.mjs";
94
- import { useMutationObserver as Xr } from "./hooks/useMutationObserver/useMutationObserver.mjs";
95
- import { useOrientation as Zr } from "./hooks/useOrientation/useOrientation.mjs";
96
- import { usePageLeave as Jr } from "./hooks/usePageLeave/usePageLeave.mjs";
97
- import { useParallax as $r } from "./hooks/useParallax/useParallax.mjs";
98
- import { usePerformanceObserver as ot } from "./hooks/usePerformanceObserver/usePerformanceObserver.mjs";
99
- import { useResizeObserver as tt } from "./hooks/useResizeObserver/useResizeObserver.mjs";
100
- import { useScroll as ut } from "./hooks/useScroll/useScroll.mjs";
101
- import { useScrollIntoView as pt } from "./hooks/useScrollIntoView/useScrollIntoView.mjs";
102
- import { useScrollTo as xt } from "./hooks/useScrollTo/useScrollTo.mjs";
80
+ import { useEventListener as gr } from "./hooks/useEventListener/useEventListener.mjs";
81
+ import { isHotkeyMatch as dr, useHotkeys as Cr } from "./hooks/useHotkeys/useHotkeys.mjs";
82
+ import { useIdle as Ar } from "./hooks/useIdle/useIdle.mjs";
83
+ import { useInfiniteScroll as yr } from "./hooks/useInfiniteScroll/useInfiniteScroll.mjs";
84
+ import { useIntersectionObserver as hr } from "./hooks/useIntersectionObserver/useIntersectionObserver.mjs";
85
+ import { useKeyboard as vr } from "./hooks/useKeyboard/useKeyboard.mjs";
86
+ import { useKeyPress as br } from "./hooks/useKeyPress/useKeyPress.mjs";
87
+ import { useKeyPressEvent as Lr } from "./hooks/useKeyPressEvent/useKeyPressEvent.mjs";
88
+ import { useKeysPressed as Nr } from "./hooks/useKeysPressed/useKeysPressed.mjs";
89
+ import { useLockScroll as Kr } from "./hooks/useLockScroll/useLockScroll.mjs";
90
+ import { useMeasure as Ur } from "./hooks/useMeasure/useMeasure.mjs";
91
+ import { useMediaQuery as wr } from "./hooks/useMediaQuery/useMediaQuery.mjs";
92
+ import { useMouse as Wr } from "./hooks/useMouse/useMouse.mjs";
93
+ import { useMutationObserver as Gr } from "./hooks/useMutationObserver/useMutationObserver.mjs";
94
+ import { useOrientation as Xr } from "./hooks/useOrientation/useOrientation.mjs";
95
+ import { usePageLeave as Zr } from "./hooks/usePageLeave/usePageLeave.mjs";
96
+ import { useParallax as Jr } from "./hooks/useParallax/useParallax.mjs";
97
+ import { usePerformanceObserver as $r } from "./hooks/usePerformanceObserver/usePerformanceObserver.mjs";
98
+ import { useResizeObserver as ot } from "./hooks/useResizeObserver/useResizeObserver.mjs";
99
+ import { useScroll as tt } from "./hooks/useScroll/useScroll.mjs";
100
+ import { useScrollIntoView as ut } from "./hooks/useScrollIntoView/useScrollIntoView.mjs";
101
+ import { useScrollTo as pt } from "./hooks/useScrollTo/useScrollTo.mjs";
102
+ import { useSize as xt } from "./hooks/useSize/useSize.mjs";
103
103
  import { getRangesSelection as it, useTextSelection as nt } from "./hooks/useTextSelection/useTextSelection.mjs";
104
104
  import { useVisibility as lt } from "./hooks/useVisibility/useVisibility.mjs";
105
105
  import { useWindowEvent as Et } from "./hooks/useWindowEvent/useWindowEvent.mjs";
@@ -107,7 +107,7 @@ import { useWindowFocus as gt } from "./hooks/useWindowFocus/useWindowFocus.mjs"
107
107
  import { scrollTo as dt, useWindowScroll as Ct } from "./hooks/useWindowScroll/useWindowScroll.mjs";
108
108
  import { useWindowSize as At } from "./hooks/useWindowSize/useWindowSize.mjs";
109
109
  import { useBoolean as yt } from "./hooks/useBoolean/useBoolean.mjs";
110
- import { useControllableState as kt } from "./hooks/useControllableState/useControllableState.mjs";
110
+ import { useControllableState as ht } from "./hooks/useControllableState/useControllableState.mjs";
111
111
  import { COOKIE_EVENT as vt, dispatchCookieEvent as _t, getCookie as bt, getCookies as Dt, removeCookie as Lt, removeCookieItem as Mt, setCookie as Nt, setCookieItem as Bt, useCookie as Kt } from "./hooks/useCookie/useCookie.mjs";
112
112
  import { clearCookies as Ut, useCookies as Vt } from "./hooks/useCookies/useCookies.mjs";
113
113
  import { useCounter as Ht } from "./hooks/useCounter/useCounter.mjs";
@@ -127,7 +127,7 @@ import { useSessionStorage as gs } from "./hooks/useSessionStorage/useSessionSto
127
127
  import { useSet as ds } from "./hooks/useSet/useSet.mjs";
128
128
  import { stateHistoryReducer as Ps, useStateHistory as As } from "./hooks/useStateHistory/useStateHistory.mjs";
129
129
  import { useStep as ys } from "./hooks/useStep/useStep.mjs";
130
- import { STORAGE_EVENT as ks, dispatchStorageEvent as hs, useStorage as vs } from "./hooks/useStorage/useStorage.mjs";
130
+ import { STORAGE_EVENT as hs, dispatchStorageEvent as ks, useStorage as vs } from "./hooks/useStorage/useStorage.mjs";
131
131
  import { useToggle as bs } from "./hooks/useToggle/useToggle.mjs";
132
132
  import { URL_SEARCH_PARAMS_EVENT as Ls, createQueryString as Ms, dispatchUrlSearchParamsEvent as Ns, getUrlSearchParams as Bs, useUrlSearchParam as Ks } from "./hooks/useUrlSearchParam/useUrlSearchParam.mjs";
133
133
  import { useUrlSearchParams as Us } from "./hooks/useUrlSearchParams/useUrlSearchParams.mjs";
@@ -147,21 +147,23 @@ import { usePreferredReducedMotion as cu } from "./hooks/usePreferredReducedMoti
147
147
  import { useBatchedCallback as Su } from "./hooks/useBatchedCallback/useBatchedCallback.mjs";
148
148
  import { useConst as Tu } from "./hooks/useConst/useConst.mjs";
149
149
  import { useDebounceCallback as Ru } from "./hooks/useDebounceCallback/useDebounceCallback.mjs";
150
- import { useDebounceState as Cu } from "./hooks/useDebounceState/useDebounceState.mjs";
151
- import { useDebounceValue as Au } from "./hooks/useDebounceValue/useDebounceValue.mjs";
152
- import { useEvent as yu } from "./hooks/useEvent/useEvent.mjs";
153
- import { useLastChanged as ku } from "./hooks/useLastChanged/useLastChanged.mjs";
154
- import { useLatest as vu } from "./hooks/useLatest/useLatest.mjs";
155
- import { usePrevious as bu } from "./hooks/usePrevious/usePrevious.mjs";
156
- import { useThrottleCallback as Lu } from "./hooks/useThrottleCallback/useThrottleCallback.mjs";
157
- import { useThrottleState as Nu } from "./hooks/useThrottleState/useThrottleState.mjs";
158
- import { useThrottleValue as Ku } from "./hooks/useThrottleValue/useThrottleValue.mjs";
159
- import { copy as Uu, legacyCopyToClipboard as Vu } from "./utils/helpers/copy.mjs";
160
- import { debounce as Hu } from "./utils/helpers/debounce.mjs";
161
- import { getDate as zu } from "./utils/helpers/getDate.mjs";
162
- import { getRetry as Qu } from "./utils/helpers/getRetry.mjs";
163
- import { getRawElement as qu, getRefState as Zu, isBrowserTarget as ju, isRef as Ju, isRefState as Yu, isTarget as $u, target as em, targetSymbol as om } from "./utils/helpers/isTarget.mjs";
164
- import { throttle as tm } from "./utils/helpers/throttle.mjs";
150
+ import { useDebounceEffect as Cu } from "./hooks/useDebounceEffect/useDebounceEffect.mjs";
151
+ import { useDebounceState as Au } from "./hooks/useDebounceState/useDebounceState.mjs";
152
+ import { useDebounceValue as yu } from "./hooks/useDebounceValue/useDebounceValue.mjs";
153
+ import { useEvent as hu } from "./hooks/useEvent/useEvent.mjs";
154
+ import { useLastChanged as vu } from "./hooks/useLastChanged/useLastChanged.mjs";
155
+ import { useLatest as bu } from "./hooks/useLatest/useLatest.mjs";
156
+ import { usePrevious as Lu } from "./hooks/usePrevious/usePrevious.mjs";
157
+ import { useThrottleCallback as Nu } from "./hooks/useThrottleCallback/useThrottleCallback.mjs";
158
+ import { useThrottleEffect as Ku } from "./hooks/useThrottleEffect/useThrottleEffect.mjs";
159
+ import { useThrottleState as Uu } from "./hooks/useThrottleState/useThrottleState.mjs";
160
+ import { useThrottleValue as wu } from "./hooks/useThrottleValue/useThrottleValue.mjs";
161
+ import { copy as Wu, legacyCopyToClipboard as zu } from "./utils/helpers/copy.mjs";
162
+ import { debounce as Qu } from "./utils/helpers/debounce.mjs";
163
+ import { getDate as qu } from "./utils/helpers/getDate.mjs";
164
+ import { getRetry as ju } from "./utils/helpers/getRetry.mjs";
165
+ import { getRawElement as Yu, getRefState as $u, isBrowserTarget as em, isRef as om, isRefState as rm, isTarget as tm, target as sm, targetSymbol as um } from "./utils/helpers/isTarget.mjs";
166
+ import { throttle as pm } from "./utils/helpers/throttle.mjs";
165
167
  export {
166
168
  Jo as BREAKPOINTS_ANT_DESIGN,
167
169
  Yo as BREAKPOINTS_BOOTSTRAP_V5,
@@ -178,41 +180,41 @@ export {
178
180
  lo as Paint,
179
181
  So as Pointer,
180
182
  Co as SCRIPT_STATUS_ATTRIBUTE_NAME,
181
- ks as STORAGE_EVENT,
183
+ hs as STORAGE_EVENT,
182
184
  Ls as URL_SEARCH_PARAMS_EVENT,
183
185
  us as assignRef,
184
186
  Ut as clearCookies,
185
- Uu as copy,
187
+ Wu as copy,
186
188
  r as createContext,
187
189
  s as createEventEmitter,
188
190
  Ms as createQueryString,
189
191
  m as createReactiveContext,
190
192
  Ss as createRefState,
191
193
  f as createStore,
192
- Hu as debounce,
194
+ Qu as debounce,
193
195
  Qo as deepEqual,
194
196
  _t as dispatchCookieEvent,
195
- hs as dispatchStorageEvent,
197
+ ks as dispatchStorageEvent,
196
198
  Ns as dispatchUrlSearchParamsEvent,
197
199
  se as getConnection,
198
200
  bt as getCookie,
199
201
  Dt as getCookies,
200
- zu as getDate,
202
+ qu as getDate,
201
203
  jt as getHash,
202
204
  ru as getOperatingSystem,
203
205
  it as getRangesSelection,
204
- qu as getRawElement,
205
- Zu as getRefState,
206
- Qu as getRetry,
206
+ Yu as getRawElement,
207
+ $u as getRefState,
208
+ ju as getRetry,
207
209
  Ae as getSpeechRecognition,
208
210
  Js as getTimeFromSeconds,
209
211
  Bs as getUrlSearchParams,
210
- ju as isBrowserTarget,
211
- Pr as isHotkeyMatch,
212
- Ju as isRef,
213
- Yu as isRefState,
214
- $u as isTarget,
215
- Vu as legacyCopyToClipboard,
212
+ em as isBrowserTarget,
213
+ dr as isHotkeyMatch,
214
+ om as isRef,
215
+ rm as isRefState,
216
+ tm as isTarget,
217
+ zu as legacyCopyToClipboard,
216
218
  q as mapGamepadToXbox360Controller,
217
219
  ms as mergeRefs,
218
220
  Lt as removeCookie,
@@ -221,9 +223,9 @@ export {
221
223
  Nt as setCookie,
222
224
  Bt as setCookieItem,
223
225
  Ps as stateHistoryReducer,
224
- em as target,
225
- om as targetSymbol,
226
- tm as throttle,
226
+ sm as target,
227
+ um as targetSymbol,
228
+ pm as throttle,
227
229
  $ as timeRangeToArray,
228
230
  ze as useActiveElement,
229
231
  a as useAsync,
@@ -238,17 +240,18 @@ export {
238
240
  O as useBroadcastChannel,
239
241
  eu as useBrowserLanguage,
240
242
  qe as useClickOutside,
241
- h as useClipboard,
243
+ k as useClipboard,
242
244
  Tu as useConst,
243
- kt as useControllableState,
245
+ ht as useControllableState,
244
246
  Kt as useCookie,
245
247
  Vt as useCookies,
246
248
  _ as useCopy,
247
249
  Ht as useCounter,
248
250
  D as useCssVar,
249
251
  Ru as useDebounceCallback,
250
- Cu as useDebounceState,
251
- Au as useDebounceValue,
252
+ Cu as useDebounceEffect,
253
+ Au as useDebounceState,
254
+ yu as useDebounceValue,
252
255
  zt as useDefault,
253
256
  fr as useDeviceMotion,
254
257
  ar as useDeviceOrientation,
@@ -261,9 +264,8 @@ export {
261
264
  Er as useDocumentVisibility,
262
265
  Je as useDoubleClick,
263
266
  $e as useDropZone,
264
- gr as useElementSize,
265
- yu as useEvent,
266
- dr as useEventListener,
267
+ hu as useEvent,
268
+ gr as useEventListener,
267
269
  F as useEventSource,
268
270
  V as useEyeDropper,
269
271
  H as useFavicon,
@@ -277,50 +279,50 @@ export {
277
279
  Z as useGamepad,
278
280
  J as useGeolocation,
279
281
  Jt as useHash,
280
- Ar as useHotkeys,
282
+ Cr as useHotkeys,
281
283
  fo as useHover,
282
- yr as useIdle,
284
+ Ar as useIdle,
283
285
  ao as useImage,
284
- kr as useInfiniteScroll,
285
- vr as useIntersectionObserver,
286
+ yr as useInfiniteScroll,
287
+ hr as useIntersectionObserver,
286
288
  Ws as useInterval,
287
289
  Vo as useIsFirstRender,
288
290
  Ho as useIsomorphicLayoutEffect,
289
- Lr as useKeyPress,
290
- Nr as useKeyPressEvent,
291
- br as useKeyboard,
292
- Kr as useKeysPressed,
293
- ku as useLastChanged,
294
- vu as useLatest,
291
+ br as useKeyPress,
292
+ Lr as useKeyPressEvent,
293
+ vr as useKeyboard,
294
+ Nr as useKeysPressed,
295
+ vu as useLastChanged,
296
+ bu as useLatest,
295
297
  Do as useLess,
296
298
  $t as useList,
297
299
  os as useLocalStorage,
298
300
  n as useLockCallback,
299
- Ur as useLockScroll,
301
+ Kr as useLockScroll,
300
302
  Be as useLogger,
301
303
  no as useLongPress,
302
304
  ts as useMap,
303
- wr as useMeasure,
305
+ Ur as useMeasure,
304
306
  ee as useMediaControls,
305
- Wr as useMediaQuery,
307
+ wr as useMediaQuery,
306
308
  re as useMemory,
307
309
  ps as useMergedRef,
308
310
  zo as useMount,
309
- Gr as useMouse,
311
+ Wr as useMouse,
310
312
  l as useMutation,
311
- Xr as useMutationObserver,
313
+ Gr as useMutationObserver,
312
314
  ue as useNetwork,
313
315
  xs as useOffsetPagination,
314
316
  Mo as useOnce,
315
317
  pe as useOnline,
316
318
  tu as useOperatingSystem,
317
319
  E as useOptimistic,
318
- Zr as useOrientation,
320
+ Xr as useOrientation,
319
321
  xe as useOtpCredential,
320
- Jr as usePageLeave,
322
+ Zr as usePageLeave,
321
323
  Eo as usePaint,
322
- $r as useParallax,
323
- ot as usePerformanceObserver,
324
+ Jr as useParallax,
325
+ $r as usePerformanceObserver,
324
326
  ie as usePermission,
325
327
  ce as usePictureInPicture,
326
328
  Se as usePointerLock,
@@ -330,7 +332,7 @@ export {
330
332
  xu as usePreferredDark,
331
333
  iu as usePreferredLanguages,
332
334
  cu as usePreferredReducedMotion,
333
- bu as usePrevious,
335
+ Lu as usePrevious,
334
336
  g as useQuery,
335
337
  is as useQueue,
336
338
  Re as useRaf,
@@ -339,16 +341,17 @@ export {
339
341
  Fe as useRenderCount,
340
342
  Ve as useRenderInfo,
341
343
  He as useRerender,
342
- tt as useResizeObserver,
344
+ ot as useResizeObserver,
343
345
  go as useRightClick,
344
346
  Po as useScript,
345
- ut as useScroll,
346
- pt as useScrollIntoView,
347
- xt as useScrollTo,
347
+ tt as useScroll,
348
+ ut as useScrollIntoView,
349
+ pt as useScrollTo,
348
350
  gs as useSessionStorage,
349
351
  ds as useSet,
350
352
  Xo as useShallowEffect,
351
353
  Ce as useShare,
354
+ xt as useSize,
352
355
  Ie as useSpeechRecognition,
353
356
  Oe as useSpeechSynthesis,
354
357
  As as useStateHistory,
@@ -356,12 +359,13 @@ export {
356
359
  Io as useSticky,
357
360
  Gs as useStopwatch,
358
361
  vs as useStorage,
359
- ho as useTextDirection,
362
+ ko as useTextDirection,
360
363
  nt as useTextSelection,
361
364
  Oo as useTextareaAutosize,
362
- Lu as useThrottleCallback,
363
- Nu as useThrottleState,
364
- Ku as useThrottleValue,
365
+ Nu as useThrottleCallback,
366
+ Ku as useThrottleEffect,
367
+ Uu as useThrottleState,
368
+ wu as useThrottleValue,
365
369
  Xs as useTime,
366
370
  Zs as useTimeout,
367
371
  Ys as useTimer,
@@ -369,7 +373,7 @@ export {
369
373
  Zo as useUnmount,
370
374
  Ks as useUrlSearchParam,
371
375
  Us as useUrlSearchParams,
372
- he as useVibrate,
376
+ ke as useVibrate,
373
377
  _e as useVirtualKeyboard,
374
378
  lt as useVisibility,
375
379
  De as useWakeLock,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,7 +4,6 @@ export * from './useDeviceOrientation/useDeviceOrientation';
4
4
  export * from './useDevicePixelRatio/useDevicePixelRatio';
5
5
  export * from './useDocumentEvent/useDocumentEvent';
6
6
  export * from './useDocumentVisibility/useDocumentVisibility';
7
- export * from './useElementSize/useElementSize';
8
7
  export * from './useEventListener/useEventListener';
9
8
  export * from './useHotkeys/useHotkeys';
10
9
  export * from './useIdle/useIdle';
@@ -27,6 +26,7 @@ export * from './useResizeObserver/useResizeObserver';
27
26
  export * from './useScroll/useScroll';
28
27
  export * from './useScrollIntoView/useScrollIntoView';
29
28
  export * from './useScrollTo/useScrollTo';
29
+ export * from './useSize/useSize';
30
30
  export * from './useTextSelection/useTextSelection';
31
31
  export * from './useVisibility/useVisibility';
32
32
  export * from './useWindowEvent/useWindowEvent';
@@ -0,0 +1,15 @@
1
+ import { DependencyList, EffectCallback } from 'react';
2
+ /**
3
+ * @name useDebounceEffect
4
+ * @description – Hook that runs an effect after a delay when dependencies change
5
+ * @category Utilities
6
+ * @usage high
7
+ *
8
+ * @param {EffectCallback} effect The effect callback to run
9
+ * @param {number} delay The delay in milliseconds
10
+ * @param {DependencyList} deps The dependencies list for the effect
11
+ *
12
+ * @example
13
+ * useDebounceEffect(() => console.log('effect'), 500, [value]);
14
+ */
15
+ export declare const useDebounceEffect: (effect: EffectCallback, delay: number, deps?: DependencyList) => void;
@@ -0,0 +1,43 @@
1
+ import { HookTarget } from '../../utils/helpers';
2
+ import { StateRef } from '../useRefState/useRefState';
3
+ /** The size value type */
4
+ export interface UseSizeValue {
5
+ /** The element's height */
6
+ height: number;
7
+ /** The element's width */
8
+ width: number;
9
+ }
10
+ /** The use size return type */
11
+ export interface UseSizeReturn {
12
+ /** The resize observer instance */
13
+ observer?: ResizeObserver;
14
+ /** The current size value */
15
+ value: UseSizeValue;
16
+ }
17
+ export interface UseSize {
18
+ (target: HookTarget): UseSizeReturn;
19
+ <Target extends Element>(target?: never): {
20
+ ref: StateRef<Target>;
21
+ } & UseSizeReturn;
22
+ }
23
+ /**
24
+ * @name useSize
25
+ * @description - Hook that observes and returns the width and height of element
26
+ * @category Elements
27
+ * @usage low
28
+ *
29
+ * @overload
30
+ * @param {HookTarget} target The target element to observe
31
+ * @returns {UseSizeReturn} An object containing the resize observer, current width and height of the element
32
+ *
33
+ * @example
34
+ * const { value, observer } = useSize(ref);
35
+ *
36
+ * @overload
37
+ * @template Target The target element type
38
+ * @returns { { ref: StateRef<Target> } & UseSizeReturn } An object containing the resize observer, current width and height of the element
39
+ *
40
+ * @example
41
+ * const { ref, value, observer } = useSize();
42
+ */
43
+ export declare const useSize: UseSize;
@@ -0,0 +1,15 @@
1
+ import { DependencyList, EffectCallback } from 'react';
2
+ /**
3
+ * @name useThrottleEffect
4
+ * @description – Hook that runs an effect at most once per delay period when dependencies change
5
+ * @category Utilities
6
+ * @usage medium
7
+ *
8
+ * @param {EffectCallback} effect The effect callback to run
9
+ * @param {number} delay The delay in milliseconds
10
+ * @param {DependencyList} deps The dependencies list for the effect
11
+ *
12
+ * @example
13
+ * useThrottleEffect(() => console.log('effect'), 500, [value]);
14
+ */
15
+ export declare const useThrottleEffect: (effect: EffectCallback, delay: number, deps?: DependencyList) => void;
@@ -16,7 +16,7 @@ export interface UseVisibilityReturn {
16
16
  /** The intersection observer entry */
17
17
  entry?: IntersectionObserverEntry;
18
18
  /** The intersection observer in view */
19
- inView?: boolean;
19
+ inView: boolean;
20
20
  /** The intersection observer instance */
21
21
  observer?: IntersectionObserver;
22
22
  }
@@ -1,6 +1,7 @@
1
1
  export * from './useBatchedCallback/useBatchedCallback';
2
2
  export * from './useConst/useConst';
3
3
  export * from './useDebounceCallback/useDebounceCallback';
4
+ export * from './useDebounceEffect/useDebounceEffect';
4
5
  export * from './useDebounceState/useDebounceState';
5
6
  export * from './useDebounceValue/useDebounceValue';
6
7
  export * from './useEvent/useEvent';
@@ -8,5 +9,6 @@ export * from './useLastChanged/useLastChanged';
8
9
  export * from './useLatest/useLatest';
9
10
  export * from './usePrevious/usePrevious';
10
11
  export * from './useThrottleCallback/useThrottleCallback';
12
+ export * from './useThrottleEffect/useThrottleEffect';
11
13
  export * from './useThrottleState/useThrottleState';
12
14
  export * from './useThrottleValue/useThrottleValue';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siberiacancode/reactuse",
3
- "version": "0.3.8",
3
+ "version": "0.3.9",
4
4
  "description": "The ultimate collection of react hooks",
5
5
  "author": {
6
6
  "name": "SIBERIA CAN CODE 🧊",
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),f=require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),d=require("../useRefState/useRefState.cjs"),o=require("../../utils/helpers/isTarget.cjs"),m=((...u)=>{const e=u[0],[i,n]=l.useState({width:0,height:0}),r=d.useRefState();return f.useIsomorphicLayoutEffect(()=>{const t=e?o.isTarget.getElement(e):r.current;if(!t)return;const{width:c,height:a}=t.getBoundingClientRect();n({width:c,height:a});const s=new ResizeObserver(()=>{const{width:g,height:h}=t.getBoundingClientRect();n({width:g,height:h})});return s.observe(t),()=>{s.disconnect()}},[r.state,e&&o.isTarget.getRawElement(e)]),e?{value:i}:{ref:r,value:i}});exports.useElementSize=m;
2
- //# sourceMappingURL=useElementSize.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useElementSize.cjs","sources":["../../../../src/hooks/useElementSize/useElementSize.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The element size value type */\nexport interface UseElementSizeValue {\n /** The element's height */\n height: number;\n /** The element's width */\n width: number;\n}\n\n/** The use element size return type */\nexport interface UseElementSizeReturn {\n value: UseElementSizeValue;\n}\n\nexport interface UseElementSize {\n (target: HookTarget): UseElementSizeReturn;\n\n <Target extends Element>(\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseElementSizeReturn;\n}\n\n/**\n * @name useElementSize\n * @description - Hook that observes and returns the width and height of element\n * @category Elements\n * @usage low\n\n * @overload\n * @param {HookTarget} target The target element to observe\n * @returns {UseElementSizeReturn} An object containing the current width and height of the element\n *\n * @example\n * const { value } = useElementSize(ref);\n *\n * @overload\n * @returns { { ref: StateRef<Target> } & UseElementSizeReturn } An object containing the current width and height of the element\n *\n * @example\n * const { ref, value } = useElementSize();\n */\nexport const useElementSize = ((...params: any[]) => {\n const target = params[0] as HookTarget | undefined;\n const [size, setSize] = useState({ width: 0, height: 0 });\n const internalRef = useRefState<Element>();\n\n useIsomorphicLayoutEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const { width, height } = element.getBoundingClientRect();\n setSize({\n width,\n height\n });\n\n const observer = new ResizeObserver(() => {\n const { width, height } = element.getBoundingClientRect();\n setSize({ width, height });\n });\n\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { value: size };\n return {\n ref: internalRef,\n value: size\n };\n}) as UseElementSize;\n"],"names":["useElementSize","params","target","size","setSize","useState","internalRef","useRefState","useIsomorphicLayoutEffect","element","isTarget","width","height","observer"],"mappings":"2QAqDaA,GAAkB,IAAIC,IAAkB,CACnD,MAAMC,EAASD,EAAO,CAAC,EACjB,CAACE,EAAMC,CAAO,EAAIC,EAAAA,SAAS,CAAE,MAAO,EAAG,OAAQ,EAAG,EAClDC,EAAcC,EAAAA,YAAA,EAyBpB,OAvBAC,EAAAA,0BAA0B,IAAM,CAC9B,MAAMC,EAAWP,EAASQ,EAAAA,SAAS,WAAWR,CAAM,EAAII,EAAY,QAEpE,GAAI,CAACG,EAAS,OAEd,KAAM,CAAE,MAAAE,EAAO,OAAAC,GAAWH,EAAQ,sBAAA,EAClCL,EAAQ,CACN,MAAAO,EACA,OAAAC,CAAA,CACD,EAED,MAAMC,EAAW,IAAI,eAAe,IAAM,CACxC,KAAM,CAAE,MAAAF,EAAO,OAAAC,CAAAA,EAAWH,EAAQ,sBAAA,EAClCL,EAAQ,CAAE,MAAAO,EAAO,OAAAC,EAAQ,CAAA,CAC1B,EAED,OAAAC,EAAS,QAAQJ,CAAO,EAEjB,IAAM,CACXI,EAAS,WAAA,CAAW,CACtB,EACC,CAACP,EAAY,MAAOJ,GAAUQ,EAAAA,SAAS,cAAcR,CAAM,CAAC,CAAC,EAE5DA,EAAe,CAAE,MAAOC,CAAA,EACrB,CACL,IAAKG,EACL,MAAOH,CAAA,CAEX"}
@@ -1,30 +0,0 @@
1
- import { useState as f } from "react";
2
- import { useIsomorphicLayoutEffect as a } from "../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
3
- import { useRefState as l } from "../useRefState/useRefState.mjs";
4
- import { isTarget as s } from "../../utils/helpers/isTarget.mjs";
5
- const v = ((...h) => {
6
- const e = h[0], [i, n] = f({ width: 0, height: 0 }), r = l();
7
- return a(() => {
8
- const t = e ? s.getElement(e) : r.current;
9
- if (!t) return;
10
- const { width: c, height: u } = t.getBoundingClientRect();
11
- n({
12
- width: c,
13
- height: u
14
- });
15
- const o = new ResizeObserver(() => {
16
- const { width: g, height: m } = t.getBoundingClientRect();
17
- n({ width: g, height: m });
18
- });
19
- return o.observe(t), () => {
20
- o.disconnect();
21
- };
22
- }, [r.state, e && s.getRawElement(e)]), e ? { value: i } : {
23
- ref: r,
24
- value: i
25
- };
26
- });
27
- export {
28
- v as useElementSize
29
- };
30
- //# sourceMappingURL=useElementSize.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useElementSize.mjs","sources":["../../../../src/hooks/useElementSize/useElementSize.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The element size value type */\nexport interface UseElementSizeValue {\n /** The element's height */\n height: number;\n /** The element's width */\n width: number;\n}\n\n/** The use element size return type */\nexport interface UseElementSizeReturn {\n value: UseElementSizeValue;\n}\n\nexport interface UseElementSize {\n (target: HookTarget): UseElementSizeReturn;\n\n <Target extends Element>(\n target?: never\n ): {\n ref: StateRef<Target>;\n } & UseElementSizeReturn;\n}\n\n/**\n * @name useElementSize\n * @description - Hook that observes and returns the width and height of element\n * @category Elements\n * @usage low\n\n * @overload\n * @param {HookTarget} target The target element to observe\n * @returns {UseElementSizeReturn} An object containing the current width and height of the element\n *\n * @example\n * const { value } = useElementSize(ref);\n *\n * @overload\n * @returns { { ref: StateRef<Target> } & UseElementSizeReturn } An object containing the current width and height of the element\n *\n * @example\n * const { ref, value } = useElementSize();\n */\nexport const useElementSize = ((...params: any[]) => {\n const target = params[0] as HookTarget | undefined;\n const [size, setSize] = useState({ width: 0, height: 0 });\n const internalRef = useRefState<Element>();\n\n useIsomorphicLayoutEffect(() => {\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const { width, height } = element.getBoundingClientRect();\n setSize({\n width,\n height\n });\n\n const observer = new ResizeObserver(() => {\n const { width, height } = element.getBoundingClientRect();\n setSize({ width, height });\n });\n\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [internalRef.state, target && isTarget.getRawElement(target)]);\n\n if (target) return { value: size };\n return {\n ref: internalRef,\n value: size\n };\n}) as UseElementSize;\n"],"names":["useElementSize","params","target","size","setSize","useState","internalRef","useRefState","useIsomorphicLayoutEffect","element","isTarget","width","height","observer"],"mappings":";;;;AAqDO,MAAMA,KAAkB,IAAIC,MAAkB;AACnD,QAAMC,IAASD,EAAO,CAAC,GACjB,CAACE,GAAMC,CAAO,IAAIC,EAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,GAClDC,IAAcC,EAAA;AAyBpB,SAvBAC,EAA0B,MAAM;AAC9B,UAAMC,IAAWP,IAASQ,EAAS,WAAWR,CAAM,IAAII,EAAY;AAEpE,QAAI,CAACG,EAAS;AAEd,UAAM,EAAE,OAAAE,GAAO,QAAAC,MAAWH,EAAQ,sBAAA;AAClC,IAAAL,EAAQ;AAAA,MACN,OAAAO;AAAA,MACA,QAAAC;AAAA,IAAA,CACD;AAED,UAAMC,IAAW,IAAI,eAAe,MAAM;AACxC,YAAM,EAAE,OAAAF,GAAO,QAAAC,EAAAA,IAAWH,EAAQ,sBAAA;AAClC,MAAAL,EAAQ,EAAE,OAAAO,GAAO,QAAAC,GAAQ;AAAA,IAAA,CAC1B;AAED,WAAAC,EAAS,QAAQJ,CAAO,GAEjB,MAAM;AACX,MAAAI,EAAS,WAAA;AAAA,IAAW;AAAA,EACtB,GACC,CAACP,EAAY,OAAOJ,KAAUQ,EAAS,cAAcR,CAAM,CAAC,CAAC,GAE5DA,IAAe,EAAE,OAAOC,EAAA,IACrB;AAAA,IACL,KAAKG;AAAA,IACL,OAAOH;AAAA,EAAA;AAEX;"}
@@ -1,39 +0,0 @@
1
- import { HookTarget } from '../../utils/helpers';
2
- import { StateRef } from '../useRefState/useRefState';
3
- /** The element size value type */
4
- export interface UseElementSizeValue {
5
- /** The element's height */
6
- height: number;
7
- /** The element's width */
8
- width: number;
9
- }
10
- /** The use element size return type */
11
- export interface UseElementSizeReturn {
12
- value: UseElementSizeValue;
13
- }
14
- export interface UseElementSize {
15
- (target: HookTarget): UseElementSizeReturn;
16
- <Target extends Element>(target?: never): {
17
- ref: StateRef<Target>;
18
- } & UseElementSizeReturn;
19
- }
20
- /**
21
- * @name useElementSize
22
- * @description - Hook that observes and returns the width and height of element
23
- * @category Elements
24
- * @usage low
25
-
26
- * @overload
27
- * @param {HookTarget} target The target element to observe
28
- * @returns {UseElementSizeReturn} An object containing the current width and height of the element
29
- *
30
- * @example
31
- * const { value } = useElementSize(ref);
32
- *
33
- * @overload
34
- * @returns { { ref: StateRef<Target> } & UseElementSizeReturn } An object containing the current width and height of the element
35
- *
36
- * @example
37
- * const { ref, value } = useElementSize();
38
- */
39
- export declare const useElementSize: UseElementSize;