meticulous-ui 2.2.8 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +15 -14
  2. package/components/Dropdown/Dropdown.js +83 -82
  3. package/components/Dropdown/styles.js +4 -4
  4. package/components/Glass/Glass.js +6 -0
  5. package/components/Glass/index.js +4 -0
  6. package/components/Glass/styles.js +73 -0
  7. package/components/Icons/Add/index.js +4 -0
  8. package/components/Icons/Link/index.js +4 -0
  9. package/components/Icons/MediaPauseFilled/index.js +4 -0
  10. package/components/Icons/MediaPlayFilled/index.js +4 -0
  11. package/components/Icons/MediaStopFilled/index.js +4 -0
  12. package/components/Input/Checkbox/Checkbox.js +39 -0
  13. package/components/Input/Checkbox/helpers.js +28 -0
  14. package/components/Input/Checkbox/index.js +4 -0
  15. package/components/Input/Checkbox/styles.js +30 -0
  16. package/components/Input/FileUploader/FileUploader.js +76 -0
  17. package/components/Input/FileUploader/constants.js +29 -0
  18. package/components/Input/FileUploader/index.js +4 -0
  19. package/components/Input/FileUploader/styles.js +83 -0
  20. package/components/Input/Radio/Radio.js +26 -0
  21. package/components/Input/Radio/styles.js +45 -0
  22. package/components/Input/RadioGroup/RadioGroup.js +27 -0
  23. package/components/Input/RadioGroup/index.js +4 -0
  24. package/components/Input/RadioGroup/styles.js +18 -0
  25. package/components/Input/Textarea/styles.js +4 -4
  26. package/components/MenuItem/styles.js +4 -4
  27. package/components/OtpInput/OtpInput.js +30 -29
  28. package/components/Pagination/styles.js +6 -6
  29. package/components/Spinner/Spinner.js +11 -10
  30. package/components/Timer/Timer.js +64 -0
  31. package/components/Timer/components/TimerRing/TimerRing.js +42 -0
  32. package/components/Timer/components/TimerRing/styles.js +7 -0
  33. package/components/Timer/constants.js +25 -0
  34. package/components/Timer/index.js +4 -0
  35. package/components/Timer/styles.js +164 -0
  36. package/components/Typography/Headings/H1.js +9 -0
  37. package/components/Typography/Headings/H2.js +9 -0
  38. package/components/Typography/Headings/H3.js +9 -0
  39. package/components/Typography/Headings/H4.js +9 -0
  40. package/components/Typography/Headings/H5.js +9 -0
  41. package/components/Typography/Headings/H6.js +9 -0
  42. package/components/VideoPlayer/VideoPlayer.js +34 -0
  43. package/components/VideoPlayer/components/Volumebar/Volumebar.js +13 -0
  44. package/components/VideoPlayer/components/Volumebar/styles.js +38 -0
  45. package/components/VideoPlayer/index.js +4 -0
  46. package/components/VideoPlayer/styles.js +34 -0
  47. package/components/VideoPlayer/useSpacebarToggle.js +37 -0
  48. package/components/VideoPlayer/useVolumeOverlay.js +10 -0
  49. package/index.js +40 -16
  50. package/package.json +12 -6
