mimir-ui-kit 1.13.7 → 1.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. package/README.md +62 -62
  2. package/dist/{NavigationButtons-DuOoqaPo.js → NavigationButtons-B8tMfqrg.js} +20 -20
  3. package/dist/assets/Button.css +1 -1
  4. package/dist/assets/Input.css +1 -1
  5. package/dist/assets/MergedButton.css +1 -1
  6. package/dist/assets/OtpInput.css +1 -1
  7. package/dist/assets/RadioGroup.css +1 -1
  8. package/dist/assets/Slider.css +1 -1
  9. package/dist/assets/index.css +1 -1
  10. package/dist/components/Button/Button.d.ts +1 -0
  11. package/dist/components/Button/Button.js +25 -26
  12. package/dist/components/Button/constants.d.ts +1 -2
  13. package/dist/components/Button/constants.js +0 -1
  14. package/dist/components/Input/Input.d.ts +2 -2
  15. package/dist/components/Input/Input.js +16 -17
  16. package/dist/components/InputPassword/InputPassword.js +2 -2
  17. package/dist/components/InputPhoneNumber/InputPhoneNumber.js +1 -1
  18. package/dist/components/MergedButton/MergedButton.d.ts +1 -1
  19. package/dist/components/MergedButton/MergedButton.js +19 -17
  20. package/dist/components/OtpInput/OtpInput.js +6 -6
  21. package/dist/components/RadioGroup/RadioGroup.d.ts +2 -18
  22. package/dist/components/RadioGroup/RadioGroup.js +1061 -130
  23. package/dist/components/RadioGroup/index.d.ts +1 -1
  24. package/dist/components/Slider/NavigationButtons/NavigationButtons.js +1 -1
  25. package/dist/components/Slider/NavigationButtons/index.js +1 -1
  26. package/dist/components/Slider/Slider.js +10 -10
  27. package/dist/components/Tag/Tag.d.ts +57 -19
  28. package/dist/components/Tag/Tag.js +84 -39
  29. package/dist/components/Tag/constants.d.ts +37 -5
  30. package/dist/components/Tag/constants.js +53 -13
  31. package/dist/components/Tag/index.d.ts +3 -2
  32. package/dist/components/Tag/index.js +6 -5
  33. package/dist/components/Tag/types.d.ts +6 -0
  34. package/dist/components/index.d.ts +1 -15
  35. package/dist/components/index.js +0 -29
  36. package/dist/hooks/index.d.ts +0 -3
  37. package/dist/hooks/index.js +1 -7
  38. package/dist/icons/Icon.js +1 -1
  39. package/dist/icons/components/index.d.ts +0 -1
  40. package/dist/icons/components/index.js +559 -560
  41. package/dist/{index-Cxiikb7g.js → index-_ACzPKPw.js} +558 -561
  42. package/dist/index.d.ts +0 -1
  43. package/dist/index.js +1 -38
  44. package/package.json +128 -128
  45. package/dist/DatePickerModal-BM0BgzTb.js +0 -204
  46. package/dist/assets/Accordion.css +0 -1
  47. package/dist/assets/AccordionItem.css +0 -1
  48. package/dist/assets/DatePickerModal.css +0 -1
  49. package/dist/assets/Drawer.css +0 -1
  50. package/dist/assets/ListPhotos.css +0 -1
  51. package/dist/assets/SelectSearch.css +0 -1
  52. package/dist/assets/Switch.css +0 -1
  53. package/dist/assets/TabTrail.css +0 -1
  54. package/dist/assets/Tag.css +0 -1
  55. package/dist/assets/Timer.css +0 -1
  56. package/dist/assets/Uploader.css +0 -1
  57. package/dist/assets/UploaderPhotos.css +0 -1
  58. package/dist/bugs-CSBdWk0R.js +0 -18
  59. package/dist/components/Accordion/Accordion.d.ts +0 -10
  60. package/dist/components/Accordion/Accordion.js +0 -176
  61. package/dist/components/Accordion/AccordionItem/AccordionItem.d.ts +0 -8
  62. package/dist/components/Accordion/AccordionItem/AccordionItem.js +0 -16
  63. package/dist/components/Accordion/AccordionItem/index.d.ts +0 -1
  64. package/dist/components/Accordion/AccordionItem/index.js +0 -4
  65. package/dist/components/Accordion/constants.d.ts +0 -8
  66. package/dist/components/Accordion/constants.js +0 -14
  67. package/dist/components/Accordion/index.d.ts +0 -3
  68. package/dist/components/Accordion/index.js +0 -8
  69. package/dist/components/DatePicker/DatePicker.d.ts +0 -44
  70. package/dist/components/DatePicker/DatePicker.js +0 -69
  71. package/dist/components/DatePicker/DatePickerModal.d.ts +0 -8
  72. package/dist/components/DatePicker/DatePickerModal.js +0 -9
  73. package/dist/components/DatePicker/constants.d.ts +0 -6
  74. package/dist/components/DatePicker/constants.js +0 -11
  75. package/dist/components/DatePicker/index.d.ts +0 -2
  76. package/dist/components/DatePicker/index.js +0 -4
  77. package/dist/components/Drawer/Drawer.d.ts +0 -38
  78. package/dist/components/Drawer/Drawer.js +0 -144
  79. package/dist/components/Drawer/constants.d.ts +0 -5
  80. package/dist/components/Drawer/constants.js +0 -9
  81. package/dist/components/Drawer/index.d.ts +0 -2
  82. package/dist/components/Drawer/index.js +0 -6
  83. package/dist/components/ListPhotos/ListPhotos.d.ts +0 -23
  84. package/dist/components/ListPhotos/ListPhotos.js +0 -33
  85. package/dist/components/ListPhotos/constants.d.ts +0 -3
  86. package/dist/components/ListPhotos/constants.js +0 -21
  87. package/dist/components/ListPhotos/index.d.ts +0 -2
  88. package/dist/components/ListPhotos/index.js +0 -4
  89. package/dist/components/Portal/Portal.d.ts +0 -7
  90. package/dist/components/Portal/Portal.js +0 -10
  91. package/dist/components/Portal/index.d.ts +0 -1
  92. package/dist/components/Portal/index.js +0 -4
  93. package/dist/components/SelectSearch/SelectSearch.d.ts +0 -15
  94. package/dist/components/SelectSearch/SelectSearch.js +0 -3876
  95. package/dist/components/SelectSearch/constants.d.ts +0 -4
  96. package/dist/components/SelectSearch/constants.js +0 -8
  97. package/dist/components/SelectSearch/index.d.ts +0 -2
  98. package/dist/components/SelectSearch/index.js +0 -6
  99. package/dist/components/Switch/Switch.d.ts +0 -294
  100. package/dist/components/Switch/Switch.js +0 -59
  101. package/dist/components/Switch/index.d.ts +0 -2
  102. package/dist/components/Switch/index.js +0 -4
  103. package/dist/components/TabTrail/TabButtons/TabButtons.d.ts +0 -8
  104. package/dist/components/TabTrail/TabButtons/TabButtons.js +0 -29
  105. package/dist/components/TabTrail/TabButtons/constants.d.ts +0 -8
  106. package/dist/components/TabTrail/TabButtons/constants.js +0 -14
  107. package/dist/components/TabTrail/TabButtons/index.d.ts +0 -1
  108. package/dist/components/TabTrail/TabButtons/index.js +0 -4
  109. package/dist/components/TabTrail/TabTrail.d.ts +0 -11
  110. package/dist/components/TabTrail/TabTrail.js +0 -282
  111. package/dist/components/TabTrail/constants.d.ts +0 -4
  112. package/dist/components/TabTrail/constants.js +0 -8
  113. package/dist/components/TabTrail/index.d.ts +0 -2
  114. package/dist/components/TabTrail/index.js +0 -6
  115. package/dist/components/Timer/Timer.d.ts +0 -24
  116. package/dist/components/Timer/Timer.js +0 -29
  117. package/dist/components/Timer/index.d.ts +0 -1
  118. package/dist/components/Timer/index.js +0 -4
  119. package/dist/components/Uploader/Uploader.d.ts +0 -30
  120. package/dist/components/Uploader/Uploader.js +0 -90
  121. package/dist/components/Uploader/constants.d.ts +0 -5
  122. package/dist/components/Uploader/constants.js +0 -16
  123. package/dist/components/Uploader/index.d.ts +0 -2
  124. package/dist/components/Uploader/index.js +0 -4
  125. package/dist/components/UploaderPhotos/UploaderPhotos.d.ts +0 -29
  126. package/dist/components/UploaderPhotos/UploaderPhotos.js +0 -46
  127. package/dist/components/UploaderPhotos/index.d.ts +0 -2
  128. package/dist/components/UploaderPhotos/index.js +0 -4
  129. package/dist/focus-management-1rQPII7Z.js +0 -77
  130. package/dist/hidden-BuVoeHNy.js +0 -13
  131. package/dist/hooks/useClickOutside/index.d.ts +0 -1
  132. package/dist/hooks/useClickOutside/index.js +0 -4
  133. package/dist/hooks/useClickOutside/useClickOutside.d.ts +0 -7
  134. package/dist/hooks/useClickOutside/useClickOutside.js +0 -25
  135. package/dist/hooks/useInterval/index.d.ts +0 -1
  136. package/dist/hooks/useInterval/index.js +0 -4
  137. package/dist/hooks/useInterval/useInterval.d.ts +0 -1
  138. package/dist/hooks/useInterval/useInterval.js +0 -17
  139. package/dist/hooks/useLockBodyScroll/index.d.ts +0 -1
  140. package/dist/hooks/useLockBodyScroll/index.js +0 -4
  141. package/dist/hooks/useLockBodyScroll/useLockBodyScroll.d.ts +0 -6
  142. package/dist/hooks/useLockBodyScroll/useLockBodyScroll.js +0 -20
  143. package/dist/hooks/useTimer/index.d.ts +0 -18
  144. package/dist/hooks/useTimer/index.js +0 -83
  145. package/dist/hooks/useTimer/useTimer.d.ts +0 -18
  146. package/dist/hooks/useTimer/useTimer.js +0 -87
  147. package/dist/hooks/useTimer/utils.d.ts +0 -24
  148. package/dist/hooks/useTimer/utils.js +0 -88
  149. package/dist/icons/components/12px/Close12px.d.ts +0 -4
  150. package/dist/icons/components/12px/Close12px.js +0 -18
  151. package/dist/keyboard-B256ZoM-.js +0 -745
  152. package/dist/label-C_5Syaoj.js +0 -159
  153. package/dist/open-closed-CbXq00et.js +0 -93
  154. package/dist/use-active-press-B6yeSopF.js +0 -31
  155. package/dist/use-by-comparator-BUO78DGe.js +0 -16
  156. package/dist/use-resolve-button-type-B6LE6gU3.js +0 -19
  157. package/dist/utils/UUID4.d.ts +0 -1
  158. package/dist/utils/UUID4.js +0 -9
  159. package/dist/utils/formating/Date.d.ts +0 -1
  160. package/dist/utils/formating/Date.js +0 -26
  161. package/dist/utils/formating/Month.d.ts +0 -8
  162. package/dist/utils/formating/Month.js +0 -80
  163. package/dist/utils/formating/Numbers.d.ts +0 -6
  164. package/dist/utils/formating/Numbers.js +0 -8
  165. package/dist/utils/index.d.ts +0 -11
  166. package/dist/utils/index.js +0 -13
