react-hook-toolkit 3.0.2 → 3.0.4

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.
@@ -1,127 +1,57 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
49
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
50
- if (ar || !(i in from)) {
51
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
52
- ar[i] = from[i];
53
- }
54
- }
55
- return to.concat(ar || Array.prototype.slice.call(from));
56
- };
57
1
  import { useState, useEffect, useCallback, useRef, useContext } from 'react';
58
2
  import DrawerContext from '../chunk1213/chunk158261';
59
- export var isReady = function () {
3
+ export const isReady = () => {
60
4
  return typeof window !== "undefined" && typeof window.document !== "undefined"
61
5
  ? true
62
6
  : false;
63
7
  };
64
- export var useDrawer = function () {
65
- var context = useContext(DrawerContext);
8
+ export const useDrawer = () => {
9
+ const context = useContext(DrawerContext);
66
10
  if (context === undefined) {
67
11
  throw new Error('useDrawer must be used within a DrawerProvider');
68
12
  }
69
13
  return context;
70
14
  };
71
- export var useGenericReducer = function (initialState, actions) { return function (state, action) {
72
- if (state === void 0) { state = initialState; }
15
+ export const useGenericReducer = (initialState, actions) => (state = initialState, action) => {
73
16
  if (actions[action.type]) {
74
17
  return actions[action.type](state, action);
75
18
  }
76
19
  return state;
77
- }; };
20
+ };
78
21
  export function useRequest(url) {
79
- var _this = this;
80
- var _a = useState({
22
+ const [state, setState] = useState({
81
23
  data: null,
82
24
  loading: true,
83
25
  error: null,
84
- }), state = _a[0], setState = _a[1];
85
- useEffect(function () {
86
- var fetchData = function () { return __awaiter(_this, void 0, void 0, function () {
87
- var response, data, error_1;
88
- return __generator(this, function (_a) {
89
- switch (_a.label) {
90
- case 0:
91
- _a.trys.push([0, 3, , 4]);
92
- return [4 /*yield*/, fetch(url)];
93
- case 1:
94
- response = _a.sent();
95
- if (!response.ok)
96
- throw new Error("Error: ".concat(response.statusText));
97
- return [4 /*yield*/, response.json()];
98
- case 2:
99
- data = _a.sent();
100
- setState({ data: data, loading: false, error: null });
101
- return [3 /*break*/, 4];
102
- case 3:
103
- error_1 = _a.sent();
104
- setState({ data: null, loading: false, error: error_1.message });
105
- return [3 /*break*/, 4];
106
- case 4: return [2 /*return*/];
107
- }
108
- });
109
- }); };
26
+ });
27
+ useEffect(() => {
28
+ const fetchData = async () => {
29
+ try {
30
+ const response = await fetch(url);
31
+ if (!response.ok)
32
+ throw new Error(`Error: ${response.statusText}`);
33
+ const data = await response.json();
34
+ setState({ data, loading: false, error: null });
35
+ }
36
+ catch (error) {
37
+ setState({ data: null, loading: false, error: error.message });
38
+ }
39
+ };
110
40
  fetchData();
111
41
  }, [url]);
112
42
  return state;
113
43
  }
114
44
  export function useLocalStorage(key, initialValue) {
115
- var _a = useState(function () {
45
+ const [storedValue, setStoredValue] = useState(() => {
116
46
  try {
117
- var item = localStorage.getItem(key);
47
+ const item = localStorage.getItem(key);
118
48
  return item ? JSON.parse(item) : initialValue;
119
49
  }
120
50
  catch (_a) {
121
51
  return initialValue;
122
52
  }
123
- }), storedValue = _a[0], setStoredValue = _a[1];
124
- var setValue = function (value) {
53
+ });
54
+ const setValue = (value) => {
125
55
  try {
126
56
  setStoredValue(value);
127
57
  localStorage.setItem(key, JSON.stringify(value));
@@ -132,119 +62,105 @@ export function useLocalStorage(key, initialValue) {
132
62
  };
133
63
  return [storedValue, setValue];
134
64
  }
135
- export function useToggle(initialValue) {
136
- if (initialValue === void 0) { initialValue = false; }
137
- var _a = useState(initialValue), value = _a[0], setValue = _a[1];
138
- var toggle = function () { return setValue(function (prev) { return !prev; }); };
65
+ export function useToggle(initialValue = false) {
66
+ const [value, setValue] = useState(initialValue);
67
+ const toggle = () => setValue((prev) => !prev);
139
68
  return [value, toggle];
140
69
  }
141
70
  export function useDebounce(value, delay) {
142
- var _a = useState(value), debouncedValue = _a[0], setDebouncedValue = _a[1];
143
- useEffect(function () {
144
- var handler = setTimeout(function () { return setDebouncedValue(value); }, delay);
145
- return function () { return clearTimeout(handler); };
71
+ const [debouncedValue, setDebouncedValue] = useState(value);
72
+ useEffect(() => {
73
+ const handler = setTimeout(() => setDebouncedValue(value), delay);
74
+ return () => clearTimeout(handler);
146
75
  }, [value, delay]);
147
76
  return debouncedValue;
148
77
  }
149
78
  export function useThrottle(value, limit) {
150
- var _a = useState(value), throttledValue = _a[0], setThrottledValue = _a[1];
151
- useEffect(function () {
152
- var handler = setTimeout(function () { return setThrottledValue(value); }, limit);
153
- return function () { return clearTimeout(handler); };
79
+ const [throttledValue, setThrottledValue] = useState(value);
80
+ useEffect(() => {
81
+ const handler = setTimeout(() => setThrottledValue(value), limit);
82
+ return () => clearTimeout(handler);
154
83
  }, [value, limit]);
155
84
  return throttledValue;
156
85
  }
157
86
  export function usePrevious(value) {
158
- var ref = useRef();
159
- useEffect(function () {
87
+ const ref = useRef();
88
+ useEffect(() => {
160
89
  ref.current = value;
161
90
  });
162
91
  return ref.current;
163
92
  }
164
93
  export function useMediaQuery(query) {
165
- var _a = useState(false), matches = _a[0], setMatches = _a[1];
166
- useEffect(function () {
167
- var mediaQueryList = window.matchMedia(query);
168
- var updateMatch = function () { return setMatches(mediaQueryList.matches); };
94
+ const [matches, setMatches] = useState(false);
95
+ useEffect(() => {
96
+ const mediaQueryList = window.matchMedia(query);
97
+ const updateMatch = () => setMatches(mediaQueryList.matches);
169
98
  updateMatch();
170
99
  mediaQueryList.addEventListener('change', updateMatch);
171
- return function () { return mediaQueryList.removeEventListener('change', updateMatch); };
100
+ return () => mediaQueryList.removeEventListener('change', updateMatch);
172
101
  }, [query]);
173
102
  return matches;
174
103
  }
175
104
  export function useClipboard() {
176
- var _this = this;
177
- var _a = useState(false), copied = _a[0], setCopied = _a[1];
178
- var copyToClipboard = function (text) { return __awaiter(_this, void 0, void 0, function () {
179
- var error_2;
180
- return __generator(this, function (_a) {
181
- switch (_a.label) {
182
- case 0:
183
- _a.trys.push([0, 2, , 3]);
184
- return [4 /*yield*/, navigator.clipboard.writeText(text)];
185
- case 1:
186
- _a.sent();
187
- setCopied(true);
188
- setTimeout(function () { return setCopied(false); }, 2000); // Reset after 2 seconds
189
- return [3 /*break*/, 3];
190
- case 2:
191
- error_2 = _a.sent();
192
- console.error('Failed to copy text to clipboard', error_2);
193
- return [3 /*break*/, 3];
194
- case 3: return [2 /*return*/];
195
- }
196
- });
197
- }); };
105
+ const [copied, setCopied] = useState(false);
106
+ const copyToClipboard = async (text) => {
107
+ try {
108
+ await navigator.clipboard.writeText(text);
109
+ setCopied(true);
110
+ setTimeout(() => setCopied(false), 2000); // Reset after 2 seconds
111
+ }
112
+ catch (error) {
113
+ console.error('Failed to copy text to clipboard', error);
114
+ }
115
+ };
198
116
  return [copied, copyToClipboard];
199
117
  }
200
118
  export function useInterval(callback, delay) {
201
- var savedCallback = useRef();
202
- useEffect(function () {
119
+ const savedCallback = useRef();
120
+ useEffect(() => {
203
121
  savedCallback.current = callback;
204
122
  }, [callback]);
205
- useEffect(function () {
123
+ useEffect(() => {
206
124
  if (delay === null)
207
125
  return;
208
- var tick = function () { var _a; return (_a = savedCallback.current) === null || _a === void 0 ? void 0 : _a.call(savedCallback); };
209
- var id = setInterval(tick, delay);
210
- return function () { return clearInterval(id); };
126
+ const tick = () => { var _a; return (_a = savedCallback.current) === null || _a === void 0 ? void 0 : _a.call(savedCallback); };
127
+ const id = setInterval(tick, delay);
128
+ return () => clearInterval(id);
211
129
  }, [delay]);
212
130
  }
213
131
  export function useWindowSize() {
214
- var _a = useState({
132
+ const [windowSize, setWindowSize] = useState({
215
133
  width: typeof window !== 'undefined' ? window.innerWidth : 0,
216
134
  height: typeof window !== 'undefined' ? window.innerHeight : 0,
217
- }), windowSize = _a[0], setWindowSize = _a[1];
218
- useEffect(function () {
135
+ });
136
+ useEffect(() => {
219
137
  if (typeof window === 'undefined')
220
138
  return;
221
- var handleResize = function () {
139
+ const handleResize = () => {
222
140
  setWindowSize({
223
141
  width: window.innerWidth,
224
142
  height: window.innerHeight,
225
143
  });
226
144
  };
227
145
  window.addEventListener('resize', handleResize);
228
- return function () { return window.removeEventListener('resize', handleResize); };
146
+ return () => window.removeEventListener('resize', handleResize);
229
147
  }, []);
230
148
  return windowSize;
231
149
  }
232
150
  export function useKeyPress(targetKey) {
233
- var _a = useState(false), isKeyPressed = _a[0], setIsKeyPressed = _a[1];
234
- var handleKeyDown = function (_a) {
235
- var key = _a.key;
151
+ const [isKeyPressed, setIsKeyPressed] = useState(false);
152
+ const handleKeyDown = ({ key }) => {
236
153
  if (key === targetKey)
237
154
  setIsKeyPressed(true);
238
155
  };
239
- var handleKeyUp = function (_a) {
240
- var key = _a.key;
156
+ const handleKeyUp = ({ key }) => {
241
157
  if (key === targetKey)
242
158
  setIsKeyPressed(false);
243
159
  };
244
- useEffect(function () {
160
+ useEffect(() => {
245
161
  window.addEventListener('keydown', handleKeyDown);
246
162
  window.addEventListener('keyup', handleKeyUp);
247
- return function () {
163
+ return () => {
248
164
  window.removeEventListener('keydown', handleKeyDown);
249
165
  window.removeEventListener('keyup', handleKeyUp);
250
166
  };
@@ -252,13 +168,13 @@ export function useKeyPress(targetKey) {
252
168
  return isKeyPressed;
253
169
  }
254
170
  export function useOnlineStatus() {
255
- var _a = useState(navigator.onLine), isOnline = _a[0], setIsOnline = _a[1];
256
- useEffect(function () {
257
- var handleOnline = function () { return setIsOnline(true); };
258
- var handleOffline = function () { return setIsOnline(false); };
171
+ const [isOnline, setIsOnline] = useState(navigator.onLine);
172
+ useEffect(() => {
173
+ const handleOnline = () => setIsOnline(true);
174
+ const handleOffline = () => setIsOnline(false);
259
175
  window.addEventListener('online', handleOnline);
260
176
  window.addEventListener('offline', handleOffline);
261
- return function () {
177
+ return () => {
262
178
  window.removeEventListener('online', handleOnline);
263
179
  window.removeEventListener('offline', handleOffline);
264
180
  };
@@ -266,201 +182,195 @@ export function useOnlineStatus() {
266
182
  return isOnline;
267
183
  }
268
184
  export function useScrollPosition() {
269
- var _a = useState({
185
+ const [scrollPosition, setScrollPosition] = useState({
270
186
  x: window.scrollX,
271
187
  y: window.scrollY,
272
- }), scrollPosition = _a[0], setScrollPosition = _a[1];
273
- useEffect(function () {
274
- var handleScroll = function () {
188
+ });
189
+ useEffect(() => {
190
+ const handleScroll = () => {
275
191
  setScrollPosition({
276
192
  x: window.scrollX,
277
193
  y: window.scrollY,
278
194
  });
279
195
  };
280
196
  window.addEventListener('scroll', handleScroll);
281
- return function () { return window.removeEventListener('scroll', handleScroll); };
197
+ return () => window.removeEventListener('scroll', handleScroll);
282
198
  }, []);
283
199
  return scrollPosition;
284
200
  }
285
201
  export function useTimeout(callback, delay) {
286
- var savedCallback = useRef();
287
- useEffect(function () {
202
+ const savedCallback = useRef();
203
+ useEffect(() => {
288
204
  savedCallback.current = callback;
289
205
  }, [callback]);
290
- useEffect(function () {
206
+ useEffect(() => {
291
207
  if (delay === null)
292
208
  return;
293
- var timer = setTimeout(function () { var _a; return (_a = savedCallback.current) === null || _a === void 0 ? void 0 : _a.call(savedCallback); }, delay);
294
- return function () { return clearTimeout(timer); };
209
+ const timer = setTimeout(() => { var _a; return (_a = savedCallback.current) === null || _a === void 0 ? void 0 : _a.call(savedCallback); }, delay);
210
+ return () => clearTimeout(timer);
295
211
  }, [delay]);
296
212
  }
297
213
  export function useDarkMode() {
298
- var _a = useState(function () {
299
- return window.matchMedia('(prefers-color-scheme: dark)').matches;
300
- }), isDarkMode = _a[0], setIsDarkMode = _a[1];
301
- var toggleDarkMode = function () {
302
- setIsDarkMode(function (prevMode) { return !prevMode; });
214
+ const [isDarkMode, setIsDarkMode] = useState(() => window.matchMedia('(prefers-color-scheme: dark)').matches);
215
+ const toggleDarkMode = () => {
216
+ setIsDarkMode((prevMode) => !prevMode);
303
217
  document.body.classList.toggle('dark-mode', !isDarkMode);
304
218
  };
305
- useEffect(function () {
306
- var mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
307
- var handleChange = function (e) { return setIsDarkMode(e.matches); };
219
+ useEffect(() => {
220
+ const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
221
+ const handleChange = (e) => setIsDarkMode(e.matches);
308
222
  mediaQuery.addEventListener('change', handleChange);
309
- return function () { return mediaQuery.removeEventListener('change', handleChange); };
223
+ return () => mediaQuery.removeEventListener('change', handleChange);
310
224
  }, []);
311
225
  return [isDarkMode, toggleDarkMode];
312
226
  }
313
227
  export function useForm(initialValues) {
314
- var _a = useState({
228
+ const [formState, setFormState] = useState({
315
229
  values: initialValues,
316
230
  errors: {},
317
- }), formState = _a[0], setFormState = _a[1];
318
- var handleChange = function (name, value) {
319
- setFormState(function (prev) {
320
- var _a;
321
- return (__assign(__assign({}, prev), { values: __assign(__assign({}, prev.values), (_a = {}, _a[name] = value, _a)) }));
322
- });
231
+ });
232
+ const handleChange = (name, value) => {
233
+ setFormState((prev) => (Object.assign(Object.assign({}, prev), { values: Object.assign(Object.assign({}, prev.values), { [name]: value }) })));
323
234
  };
324
- var validate = function (validators) {
325
- var errors = {};
326
- Object.entries(validators).forEach(function (_a) {
327
- var key = _a[0], validator = _a[1];
328
- var error = validator === null || validator === void 0 ? void 0 : validator(formState.values[key]);
235
+ const validate = (validators) => {
236
+ const errors = {};
237
+ Object.entries(validators).forEach(([key, validator]) => {
238
+ const error = validator === null || validator === void 0 ? void 0 : validator(formState.values[key]);
329
239
  if (error)
330
240
  errors[key] = error;
331
241
  });
332
- setFormState(function (prev) { return (__assign(__assign({}, prev), { errors: errors })); });
242
+ setFormState((prev) => (Object.assign(Object.assign({}, prev), { errors })));
333
243
  return Object.keys(errors).length === 0;
334
244
  };
335
245
  return {
336
246
  values: formState.values,
337
247
  errors: formState.errors,
338
- handleChange: handleChange,
339
- validate: validate,
248
+ handleChange,
249
+ validate,
340
250
  };
341
251
  }
342
252
  export function useArray(initialArray) {
343
- var _a = useState(initialArray), array = _a[0], setArray = _a[1];
253
+ const [array, setArray] = useState(initialArray);
344
254
  return {
345
- array: array,
255
+ array,
346
256
  set: setArray,
347
- push: function (item) { return setArray(function (prev) { return __spreadArray(__spreadArray([], prev, true), [item], false); }); },
348
- removeByIndex: function (index) { return setArray(function (prev) { return prev.filter(function (_, i) { return i !== index; }); }); },
349
- clear: function () { return setArray([]); },
257
+ push: (item) => setArray((prev) => [...prev, item]),
258
+ removeByIndex: (index) => setArray((prev) => prev.filter((_, i) => i !== index)),
259
+ clear: () => setArray([]),
350
260
  };
351
261
  }
352
- export var useStepper = function (totalSteps) {
353
- var _a = useState(0), activeStep = _a[0], setActiveStep = _a[1];
354
- var _b = useState(false), isProccesing = _b[0], setIsProccesing = _b[1];
355
- var handleNext = function () {
356
- setActiveStep(function (prev) { return prev + 1; });
262
+ export const useStepper = (totalSteps) => {
263
+ const [activeStep, setActiveStep] = useState(0);
264
+ const [isProccesing, setIsProccesing] = useState(false);
265
+ const handleNext = () => {
266
+ setActiveStep((prev) => prev + 1);
357
267
  };
358
- var handleBack = function () {
359
- setActiveStep(function (prev) { return prev - 1; });
268
+ const handleBack = () => {
269
+ setActiveStep((prev) => prev - 1);
360
270
  };
361
- var handleReset = function () {
271
+ const handleReset = () => {
362
272
  setActiveStep(0);
363
273
  };
364
- var goto = function (step) {
274
+ const goto = (step) => {
365
275
  if (step >= 0 && step < totalSteps) {
366
276
  setActiveStep(step);
367
277
  }
368
278
  else {
369
- console.warn("Step ".concat(step, " is out of bounds (0-").concat(totalSteps - 1, ")"));
279
+ console.warn(`Step ${step} is out of bounds (0-${totalSteps - 1})`);
370
280
  }
371
281
  };
372
282
  return {
373
- activeStep: activeStep,
374
- handleNext: handleNext,
375
- handleBack: handleBack,
376
- handleReset: handleReset,
377
- totalSteps: totalSteps,
283
+ activeStep,
284
+ handleNext,
285
+ handleBack,
286
+ handleReset,
287
+ totalSteps,
378
288
  isFirstStep: activeStep === 0,
379
289
  isLastStep: activeStep === totalSteps - 1,
380
- isProccesing: isProccesing,
381
- setIsProccesing: setIsProccesing,
382
- goto: goto
290
+ isProccesing,
291
+ setIsProccesing,
292
+ goto
383
293
  };
384
294
  };
385
- export var useSteps = function (totalSteps) {
386
- var _a = useState(0), activeStep = _a[0], setActiveStep = _a[1];
387
- var _b = useState(false), isProcessing = _b[0], setIsProcessing = _b[1];
388
- var handleNext = function () {
295
+ export const useSteps = (totalSteps) => {
296
+ const [activeStep, setActiveStep] = useState(0);
297
+ const [isProcessing, setIsProcessing] = useState(false);
298
+ const handleNext = () => {
389
299
  if (activeStep < totalSteps - 1) {
390
- setActiveStep(function (prev) { return prev + 1; });
300
+ setActiveStep((prev) => prev + 1);
391
301
  }
392
302
  };
393
- var handleBack = function () {
303
+ const handleBack = () => {
394
304
  if (activeStep > 0) {
395
- setActiveStep(function (prev) { return prev - 1; });
305
+ setActiveStep((prev) => prev - 1);
396
306
  }
397
307
  };
398
- var handleReset = function () {
308
+ const handleReset = () => {
399
309
  setActiveStep(0);
400
310
  };
401
- var goto = function (step) {
311
+ const goto = (step) => {
402
312
  if (step >= 0 && step < totalSteps) {
403
313
  setActiveStep(step);
404
314
  }
405
315
  else {
406
- console.warn("Step ".concat(step, " is out of bounds (0-").concat(totalSteps - 1, ")"));
316
+ console.warn(`Step ${step} is out of bounds (0-${totalSteps - 1})`);
407
317
  }
408
318
  };
409
319
  return {
410
- activeStep: activeStep,
411
- handleNext: handleNext,
412
- handleBack: handleBack,
413
- handleReset: handleReset,
414
- goto: goto,
415
- totalSteps: totalSteps,
320
+ activeStep,
321
+ handleNext,
322
+ handleBack,
323
+ handleReset,
324
+ goto,
325
+ totalSteps,
416
326
  isFirstStep: activeStep === 0,
417
327
  isLastStep: activeStep === totalSteps - 1,
418
- isProcessing: isProcessing,
419
- setIsProcessing: setIsProcessing,
328
+ isProcessing,
329
+ setIsProcessing,
420
330
  };
421
331
  };
422
332
  export function useTimeoutFn(callback, delay) {
423
- var timeoutRef = useRef();
424
- var reset = function () {
333
+ const timeoutRef = useRef();
334
+ const reset = () => {
425
335
  if (timeoutRef.current)
426
336
  clearTimeout(timeoutRef.current);
427
337
  if (delay !== null)
428
338
  timeoutRef.current = setTimeout(callback, delay);
429
339
  };
430
- var clear = function () {
340
+ const clear = () => {
431
341
  if (timeoutRef.current)
432
342
  clearTimeout(timeoutRef.current);
433
343
  };
434
- useEffect(function () {
344
+ useEffect(() => {
435
345
  reset();
436
346
  return clear;
437
347
  }, [callback, delay]);
438
- return { reset: reset, clear: clear };
348
+ return { reset, clear };
439
349
  }
440
350
  export function useDebouncedCallback(callback, delay) {
441
- var _a = useTimeoutFn(callback, delay), reset = _a.reset, clear = _a.clear;
442
- var debouncedCallback = useCallback(function () {
351
+ const { reset, clear } = useTimeoutFn(callback, delay);
352
+ const debouncedCallback = useCallback(() => {
443
353
  clear();
444
354
  reset();
445
355
  }, [clear, reset]);
446
356
  return debouncedCallback;
447
357
  }
448
358
  export function useScrollLock(lock) {
449
- useEffect(function () {
359
+ useEffect(() => {
450
360
  if (lock) {
451
- var originalOverflow_1 = document.body.style.overflow;
361
+ const originalOverflow = document.body.style.overflow;
452
362
  document.body.style.overflow = 'hidden';
453
- return function () {
454
- document.body.style.overflow = originalOverflow_1;
363
+ return () => {
364
+ document.body.style.overflow = originalOverflow;
455
365
  };
456
366
  }
457
367
  }, [lock]);
458
368
  }
459
369
  export function useResizeObserver(ref) {
460
- var _a = useState(null), size = _a[0], setSize = _a[1];
461
- useEffect(function () {
462
- var handleResize = function (entries) {
463
- var entry = entries[0];
370
+ const [size, setSize] = useState(null);
371
+ useEffect(() => {
372
+ const handleResize = (entries) => {
373
+ const entry = entries[0];
464
374
  if (entry) {
465
375
  setSize({
466
376
  width: entry.contentRect.width,
@@ -468,10 +378,10 @@ export function useResizeObserver(ref) {
468
378
  });
469
379
  }
470
380
  };
471
- var observer = new ResizeObserver(handleResize);
381
+ const observer = new ResizeObserver(handleResize);
472
382
  if (ref.current)
473
383
  observer.observe(ref.current);
474
- return function () {
384
+ return () => {
475
385
  if (ref.current)
476
386
  observer.unobserve(ref.current);
477
387
  };
@@ -479,227 +389,191 @@ export function useResizeObserver(ref) {
479
389
  return size;
480
390
  }
481
391
  export function useMousePosition() {
482
- var _a = useState({ x: 0, y: 0 }), position = _a[0], setPosition = _a[1];
483
- useEffect(function () {
484
- var handleMouseMove = function (event) {
392
+ const [position, setPosition] = useState({ x: 0, y: 0 });
393
+ useEffect(() => {
394
+ const handleMouseMove = (event) => {
485
395
  setPosition({ x: event.clientX, y: event.clientY });
486
396
  };
487
397
  document.addEventListener('mousemove', handleMouseMove);
488
- return function () { return document.removeEventListener('mousemove', handleMouseMove); };
398
+ return () => document.removeEventListener('mousemove', handleMouseMove);
489
399
  }, []);
490
400
  return position;
491
401
  }
492
402
  export function useScrollDirection() {
493
- var _a = useState('up'), scrollDirection = _a[0], setScrollDirection = _a[1];
494
- var _b = useState(0), lastScrollY = _b[0], setLastScrollY = _b[1];
495
- useEffect(function () {
496
- var handleScroll = function () {
497
- var currentScrollY = window.scrollY;
403
+ const [scrollDirection, setScrollDirection] = useState('up');
404
+ const [lastScrollY, setLastScrollY] = useState(0);
405
+ useEffect(() => {
406
+ const handleScroll = () => {
407
+ const currentScrollY = window.scrollY;
498
408
  setScrollDirection(currentScrollY > lastScrollY ? 'down' : 'up');
499
409
  setLastScrollY(currentScrollY);
500
410
  };
501
411
  window.addEventListener('scroll', handleScroll);
502
- return function () { return window.removeEventListener('scroll', handleScroll); };
412
+ return () => window.removeEventListener('scroll', handleScroll);
503
413
  }, [lastScrollY]);
504
414
  return scrollDirection;
505
415
  }
506
416
  export function useImageLoader(src) {
507
- var _a = useState(false), loaded = _a[0], setLoaded = _a[1];
508
- var _b = useState(false), error = _b[0], setError = _b[1];
509
- useEffect(function () {
510
- var img = new Image();
417
+ const [loaded, setLoaded] = useState(false);
418
+ const [error, setError] = useState(false);
419
+ useEffect(() => {
420
+ const img = new Image();
511
421
  img.src = src;
512
- var handleLoad = function () { return setLoaded(true); };
513
- var handleError = function () { return setError(true); };
422
+ const handleLoad = () => setLoaded(true);
423
+ const handleError = () => setError(true);
514
424
  img.addEventListener('load', handleLoad);
515
425
  img.addEventListener('error', handleError);
516
- return function () {
426
+ return () => {
517
427
  img.removeEventListener('load', handleLoad);
518
428
  img.removeEventListener('error', handleError);
519
429
  };
520
430
  }, [src]);
521
- return { loaded: loaded, error: error };
431
+ return { loaded, error };
522
432
  }
523
433
  export function usePersistedState(key, initialValue) {
524
- var _a = useState(function () {
525
- var saved = localStorage.getItem(key);
434
+ const [state, setState] = useState(() => {
435
+ const saved = localStorage.getItem(key);
526
436
  return saved ? JSON.parse(saved) : initialValue;
527
- }), state = _a[0], setState = _a[1];
528
- useEffect(function () {
437
+ });
438
+ useEffect(() => {
529
439
  localStorage.setItem(key, JSON.stringify(state));
530
440
  }, [key, state]);
531
441
  return [state, setState];
532
442
  }
533
443
  export function useReducedMotion() {
534
- var _a = useState(false), reducedMotion = _a[0], setReducedMotion = _a[1];
535
- useEffect(function () {
536
- var mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
444
+ const [reducedMotion, setReducedMotion] = useState(false);
445
+ useEffect(() => {
446
+ const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
537
447
  setReducedMotion(mediaQuery.matches);
538
- var handleChange = function (e) { return setReducedMotion(e.matches); };
448
+ const handleChange = (e) => setReducedMotion(e.matches);
539
449
  mediaQuery.addEventListener('change', handleChange);
540
- return function () {
450
+ return () => {
541
451
  mediaQuery.removeEventListener('change', handleChange);
542
452
  };
543
453
  }, []);
544
454
  return reducedMotion;
545
455
  }
546
456
  export function useCookie(key) {
547
- var _a = useState(function () { var _a; return ((_a = document.cookie.split('; ').find(function (row) { return row.startsWith(key); })) === null || _a === void 0 ? void 0 : _a.split('=')[1]) || null; }), cookie = _a[0], setCookieState = _a[1];
548
- var setCookie = function (value, options) {
549
- if (options === void 0) { options = {}; }
550
- var optionsString = Object.entries(options)
551
- .map(function (_a) {
552
- var k = _a[0], v = _a[1];
553
- return "".concat(k, "=").concat(v);
554
- })
457
+ const [cookie, setCookieState] = useState(() => { var _a; return ((_a = document.cookie.split('; ').find((row) => row.startsWith(key))) === null || _a === void 0 ? void 0 : _a.split('=')[1]) || null; });
458
+ const setCookie = (value, options = {}) => {
459
+ const optionsString = Object.entries(options)
460
+ .map(([k, v]) => `${k}=${v}`)
555
461
  .join('; ');
556
- document.cookie = "".concat(key, "=").concat(value, "; ").concat(optionsString);
462
+ document.cookie = `${key}=${value}; ${optionsString}`;
557
463
  setCookieState(value);
558
464
  };
559
- var deleteCookie = function () {
560
- document.cookie = "".concat(key, "=; Max-Age=0");
465
+ const deleteCookie = () => {
466
+ document.cookie = `${key}=; Max-Age=0`;
561
467
  setCookieState(null);
562
468
  };
563
469
  return [cookie, setCookie, deleteCookie];
564
470
  }
565
- export function useRequestRetry(url, options, retries) {
566
- var _this = this;
567
- if (retries === void 0) { retries = 3; }
568
- var _a = useState({
471
+ export function useRequestRetry(url, options, retries = 3) {
472
+ const [state, setState] = useState({
569
473
  data: null,
570
474
  error: null,
571
475
  loading: true,
572
- }), state = _a[0], setState = _a[1];
573
- useEffect(function () {
574
- var fetchData = function () { return __awaiter(_this, void 0, void 0, function () {
575
- var attempts, response, data, error_3;
576
- return __generator(this, function (_a) {
577
- switch (_a.label) {
578
- case 0:
579
- attempts = 0;
580
- _a.label = 1;
581
- case 1:
582
- if (!(attempts < retries)) return [3 /*break*/, 7];
583
- _a.label = 2;
584
- case 2:
585
- _a.trys.push([2, 5, , 6]);
586
- return [4 /*yield*/, fetch(url, options)];
587
- case 3:
588
- response = _a.sent();
589
- if (!response.ok)
590
- throw new Error("HTTP error! status: ".concat(response.status));
591
- return [4 /*yield*/, response.json()];
592
- case 4:
593
- data = _a.sent();
594
- setState({ data: data, error: null, loading: false });
595
- return [2 /*return*/];
596
- case 5:
597
- error_3 = _a.sent();
598
- attempts++;
599
- if (attempts >= retries) {
600
- setState({ data: null, error: error_3.message, loading: false });
601
- }
602
- return [3 /*break*/, 6];
603
- case 6: return [3 /*break*/, 1];
604
- case 7: return [2 /*return*/];
476
+ });
477
+ useEffect(() => {
478
+ const fetchData = async () => {
479
+ let attempts = 0;
480
+ while (attempts < retries) {
481
+ try {
482
+ const response = await fetch(url, options);
483
+ if (!response.ok)
484
+ throw new Error(`HTTP error! status: ${response.status}`);
485
+ const data = await response.json();
486
+ setState({ data, error: null, loading: false });
487
+ return;
605
488
  }
606
- });
607
- }); };
489
+ catch (error) {
490
+ attempts++;
491
+ if (attempts >= retries) {
492
+ setState({ data: null, error: error.message, loading: false });
493
+ }
494
+ }
495
+ }
496
+ };
608
497
  fetchData();
609
498
  }, [url, options, retries]);
610
499
  return state;
611
500
  }
612
501
  export function useDelay(value, delay) {
613
- var _a = useState(value), delayedValue = _a[0], setDelayedValue = _a[1];
614
- useEffect(function () {
615
- var timeout = setTimeout(function () { return setDelayedValue(value); }, delay);
616
- return function () { return clearTimeout(timeout); };
502
+ const [delayedValue, setDelayedValue] = useState(value);
503
+ useEffect(() => {
504
+ const timeout = setTimeout(() => setDelayedValue(value), delay);
505
+ return () => clearTimeout(timeout);
617
506
  }, [value, delay]);
618
507
  return delayedValue;
619
508
  }
620
509
  export function useVisibilityChange() {
621
- var _a = useState(document.visibilityState === 'visible'), isVisible = _a[0], setIsVisible = _a[1];
622
- useEffect(function () {
623
- var handleVisibilityChange = function () {
510
+ const [isVisible, setIsVisible] = useState(document.visibilityState === 'visible');
511
+ useEffect(() => {
512
+ const handleVisibilityChange = () => {
624
513
  setIsVisible(document.visibilityState === 'visible');
625
514
  };
626
515
  document.addEventListener('visibilitychange', handleVisibilityChange);
627
- return function () { return document.removeEventListener('visibilitychange', handleVisibilityChange); };
516
+ return () => document.removeEventListener('visibilitychange', handleVisibilityChange);
628
517
  }, []);
629
518
  return isVisible;
630
519
  }
631
520
  export function useDebouncedValue(value, delay) {
632
- var _a = useState(value), debouncedValue = _a[0], setDebouncedValue = _a[1];
633
- useEffect(function () {
634
- var timer = setTimeout(function () { return setDebouncedValue(value); }, delay);
635
- return function () { return clearTimeout(timer); };
521
+ const [debouncedValue, setDebouncedValue] = useState(value);
522
+ useEffect(() => {
523
+ const timer = setTimeout(() => setDebouncedValue(value), delay);
524
+ return () => clearTimeout(timer);
636
525
  }, [value, delay]);
637
526
  return debouncedValue;
638
527
  }
639
- export function useAsync(asyncFunction, immediate) {
640
- var _this = this;
641
- if (immediate === void 0) { immediate = true; }
642
- var _a = useState('idle'), status = _a[0], setStatus = _a[1];
643
- var _b = useState(null), value = _b[0], setValue = _b[1];
644
- var _c = useState(null), error = _c[0], setError = _c[1];
645
- var execute = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
646
- var response, err_1;
647
- return __generator(this, function (_a) {
648
- switch (_a.label) {
649
- case 0:
650
- setStatus('pending');
651
- setValue(null);
652
- setError(null);
653
- _a.label = 1;
654
- case 1:
655
- _a.trys.push([1, 3, , 4]);
656
- return [4 /*yield*/, asyncFunction()];
657
- case 2:
658
- response = _a.sent();
659
- setValue(response);
660
- setStatus('success');
661
- return [3 /*break*/, 4];
662
- case 3:
663
- err_1 = _a.sent();
664
- setError(err_1 instanceof Error ? err_1 : new Error('Unknown error'));
665
- setStatus('error');
666
- return [3 /*break*/, 4];
667
- case 4: return [2 /*return*/];
668
- }
669
- });
670
- }); }, [asyncFunction]);
671
- useEffect(function () {
528
+ export function useAsync(asyncFunction, immediate = true) {
529
+ const [status, setStatus] = useState('idle');
530
+ const [value, setValue] = useState(null);
531
+ const [error, setError] = useState(null);
532
+ const execute = useCallback(async () => {
533
+ setStatus('pending');
534
+ setValue(null);
535
+ setError(null);
536
+ try {
537
+ const response = await asyncFunction();
538
+ setValue(response);
539
+ setStatus('success');
540
+ }
541
+ catch (err) {
542
+ setError(err instanceof Error ? err : new Error('Unknown error'));
543
+ setStatus('error');
544
+ }
545
+ }, [asyncFunction]);
546
+ useEffect(() => {
672
547
  if (immediate) {
673
548
  execute();
674
549
  }
675
550
  }, [execute, immediate]);
676
- return { execute: execute, status: status, value: value, error: error };
677
- }
678
- var cachedScriptStatuses = {};
679
- export function useScript(src, removeOnUnmount) {
680
- if (removeOnUnmount === void 0) { removeOnUnmount = false; }
681
- var isScriptExisting = document.querySelector("script[src=\"".concat(src, "\"]"));
682
- var cachedStatus = cachedScriptStatuses[src];
683
- var _a = useState(cachedStatus || (isScriptExisting ? 'ready' : 'loading')), status = _a[0], setStatus = _a[1];
684
- useEffect(function () {
551
+ return { execute, status, value, error };
552
+ }
553
+ const cachedScriptStatuses = {};
554
+ export function useScript(src, removeOnUnmount = false) {
555
+ const isScriptExisting = document.querySelector(`script[src="${src}"]`);
556
+ const cachedStatus = cachedScriptStatuses[src];
557
+ const [status, setStatus] = useState(cachedStatus || (isScriptExisting ? 'ready' : 'loading'));
558
+ useEffect(() => {
685
559
  if (typeof window === 'undefined' || isScriptExisting) {
686
560
  return;
687
561
  }
688
- var script = document.createElement('script');
562
+ const script = document.createElement('script');
689
563
  script.src = src;
690
564
  script.async = true;
691
- var handleLoad = function () {
565
+ const handleLoad = () => {
692
566
  setStatus('ready');
693
567
  cachedScriptStatuses[src] = 'ready';
694
568
  };
695
- var handleError = function () {
569
+ const handleError = () => {
696
570
  setStatus('error');
697
571
  cachedScriptStatuses[src] = 'error';
698
572
  };
699
573
  script.addEventListener('load', handleLoad);
700
574
  script.addEventListener('error', handleError);
701
575
  document.body.appendChild(script);
702
- return function () {
576
+ return () => {
703
577
  script.removeEventListener('load', handleLoad);
704
578
  script.removeEventListener('error', handleError);
705
579
  if (removeOnUnmount) {
@@ -710,38 +584,33 @@ export function useScript(src, removeOnUnmount) {
710
584
  return status;
711
585
  }
712
586
  export function useIndexedDB(dbName, storeName) {
713
- var _this = this;
714
- var _a = useState(null), data = _a[0], setData = _a[1];
715
- var _b = useState(null), error = _b[0], setError = _b[1];
716
- useEffect(function () {
717
- var fetchData = function () { return __awaiter(_this, void 0, void 0, function () {
718
- var request_1;
719
- return __generator(this, function (_a) {
720
- try {
721
- request_1 = indexedDB.open(dbName, 1);
722
- request_1.onsuccess = function () {
723
- var db = request_1.result;
724
- var transaction = db.transaction(storeName, 'readonly');
725
- var store = transaction.objectStore(storeName);
726
- var getRequest = store.getAll();
727
- getRequest.onsuccess = function () {
728
- setData(getRequest.result);
729
- };
730
- getRequest.onerror = function () {
731
- setError(new Error('Failed to fetch data from IndexedDB'));
732
- };
587
+ const [data, setData] = useState(null);
588
+ const [error, setError] = useState(null);
589
+ useEffect(() => {
590
+ const fetchData = async () => {
591
+ try {
592
+ const request = indexedDB.open(dbName, 1);
593
+ request.onsuccess = () => {
594
+ const db = request.result;
595
+ const transaction = db.transaction(storeName, 'readonly');
596
+ const store = transaction.objectStore(storeName);
597
+ const getRequest = store.getAll();
598
+ getRequest.onsuccess = () => {
599
+ setData(getRequest.result);
733
600
  };
734
- request_1.onerror = function () {
735
- setError(new Error('Failed to open IndexedDB'));
601
+ getRequest.onerror = () => {
602
+ setError(new Error('Failed to fetch data from IndexedDB'));
736
603
  };
737
- }
738
- catch (err) {
739
- setError(err instanceof Error ? err : new Error('Unknown error'));
740
- }
741
- return [2 /*return*/];
742
- });
743
- }); };
604
+ };
605
+ request.onerror = () => {
606
+ setError(new Error('Failed to open IndexedDB'));
607
+ };
608
+ }
609
+ catch (err) {
610
+ setError(err instanceof Error ? err : new Error('Unknown error'));
611
+ }
612
+ };
744
613
  fetchData();
745
614
  }, [dbName, storeName]);
746
- return { data: data, error: error };
615
+ return { data, error };
747
616
  }