@@ -0,0 +1,4 @@
1
+ import o from "./FileUploader.js";
2
+ export {
3
+ o as default
4
+ };
@@ -0,0 +1,83 @@
1
+ import e, { css as i } from "../../../node_modules/styled-components/dist/styled-components.browser.esm.js";
2
+ import n from "../../Typography/P/P.js";
3
+ import a from "../../../colors/grey.js";
4
+ const p = e.button`
5
+ display: flex;
6
+ align-items: center;
7
+ gap: 0.8rem;
8
+ padding: 0 0.8rem;
9
+ border-radius: 0.6rem;
10
+ border: none;
11
+ outline-offset: 2px;
12
+ background-color: ${({ $inner: o }) => o};
13
+ transition: background-color 0.2s ease;
14
+ height: ${({ $height: o }) => `${o}rem`};
15
+ width: ${({ $width: o }) => `${o}rem`};
16
+ background-color: ${({ $selectedColor: o, disabled: r }) => r ? a.m500 : o};
17
+ cursor: ${({ disabled: o, $isLoading: r }) => o ? "not-allowed" : r ? "auto" : "pointer"};
18
+
19
+ ${({ $isLoading: o }) => o && i`
20
+ pointer-events: none;
21
+ `};
22
+
23
+ ${({ disabled: o, $isLoading: r }) => !(o || r) && i`
24
+ &:hover {
25
+ background-color: ${({ $hoverColor: t }) => t};
26
+ }
27
+
28
+ &:active {
29
+ background-color: ${({ $activeColor: t }) => t};
30
+ }
31
+ `};
32
+ `, c = e.div`
33
+ height: ${({ $height: o }) => o}rem;
34
+ width: ${({ $width: o }) => o}rem;
35
+ display: inline-block;
36
+ position: relative;
37
+ border-radius: 0.8rem;
38
+
39
+ ${({ disabled: o, $isLoading: r }) => !(o || r) && i`
40
+ box-shadow: 0 0.4rem 1.5rem rgba(0, 0, 0, 0.2);
41
+ transition:
42
+ transform 0.2s,
43
+ box-shadow 0.2s;
44
+
45
+ &:hover {
46
+ box-shadow: 0 0.6rem 2rem rgba(0, 0, 0, 0.3);
47
+ transform: translateY(-2px);
48
+ }
49
+ `};
50
+ `, m = e(n)`
51
+ color: ${({ color: o }) => o};
52
+ font-size: ${({ size: o }) => o};
53
+ margin: 0;
54
+ white-space: nowrap;
55
+ overflow: hidden;
56
+ text-overflow: ellipsis;
57
+ width: calc(
58
+ 100%
59
+ ${({ $prefixIcon: o, $iconSize: r }) => o ? ` - ${r}px - 0.8rem` : ""}${({
60
+ $suffixIcon: o,
61
+ $iconSize: r
62
+ }) => o ? ` - ${r}px - 0.8rem` : ""}
63
+ );
64
+ `;
65
+ e.div`
66
+ width: 100%;
67
+ display: flex;
68
+ flex-direction: column;
69
+ align-items: center;
70
+ `;
71
+ const $ = e.input`
72
+ position: absolute;
73
+ width: 0;
74
+ height: 0;
75
+ opacity: 0;
76
+ pointer-events: none;
77
+ `;
78
+ export {
79
+ $ as HiddenInput,
80
+ m as PWrapper,
81
+ c as UploadBtnContainer,
82
+ p as Wrapper
83
+ };
@@ -0,0 +1,26 @@
1
+ import { j as r } from "../../../_virtual/jsx-runtime.js";
2
+ import s from "../../../node_modules/lodash-es/get.js";
3
+ import j from "../../Typography/P/P.js";
4
+ import i from "../../../colors/blue.js";
5
+ import { Wrapper as l, HiddenInput as f, CircleBorder as u, Circle as $ } from "./styles.js";
6
+ const b = ({ label: m, value: o, name: d, color: t, textColor: a, isSelected: e, disabled: n, onChange: c }) => {
7
+ const p = s(t, "m500", i.m500), h = s(t, "m800", i.m800), x = () => c(o);
8
+ return /* @__PURE__ */ r.jsxs(l, { $disabled: n, children: [
9
+ /* @__PURE__ */ r.jsx(
10
+ f,
11
+ {
12
+ type: "radio",
13
+ name: d,
14
+ value: o,
15
+ checked: e,
16
+ disabled: n,
17
+ onChange: x
18
+ }
19
+ ),
20
+ /* @__PURE__ */ r.jsx(u, { $isSelected: e, $shade: h, children: /* @__PURE__ */ r.jsx($, { $isSelected: e, $shade: p }) }),
21
+ /* @__PURE__ */ r.jsx(j, { color: a, size: "1.2rem", children: m })
22
+ ] });
23
+ };
24
+ export {
25
+ b as default
26
+ };
@@ -0,0 +1,45 @@
1
+ import t, { css as o } from "../../../node_modules/styled-components/dist/styled-components.browser.esm.js";
2
+ import i from "../../../colors/grey.js";
3
+ const a = t.div`
4
+ position: absolute;
5
+ width: 0.7rem;
6
+ height: 0.7rem;
7
+ border-radius: 50%;
8
+ left: 50%;
9
+ top: 50%;
10
+ transform: translate(-50%, -50%);
11
+ background-color: ${({ $isSelected: r, $shade: e }) => r ? e : "transparent"};
12
+ transition: background-color 0.35s ease;
13
+ `, p = t.div`
14
+ width: 1.1rem;
15
+ height: 1.1rem;
16
+ border: 1px solid ${({ $isSelected: r, $shade: e }) => r ? e : i.m900};
17
+ border-radius: 50%;
18
+ position: relative;
19
+ `, d = t.input`
20
+ position: absolute;
21
+ opacity: 0;
22
+ width: 0;
23
+ height: 0;
24
+ margin: 0;
25
+ pointer-events: none;
26
+ `, c = t.label`
27
+ display: flex;
28
+ align-items: center;
29
+ gap: 0.8rem;
30
+ width: max-content;
31
+
32
+ ${({ $disabled: r }) => r ? o`
33
+ pointer-events: none;
34
+ opacity: 0.4;
35
+ cursor: not-allowed;
36
+ ` : o`
37
+ cursor: pointer;
38
+ `}
39
+ `;
40
+ export {
41
+ a as Circle,
42
+ p as CircleBorder,
43
+ d as HiddenInput,
44
+ c as Wrapper
45
+ };
@@ -0,0 +1,27 @@
1
+ import { j as i } from "../../../_virtual/jsx-runtime.js";
2
+ import { createElement as f } from "react";
3
+ import { getColor as u } from "../Checkbox/helpers.js";
4
+ import x from "../Radio/Radio.js";
5
+ import { Wrapper as h } from "./styles.js";
6
+ const C = ({ options: n, color: s = "blue", value: e, onChange: m, isHorizonatal: a, label: o, name: c }) => {
7
+ const d = u(s), l = (r) => {
8
+ r !== e && m(r);
9
+ }, t = (r) => /* @__PURE__ */ f(
10
+ x,
11
+ {
12
+ ...r,
13
+ key: r == null ? void 0 : r.value,
14
+ name: c,
15
+ color: d,
16
+ isSelected: e === (r == null ? void 0 : r.value),
17
+ onChange: l
18
+ }
19
+ );
20
+ return /* @__PURE__ */ i.jsxs(h, { $isHorizonatal: a, children: [
21
+ o && /* @__PURE__ */ i.jsx("legend", { children: o }),
22
+ n.map(t)
23
+ ] });
24
+ };
25
+ export {
26
+ C as default
27
+ };
@@ -0,0 +1,4 @@
1
+ import r from "./RadioGroup.js";
2
+ export {
3
+ r as default
4
+ };
@@ -0,0 +1,18 @@
1
+ import t, { css as r } from "../../../node_modules/styled-components/dist/styled-components.browser.esm.js";
2
+ const o = t.fieldset`
3
+ border: none;
4
+ padding: 0;
5
+ margin: 0;
6
+ display: flex;
7
+ flex-direction: ${({ $isHorizonatal: e }) => e ? "row" : "column"};
8
+
9
+ ${({ $isHorizonatal: e }) => e ? r`
10
+ flex-wrap: wrap;
11
+ justify-content: space-between;
12
+ ` : r`
13
+ gap: 1.2rem;
14
+ `};
15
+ `;
16
+ export {
17
+ o as Wrapper
18
+ };
@@ -54,7 +54,7 @@ const b = o.textarea`
54
54
  `, h = o.div`
55
55
  position: relative;
56
56
  width: fit-content;
57
- `, u = o.div`
57
+ `, g = o.div`
58
58
  position: absolute;
59
59
  top: -0.4rem;
60
60
  left: 0.5rem;
@@ -83,13 +83,13 @@ const b = o.textarea`
83
83
  left: 0.5rem;