@@ -1,77 +0,0 @@
1
- import { u, a as u$1 } from "./keyboard-B256ZoM-.js";
2
- let f = ["[contentEditable=true]", "[tabindex]", "a[href]", "area[href]", "button:not([disabled])", "iframe", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].map((e) => `${e}:not([tabindex='-1'])`).join(","), p = ["[data-autofocus]"].map((e) => `${e}:not([tabindex='-1'])`).join(",");
3
- var F = ((n) => (n[n.First = 1] = "First", n[n.Previous = 2] = "Previous", n[n.Next = 4] = "Next", n[n.Last = 8] = "Last", n[n.WrapAround = 16] = "WrapAround", n[n.NoScroll = 32] = "NoScroll", n[n.AutoFocus = 64] = "AutoFocus", n))(F || {}), T = ((o) => (o[o.Error = 0] = "Error", o[o.Overflow = 1] = "Overflow", o[o.Success = 2] = "Success", o[o.Underflow = 3] = "Underflow", o))(T || {}), y = ((t) => (t[t.Previous = -1] = "Previous", t[t.Next = 1] = "Next", t))(y || {});
4
- function b(e = document.body) {
5
- return e == null ? [] : Array.from(e.querySelectorAll(f)).sort((r, t) => Math.sign((r.tabIndex || Number.MAX_SAFE_INTEGER) - (t.tabIndex || Number.MAX_SAFE_INTEGER)));
6
- }
7
- function S(e = document.body) {
8
- return e == null ? [] : Array.from(e.querySelectorAll(p)).sort((r, t) => Math.sign((r.tabIndex || Number.MAX_SAFE_INTEGER) - (t.tabIndex || Number.MAX_SAFE_INTEGER)));
9
- }
10
- var h = ((t) => (t[t.Strict = 0] = "Strict", t[t.Loose = 1] = "Loose", t))(h || {});
11
- function A(e, r = 0) {
12
- var t;
13
- return e === ((t = u(e)) == null ? void 0 : t.body) ? false : u$1(r, { [0]() {
14
- return e.matches(f);
15
- }, [1]() {
16
- let u2 = e;
17
- for (; u2 !== null; ) {
18
- if (u2.matches(f)) return true;
19
- u2 = u2.parentElement;
20
- }
21
- return false;
22
- } });
23
- }
24
- var H = ((t) => (t[t.Keyboard = 0] = "Keyboard", t[t.Mouse = 1] = "Mouse", t))(H || {});
25
- typeof window != "undefined" && typeof document != "undefined" && (document.addEventListener("keydown", (e) => {
26
- e.metaKey || e.altKey || e.ctrlKey || (document.documentElement.dataset.headlessuiFocusVisible = "");
27
- }, true), document.addEventListener("click", (e) => {
28
- e.detail === 1 ? delete document.documentElement.dataset.headlessuiFocusVisible : e.detail === 0 && (document.documentElement.dataset.headlessuiFocusVisible = "");
29
- }, true));
30
- let w = ["textarea", "input"].join(",");
31
- function O(e) {
32
- var r, t;
33
- return (t = (r = e == null ? void 0 : e.matches) == null ? void 0 : r.call(e, w)) != null ? t : false;
34
- }
35
- function _(e, r = (t) => t) {
36
- return e.slice().sort((t, u2) => {
37
- let o = r(t), c = r(u2);
38
- if (o === null || c === null) return 0;
39
- let l = o.compareDocumentPosition(c);
40
- return l & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : l & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0;
41
- });
42
- }
43
- function P(e, r, { sorted: t = true, relativeTo: u2 = null, skipElements: o = [] } = {}) {
44
- let c = Array.isArray(e) ? e.length > 0 ? e[0].ownerDocument : document : e.ownerDocument, l = Array.isArray(e) ? t ? _(e) : e : r & 64 ? S(e) : b(e);
45
- o.length > 0 && l.length > 1 && (l = l.filter((s) => !o.some((a) => a != null && "current" in a ? (a == null ? void 0 : a.current) === s : a === s))), u2 = u2 != null ? u2 : c.activeElement;
46
- let n = (() => {
47
- if (r & 5) return 1;
48
- if (r & 10) return -1;
49
- throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last");
50
- })(), x = (() => {
51
- if (r & 1) return 0;
52
- if (r & 2) return Math.max(0, l.indexOf(u2)) - 1;
53
- if (r & 4) return Math.max(0, l.indexOf(u2)) + 1;
54
- if (r & 8) return l.length - 1;
55
- throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last");
56
- })(), M = r & 32 ? { preventScroll: true } : {}, m = 0, d = l.length, i;
57
- do {
58
- if (m >= d || m + d <= 0) return 0;
59
- let s = x + m;
60
- if (r & 16) s = (s + d) % d;
61
- else {
62
- if (s < 0) return 3;
63
- if (s >= d) return 1;
64
- }
65
- i = l[s], i == null || i.focus(M), m += n;
66
- } while (i !== c.activeElement);
67
- return r & 6 && O(i) && i.select(), 2;
68
- }
69
- export {
70
- A,
71
- F,
72
- P,
73
- T,
74
- _,
75
- f,
76
- h
77
- };
@@ -1,13 +0,0 @@
1
- import { W, H } from "./keyboard-B256ZoM-.js";
2
- let a = "span";
3
- var s = ((e) => (e[e.None = 1] = "None", e[e.Focusable = 2] = "Focusable", e[e.Hidden = 4] = "Hidden", e))(s || {});
4
- function l(t, r) {
5
- var n;
6
- let { features: d = 1, ...e } = t, o = { ref: r, "aria-hidden": (d & 2) === 2 ? true : (n = e["aria-hidden"]) != null ? n : void 0, hidden: (d & 4) === 4 ? true : void 0, style: { position: "fixed", top: 1, left: 1, width: 1, height: 0, padding: 0, margin: -1, overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0", ...(d & 4) === 4 && (d & 2) !== 2 && { display: "none" } } };
7
- return H({ ourProps: o, theirProps: e, slot: {}, defaultTag: a, name: "Hidden" });
8
- }
9
- let T = W(l);
10
- export {
11
- T,
12
- s
13
- };
@@ -1 +0,0 @@
1
- export { useClickOutside } from './useClickOutside';
@@ -1,4 +0,0 @@
1
- import { useClickOutside } from "./useClickOutside.js";
2
- export {
3
- useClickOutside
4
- };
@@ -1,7 +0,0 @@
1
- type TUseClickOutside = {
2
- isActive: boolean;
3
- setActive: (p: boolean) => void;
4
- className: string;
5
- };
6
- export declare function useClickOutside({ isActive, setActive, className }: TUseClickOutside): void;
7
- export {};
@@ -1,25 +0,0 @@
1
- import { useEffect } from "react";
2
- function useClickOutside({
3
- isActive,
4
- setActive,
5
- className
6
- }) {
7
- useEffect(() => {
8
- const handleClickOtside = (e) => {
9
- if (e.target) {
10
- if (!e.target.closest("." + className)) {
11
- setActive(false);
12
- window.removeEventListener("click", handleClickOtside, true);
13
- }
14
- }
15
- };
16
- if (isActive) {
17
- window.addEventListener("click", handleClickOtside, true);
18
- } else {
19
- window.removeEventListener("click", handleClickOtside, true);
20
- }
21
- }, [isActive]);
22
- }
23
- export {
24
- useClickOutside
25
- };
@@ -1 +0,0 @@
1
- export { useInterval } from './useInterval';
@@ -1,4 +0,0 @@
1
- import { useInterval } from "./useInterval.js";
2
- export {
3
- useInterval
4
- };
@@ -1 +0,0 @@
1
- export declare function useInterval(callback: VoidFunction, delay: number | null): void;
@@ -1,17 +0,0 @@
1
- import { useRef, useEffect } from "react";
2
- function useInterval(callback, delay) {
3
- const callbackRef = useRef();
4
- callbackRef.current = callback;
5
- useEffect(() => {
6
- if (!delay) {
7
- return;
8
- }
9
- const interval = setInterval(() => {
10
- callbackRef.current && callbackRef.current();
11
- }, delay);
12
- return () => clearInterval(interval);
13
- }, [delay]);
14
- }
15
- export {
16
- useInterval
17
- };
@@ -1 +0,0 @@
1
- export { useLockBodyScroll } from './useLockBodyScroll';
@@ -1,4 +0,0 @@
1
- import { useLockBodyScroll } from "./useLockBodyScroll.js";
2
- export {
3
- useLockBodyScroll
4
- };
@@ -1,6 +0,0 @@
1
- type TUseLockBodyScroll = {
2
- on?: boolean;
3
- paddingRight?: number;
4
- };
5
- export declare function useLockBodyScroll({ on, paddingRight }: TUseLockBodyScroll): void;
6
- export {};
@@ -1,20 +0,0 @@
1
- import { useLayoutEffect } from "react";
2
- function useLockBodyScroll({ on, paddingRight }) {
3
- useLayoutEffect(() => {
4
- const hasVerticalScrollbar = document.documentElement.scrollHeight > document.documentElement.clientHeight;
5
- if (!on || !hasVerticalScrollbar) return;
6
- const originalStyle = window.getComputedStyle(document.body).overflow;
7
- const originalPaddingStyle = window.getComputedStyle(
8
- document.body
9
- ).paddingRight;
10
- document.body.style.overflow = "hidden";
11
- document.body.style.paddingRight = `${paddingRight}px`;
12
- return () => {
13
- document.body.style.overflow = originalStyle;
14
- document.body.style.paddingRight = originalPaddingStyle;
15
- };
16
- }, [on, paddingRight]);
17
- }
18
- export {
19
- useLockBodyScroll
20
- };
@@ -1,18 +0,0 @@
1
- export type TUserTimer = ReturnType<typeof useTimer>;
2
- export type TUseTimerProps = {
3
- expiryTimestamp?: number;
4
- onExpire?: VoidFunction;
5
- autoStart?: boolean;
6
- };
7
- export declare function useTimer({ expiryTimestamp: expiry, onExpire, autoStart }: TUseTimerProps): {
8
- start: () => void;
9
- pause: () => void;
10
- resume: () => void;
11
- restart: (newExpiryTimestamp: number, newAutoStart?: boolean) => void;
12
- isRunning: boolean;
13
- totalSeconds: number;
14
- days: number;
15
- hours: number;
16
- minutes: number;
17
- seconds: number;
18
- };
@@ -1,83 +0,0 @@
1
- import { useState, useCallback } from "react";
2
- import { Time, Validate } from "./utils.js";
3
- import { useInterval } from "../useInterval/useInterval.js";
4
- const DEFAULT_DELAY = 1e3;
5
- function getDelayFromExpiryTimestamp(expiryTimestamp) {
6
- if (!Validate.expiryTimestamp(expiryTimestamp)) {
7
- return null;
8
- }
9
- const seconds = Time.getSecondsFromExpiry(expiryTimestamp);
10
- const extraMilliSeconds = Math.floor((seconds - Math.floor(seconds)) * 1e3);
11
- return extraMilliSeconds > 0 ? extraMilliSeconds : DEFAULT_DELAY;
12
- }
13
- function useTimer({
14
- expiryTimestamp: expiry,
15
- onExpire,
16
- autoStart = false
17
- }) {
18
- const [expiryTimestamp, setExpiryTimestamp] = useState(expiry);
19
- const [seconds, setSeconds] = useState(
20
- Time.getSecondsFromExpiry(expiry ?? 0)
21
- );
22
- const [isRunning, setIsRunning] = useState(autoStart);
23
- const [didStart, setDidStart] = useState(autoStart);
24
- const [delay, setDelay] = useState(getDelayFromExpiryTimestamp(expiry ?? 0));
25
- const handleExpire = useCallback(() => {
26
- Validate.onExpire(onExpire) && (onExpire == null ? void 0 : onExpire());
27
- setIsRunning(false);
28
- setDelay(null);
29
- }, [onExpire]);
30
- const pause = useCallback(() => {
31
- setIsRunning(false);
32
- }, []);
33
- const restart = useCallback(
34
- (newExpiryTimestamp, newAutoStart = true) => {
35
- setDelay(getDelayFromExpiryTimestamp(newExpiryTimestamp));
36
- setDidStart(newAutoStart);
37
- setIsRunning(newAutoStart);
38
- setExpiryTimestamp(newExpiryTimestamp);
39
- setSeconds(Time.getSecondsFromExpiry(newExpiryTimestamp));
40
- },
41
- []
42
- );
43
- const resume = useCallback(() => {
44
- const time = /* @__PURE__ */ new Date();
45
- time.setMilliseconds(time.getMilliseconds() + seconds * 1e3);
46
- restart(time.getTime(), true);
47
- }, [seconds, restart]);
48
- const start = useCallback(() => {
49
- if (didStart) {
50
- setSeconds(Time.getSecondsFromExpiry(expiryTimestamp ?? 0, false));
51
- setIsRunning(true);
52
- } else {
53
- resume();
54
- }
55
- }, [expiryTimestamp, didStart, resume]);
56
- useInterval(
57
- () => {
58
- if (delay !== DEFAULT_DELAY) {
59
- setDelay(DEFAULT_DELAY);
60
- }
61
- const secondsValue = Time.getSecondsFromExpiry(
62
- expiryTimestamp ?? 0,
63
- false
64
- );
65
- setSeconds(secondsValue);
66
- if (secondsValue <= 0) {
67
- handleExpire();
68
- }
69
- },
70
- isRunning ? delay : null
71
- );
72
- return {
73
- ...Time.getTimeFromSeconds(seconds),
74
- start,
75
- pause,
76
- resume,
77
- restart,
78
- isRunning
79
- };
80
- }
81
- export {
82
- useTimer
83
- };
@@ -1,18 +0,0 @@
1
- export type TUserTimer = ReturnType<typeof useTimer>;
2
- export type TUseTimerProps = {
3
- expiryTimestamp?: number;
4
- onExpire?: VoidFunction;
5
- autoStart?: boolean;
6
- };
7
- export declare function useTimer({ expiryTimestamp: expiry, onExpire, autoStart }: TUseTimerProps): {
8
- start: () => void;
9
- pause: () => void;
10
- resume: () => void;
11
- restart: (newExpiryTimestamp: number, newAutoStart?: boolean) => void;
12
- isRunning: boolean;
13
- totalSeconds: number;
14
- days: number;
15
- hours: number;
16
- minutes: number;
17
- seconds: number;
18
- };
@@ -1,87 +0,0 @@
1
- import { useState, useCallback } from "react";
2
- import { Time, Validate, SECONDS_IN_MILLISECONDS } from "./utils.js";
3
- import { useInterval } from "../useInterval/useInterval.js";
4
- const DEFAULT_DELAY = 1e3;
5
- function getDelayFromExpiryTimestamp(expiryTimestamp) {
6
- if (!Validate.expiryTimestamp(expiryTimestamp)) {
7
- return null;
8
- }
9
- const seconds = Time.getSecondsFromExpiry(expiryTimestamp);
10
- const extraMilliSeconds = Math.floor(
11
- (seconds - Math.floor(seconds)) * SECONDS_IN_MILLISECONDS
12
- );
13
- return extraMilliSeconds > 0 ? extraMilliSeconds : DEFAULT_DELAY;
14
- }
15
- function useTimer({
16
- expiryTimestamp: expiry,
17
- onExpire,
18
- autoStart = true
19
- }) {
20
- const [expiryTimestamp, setExpiryTimestamp] = useState(expiry);
21
- const [seconds, setSeconds] = useState(
22
- Time.getSecondsFromExpiry(expiry ?? 0)
23
- );
24
- const [isRunning, setIsRunning] = useState(autoStart);
25
- const [didStart, setDidStart] = useState(autoStart);
26
- const [delay, setDelay] = useState(getDelayFromExpiryTimestamp(expiry ?? 0));
27
- const handleExpire = useCallback(() => {
28
- Validate.onExpire(onExpire) && (onExpire == null ? void 0 : onExpire());
29
- setIsRunning(false);
30
- setDelay(null);
31
- }, [onExpire]);
32
- const pause = useCallback(() => {
33
- setIsRunning(false);
34
- }, []);
35
- const restart = useCallback(
36
- (newExpiryTimestamp, newAutoStart = true) => {
37
- setDelay(getDelayFromExpiryTimestamp(newExpiryTimestamp));
38
- setDidStart(newAutoStart);
39
- setIsRunning(newAutoStart);
40
- setExpiryTimestamp(newExpiryTimestamp);
41
- setSeconds(Time.getSecondsFromExpiry(newExpiryTimestamp));
42
- },
43
- []
44
- );
45
- const resume = useCallback(() => {
46
- const time = /* @__PURE__ */ new Date();
47
- time.setMilliseconds(
48
- time.getMilliseconds() + seconds * SECONDS_IN_MILLISECONDS
49
- );
50
- restart(time.getTime(), true);
51
- }, [seconds, restart]);
52
- const start = useCallback(() => {
53
- if (didStart) {
54
- setSeconds(Time.getSecondsFromExpiry(expiryTimestamp ?? 0, false));
55
- setIsRunning(true);
56
- } else {
57
- resume();
58
- }
59
- }, [expiryTimestamp, didStart, resume]);
60
- useInterval(
61
- () => {
62
- if (delay !== DEFAULT_DELAY) {
63
- setDelay(DEFAULT_DELAY);
64
- }
65
- const secondsValue = Time.getSecondsFromExpiry(
66
- expiryTimestamp ?? 0,
67
- false
68
- );
69
- setSeconds(secondsValue);
70
- if (secondsValue <= 0) {
71
- handleExpire();
72
- }
73
- },
74
- isRunning ? delay : null
75
- );
76
- return {
77
- ...Time.getTimeFromSeconds(seconds),
78
- start,
79
- pause,
80
- resume,
81
- restart,
82
- isRunning
83
- };
84
- }
85
- export {
86
- useTimer
87
- };
@@ -1,24 +0,0 @@
1
- type TTimeObject = {
2
- totalSeconds: number;
3
- days: number;
4
- hours: number;
5
- minutes: number;
6
- seconds: number;
7
- };
8
- type TFormattedTime = Omit<TTimeObject, 'totalSeconds' | 'days'>;
9
- export declare const SECONDS_IN_MINUTE = 60;
10
- export declare const SECONDS_IN_HOUR: number;
11
- export declare const SECONDS_IN_DAY: number;
12
- export declare const SECONDS_IN_MILLISECONDS = 1000;
13
- export declare class Time {
14
- static getTimeFromSeconds(secs: number): TTimeObject;
15
- static getSecondsFromExpiry(expiry: number, shouldRound?: boolean): number;
16
- static getSecondsFromPrevTime(prevTime: number, shouldRound: boolean): number;
17
- static getSecondsFromTimeNow(): number;
18
- static getFormattedTimeFromSeconds(totalSeconds: number): TFormattedTime;
19
- }
20
- export declare class Validate {
21
- static expiryTimestamp(expiryTimestamp: number): boolean;
22
- static onExpire(onExpire?: VoidFunction | null): boolean | null | undefined;
23
- }
24
- export {};
@@ -1,88 +0,0 @@
1
- const SECONDS_IN_MINUTE = 60;
2
- const SECONDS_IN_HOUR = 60 * SECONDS_IN_MINUTE;
3
- const SECONDS_IN_DAY = SECONDS_IN_HOUR * 24;
4
- const SECONDS_IN_MILLISECONDS = 1e3;
5
- class Time {
6
- static getTimeFromSeconds(secs) {
7
- const totalSeconds = Math.ceil(secs);
8
- const days = Math.floor(totalSeconds / SECONDS_IN_DAY);
9
- const hours = Math.floor(totalSeconds % SECONDS_IN_DAY / SECONDS_IN_HOUR);
10
- const minutes = Math.floor(
11
- totalSeconds % SECONDS_IN_HOUR / SECONDS_IN_MINUTE
12
- );
13
- const seconds = Math.floor(totalSeconds % SECONDS_IN_MINUTE);
14
- return {
15
- totalSeconds,
16
- seconds,
17
- minutes,
18
- hours,
19
- days
20
- };
21
- }
22
- static getSecondsFromExpiry(expiry, shouldRound) {
23
- const now = (/* @__PURE__ */ new Date()).getTime();
24
- const milliSecondsDistance = expiry - now;
25
- if (milliSecondsDistance > 0) {
26
- const val = milliSecondsDistance / SECONDS_IN_MILLISECONDS;
27
- return shouldRound ? Math.round(val) : val;
28
- }
29
- return 0;
30
- }
31
- static getSecondsFromPrevTime(prevTime, shouldRound) {
32
- const now = (/* @__PURE__ */ new Date()).getTime();
33
- const milliSecondsDistance = now - prevTime;
34
- if (milliSecondsDistance > 0) {
35
- const val = milliSecondsDistance / SECONDS_IN_MILLISECONDS;
36
- return shouldRound ? Math.round(val) : val;
37
- }
38
- return 0;
39
- }
40
- static getSecondsFromTimeNow() {
41
- const now = /* @__PURE__ */ new Date();
42
- const currentTimestamp = now.getTime();
43
- const offset = now.getTimezoneOffset() * SECONDS_IN_MINUTE;
44
- return currentTimestamp / SECONDS_IN_MILLISECONDS - offset;
45
- }
46
- static getFormattedTimeFromSeconds(totalSeconds) {
47
- const {
48
- seconds: secondsValue,
49
- minutes,
50
- hours
51
- } = Time.getTimeFromSeconds(totalSeconds);
52
- return {
53
- seconds: secondsValue,
54
- minutes,
55
- hours
56
- };
57
- }
58
- }
59
- class Validate {
60
- static expiryTimestamp(expiryTimestamp) {
61
- const isValid = new Date(expiryTimestamp).getTime() > 0;
62
- if (!isValid) {
63
- console.warn(
64
- "{ useTimer } Invalid expiryTimestamp settings",
65
- expiryTimestamp
66
- );
67
- }
68
- return isValid;
69
- }
70
- static onExpire(onExpire) {
71
- const isValid = onExpire && typeof onExpire === "function";
72
- if (onExpire && !isValid) {
73
- console.warn(
74
- " { useTimer } Invalid onExpire settings function",
75
- onExpire
76
- );
77
- }
78
- return isValid;
79
- }
80
- }
81
- export {
82
- SECONDS_IN_DAY,
83
- SECONDS_IN_HOUR,
84
- SECONDS_IN_MILLISECONDS,
85
- SECONDS_IN_MINUTE,
86
- Time,
87
- Validate
88
- };
@@ -1,4 +0,0 @@
1
- import { SVGProps } from 'react';
2
-
3
- declare const Close12px: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
4
- export default Close12px;
@@ -1,18 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- const Close12px = (props) => {
3
- return /* @__PURE__ */ jsx(
4
- "svg",
5
- {
6
- width: "12",
7
- height: "12",
8
- viewBox: "0 0 12 12",
9
- fill: "none",
10
- xmlns: "http://www.w3.org/2000/svg",
11
- ...props,
12
- children: /* @__PURE__ */ jsx("path", { d: "M3 9L8.99991 3M9 9L3 3", stroke: "#333333", "stroke-width": "1.5" })
13
- }
14
- );
15
- };
16
- export {
17
- Close12px as default
18
- };