@reactuses/core 6.1.11 → 6.2.0

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.
package/dist/index.mjs CHANGED
@@ -215,7 +215,7 @@ function useMountedState() {
215
215
  return get;
216
216
  }
217
217
 
218
- function asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, key, arg) {
218
+ function asyncGeneratorStep$8(gen, resolve, reject, _next, _throw, key, arg) {
219
219
  try {
220
220
  var info = gen[key](arg);
221
221
  var value = info.value;
@@ -229,16 +229,16 @@ function asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, key, arg) {
229
229
  Promise.resolve(value).then(_next, _throw);
230
230
  }
231
231
  }
232
- function _async_to_generator$7(fn) {
232
+ function _async_to_generator$8(fn) {
233
233
  return function() {
234
234
  var self = this, args = arguments;
235
235
  return new Promise(function(resolve, reject) {
236
236
  var gen = fn.apply(self, args);
237
237
  function _next(value) {
238
- asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, "next", value);
238
+ asyncGeneratorStep$8(gen, resolve, reject, _next, _throw, "next", value);
239
239
  }
240
240
  function _throw(err) {
241
- asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, "throw", err);
241
+ asyncGeneratorStep$8(gen, resolve, reject, _next, _throw, "throw", err);
242
242
  }
243
243
  _next(undefined);
244
244
  });
@@ -247,7 +247,7 @@ function _async_to_generator$7(fn) {
247
247
  const useAsyncEffect = (effect, cleanup = noop$1, deps)=>{
248
248
  const mounted = useMountedState();
249
249
  useEffect(()=>{
250
- const execute = ()=>_async_to_generator$7(function*() {
250
+ const execute = ()=>_async_to_generator$8(function*() {
251
251
  if (!mounted()) {
252
252
  return;
253
253
  }
@@ -1343,12 +1343,16 @@ function useSupported(callback, sync = false) {
1343
1343
  const [supported, setSupported] = useState(false);
1344
1344
  const effect = sync ? useIsomorphicLayoutEffect : useEffect;
1345
1345
  effect(()=>{
1346
- setSupported(Boolean(callback()));
1346
+ try {
1347
+ setSupported(Boolean(callback()));
1348
+ } catch (e) {
1349
+ setSupported(false);
1350
+ }
1347
1351
  }, []);
1348
1352
  return supported;
1349
1353
  }
1350
1354
 
1351
- function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
1355
+ function asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, key, arg) {
1352
1356
  try {
1353
1357
  var info = gen[key](arg);
1354
1358
  var value = info.value;
@@ -1362,16 +1366,16 @@ function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
1362
1366
  Promise.resolve(value).then(_next, _throw);
1363
1367
  }
1364
1368
  }
1365
- function _async_to_generator$6(fn) {
1369
+ function _async_to_generator$7(fn) {
1366
1370
  return function() {
1367
1371
  var self = this, args = arguments;
1368
1372
  return new Promise(function(resolve, reject) {
1369
1373
  var gen = fn.apply(self, args);
1370
1374
  function _next(value) {
1371
- asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "next", value);
1375
+ asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, "next", value);
1372
1376
  }
1373
1377
  function _throw(err) {
1374
- asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "throw", err);
1378
+ asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, "throw", err);
1375
1379
  }
1376
1380
  _next(undefined);
1377
1381
  });
@@ -1379,7 +1383,7 @@ function _async_to_generator$6(fn) {
1379
1383
  }
1380
1384
  const useEyeDropper = ()=>{
1381
1385
  const isSupported = useSupported(()=>typeof window !== 'undefined' && 'EyeDropper' in window, true);
1382
- const open = useCallback((options = {})=>_async_to_generator$6(function*() {
1386
+ const open = useCallback((options = {})=>_async_to_generator$7(function*() {
1383
1387
  if (!isSupported) {
1384
1388
  return {
1385
1389
  sRGBHex: ''
@@ -1414,7 +1418,7 @@ function useFavicon(href, baseUrl = '', rel = 'icon') {
1414
1418
  ]);
1415
1419
  }
1416
1420
 
1417
- function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
1421
+ function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
1418
1422
  try {
1419
1423
  var info = gen[key](arg);
1420
1424
  var value = info.value;
@@ -1428,16 +1432,16 @@ function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
1428
1432
  Promise.resolve(value).then(_next, _throw);
1429
1433
  }
1430
1434
  }
1431
- function _async_to_generator$5(fn) {
1435
+ function _async_to_generator$6(fn) {
1432
1436
  return function() {
1433
1437
  var self = this, args = arguments;
1434
1438
  return new Promise(function(resolve, reject) {
1435
1439
  var gen = fn.apply(self, args);
1436
1440
  function _next(value) {
1437
- asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "next", value);
1441
+ asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "next", value);
1438
1442
  }
1439
1443
  function _throw(err) {
1440
- asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "throw", err);
1444
+ asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "throw", err);
1441
1445
  }
1442
1446
  _next(undefined);
1443
1447
  });
@@ -1480,7 +1484,7 @@ const useFileDialog = (options = defaultOptions$1)=>{
1480
1484
  return input;
1481
1485
  }, []);
1482
1486
  inputRef.current = initFn();
1483
- const open = (localOptions)=>_async_to_generator$5(function*() {
1487
+ const open = (localOptions)=>_async_to_generator$6(function*() {
1484
1488
  if (!inputRef.current) {
1485
1489
  return;
1486
1490
  }
@@ -1674,7 +1678,7 @@ const initCoord = {
1674
1678
  };
1675
1679
  const useGeolocation = (options = defaultOptions$1)=>{
1676
1680
  const { enableHighAccuracy = true, maximumAge = 30000, timeout = 27000 } = options;
1677
- const isSupported = useSupported(()=>navigator && 'geolocation' in navigator);
1681
+ const isSupported = useSupported(()=>typeof navigator !== 'undefined' && !!navigator.geolocation && typeof navigator.geolocation.getCurrentPosition === 'function' && typeof navigator.geolocation.watchPosition === 'function' && typeof navigator.geolocation.clearWatch === 'function');
1678
1682
  const [coordinates, setCoordinates] = useState(initCoord);
1679
1683
  const [locatedAt, setLocatedAt] = useState(null);
1680
1684
  const [error, setError] = useState(null);
@@ -1893,7 +1897,7 @@ const createUpdateEffect = (hook)=>(effect, deps)=>{
1893
1897
 
1894
1898
  const useUpdateEffect = createUpdateEffect(useEffect);
1895
1899
 
1896
- function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
1900
+ function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
1897
1901
  try {
1898
1902
  var info = gen[key](arg);
1899
1903
  var value = info.value;
@@ -1907,16 +1911,16 @@ function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
1907
1911
  Promise.resolve(value).then(_next, _throw);
1908
1912
  }
1909
1913
  }
1910
- function _async_to_generator$4(fn) {
1914
+ function _async_to_generator$5(fn) {
1911
1915
  return function() {
1912
1916
  var self = this, args = arguments;
1913
1917
  return new Promise(function(resolve, reject) {
1914
1918
  var gen = fn.apply(self, args);
1915
1919
  function _next(value) {
1916
- asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "next", value);
1920
+ asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "next", value);
1917
1921
  }
1918
1922
  function _throw(err) {
1919
- asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "throw", err);
1923
+ asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "throw", err);
1920
1924
  }
1921
1925
  _next(undefined);
1922
1926
  });
@@ -1949,7 +1953,7 @@ const useInfiniteScroll = (target, onLoadMore, options = defaultOptions$1)=>{
1949
1953
  const di = state[3][direction];
1950
1954
  useUpdateEffect(()=>{
1951
1955
  const element = getTargetElement(target);
1952
- const fn = ()=>_async_to_generator$4(function*() {
1956
+ const fn = ()=>_async_to_generator$5(function*() {
1953
1957
  var _element_scrollHeight, _element_scrollWidth;
1954
1958
  const previous = {
1955
1959
  height: (_element_scrollHeight = element == null ? void 0 : element.scrollHeight) != null ? _element_scrollHeight : 0,
@@ -2099,7 +2103,7 @@ const useMeasure = (target, options = defaultOptions$1)=>{
2099
2103
  ];
2100
2104
  };
2101
2105
 
2102
- function asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, key, arg) {
2106
+ function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
2103
2107
  try {
2104
2108
  var info = gen[key](arg);
2105
2109
  var value = info.value;
@@ -2113,16 +2117,16 @@ function asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, key, arg) {
2113
2117
  Promise.resolve(value).then(_next, _throw);
2114
2118
  }
2115
2119
  }
2116
- function _async_to_generator$3(fn) {
2120
+ function _async_to_generator$4(fn) {
2117
2121
  return function() {
2118
2122
  var self = this, args = arguments;
2119
2123
  return new Promise(function(resolve, reject) {
2120
2124
  var gen = fn.apply(self, args);
2121
2125
  function _next(value) {
2122
- asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, "next", value);
2126
+ asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "next", value);
2123
2127
  }
2124
2128
  function _throw(err) {
2125
- asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, "throw", err);
2129
+ asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "throw", err);
2126
2130
  }
2127
2131
  _next(undefined);
2128
2132
  });
@@ -2156,7 +2160,7 @@ const useMediaDevices = (options = {})=>{
2156
2160
  });
2157
2161
  }).catch(noop$1);
2158
2162
  }, []);
2159
- const ensurePermissions = useCallback(()=>_async_to_generator$3(function*() {
2163
+ const ensurePermissions = useCallback(()=>_async_to_generator$4(function*() {
2160
2164
  if (!isSupported) {
2161
2165
  return false;
2162
2166
  }
@@ -3245,7 +3249,10 @@ function useSticky(targetElement, { axis = 'y', nav = 0 }, scrollElement) {
3245
3249
  }, [
3246
3250
  targetKey,
3247
3251
  scrollKey,
3248
- scrollHandler
3252
+ scrollHandler,
3253
+ targetRef,
3254
+ scrollRef,
3255
+ axisRef
3249
3256
  ]);
3250
3257
  return [
3251
3258
  isSticky,
@@ -3395,7 +3402,7 @@ const useToggle = (initialValue)=>{
3395
3402
 
3396
3403
  const useUpdateLayoutEffect = createUpdateEffect(useLayoutEffect);
3397
3404
 
3398
- function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
3405
+ function asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, key, arg) {
3399
3406
  try {
3400
3407
  var info = gen[key](arg);
3401
3408
  var value = info.value;
@@ -3409,16 +3416,16 @@ function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
3409
3416
  Promise.resolve(value).then(_next, _throw);
3410
3417
  }
3411
3418
  }
3412
- function _async_to_generator$2(fn) {
3419
+ function _async_to_generator$3(fn) {
3413
3420
  return function() {
3414
3421
  var self = this, args = arguments;
3415
3422
  return new Promise(function(resolve, reject) {
3416
3423
  var gen = fn.apply(self, args);
3417
3424
  function _next(value) {
3418
- asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "next", value);
3425
+ asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, "next", value);
3419
3426
  }
3420
3427
  function _throw(err) {
3421
- asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "throw", err);
3428
+ asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, "throw", err);
3422
3429
  }
3423
3430
  _next(undefined);
3424
3431
  });
@@ -3448,7 +3455,7 @@ const useWebNotification = (requestPermissions = false)=>{
3448
3455
  }, [
3449
3456
  isSupported
3450
3457
  ]);
3451
- const ensurePermissions = useCallback(()=>_async_to_generator$2(function*() {
3458
+ const ensurePermissions = useCallback(()=>_async_to_generator$3(function*() {
3452
3459
  if (!isSupported) return;
3453
3460
  if (!permissionGranted.current && Notification.permission !== 'denied') {
3454
3461
  const result = yield Notification.requestPermission();
@@ -3559,7 +3566,7 @@ const useWindowSize = ()=>{
3559
3566
  };
3560
3567
  };
3561
3568
 
3562
- function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
3569
+ function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
3563
3570
  try {
3564
3571
  var info = gen[key](arg);
3565
3572
  var value = info.value;
@@ -3573,16 +3580,16 @@ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
3573
3580
  Promise.resolve(value).then(_next, _throw);
3574
3581
  }
3575
3582
  }
3576
- function _async_to_generator$1(fn) {
3583
+ function _async_to_generator$2(fn) {
3577
3584
  return function() {
3578
3585
  var self = this, args = arguments;
3579
3586
  return new Promise(function(resolve, reject) {
3580
3587
  var gen = fn.apply(self, args);
3581
3588
  function _next(value) {
3582
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
3589
+ asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "next", value);
3583
3590
  }
3584
3591
  function _throw(err) {
3585
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
3592
+ asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "throw", err);
3586
3593
  }
3587
3594
  _next(undefined);
3588
3595
  });
@@ -3590,7 +3597,7 @@ function _async_to_generator$1(fn) {
3590
3597
  }
3591
3598
  const useClipboard = ()=>{
3592
3599
  const [text, setText] = useState('');
3593
- const updateText = useCallback(()=>_async_to_generator$1(function*() {
3600
+ const updateText = useCallback(()=>_async_to_generator$2(function*() {
3594
3601
  // Check if document is focused before attempting to read clipboard
3595
3602
  if (!document.hasFocus()) {
3596
3603
  return;
@@ -3607,7 +3614,7 @@ const useClipboard = ()=>{
3607
3614
  useEventListener('cut', updateText);
3608
3615
  // Also listen for focus events to update clipboard when window regains focus
3609
3616
  useEventListener('focus', updateText, window);
3610
- const copy = useCallback((txt)=>_async_to_generator$1(function*() {
3617
+ const copy = useCallback((txt)=>_async_to_generator$2(function*() {
3611
3618
  setText(txt);
3612
3619
  try {
3613
3620
  yield window.navigator.clipboard.writeText(txt);
@@ -4135,7 +4142,7 @@ const useElementByPoint = (options)=>{
4135
4142
  };
4136
4143
  };
4137
4144
 
4138
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
4145
+ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
4139
4146
  try {
4140
4147
  var info = gen[key](arg);
4141
4148
  var value = info.value;
@@ -4149,16 +4156,16 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
4149
4156
  Promise.resolve(value).then(_next, _throw);
4150
4157
  }
4151
4158
  }
4152
- function _async_to_generator(fn) {
4159
+ function _async_to_generator$1(fn) {
4153
4160
  return function() {
4154
4161
  var self = this, args = arguments;
4155
4162
  return new Promise(function(resolve, reject) {
4156
4163
  var gen = fn.apply(self, args);
4157
4164
  function _next(value) {
4158
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
4165
+ asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
4159
4166
  }
4160
4167
  function _throw(err) {
4161
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
4168
+ asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
4162
4169
  }
4163
4170
  _next(undefined);
4164
4171
  });
@@ -4209,7 +4216,7 @@ const useFetchEventSource = (url, options = {})=>{
4209
4216
  options.onClose == null ? void 0 : options.onClose.call(options);
4210
4217
  }
4211
4218
  });
4212
- const open = useEvent(()=>_async_to_generator(function*() {
4219
+ const open = useEvent(()=>_async_to_generator$1(function*() {
4213
4220
  close();
4214
4221
  setStatus('CONNECTING');
4215
4222
  explicitlyClosed.current = false;
@@ -4248,7 +4255,7 @@ const useFetchEventSource = (url, options = {})=>{
4248
4255
  }
4249
4256
  yield fetchEventSource(url.toString(), _extends({}, finalOptions, {
4250
4257
  onopen (response) {
4251
- return _async_to_generator(function*() {
4258
+ return _async_to_generator$1(function*() {
4252
4259
  if (response.ok) {
4253
4260
  setStatus('CONNECTED');
4254
4261
  setError(null);
@@ -4497,4 +4504,113 @@ const useSpeechRecognition = (options = {})=>{
4497
4504
  };
4498
4505
  };
4499
4506
 
4500
- export { assignRef, defaultOptions, mergeRefs, use, useActiveElement, useAsyncEffect, useBoolean, useBroadcastChannel, useClickOutside as useClickAway, useClickOutside, useClipboard, useColorMode, useControlled, useCookie, useClipboard as useCopyToClipboard, useCountDown, useCounter, useCssVar, useCustomCompareEffect, useCycleList, useDarkMode, useDebounce, useDebounceFn, useDeepCompareEffect, useDevicePixelRatio, useDisclosure, useDocumentVisibility, useDoubleClick, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementSize, useElementVisibility, useEvent, useEventEmitter, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetchEventSource, useFileDialog, useFirstMountState, useFocus, useFps, useFullscreen, useGeolocation, useHover, useIdle, useInfiniteScroll, useIntersectionObserver, useInterval, useIsomorphicLayoutEffect, useKeyModifier, useLatest, useLocalStorage, useLocationSelector, useLongPress, useMap, useMeasure, useMediaDevices, useMediaQuery, useMergedRefs, useMobileLandscape, useMount, useMountedState, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, useOnceEffect, useOnceLayoutEffect, useOnline, useOrientation, usePageLeave, usePermission, usePlatform, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePrevious, useRafFn, useRafState, useReducedMotion, useResizeObserver, useScratch, useScreenSafeArea, useScriptTag, useScroll, useScrollIntoView, useScrollLock, useSessionStorage, useSetState, useSpeechRecognition, useSticky, useSupported, useTextDirection, useTextSelection, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useTitle, useToggle, useUnmount, useUpdate, useUpdateEffect, useUpdateLayoutEffect, useWebNotification, useWindowScroll, useWindowSize, useWindowsFocus };
4507
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
4508
+ try {
4509
+ var info = gen[key](arg);
4510
+ var value = info.value;
4511
+ } catch (error) {
4512
+ reject(error);
4513
+ return;
4514
+ }
4515
+ if (info.done) {
4516
+ resolve(value);
4517
+ } else {
4518
+ Promise.resolve(value).then(_next, _throw);
4519
+ }
4520
+ }
4521
+ function _async_to_generator(fn) {
4522
+ return function() {
4523
+ var self = this, args = arguments;
4524
+ return new Promise(function(resolve, reject) {
4525
+ var gen = fn.apply(self, args);
4526
+ function _next(value) {
4527
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
4528
+ }
4529
+ function _throw(err) {
4530
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
4531
+ }
4532
+ _next(undefined);
4533
+ });
4534
+ };
4535
+ }
4536
+ const useWakeLock = (options = {})=>{
4537
+ const { onRequest, onRelease, onError } = options;
4538
+ const isSupported = useSupported(()=>'wakeLock' in navigator);
4539
+ const [isActive, setIsActive] = useState(false);
4540
+ const sentinelRef = useRef(null);
4541
+ const requestedTypeRef = useRef(false);
4542
+ const forceRequest = useEvent(()=>_async_to_generator(function*() {
4543
+ if (!isSupported) return;
4544
+ try {
4545
+ var _sentinelRef_current;
4546
+ yield (_sentinelRef_current = sentinelRef.current) == null ? void 0 : _sentinelRef_current.release();
4547
+ const sentinel = yield navigator.wakeLock.request('screen');
4548
+ sentinelRef.current = sentinel;
4549
+ setIsActive(true);
4550
+ sentinel.addEventListener('release', ()=>{
4551
+ var _sentinelRef_current;
4552
+ var _sentinelRef_current_type;
4553
+ requestedTypeRef.current = (_sentinelRef_current_type = (_sentinelRef_current = sentinelRef.current) == null ? void 0 : _sentinelRef_current.type) != null ? _sentinelRef_current_type : false;
4554
+ sentinelRef.current = null;
4555
+ setIsActive(false);
4556
+ onRelease == null ? void 0 : onRelease();
4557
+ }, {
4558
+ once: true
4559
+ });
4560
+ onRequest == null ? void 0 : onRequest();
4561
+ } catch (error) {
4562
+ onError == null ? void 0 : onError(error);
4563
+ }
4564
+ })());
4565
+ const request = useEvent(()=>_async_to_generator(function*() {
4566
+ if (!isSupported) return;
4567
+ if (document.visibilityState === 'visible') {
4568
+ yield forceRequest();
4569
+ } else {
4570
+ requestedTypeRef.current = 'screen';
4571
+ }
4572
+ })());
4573
+ const release = useEvent(()=>_async_to_generator(function*() {
4574
+ requestedTypeRef.current = false;
4575
+ const s = sentinelRef.current;
4576
+ sentinelRef.current = null;
4577
+ setIsActive(false);
4578
+ try {
4579
+ yield s == null ? void 0 : s.release();
4580
+ } catch (error) {
4581
+ onError == null ? void 0 : onError(error);
4582
+ }
4583
+ })());
4584
+ useEffect(()=>{
4585
+ const handleVisibilityChange = ()=>{
4586
+ if (document.visibilityState === 'visible' && requestedTypeRef.current) {
4587
+ requestedTypeRef.current = false;
4588
+ forceRequest();
4589
+ }
4590
+ };
4591
+ document.addEventListener('visibilitychange', handleVisibilityChange);
4592
+ return ()=>{
4593
+ document.removeEventListener('visibilitychange', handleVisibilityChange);
4594
+ };
4595
+ }, [
4596
+ forceRequest
4597
+ ]);
4598
+ useEffect(()=>{
4599
+ return ()=>{
4600
+ requestedTypeRef.current = false;
4601
+ if (sentinelRef.current) {
4602
+ sentinelRef.current.release();
4603
+ sentinelRef.current = null;
4604
+ }
4605
+ };
4606
+ }, []);
4607
+ return {
4608
+ isSupported,
4609
+ isActive,
4610
+ request,
4611
+ release,
4612
+ forceRequest
4613
+ };
4614
+ };
4615
+
4616
+ export { assignRef, defaultOptions, mergeRefs, use, useActiveElement, useAsyncEffect, useBoolean, useBroadcastChannel, useClickOutside as useClickAway, useClickOutside, useClipboard, useColorMode, useControlled, useCookie, useClipboard as useCopyToClipboard, useCountDown, useCounter, useCssVar, useCustomCompareEffect, useCycleList, useDarkMode, useDebounce, useDebounceFn, useDeepCompareEffect, useDevicePixelRatio, useDisclosure, useDocumentVisibility, useDoubleClick, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementSize, useElementVisibility, useEvent, useEventEmitter, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetchEventSource, useFileDialog, useFirstMountState, useFocus, useFps, useFullscreen, useGeolocation, useHover, useIdle, useInfiniteScroll, useIntersectionObserver, useInterval, useIsomorphicLayoutEffect, useKeyModifier, useLatest, useLocalStorage, useLocationSelector, useLongPress, useMap, useMeasure, useMediaDevices, useMediaQuery, useMergedRefs, useMobileLandscape, useMount, useMountedState, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, useOnceEffect, useOnceLayoutEffect, useOnline, useOrientation, usePageLeave, usePermission, usePlatform, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePrevious, useRafFn, useRafState, useReducedMotion, useResizeObserver, useScratch, useScreenSafeArea, useScriptTag, useScroll, useScrollIntoView, useScrollLock, useSessionStorage, useSetState, useSpeechRecognition, useSticky, useSupported, useTextDirection, useTextSelection, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useTitle, useToggle, useUnmount, useUpdate, useUpdateEffect, useUpdateLayoutEffect, useWakeLock, useWebNotification, useWindowScroll, useWindowSize, useWindowsFocus };
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@reactuses/core",
3
- "version": "6.1.11",
3
+ "version": "6.2.0",
4
+ "description": "Collection of 100+ essential React Hooks with TypeScript support, tree-shaking, and SSR compatibility. Sensors, browser APIs, state management, animations, and more.",
4
5
  "license": "Unlicense",
5
6
  "homepage": "https://www.reactuse.com/",
6
7
  "repository": {
@@ -13,11 +14,40 @@
13
14
  },
14
15
  "keywords": [
15
16
  "react",
16
- "react-use",
17
- "react hooks",
18
- "hook",
17
+ "react-hooks",
19
18
  "hooks",
20
- "component"
19
+ "react-use",
20
+ "reactuse",
21
+ "typescript",
22
+ "tree-shaking",
23
+ "ssr",
24
+ "custom-hooks",
25
+ "react-utility",
26
+ "browser-hooks",
27
+ "sensor-hooks",
28
+ "state-hooks",
29
+ "utility-hooks",
30
+ "animation-hooks",
31
+ "useToggle",
32
+ "useDebounce",
33
+ "useThrottle",
34
+ "useLocalStorage",
35
+ "useSessionStorage",
36
+ "useMouse",
37
+ "useClipboard",
38
+ "useGeolocation",
39
+ "useIntersectionObserver",
40
+ "useResizeObserver",
41
+ "useMutationObserver",
42
+ "useMediaQuery",
43
+ "useDarkMode",
44
+ "useFullscreen",
45
+ "useIdle",
46
+ "useNetwork",
47
+ "useScroll",
48
+ "useWindowSize",
49
+ "useEventListener",
50
+ "vueuse"
21
51
  ],
22
52
  "sideEffects": false,
23
53
  "exports": {