84
84
  font-size: 1.4rem;
85
85
  `}
86
- `, g = o.div`
86
+ `, u = o.div`
87
87
  overflow: hidden;
88
88
  `;
89
89
  export {
90
90
  w as HelperText,
91
- u as Label,
92
- g as Parent,
91
+ g as Label,
92
+ u as Parent,
93
93
  b as TextareaBox,
94
94
  h as Wrapper
95
95
  };
@@ -1,6 +1,6 @@
1
1
  import t from "../../node_modules/styled-components/dist/styled-components.browser.esm.js";
2
2
  import n from "../Typography/P/P.js";
3
- const d = t.div`
3
+ const m = t.div`
4
4
  width: ${({ $width: o }) => o};
5
5
  background-color: ${({
6
6
  $isSelected: o,
@@ -18,13 +18,13 @@ const d = t.div`
18
18
  &:active {
19
19
  background-color: ${({ $isSelected: o, $activeColor: r, $selectedColor: e }) => o ? e : r};
20
20
  }
21
- `, m = t(n)`
21
+ `, d = t(n)`
22
22
  overflow: hidden;
23
23
  white-space: nowrap;
24
24
  text-overflow: ellipsis;
25
25
  max-width: calc(${({ $width: o }) => o} - 2rem);
26
26
  `;
27
27
  export {
28
- m as PWrapper,
29
- d as Wrapper
28
+ d as PWrapper,
29
+ m as Wrapper
30
30
  };
@@ -1,42 +1,43 @@
1
- import { j as D } from "../../_virtual/jsx-runtime.js";
2
- import { useState as O, useRef as h, useEffect as w } from "react";
3
- import { OTPWrapper as x } from "./styles.js";
4
- import { renderNums as E } from "./helpers.js";
5
- const A = ({ length: r = 6, value: o = "", onChange: i, onComplete: n }) => {
6
- const [p, a] = O(Array(r).fill("")), c = h([]);
7
- w(() => {
8
- if (!o) return;
9
- const s = String(o).replace(/\D/g, "").slice(0, r), t = s.split("");
1
+ import { j as x } from "../../_virtual/jsx-runtime.js";
2
+ import { useState as E, useRef as P, useEffect as R } from "react";
3
+ import { OTPWrapper as k } from "./styles.js";
4
+ import { renderNums as l } from "./helpers.js";
5
+ const b = ({ length: r = 6, value: a = "", onChange: p, onComplete: c }) => {
6
+ const [u, e] = E(Array(r).fill("")), i = P([]);
7
+ R(() => {
8
+ if (!a) return;
9
+ const s = String(a).replace(/\D/g, "").slice(0, r), t = s.split("");
10
10
  for (; t.length < r; ) t.push("");
11
- a(t), s.length === r && n?.(s);
12
- }, [o, r, n]);
13
- const f = (s) => {
14
- a(s);
11
+ e(t), s.length === r && (c == null || c(s));
12
+ }, [a, r, c]);
13
+ const n = (s) => {
14
+ e(s);
15
15
  const t = s.join("");
16
- i?.(t), t.length === r && n?.(t);
17
- }, u = (s, t) => {
16
+ p == null || p(t), t.length === r && (c == null || c(t));
17
+ }, d = (s, t) => {
18
18
  s = s.replace(/\D/g, "");
19
- const e = [...p];
20
- e[t] = s, f(e), s && t < r - 1 && c.current[t + 1].focus();
21
- }, l = (s, t) => {
22
- s.key === "Backspace" && !p[t] && t > 0 && c.current[t - 1].focus();
23
- }, m = (s) => {
19
+ const f = [...u];
20
+ f[t] = s, n(f), s && t < r - 1 && i.current[t + 1].focus();
21
+ }, y = (s, t) => {
22
+ s.key === "Backspace" && !u[t] && t > 0 && i.current[t - 1].focus();
23
+ }, j = (s) => {
24
+ var o;
24
25
  const t = s.clipboardData.getData("text").replace(/\D/g, "");
25
26
  if (!t) return;
26
- const e = Array(r).fill("");
27
- t.slice(0, r).split("").forEach((y, j) => e[j] = y), f(e);
28
- const d = Math.min(t.length - 1, r - 1);
29
- c.current[d]?.focus();
27
+ const f = Array(r).fill("");
28
+ t.slice(0, r).split("").forEach((O, w) => f[w] = O), n(f);
29
+ const D = Math.min(t.length - 1, r - 1);
30
+ (o = i.current[D]) == null || o.focus();
30
31
  };
31
- return /* @__PURE__ */ D.jsx(
32
- x,
32
+ return /* @__PURE__ */ x.jsx(
33
+ k,
33
34
  {
34
35
  style: { display: "flex", gap: "10px", justifyContent: "center" },
35
- onPaste: m,
36
- children: p.map(E({ inputsRef: c, handleChange: u, handleKeyDown: l }))
36
+ onPaste: j,
37
+ children: u.map(l({ inputsRef: i, handleChange: d, handleKeyDown: y }))
37
38
  }
38
39
  );
39
40
  };
40
41
  export {
41
- A as default
42
+ b as default
42
43
  };
@@ -1,13 +1,13 @@
1
1
  import o, { css as i } from "../../node_modules/styled-components/dist/styled-components.browser.esm.js";
2
- import a from "../Icons/ChevronLeft/ChevronLeft.js";
3
- import f from "../Icons/ChevronRight/ChevronRight.js";
2
+ import f from "../Icons/ChevronLeft/ChevronLeft.js";
3
+ import a from "../Icons/ChevronRight/ChevronRight.js";
4
4
  import c from "../../colors/grey.js";
5
5
  import n from "../../colors/white.js";
6
- import d from "../../colors/black.js";
6
+ import u from "../../colors/black.js";
7
7
  import { SELECTED_BG as m, NOT_SELECTED_BG as l, ACTIVE_NOT_SELECTED_BG as s } from "./constants.js";
8
8
  const t = (r) => ({ $shades: e }) => {
9
9
  if (["#FFFFFF"].includes(e))
10
- return d.m900;
10
+ return u.m900;
11
11
  if (r === m)
12
12
  return e.m500;
13
13
  if (r === l)
@@ -55,9 +55,9 @@ const t = (r) => ({ $shades: e }) => {
55
55
  `}
56
56
  `, y = o.p`
57
57
  color: ${c.m500};
58
- `, k = o(a)`
58
+ `, k = o(f)`
59
59
  cursor: pointer;
60
- `, w = o(f)`
60
+ `, w = o(a)`
61
61
  cursor: pointer;
62
62
  `, x = o.div`
63
63
  min-width: ${({ size: r }) => r};
@@ -1,9 +1,9 @@
1
- import { j as t } from "../../_virtual/jsx-runtime.js";
2
- import n from "../../node_modules/lodash-es/get.js";
3
- import { SpinnerWrapper as p } from "./styles.js";
4
- import i from "../../colors/index.js";
5
- import l from "../../colors/green.js";
6
- const s = {
1
+ import { j as n } from "../../_virtual/jsx-runtime.js";
2
+ import p from "../../node_modules/lodash-es/get.js";
3
+ import { SpinnerWrapper as i } from "./styles.js";
4
+ import l from "../../colors/index.js";
5
+ import s from "../../colors/green.js";
6
+ const $ = {
7
7
  small: {
8
8
  $border: "0.25rem",
9
9
  $length: "1rem"
@@ -16,10 +16,11 @@ const s = {
16
16
  $border: "0.75rem",
17
17
  $length: "3rem"
18
18
  }
19
- }, c = ({ color: r = "green", size: e = "medium" }) => {
20
- const { $border: m, $length: o } = s[e];
21
- return /* @__PURE__ */ t.jsx(p, { $color: n(i, r, l)?.m500, $border: m, $length: o });
19
+ }, u = ({ color: e = "green", size: m = "medium" }) => {
20
+ var r;
21
+ const { $border: o, $length: t } = $[m];
22
+ return /* @__PURE__ */ n.jsx(i, { $color: (r = p(l, e, s)) == null ? void 0 : r.m500, $border: o, $length: t });
22
23
  };
23
24
  export {
24
- c as default
25
+ u as default
25
26
  };
@@ -0,0 +1,64 @@
1
+ import { j as e } from "../../_virtual/jsx-runtime.js";
2
+ import { useState as x, useEffect as B } from "react";
3
+ import t from "../../node_modules/lodash-es/noop.js";
4
+ import I from "../Glass/Glass.js";
5
+ import b from "./components/TimerRing/TimerRing.js";
6
+ import o from "../../colors/white.js";
7
+ import { Wrapper as E, Dimmer as L, Time as u, TimeTxt as h, HourHand as N, MinuteHand as G, SecondHand as K, AllDots as U, Dots as _, AlarmRing as q, BulletRing as J, Bullet as O, LeftActions as Q, ActionBtn as n, MediaStopFilledWrapper as V, MediaPauseFilledWrapper as X, MediaPlayFilledWrapper as Y, RightActions as Z, AddWrapper as ee } from "./styles.js";
8
+ const ae = ({
9
+ color: f = "green",
10
+ showTime: g = !0,
11
+ showTimeWithSec: T = !0,
12
+ timeZone: A = "Asia/Kolkata",
13
+ isDigital: y = !0,
14
+ timerSeconds: $ = 0,
15
+ onTimerAdd: P = t,
16
+ onTimerComplete: R = t,
17
+ onTimerRemove: S = t,
18
+ onTimerPause: W = t,
19
+ onTimerPlay: k = t
20
+ }) => {
21
+ const [D, F] = x(/* @__PURE__ */ new Date()), [r, l] = x(0), [c, a] = x(!1), v = () => {
22
+ l($), a(!1), P();
23
+ }, w = () => {
24
+ l(0), S();
25
+ }, z = () => {
26
+ a(!0), W();
27
+ }, C = () => {
28
+ a(!1), k();
29
+ };
30
+ B(() => {
31
+ const p = setInterval(() => {
32
+ F(/* @__PURE__ */ new Date()), !c && l((s) => (s - 1 === 0 && R(), s - 1));
33
+ }, 1e3);
34
+ return () => clearInterval(p);
35
+ }, [c]);
36
+ const m = D.toLocaleString("en-Us", { hour12: !0, timeZone: A }).split(", ")[1], j = m.split(" ")[0], H = m.split(" ")[1], M = m.split(":").slice(0, 2).join(":"), i = j.split(":"), d = !(Number.isInteger(r) && r > 0);
37
+ return /* @__PURE__ */ e.jsxs(E, { $color: f, children: [
38
+ /* @__PURE__ */ e.jsx(I, { borderRadius: "1.2rem" }),
39
+ g && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
40
+ /* @__PURE__ */ e.jsx(L, {}),
41
+ y ? /* @__PURE__ */ e.jsxs(u, { children: [
42
+ /* @__PURE__ */ e.jsx(h, { children: T ? j : M }),
43
+ /* @__PURE__ */ e.jsx(h, { children: H })
44
+ ] }) : /* @__PURE__ */ e.jsxs(u, { children: [
45
+ /* @__PURE__ */ e.jsx(N, { style: { rotate: `${i[0] * 30 + i[1] * 0.5}deg` } }),
46
+ /* @__PURE__ */ e.jsx(G, { style: { rotate: `${i[1] * 6}deg` } }),
47
+ /* @__PURE__ */ e.jsx(K, { style: { rotate: `${i[2] * 6}deg` } })
48
+ ] })
49
+ ] }),
50
+ /* @__PURE__ */ e.jsx(U, { children: [...Array(60)].map((p, s) => /* @__PURE__ */ e.jsx(_, { style: { rotate: `${s * 6}deg` } }, s)) }),
51
+ !d && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
52
+ /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx(b, { progress: r >= 60 ? 1 : r % 60 / 60 }) }),
53
+ /* @__PURE__ */ e.jsx(J, { $angle: r % 60 * 6, children: /* @__PURE__ */ e.jsx(O, {}) })
54
+ ] }),
55
+ /* @__PURE__ */ e.jsxs(Q, { $noActions: d, children: [
56
+ /* @__PURE__ */ e.jsx(n, { onClick: w, children: /* @__PURE__ */ e.jsx(V, { color: o, size: 14 }) }),
57
+ d || !c ? /* @__PURE__ */ e.jsx(n, { onClick: z, children: /* @__PURE__ */ e.jsx(X, { color: o, size: 14 }) }) : /* @__PURE__ */ e.jsx(n, { onClick: C, children: /* @__PURE__ */ e.jsx(Y, { color: o, size: 14 }) })
58
+ ] }),
59
+ /* @__PURE__ */ e.jsx(Z, { children: /* @__PURE__ */ e.jsx(n, { title: "Add timer in seconds", onClick: v, children: /* @__PURE__ */ e.jsx(ee, { color: o, size: 20 }) }) })
60
+ ] });
61
+ };
62
+ export {
63
+ ae as default
64
+ };
@@ -0,0 +1,42 @@
1
+ import { j as r } from "../../../../_virtual/jsx-runtime.js";
2
+ import { useRef as c, useEffect as f } from "react";
3
+ import n from "../../../../colors/white.js";
4
+ import { SVG as a } from "./styles.js";
5
+ const k = ({ progress: s }) => {
6
+ const o = c(null), e = 105, t = 2 * Math.PI * e;
7
+ return f(() => {
8
+ const i = t * (1 - s);
9
+ o.current.style.strokeDashoffset = i;
10
+ }, [s]), /* @__PURE__ */ r.jsxs(a, { width: "220", height: "220", children: [
11
+ /* @__PURE__ */ r.jsx(
12
+ "circle",
13
+ {
14
+ cx: "110",
15
+ cy: "110",
16
+ r: e,
17
+ stroke: "rgba(255,255,255,.2)",
18
+ strokeWidth: "4",
19
+ fill: "none"
20
+ }
21
+ ),
22
+ /* @__PURE__ */ r.jsx(
23
+ "circle",
24
+ {
25
+ ref: o,
26
+ cx: "110",
27
+ cy: "110",
28
+ r: e,
29
+ stroke: n,
30
+ strokeWidth: "4",
31
+ fill: "none",
32
+ strokeLinecap: "round",
33
+ strokeDasharray: t,
34
+ strokeDashoffset: t,
35
+ style: { transition: "stroke-dashoffset 0.2s linear" }
36
+ }
37
+ )
38
+ ] });
39
+ };
40
+ export {
41
+ k as default
42
+ };
@@ -0,0 +1,7 @@
1
+ import t from "../../../../node_modules/styled-components/dist/styled-components.browser.esm.js";
2
+ const r = t.svg`
3
+ rotate: -90deg;
4
+ `;
5
+ export {
6
+ r as SVG
7
+ };
@@ -0,0 +1,25 @@
1
+ import o from "../../colors/green.js";
2
+ import r from "../../colors/red.js";
3
+ import m from "../../colors/blue.js";
4
+ import e from "../../colors/brown.js";
5
+ import i from "../../colors/grey.js";
6
+ import t from "../../colors/indigo.js";
7
+ import p from "../../colors/orange.js";
8
+ import f from "../../colors/teal.js";
9
+ import l from "../../colors/violet.js";
10
+ import n from "../../colors/yellow.js";
11
+ const c = {
12
+ green: o.m500,
13
+ red: r.m500,
14
+ blue: m.m500,
15
+ brown: e.m500,
16
+ grey: i.m500,
17
+ indigo: t.m500,
18
+ orange: p.m500,
19
+ teal: f.m500,
20
+ violet: l.m500,
21
+ yellow: n.m500
22
+ };
23
+ export {
24
+ c as COLOR_MAPPING
25
+ };
@@ -0,0 +1,4 @@
1
+ import e from "./Timer.js";
2
+ export {
3
+ e as default
4
+ };