@astral/ui 4.86.0 → 4.87.1

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 (257) hide show
  1. package/components/NotificationList/ListItem/useLogic/useLogic.js +1 -1
  2. package/components/Select/Select.js +1 -1
  3. package/components/Select/useLogic/useLogic.d.ts +1 -1
  4. package/components/TagsList/types.d.ts +2 -2
  5. package/components/TagsList/useLogic/useLogic.js +16 -10
  6. package/components/TagsList/utils/getKey/getKey.js +4 -4
  7. package/components/createGlobalState/createGlobalState.d.ts +6 -0
  8. package/components/createGlobalState/createGlobalState.js +25 -0
  9. package/components/createGlobalState/index.d.ts +1 -0
  10. package/components/createGlobalState/index.js +1 -0
  11. package/components/createGlobalState/public.d.ts +1 -0
  12. package/components/createGlobalState/public.js +1 -0
  13. package/components/createGlobalState/utils/index.d.ts +1 -0
  14. package/components/createGlobalState/utils/index.js +1 -0
  15. package/components/createGlobalState/utils/resolveHookState/index.d.ts +1 -0
  16. package/components/createGlobalState/utils/resolveHookState/index.js +1 -0
  17. package/components/createGlobalState/utils/resolveHookState/resolveHookState.d.ts +4 -0
  18. package/components/createGlobalState/utils/resolveHookState/resolveHookState.js +8 -0
  19. package/components/createGlobalState/utils/types.d.ts +5 -0
  20. package/components/createGlobalState/utils/types.js +1 -0
  21. package/components/useDebounce/hooks/useTimeoutFn/index.d.ts +1 -0
  22. package/components/useDebounce/hooks/useTimeoutFn/index.js +1 -0
  23. package/components/useDebounce/hooks/useTimeoutFn/useTimeoutFn.d.ts +2 -0
  24. package/components/useDebounce/hooks/useTimeoutFn/useTimeoutFn.js +29 -0
  25. package/components/useDebounce/index.d.ts +1 -0
  26. package/components/useDebounce/index.js +1 -0
  27. package/components/useDebounce/public.d.ts +1 -0
  28. package/components/useDebounce/public.js +1 -0
  29. package/components/useDebounce/useDebounce.d.ts +6 -0
  30. package/components/useDebounce/useDebounce.js +10 -0
  31. package/components/useFirstMountState/index.d.ts +1 -1
  32. package/components/useFirstMountState/index.js +1 -1
  33. package/components/useFirstMountState/public.d.ts +1 -1
  34. package/components/useFirstMountState/public.js +1 -1
  35. package/components/useFirstMountState/useFirstMountState.d.ts +4 -1
  36. package/components/useFirstMountState/useFirstMountState.js +12 -1
  37. package/components/useIntersection/index.d.ts +1 -0
  38. package/components/useIntersection/index.js +1 -0
  39. package/components/useIntersection/public.d.ts +1 -0
  40. package/components/useIntersection/public.js +1 -0
  41. package/components/useIntersection/useIntersection.d.ts +5 -0
  42. package/components/useIntersection/useIntersection.js +22 -0
  43. package/components/useInterval/index.d.ts +1 -1
  44. package/components/useInterval/index.js +1 -1
  45. package/components/useInterval/public.d.ts +1 -1
  46. package/components/useInterval/public.js +1 -1
  47. package/components/useInterval/useInterval.d.ts +6 -1
  48. package/components/useInterval/useInterval.js +19 -1
  49. package/components/useIsomorphicLayoutEffect/index.d.ts +1 -0
  50. package/components/useIsomorphicLayoutEffect/index.js +1 -0
  51. package/components/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +2 -0
  52. package/components/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +5 -0
  53. package/components/useLocalStorage/index.d.ts +1 -1
  54. package/components/useLocalStorage/index.js +1 -1
  55. package/components/useLocalStorage/public.d.ts +1 -1
  56. package/components/useLocalStorage/public.js +1 -1
  57. package/components/useLocalStorage/useLocalStorage.d.ts +15 -1
  58. package/components/useLocalStorage/useLocalStorage.js +96 -1
  59. package/components/useMeasure/index.d.ts +1 -0
  60. package/components/useMeasure/index.js +1 -0
  61. package/components/useMeasure/public.d.ts +1 -0
  62. package/components/useMeasure/public.js +1 -0
  63. package/components/useMeasure/useMeasure.d.ts +13 -0
  64. package/components/useMeasure/useMeasure.js +42 -0
  65. package/components/useNewToggle/index.d.ts +1 -0
  66. package/components/useNewToggle/index.js +1 -0
  67. package/components/useNewToggle/public.d.ts +1 -0
  68. package/components/useNewToggle/public.js +1 -0
  69. package/components/useNewToggle/useNewToggle.d.ts +4 -0
  70. package/components/useNewToggle/useNewToggle.js +8 -0
  71. package/components/useRafState/hooks/useUnmount/index.d.ts +1 -0
  72. package/components/useRafState/hooks/useUnmount/index.js +1 -0
  73. package/components/useRafState/hooks/useUnmount/useUnmount.d.ts +1 -0
  74. package/components/useRafState/hooks/useUnmount/useUnmount.js +7 -0
  75. package/components/useRafState/index.d.ts +1 -0
  76. package/components/useRafState/index.js +1 -0
  77. package/components/useRafState/useRafState.d.ts +2 -0
  78. package/components/useRafState/useRafState.js +16 -0
  79. package/components/useScroll/index.d.ts +1 -0
  80. package/components/useScroll/index.js +1 -0
  81. package/components/useScroll/public.d.ts +1 -0
  82. package/components/useScroll/public.js +1 -0
  83. package/components/useScroll/useScroll.d.ts +9 -0
  84. package/components/useScroll/useScroll.js +39 -0
  85. package/components/useSet/index.d.ts +1 -1
  86. package/components/useSet/index.js +1 -1
  87. package/components/useSet/public.d.ts +1 -1
  88. package/components/useSet/public.js +1 -1
  89. package/components/useSet/useSet.d.ts +14 -1
  90. package/components/useSet/useSet.js +26 -1
  91. package/components/useSize/index.d.ts +1 -0
  92. package/components/useSize/index.js +1 -0
  93. package/components/useSize/public.d.ts +1 -0
  94. package/components/useSize/public.js +1 -0
  95. package/components/useSize/useSize.d.ts +17 -0
  96. package/components/useSize/useSize.js +79 -0
  97. package/components/useToggle/useToggle.d.ts +1 -0
  98. package/components/useToggle/useToggle.js +1 -0
  99. package/components/useUpdateEffect/index.d.ts +1 -1
  100. package/components/useUpdateEffect/index.js +1 -1
  101. package/components/useUpdateEffect/public.d.ts +1 -1
  102. package/components/useUpdateEffect/public.js +1 -1
  103. package/components/useUpdateEffect/useUpdateEffect.d.ts +5 -1
  104. package/components/useUpdateEffect/useUpdateEffect.js +13 -1
  105. package/components/useWindowScroll/index.d.ts +1 -0
  106. package/components/useWindowScroll/index.js +1 -0
  107. package/components/useWindowScroll/public.d.ts +1 -0
  108. package/components/useWindowScroll/public.js +1 -0
  109. package/components/useWindowScroll/useWindowScroll.d.ts +8 -0
  110. package/components/useWindowScroll/useWindowScroll.js +40 -0
  111. package/components/utils/addEventListenerSafe/addEventListenerSafe.d.ts +1 -0
  112. package/components/utils/addEventListenerSafe/addEventListenerSafe.js +5 -0
  113. package/components/utils/addEventListenerSafe/index.d.ts +1 -0
  114. package/components/utils/addEventListenerSafe/index.js +1 -0
  115. package/components/utils/isBrowser/index.d.ts +1 -0
  116. package/components/utils/isBrowser/index.js +1 -0
  117. package/components/utils/isBrowser/isBrowser.d.ts +1 -0
  118. package/components/utils/isBrowser/isBrowser.js +1 -0
  119. package/components/utils/removeEventListenerSafe/index.d.ts +1 -0
  120. package/components/utils/removeEventListenerSafe/index.js +1 -0
  121. package/components/utils/removeEventListenerSafe/removeEventListenerSafe.d.ts +1 -0
  122. package/components/utils/removeEventListenerSafe/removeEventListenerSafe.js +5 -0
  123. package/components/utils/replaceRaf/constants.d.ts +1 -0
  124. package/components/utils/replaceRaf/constants.js +1 -0
  125. package/components/utils/replaceRaf/index.d.ts +1 -0
  126. package/components/utils/replaceRaf/index.js +1 -0
  127. package/components/utils/replaceRaf/replaceRaf.d.ts +18 -0
  128. package/components/utils/replaceRaf/replaceRaf.js +81 -0
  129. package/node/components/NotificationList/ListItem/useLogic/useLogic.js +2 -2
  130. package/node/components/Select/Select.js +1 -1
  131. package/node/components/Select/useLogic/useLogic.d.ts +1 -1
  132. package/node/components/TagsList/types.d.ts +2 -2
  133. package/node/components/TagsList/useLogic/useLogic.js +16 -10
  134. package/node/components/TagsList/utils/getKey/getKey.js +4 -4
  135. package/node/components/createGlobalState/createGlobalState.d.ts +6 -0
  136. package/node/components/createGlobalState/createGlobalState.js +29 -0
  137. package/node/components/createGlobalState/index.d.ts +1 -0
  138. package/node/components/createGlobalState/index.js +17 -0
  139. package/node/components/createGlobalState/public.d.ts +1 -0
  140. package/node/components/createGlobalState/public.js +17 -0
  141. package/node/components/createGlobalState/utils/index.d.ts +1 -0
  142. package/node/components/createGlobalState/utils/index.js +17 -0
  143. package/node/components/createGlobalState/utils/resolveHookState/index.d.ts +1 -0
  144. package/node/components/createGlobalState/utils/resolveHookState/index.js +17 -0
  145. package/node/components/createGlobalState/utils/resolveHookState/resolveHookState.d.ts +4 -0
  146. package/node/components/createGlobalState/utils/resolveHookState/resolveHookState.js +12 -0
  147. package/node/components/createGlobalState/utils/types.d.ts +5 -0
  148. package/node/components/createGlobalState/utils/types.js +2 -0
  149. package/node/components/useDebounce/hooks/useTimeoutFn/index.d.ts +1 -0
  150. package/node/components/useDebounce/hooks/useTimeoutFn/index.js +17 -0
  151. package/node/components/useDebounce/hooks/useTimeoutFn/useTimeoutFn.d.ts +2 -0
  152. package/node/components/useDebounce/hooks/useTimeoutFn/useTimeoutFn.js +33 -0
  153. package/node/components/useDebounce/index.d.ts +1 -0
  154. package/node/components/useDebounce/index.js +17 -0
  155. package/node/components/useDebounce/public.d.ts +1 -0
  156. package/node/components/useDebounce/public.js +17 -0
  157. package/node/components/useDebounce/useDebounce.d.ts +6 -0
  158. package/node/components/useDebounce/useDebounce.js +14 -0
  159. package/node/components/useFirstMountState/index.d.ts +1 -1
  160. package/node/components/useFirstMountState/index.js +15 -3
  161. package/node/components/useFirstMountState/public.d.ts +1 -1
  162. package/node/components/useFirstMountState/public.js +15 -3
  163. package/node/components/useFirstMountState/useFirstMountState.d.ts +4 -1
  164. package/node/components/useFirstMountState/useFirstMountState.js +13 -2
  165. package/node/components/useIntersection/index.d.ts +1 -0
  166. package/node/components/useIntersection/index.js +17 -0
  167. package/node/components/useIntersection/public.d.ts +1 -0
  168. package/node/components/useIntersection/public.js +17 -0
  169. package/node/components/useIntersection/useIntersection.d.ts +5 -0
  170. package/node/components/useIntersection/useIntersection.js +26 -0
  171. package/node/components/useInterval/index.d.ts +1 -1
  172. package/node/components/useInterval/index.js +15 -3
  173. package/node/components/useInterval/public.d.ts +1 -1
  174. package/node/components/useInterval/public.js +15 -3
  175. package/node/components/useInterval/useInterval.d.ts +6 -1
  176. package/node/components/useInterval/useInterval.js +20 -2
  177. package/node/components/useIsomorphicLayoutEffect/index.d.ts +1 -0
  178. package/node/components/useIsomorphicLayoutEffect/index.js +17 -0
  179. package/node/components/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +2 -0
  180. package/node/components/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +8 -0
  181. package/node/components/useLocalStorage/index.d.ts +1 -1
  182. package/node/components/useLocalStorage/index.js +5 -14
  183. package/node/components/useLocalStorage/public.d.ts +1 -1
  184. package/node/components/useLocalStorage/public.js +5 -14
  185. package/node/components/useLocalStorage/useLocalStorage.d.ts +15 -1
  186. package/node/components/useLocalStorage/useLocalStorage.js +97 -2
  187. package/node/components/useMeasure/index.d.ts +1 -0
  188. package/node/components/useMeasure/index.js +8 -0
  189. package/node/components/useMeasure/public.d.ts +1 -0
  190. package/node/components/useMeasure/public.js +8 -0
  191. package/node/components/useMeasure/useMeasure.d.ts +13 -0
  192. package/node/components/useMeasure/useMeasure.js +44 -0
  193. package/node/components/useNewToggle/index.d.ts +1 -0
  194. package/node/components/useNewToggle/index.js +17 -0
  195. package/node/components/useNewToggle/public.d.ts +1 -0
  196. package/node/components/useNewToggle/public.js +17 -0
  197. package/node/components/useNewToggle/useNewToggle.d.ts +4 -0
  198. package/node/components/useNewToggle/useNewToggle.js +12 -0
  199. package/node/components/useRafState/hooks/useUnmount/index.d.ts +1 -0
  200. package/node/components/useRafState/hooks/useUnmount/index.js +17 -0
  201. package/node/components/useRafState/hooks/useUnmount/useUnmount.d.ts +1 -0
  202. package/node/components/useRafState/hooks/useUnmount/useUnmount.js +11 -0
  203. package/node/components/useRafState/index.d.ts +1 -0
  204. package/node/components/useRafState/index.js +17 -0
  205. package/node/components/useRafState/useRafState.d.ts +2 -0
  206. package/node/components/useRafState/useRafState.js +20 -0
  207. package/node/components/useScroll/index.d.ts +1 -0
  208. package/node/components/useScroll/index.js +17 -0
  209. package/node/components/useScroll/public.d.ts +1 -0
  210. package/node/components/useScroll/public.js +17 -0
  211. package/node/components/useScroll/useScroll.d.ts +9 -0
  212. package/node/components/useScroll/useScroll.js +43 -0
  213. package/node/components/useSet/index.d.ts +1 -1
  214. package/node/components/useSet/index.js +15 -3
  215. package/node/components/useSet/public.d.ts +1 -1
  216. package/node/components/useSet/public.js +15 -3
  217. package/node/components/useSet/useSet.d.ts +14 -1
  218. package/node/components/useSet/useSet.js +27 -2
  219. package/node/components/useSize/index.d.ts +1 -0
  220. package/node/components/useSize/index.js +8 -0
  221. package/node/components/useSize/public.d.ts +1 -0
  222. package/node/components/useSize/public.js +8 -0
  223. package/node/components/useSize/useSize.d.ts +17 -0
  224. package/node/components/useSize/useSize.js +106 -0
  225. package/node/components/useToggle/useToggle.d.ts +1 -0
  226. package/node/components/useToggle/useToggle.js +1 -0
  227. package/node/components/useUpdateEffect/index.d.ts +1 -1
  228. package/node/components/useUpdateEffect/index.js +15 -3
  229. package/node/components/useUpdateEffect/public.d.ts +1 -1
  230. package/node/components/useUpdateEffect/public.js +15 -3
  231. package/node/components/useUpdateEffect/useUpdateEffect.d.ts +5 -1
  232. package/node/components/useUpdateEffect/useUpdateEffect.js +14 -2
  233. package/node/components/useWindowScroll/index.d.ts +1 -0
  234. package/node/components/useWindowScroll/index.js +17 -0
  235. package/node/components/useWindowScroll/public.d.ts +1 -0
  236. package/node/components/useWindowScroll/public.js +17 -0
  237. package/node/components/useWindowScroll/useWindowScroll.d.ts +8 -0
  238. package/node/components/useWindowScroll/useWindowScroll.js +44 -0
  239. package/node/components/utils/addEventListenerSafe/addEventListenerSafe.d.ts +1 -0
  240. package/node/components/utils/addEventListenerSafe/addEventListenerSafe.js +9 -0
  241. package/node/components/utils/addEventListenerSafe/index.d.ts +1 -0
  242. package/node/components/utils/addEventListenerSafe/index.js +17 -0
  243. package/node/components/utils/isBrowser/index.d.ts +1 -0
  244. package/node/components/utils/isBrowser/index.js +17 -0
  245. package/node/components/utils/isBrowser/isBrowser.d.ts +1 -0
  246. package/node/components/utils/isBrowser/isBrowser.js +4 -0
  247. package/node/components/utils/removeEventListenerSafe/index.d.ts +1 -0
  248. package/node/components/utils/removeEventListenerSafe/index.js +17 -0
  249. package/node/components/utils/removeEventListenerSafe/removeEventListenerSafe.d.ts +1 -0
  250. package/node/components/utils/removeEventListenerSafe/removeEventListenerSafe.js +9 -0
  251. package/node/components/utils/replaceRaf/constants.d.ts +1 -0
  252. package/node/components/utils/replaceRaf/constants.js +4 -0
  253. package/node/components/utils/replaceRaf/index.d.ts +1 -0
  254. package/node/components/utils/replaceRaf/index.js +17 -0
  255. package/node/components/utils/replaceRaf/replaceRaf.d.ts +18 -0
  256. package/node/components/utils/replaceRaf/replaceRaf.js +86 -0
  257. package/package.json +1 -2
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useIsomorphicLayoutEffect = void 0;
4
+ const react_1 = require("react");
5
+ const isBrowser_1 = require("../utils/isBrowser");
6
+ exports.useIsomorphicLayoutEffect = isBrowser_1.isBrowser
7
+ ? react_1.useLayoutEffect
8
+ : react_1.useEffect;
@@ -1 +1 @@
1
- export * from './useLocalStorage';
1
+ export { default as useLocalStorage } from './useLocalStorage';
@@ -1,17 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./useLocalStorage"), exports);
6
+ exports.useLocalStorage = void 0;
7
+ var useLocalStorage_1 = require("./useLocalStorage");
8
+ Object.defineProperty(exports, "useLocalStorage", { enumerable: true, get: function () { return __importDefault(useLocalStorage_1).default; } });
@@ -1 +1 @@
1
- export * from './useLocalStorage';
1
+ export { default as useLocalStorage } from './useLocalStorage';
@@ -1,17 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./useLocalStorage"), exports);
6
+ exports.useLocalStorage = void 0;
7
+ var useLocalStorage_1 = require("./useLocalStorage");
8
+ Object.defineProperty(exports, "useLocalStorage", { enumerable: true, get: function () { return __importDefault(useLocalStorage_1).default; } });
@@ -1 +1,15 @@
1
- export { useLocalStorage } from 'react-use';
1
+ import { type Dispatch, type SetStateAction } from 'react';
2
+ type ParserOptions<T> = {
3
+ raw: true;
4
+ } | {
5
+ raw: false;
6
+ serializer: (value: T) => string;
7
+ deserializer: (value: string) => T;
8
+ };
9
+ /**
10
+ * Хук управляет состоянием, которое синхронизируется с localStorage браузера.
11
+ * Возвращает текущее значение, функцию для его обновления и функцию для удаления значения из localStorage.
12
+ */
13
+ export declare const useLocalStorage: <T>(key: string, initialValue?: T | undefined, options?: ParserOptions<T> | undefined) => [T | undefined, Dispatch<SetStateAction<T | undefined>>, () => void];
14
+ declare const useLocalStorageExport: <T>(key: string, initialValue?: T | undefined, options?: ParserOptions<T> | undefined) => [T | undefined, Dispatch<SetStateAction<T | undefined>>, () => void];
15
+ export default useLocalStorageExport;
@@ -1,5 +1,100 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useLocalStorage = void 0;
4
- var react_use_1 = require("react-use");
5
- Object.defineProperty(exports, "useLocalStorage", { enumerable: true, get: function () { return react_use_1.useLocalStorage; } });
4
+ const react_1 = require("react");
5
+ const isBrowser_1 = require("../utils/isBrowser");
6
+ const noop = () => { };
7
+ /**
8
+ * Хук управляет состоянием, которое синхронизируется с localStorage браузера.
9
+ * Возвращает текущее значение, функцию для его обновления и функцию для удаления значения из localStorage.
10
+ */
11
+ const useLocalStorage = (key, initialValue, options) => {
12
+ if (!key) {
13
+ throw new Error('useLocalStorage key may not be falsy');
14
+ }
15
+ const deserializer = (() => {
16
+ if (!options) {
17
+ return JSON.parse;
18
+ }
19
+ if (options.raw) {
20
+ return (value) => value;
21
+ }
22
+ return options.deserializer;
23
+ })();
24
+ const serializer = (() => {
25
+ if (!options) {
26
+ return JSON.stringify;
27
+ }
28
+ if (options.raw) {
29
+ return String;
30
+ }
31
+ return options.serializer;
32
+ })();
33
+ const initializer = (0, react_1.useRef)((newKey) => {
34
+ try {
35
+ const localStorageValue = localStorage.getItem(newKey);
36
+ if (localStorageValue !== null) {
37
+ return deserializer(localStorageValue);
38
+ }
39
+ if (initialValue) {
40
+ localStorage.setItem(newKey, serializer(initialValue));
41
+ }
42
+ return initialValue;
43
+ }
44
+ catch {
45
+ // If user is in private mode or has storage restriction
46
+ // localStorage can throw. JSON.parse and JSON.stringify
47
+ // can throw, too.
48
+ return initialValue;
49
+ }
50
+ });
51
+ const [state, setState] = (0, react_1.useState)(() => initializer.current(key));
52
+ (0, react_1.useLayoutEffect)(() => setState(initializer.current(key)), [key]);
53
+ const serializeValue = (value, parserOptions) => {
54
+ if (!parserOptions) {
55
+ return JSON.stringify(value);
56
+ }
57
+ if (parserOptions.raw) {
58
+ return typeof value === 'string' ? value : JSON.stringify(value);
59
+ }
60
+ return parserOptions.serializer(value);
61
+ };
62
+ const set = (0, react_1.useCallback)((valOrFunc) => {
63
+ try {
64
+ const newState = typeof valOrFunc === 'function'
65
+ ? valOrFunc(state)
66
+ : valOrFunc;
67
+ if (typeof newState === 'undefined') {
68
+ return;
69
+ }
70
+ const value = serializeValue(newState, options);
71
+ localStorage.setItem(key, value);
72
+ setState(deserializer(value));
73
+ }
74
+ catch {
75
+ // If user is in private mode or has storage restriction
76
+ // localStorage can throw. Also JSON.stringify can throw.
77
+ }
78
+ }, [key, setState]);
79
+ const remove = (0, react_1.useCallback)(() => {
80
+ try {
81
+ localStorage.removeItem(key);
82
+ setState(undefined);
83
+ }
84
+ catch {
85
+ // If user is in private mode or has storage restriction
86
+ // localStorage can throw.
87
+ }
88
+ }, [key, setState]);
89
+ return [state, set, remove];
90
+ };
91
+ exports.useLocalStorage = useLocalStorage;
92
+ const useLocalStorageFallback = ((initialValue) => [
93
+ initialValue,
94
+ noop,
95
+ noop,
96
+ ]);
97
+ const useLocalStorageExport = isBrowser_1.isBrowser
98
+ ? exports.useLocalStorage
99
+ : useLocalStorageFallback;
100
+ exports.default = useLocalStorageExport;
@@ -0,0 +1 @@
1
+ export { default as useMeasure } from './useMeasure';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useMeasure = void 0;
7
+ var useMeasure_1 = require("./useMeasure");
8
+ Object.defineProperty(exports, "useMeasure", { enumerable: true, get: function () { return __importDefault(useMeasure_1).default; } });
@@ -0,0 +1 @@
1
+ export { default as useMeasure } from './useMeasure';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useMeasure = void 0;
7
+ var useMeasure_1 = require("./useMeasure");
8
+ Object.defineProperty(exports, "useMeasure", { enumerable: true, get: function () { return __importDefault(useMeasure_1).default; } });
@@ -0,0 +1,13 @@
1
+ export type UseMeasureRect = Pick<DOMRectReadOnly, 'x' | 'y' | 'top' | 'left' | 'right' | 'bottom' | 'height' | 'width'>;
2
+ export type UseMeasureRef<TElement extends Element = Element> = (element: TElement) => void;
3
+ export type UseMeasureResult<TElement extends Element = Element> = [
4
+ UseMeasureRef<TElement>,
5
+ UseMeasureRect
6
+ ];
7
+ /**
8
+ * Хук отслеживает размеры HTML-элемента с помощью Resize Observer API.
9
+ * Принимает ref на HTML-элемент и возвращает объект с размерами элемента.
10
+ */
11
+ declare function useMeasure<TElement extends Element = Element>(): UseMeasureResult<TElement>;
12
+ declare const useMeasureExport: typeof useMeasure;
13
+ export default useMeasureExport;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_1 = require("react");
4
+ const useIsomorphicLayoutEffect_1 = require("../useIsomorphicLayoutEffect");
5
+ const isBrowser_1 = require("../utils/isBrowser");
6
+ const noop = () => { };
7
+ const defaultState = {
8
+ x: 0,
9
+ y: 0,
10
+ width: 0,
11
+ height: 0,
12
+ top: 0,
13
+ left: 0,
14
+ bottom: 0,
15
+ right: 0,
16
+ };
17
+ /**
18
+ * Хук отслеживает размеры HTML-элемента с помощью Resize Observer API.
19
+ * Принимает ref на HTML-элемент и возвращает объект с размерами элемента.
20
+ */
21
+ function useMeasure() {
22
+ const [element, ref] = (0, react_1.useState)(null);
23
+ const [rect, setRect] = (0, react_1.useState)(defaultState);
24
+ const observer = (0, react_1.useMemo)(() => new window.ResizeObserver((entries) => {
25
+ if (entries[0]) {
26
+ setRect(entries[0].contentRect);
27
+ }
28
+ }), []);
29
+ (0, useIsomorphicLayoutEffect_1.useIsomorphicLayoutEffect)(() => {
30
+ if (!element) {
31
+ return;
32
+ }
33
+ observer.observe(element);
34
+ return () => {
35
+ observer.disconnect();
36
+ };
37
+ }, [element]);
38
+ return [ref, rect];
39
+ }
40
+ const useMeasureFallback = (() => [noop, defaultState]);
41
+ const useMeasureExport = isBrowser_1.isBrowser && typeof window.ResizeObserver !== 'undefined'
42
+ ? useMeasure
43
+ : useMeasureFallback;
44
+ exports.default = useMeasureExport;
@@ -0,0 +1 @@
1
+ export * from './useNewToggle';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useNewToggle"), exports);
@@ -0,0 +1 @@
1
+ export * from './useNewToggle';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useNewToggle"), exports);
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Хук отслеживает значение типа boolean.
3
+ */
4
+ export declare const useNewToggle: (initialValue: boolean) => [boolean, (nextValue?: unknown) => void];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNewToggle = void 0;
4
+ const react_1 = require("react");
5
+ const toggleReducer = (state, nextValue) => typeof nextValue === 'boolean' ? nextValue : !state;
6
+ /**
7
+ * Хук отслеживает значение типа boolean.
8
+ */
9
+ const useNewToggle = (initialValue) => {
10
+ return (0, react_1.useReducer)(toggleReducer, initialValue);
11
+ };
12
+ exports.useNewToggle = useNewToggle;
@@ -0,0 +1 @@
1
+ export * from './useUnmount';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useUnmount"), exports);
@@ -0,0 +1 @@
1
+ export declare const useUnmount: (fn: () => void) => void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useUnmount = void 0;
4
+ const react_1 = require("react");
5
+ const useUnmount = (fn) => {
6
+ const fnRef = (0, react_1.useRef)(fn);
7
+ // update the ref each render so if it change the newest callback will be invoked
8
+ fnRef.current = fn;
9
+ (0, react_1.useEffect)(() => () => fnRef.current(), []);
10
+ };
11
+ exports.useUnmount = useUnmount;
@@ -0,0 +1 @@
1
+ export * from './useRafState';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useRafState"), exports);
@@ -0,0 +1,2 @@
1
+ import { type Dispatch, type SetStateAction } from 'react';
2
+ export declare const useRafState: <TState>(initialState: TState | (() => TState)) => [TState, Dispatch<SetStateAction<TState>>];
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useRafState = void 0;
4
+ const react_1 = require("react");
5
+ const useUnmount_1 = require("./hooks/useUnmount");
6
+ const useRafState = (initialState) => {
7
+ const frame = (0, react_1.useRef)(0);
8
+ const [state, setState] = (0, react_1.useState)(initialState);
9
+ const setRafState = (0, react_1.useCallback)((value) => {
10
+ cancelAnimationFrame(frame.current);
11
+ frame.current = requestAnimationFrame(() => {
12
+ setState(value);
13
+ });
14
+ }, []);
15
+ (0, useUnmount_1.useUnmount)(() => {
16
+ cancelAnimationFrame(frame.current);
17
+ });
18
+ return [state, setRafState];
19
+ };
20
+ exports.useRafState = useRafState;
@@ -0,0 +1 @@
1
+ export * from './useScroll';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useScroll"), exports);
@@ -0,0 +1 @@
1
+ export * from './useScroll';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useScroll"), exports);
@@ -0,0 +1,9 @@
1
+ import { type RefObject } from 'react';
2
+ export interface IState {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ /**
7
+ * Хук отслеживает позицию скролла внутри HTML-элемента, на который передан ref.
8
+ */
9
+ export declare const useScroll: (ref: RefObject<HTMLElement | null>) => IState;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useScroll = void 0;
4
+ const react_1 = require("react");
5
+ const useRafState_1 = require("../useRafState");
6
+ const addEventListenerSafe_1 = require("../utils/addEventListenerSafe");
7
+ const removeEventListenerSafe_1 = require("../utils/removeEventListenerSafe");
8
+ /**
9
+ * Хук отслеживает позицию скролла внутри HTML-элемента, на который передан ref.
10
+ */
11
+ const useScroll = (ref) => {
12
+ if (process.env.NODE_ENV === 'development' &&
13
+ (typeof ref !== 'object' || typeof ref.current === 'undefined')) {
14
+ throw new Error('`useScroll` expects a single ref argument.');
15
+ }
16
+ const [state, setState] = (0, useRafState_1.useRafState)({
17
+ x: 0,
18
+ y: 0,
19
+ });
20
+ (0, react_1.useEffect)(() => {
21
+ const handler = () => {
22
+ if (ref.current) {
23
+ setState({
24
+ x: ref.current.scrollLeft,
25
+ y: ref.current.scrollTop,
26
+ });
27
+ }
28
+ };
29
+ if (ref.current) {
30
+ (0, addEventListenerSafe_1.addEventListenerSafe)(ref.current, 'scroll', handler, {
31
+ capture: false,
32
+ passive: true,
33
+ });
34
+ }
35
+ return () => {
36
+ if (ref.current) {
37
+ (0, removeEventListenerSafe_1.removeEventListenerSafe)(ref.current, 'scroll', handler);
38
+ }
39
+ };
40
+ }, [ref]);
41
+ return state;
42
+ };
43
+ exports.useScroll = useScroll;
@@ -1 +1 @@
1
- export { useSet } from './useSet';
1
+ export * from './useSet';
@@ -1,5 +1,17 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useSet = void 0;
4
- var useSet_1 = require("./useSet");
5
- Object.defineProperty(exports, "useSet", { enumerable: true, get: function () { return useSet_1.useSet; } });
17
+ __exportStar(require("./useSet"), exports);
@@ -1 +1 @@
1
- export { useSet } from './useSet';
1
+ export * from './useSet';
@@ -1,5 +1,17 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useSet = void 0;
4
- var useSet_1 = require("./useSet");
5
- Object.defineProperty(exports, "useSet", { enumerable: true, get: function () { return useSet_1.useSet; } });
17
+ __exportStar(require("./useSet"), exports);
@@ -1 +1,14 @@
1
- export { useSet } from 'react-use';
1
+ export interface IStableActions<TKey> {
2
+ add: (key: TKey) => void;
3
+ remove: (key: TKey) => void;
4
+ toggle: (key: TKey) => void;
5
+ reset: () => void;
6
+ clear: () => void;
7
+ }
8
+ export interface IActions<TKey> extends IStableActions<TKey> {
9
+ has: (key: TKey) => boolean;
10
+ }
11
+ /**
12
+ * Хук отслеживает состояние Set и предоставляет методы для его изменения.
13
+ */
14
+ export declare const useSet: <TKey>(initialSet?: Set<TKey>) => [Set<TKey>, IActions<TKey>];
@@ -1,5 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useSet = void 0;
4
- var react_use_1 = require("react-use");
5
- Object.defineProperty(exports, "useSet", { enumerable: true, get: function () { return react_use_1.useSet; } });
4
+ const react_1 = require("react");
5
+ /**
6
+ * Хук отслеживает состояние Set и предоставляет методы для его изменения.
7
+ */
8
+ const useSet = (initialSet = new Set()) => {
9
+ const [set, setSet] = (0, react_1.useState)(initialSet);
10
+ const stableActions = (0, react_1.useMemo)(() => {
11
+ const add = (item) => setSet((prevSet) => new Set([...Array.from(prevSet), item]));
12
+ const remove = (item) => setSet((prevSet) => new Set(Array.from(prevSet).filter((i) => i !== item)));
13
+ const toggle = (item) => setSet((prevSet) => prevSet.has(item)
14
+ ? new Set(Array.from(prevSet).filter((i) => i !== item))
15
+ : new Set([...Array.from(prevSet), item]));
16
+ return {
17
+ add,
18
+ remove,
19
+ toggle,
20
+ reset: () => setSet(initialSet),
21
+ clear: () => setSet(new Set()),
22
+ };
23
+ }, [setSet]);
24
+ const utils = {
25
+ has: (0, react_1.useCallback)((item) => set.has(item), [set]),
26
+ ...stableActions,
27
+ };
28
+ return [set, utils];
29
+ };
30
+ exports.useSet = useSet;
@@ -0,0 +1 @@
1
+ export { default as useSize } from './useSize';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useSize = void 0;
7
+ var useSize_1 = require("./useSize");
8
+ Object.defineProperty(exports, "useSize", { enumerable: true, get: function () { return __importDefault(useSize_1).default; } });
@@ -0,0 +1 @@
1
+ export { default as useSize } from './useSize';