asma-ui-core 3.98.2 → 3.100.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.
@@ -1,8 +1,8 @@
1
- import { resolveSx as p } from "../../../helpers/sx.js";
2
- import E from "clsx";
3
- import { useEffect as L, useRef as u } from "react";
4
- import { jsx as m, jsxs as D } from "react/jsx-runtime";
5
- var b = {
1
+ import { resolveSx as v } from "../../../helpers/sx.js";
2
+ import g from "clsx";
3
+ import { useEffect as I, useRef as y } from "react";
4
+ import { jsx as h, jsxs as T } from "react/jsx-runtime";
5
+ var _ = {
6
6
  primary: {
7
7
  backgroundColor: "var(--colors-badge-background)",
8
8
  color: "var(--colors-badge-label)"
@@ -31,41 +31,43 @@ var b = {
31
31
  backgroundColor: "var(--colors-warning-700)",
32
32
  color: "#fff"
33
33
  }
34
- }, $ = {
34
+ }, Z = {
35
35
  "top-right": "top-0 right-0 translate-x-1/2 -translate-y-1/2 origin-[100%_0%]",
36
36
  "top-left": "top-0 left-0 -translate-x-1/2 -translate-y-1/2 origin-[0%_0%]",
37
37
  "bottom-right": "bottom-0 right-0 translate-x-1/2 translate-y-1/2 origin-[100%_100%]",
38
38
  "bottom-left": "bottom-0 left-0 -translate-x-1/2 translate-y-1/2 origin-[0%_100%]"
39
- }, x = "& .MuiBadge-badge", J = ({ color: l = "primary", dataTest: v, size: s = "medium", badgeContent: r, max: z, showZero: I, variant: y = "standard", statusMessage: n, invisible: g, anchorOrigin: c, children: h, className: _, sx: t, overlap: T, classes: Z, slots: G, slotProps: i, component: H, tabIndex: W, ...S }) => {
40
- const a = u(null), e = typeof r == "number" ? r : void 0, d = u(e);
41
- L(() => {
42
- e !== d.current && (d.current = e, a.current && (a.current.textContent = n ?? ""));
43
- }, [e, n]);
44
- const f = t && typeof t == "object" && !Array.isArray(t) ? t : {}, w = p(f[x]), k = p(Object.fromEntries(Object.entries(f).filter(([B]) => B !== x))), o = y === "dot", j = !!g || !o && (r === 0 || r === void 0 || r === null), O = o ? null : typeof r == "number" && r > 99 ? "99+" : r, A = typeof r == "number" && r > 0 && r < 10, C = c?.vertical ?? "top", N = c?.horizontal ?? "right", R = l === "primary" ? {
45
- borderColor: o ? "var(--colors-badge-border-dot)" : "var(--colors-badge-border-count)",
39
+ }, w = "& .MuiBadge-badge", U = ({ color: s = "primary", dataTest: S, size: i = "medium", badgeContent: o, max: G, showZero: H, variant: k = "standard", purpose: j = "notification", statusMessage: c, invisible: A, anchorOrigin: d, children: f, className: u, sx: e, overlap: W, classes: X, slots: Y, slotProps: m, component: q, tabIndex: F, ...p }) => {
40
+ const l = y(null), a = typeof o == "number" ? o : void 0, b = y(a);
41
+ I(() => {
42
+ a !== b.current && (b.current = a, l.current && (l.current.textContent = c ?? ""));
43
+ }, [a, c]);
44
+ const x = e && typeof e == "object" && !Array.isArray(e) ? e : {}, C = v(x[w]), O = v(Object.fromEntries(Object.entries(x).filter(([z]) => z !== w))), r = k === "dot", n = r && j !== "notification", t = r && f === void 0, R = !!A || !r && (o === 0 || o === void 0 || o === null), D = r ? null : typeof o == "number" && o > 99 ? "99+" : o, B = typeof o == "number" && o > 0 && o < 10, E = d?.vertical ?? "top", L = d?.horizontal ?? "right", N = s === "primary" && !n ? {
45
+ borderColor: r ? "var(--colors-badge-border-dot)" : "var(--colors-badge-border-count)",
46
46
  borderStyle: "solid",
47
- borderWidth: o ? "var(--border-badge-dot)" : "var(--border-badge-count)"
48
- } : {};
49
- return /* @__PURE__ */ D("span", {
50
- className: "relative inline-flex shrink-0 align-middle",
51
- "data-testid": v,
52
- style: k,
53
- ...S,
47
+ borderWidth: r ? "var(--border-badge-dot)" : "var(--border-badge-count)"
48
+ } : {}, $ = t && p["aria-label"] ? { role: "img" } : {};
49
+ return /* @__PURE__ */ T("span", {
50
+ className: t ? g("inline-flex shrink-0 align-middle", u) : "relative inline-flex shrink-0 align-middle",
51
+ "data-testid": S,
52
+ style: O,
53
+ ...$,
54
+ ...p,
54
55
  children: [
55
- h,
56
- !j && /* @__PURE__ */ m("span", {
56
+ f,
57
+ !R && /* @__PURE__ */ h("span", {
57
58
  "aria-hidden": "true",
58
- className: E("absolute z-[1] box-border flex items-center justify-center whitespace-nowrap font-roboto font-semibold", $[`${C}-${N}`], o ? "h-[12px] w-[12px] min-w-[12px] rounded-full p-0" : s === "small" ? "h-[16px] w-max min-w-[16px] rounded-[20px] px-[4px] text-[0.75rem]" : "h-[20px] min-w-[20px] rounded-[20px] px-[6px] text-sm leading-5", !o && s === "medium" && A && "w-[20px]", _, i?.badge?.className),
59
+ className: g("box-border flex items-center justify-center whitespace-nowrap font-roboto font-semibold", !t && "absolute z-[1]", !t && Z[`${E}-${L}`], n ? "h-[8px] w-[8px] min-w-[8px] rounded-full p-0" : r ? "h-[12px] w-[12px] min-w-[12px] rounded-full p-0" : i === "small" ? "h-[16px] w-max min-w-[16px] rounded-[20px] px-[4px] text-[0.75rem]" : "h-[20px] min-w-[20px] rounded-[20px] px-[6px] text-sm leading-5", !r && i === "medium" && B && "w-[20px]", !t && u, m?.badge?.className),
59
60
  style: {
60
- ...b[l] ?? b.default,
61
- ...R,
62
- ...w,
63
- ...i?.badge?.style
61
+ ..._[s] ?? _.default,
62
+ ...n ? { backgroundColor: "var(--colors-gama-500)" } : {},
63
+ ...N,
64
+ ...C,
65
+ ...m?.badge?.style
64
66
  },
65
- children: O
67
+ children: D
66
68
  }),
67
- /* @__PURE__ */ m("span", {
68
- ref: a,
69
+ /* @__PURE__ */ h("span", {
70
+ ref: l,
69
71
  "aria-atomic": "true",
70
72
  "aria-live": "polite",
71
73
  className: "sr-only",
@@ -75,5 +77,5 @@ var b = {
75
77
  });
76
78
  };
77
79
  export {
78
- J as StyledBadge
80
+ U as StyledBadge
79
81
  };
@@ -1,103 +1,110 @@
1
- import { useIsMobileView as N } from "../../hooks/useWindowWidthSize.hook.js";
2
- import { StyledDrawer as O } from "../../../components/navigation/drawer/StyledDrawer.js";
3
- import { useBackNavigationClose as I } from "../../hooks/useBackNavigationClose.hook.js";
4
- import { usePopupState as j } from "../../../hooks/usePopupState.js";
5
- import { ClickAwayListener as A } from "../../../components/mui-compat/ClickAwayListener.js";
6
- import { TimePickerPanel as B } from "./components/TimePickerPanel.js";
7
- import { TimePickerPopper as M } from "./TimePickerPopper.js";
8
- import { getTimeFromValue as S } from "./helpers/getTimeFromValue.js";
9
- import { TimePickerInput as F } from "./TimePickerInput.js";
10
- import { useEffect as K, useState as y } from "react";
11
- import { jsx as r, jsxs as C } from "react/jsx-runtime";
12
- import { format as k, isBefore as q, isValid as z } from "date-fns";
13
- var oe = (i) => {
14
- const { value: a, onSelect: n, notBeforeTime: u } = i, o = j({
1
+ import { useIsMobileView as I } from "../../hooks/useWindowWidthSize.hook.js";
2
+ import { StyledDrawer as j } from "../../../components/navigation/drawer/StyledDrawer.js";
3
+ import { useBackNavigationClose as M } from "../../hooks/useBackNavigationClose.hook.js";
4
+ import { usePopupState as A } from "../../../hooks/usePopupState.js";
5
+ import { ClickAwayListener as F } from "../../../components/mui-compat/ClickAwayListener.js";
6
+ import { isBeforeMinTime as V } from "./helpers/minTime.js";
7
+ import { TimePickerPanel as K } from "./components/TimePickerPanel.js";
8
+ import { TimePickerPopper as q } from "./TimePickerPopper.js";
9
+ import { getTimeFromValue as g } from "./helpers/getTimeFromValue.js";
10
+ import { TimePickerInput as z } from "./TimePickerInput.js";
11
+ import { useEffect as G, useState as w } from "react";
12
+ import { jsx as r, jsxs as D } from "react/jsx-runtime";
13
+ import { format as E, isBefore as J, isValid as Q } from "date-fns";
14
+ var ne = (i) => {
15
+ const { value: l, onSelect: n, notBeforeTime: d, minTime: c } = i, o = A({
15
16
  variant: "popper",
16
17
  popupId: "time-picker-popper"
17
- }), c = N();
18
- I({
19
- open: c && o.isOpen,
18
+ }), m = I();
19
+ M({
20
+ open: m && o.isOpen,
20
21
  onClose: o.close
21
22
  });
22
- const { isOpen: V, anchorEl: w, close: p } = o;
23
- K(() => {
24
- if (!V || c) return;
23
+ const { isOpen: x, anchorEl: P, close: h } = o;
24
+ G(() => {
25
+ if (!x || m) return;
25
26
  const e = (t) => {
26
- w?.contains(document.activeElement) && (t.key === "Escape" ? (t.preventDefault(), t.stopPropagation(), p()) : t.key === "Tab" && p());
27
+ P?.contains(document.activeElement) && (t.key === "Escape" ? (t.preventDefault(), t.stopPropagation(), h()) : t.key === "Tab" && h());
27
28
  };
28
29
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
29
30
  }, [
30
- V,
31
- w,
32
- p,
33
- c
31
+ x,
32
+ P,
33
+ h,
34
+ m
34
35
  ]);
35
- const E = a ? k(a, "HH:mm") : "", [b, m] = y(E), [g, l] = y(!1), [D, s] = y(!0), f = g ? b : E, d = (e) => !e || !u || !z(u) || !q(e, u), x = f.length === 5 ? S(f, a) : null, H = x ? d(x) : !0, L = (e) => {
36
+ const T = l ? E(l, "HH:mm") : "", [H, u] = w(T), [S, a] = w(!1), [L, s] = w(!0), v = S ? H : T, y = (e) => !e || !d || !Q(d) || !J(e, d), f = v.length === 5 ? g(v, l) : null, N = f ? y(f) : !0, O = (e) => {
36
37
  const t = e.target.value;
37
- if (l(!0), m(t), t.length !== 5) {
38
+ if (a(!0), u(t), t.length !== 5) {
38
39
  s(!1);
39
40
  return;
40
41
  }
41
- const v = S(t, a);
42
- if (!v) {
42
+ const p = g(t, l);
43
+ if (!p) {
43
44
  n(void 0), s(!1);
44
45
  return;
45
46
  }
46
- s(!0), d(v) ? (n(v), l(!1), o.close()) : n(void 0);
47
- }, P = (e) => {
48
- if (s(!0), d(e)) {
49
- n(e), m(e ? k(e, "HH:mm") : ""), l(!1);
50
- return;
47
+ s(!0), !V(p, c) && (y(p) ? (n(p), a(!1), o.close()) : n(void 0));
48
+ }, C = (e) => {
49
+ if (!(e && V(e, c))) {
50
+ if (s(!0), y(e)) {
51
+ n(e), u(e ? E(e, "HH:mm") : ""), a(!1);
52
+ return;
53
+ }
54
+ n(void 0), u(e ? E(e, "HH:mm") : ""), a(!0);
51
55
  }
52
- n(void 0), m(e ? k(e, "HH:mm") : ""), l(!0);
53
- }, T = () => {
54
- n(void 0), m(""), l(!1), s(!0);
55
- }, h = /* @__PURE__ */ r(F, {
56
+ }, B = () => {
57
+ S && f && V(f, c) && a(!1);
58
+ }, b = () => {
59
+ n(void 0), u(""), a(!1), s(!0);
60
+ }, k = /* @__PURE__ */ r(z, {
56
61
  ...i,
57
62
  popupState: o,
58
- localValue: f,
59
- isValidTime: D,
60
- isValidEndTime: H,
61
- handleChange: L
63
+ localValue: v,
64
+ isValidTime: L,
65
+ isValidEndTime: N,
66
+ handleChange: O,
67
+ handleBlur: B
62
68
  });
63
- return i.disabled || i.readOnly ? h : c ? /* @__PURE__ */ C("div", {
69
+ return i.disabled || i.readOnly ? k : m ? /* @__PURE__ */ D("div", {
64
70
  className: "relative h-auto w-auto",
65
71
  children: [/* @__PURE__ */ r("div", {
66
72
  className: "m-0 flex h-fit items-center justify-center p-0",
67
- children: h
68
- }), /* @__PURE__ */ r(O, {
73
+ children: k
74
+ }), /* @__PURE__ */ r(j, {
69
75
  anchor: "bottom",
70
76
  open: o.isOpen,
71
77
  onClose: o.close,
72
78
  anchorEl: o.anchorEl,
73
79
  children: /* @__PURE__ */ r("div", {
74
80
  className: "mx-auto w-full max-w-[360px] px-4 pb-[max(1rem,env(safe-area-inset-bottom))] pt-2",
75
- children: /* @__PURE__ */ r(B, {
81
+ children: /* @__PURE__ */ r(K, {
76
82
  dataTest: i.dataTest,
77
- value: a,
78
- onSelect: P,
79
- handleClear: T,
83
+ value: l,
84
+ minTime: c,
85
+ onSelect: C,
86
+ handleClear: b,
80
87
  onConfirm: o.close
81
88
  })
82
89
  })
83
90
  })]
84
- }) : /* @__PURE__ */ r(A, {
91
+ }) : /* @__PURE__ */ r(F, {
85
92
  mouseEvent: "onMouseDown",
86
93
  onClickAway: o.close,
87
- children: /* @__PURE__ */ C("div", {
94
+ children: /* @__PURE__ */ D("div", {
88
95
  className: "relative h-auto w-auto",
89
96
  children: [/* @__PURE__ */ r("div", {
90
97
  className: "m-0 flex h-fit items-center justify-center p-0",
91
- children: h
92
- }), o.isOpen && /* @__PURE__ */ r(M, {
98
+ children: k
99
+ }), o.isOpen && /* @__PURE__ */ r(q, {
93
100
  ...i,
94
101
  popupState: o,
95
- handleClear: T,
96
- onSelect: P
102
+ handleClear: b,
103
+ onSelect: C
97
104
  })]
98
105
  })
99
106
  });
100
107
  };
101
108
  export {
102
- oe as StyledTimePicker
109
+ ne as StyledTimePicker
103
110
  };
@@ -1,10 +1,10 @@
1
1
  var e = {
2
- "styled-time-picker-root": "_styled-time-picker-root_qcipa_1",
3
- "styled-time-picker-root_column": "_styled-time-picker-root_column_qcipa_4",
4
- "styled-time-picker-root_cell": "_styled-time-picker-root_cell_qcipa_7",
5
- "styled-time-picker-root_cell__cell-now": "_styled-time-picker-root_cell__cell-now_qcipa_10",
6
- "styled-time-picker-root_cell__cell-selected": "_styled-time-picker-root_cell__cell-selected_qcipa_13",
7
- "time-picker-surface": "_time-picker-surface_qcipa_17"
2
+ "styled-time-picker-root": "_styled-time-picker-root_5uhjk_1",
3
+ "styled-time-picker-root_column": "_styled-time-picker-root_column_5uhjk_4",
4
+ "styled-time-picker-root_cell": "_styled-time-picker-root_cell_5uhjk_7",
5
+ "styled-time-picker-root_cell__cell-now": "_styled-time-picker-root_cell__cell-now_5uhjk_10",
6
+ "styled-time-picker-root_cell__cell-selected": "_styled-time-picker-root_cell__cell-selected_5uhjk_13",
7
+ "time-picker-surface": "_time-picker-surface_5uhjk_20"
8
8
  };
9
9
  export {
10
10
  e as default
@@ -1,24 +1,24 @@
1
- import { ClockOutlineIcon as E } from "../../../components/icons/clock-outline-icon/ClockOutlineIcon.js";
2
- import { StyledInputField as I } from "../../../components/inputs/input-field/StyledInputField.js";
3
- import { useInputMask as N } from "../../../helpers/inputMask.js";
4
- import { HelperText as y, defaultTimePickerHelperMessages as P } from "./components/HelperText.js";
5
- import { useEffect as R, useRef as v } from "react";
6
- import { jsx as r, jsxs as w } from "react/jsx-runtime";
1
+ import { ClockOutlineIcon as I } from "../../../components/icons/clock-outline-icon/ClockOutlineIcon.js";
2
+ import { StyledInputField as N } from "../../../components/inputs/input-field/StyledInputField.js";
3
+ import { useInputMask as y } from "../../../helpers/inputMask.js";
4
+ import { HelperText as P, defaultTimePickerHelperMessages as R } from "./components/HelperText.js";
5
+ import { useEffect as v, useRef as w } from "react";
6
+ import { jsx as o, jsxs as H } from "react/jsx-runtime";
7
7
  var O = (c) => {
8
- const { placeholder: x, disabled: e, inputClassName: f, dataTest: n, width: l, error: h, helperText: u, label: g, locale: k = "en", popupState: a, handleChange: T, isValidTime: p, isValidEndTime: m, localValue: C, title: d, readOnly: t } = c, b = N({
8
+ const { placeholder: x, disabled: e, inputClassName: u, dataTest: n, width: l, error: f, helperText: h, label: g, locale: k = "en", popupState: a, handleChange: T, handleBlur: C, isValidTime: p, isValidEndTime: m, localValue: b, title: d, readOnly: t } = c, E = y({
9
9
  mask: "xx:xx",
10
10
  maskChar: "x",
11
11
  showMask: !1
12
- }), i = !p || !m || !!h, s = v(null);
13
- return R(() => {
12
+ }), i = !p || !m || !!f, s = w(null);
13
+ return v(() => {
14
14
  s.current && a.setAnchorEl(s.current);
15
- }, []), /* @__PURE__ */ w("div", {
15
+ }, []), /* @__PURE__ */ H("div", {
16
16
  style: { height: t ? "40px" : "75px" },
17
- children: [d && /* @__PURE__ */ r("div", {
17
+ children: [d && /* @__PURE__ */ o("div", {
18
18
  className: "pb-1 font-roboto font-semibold text-delta-800",
19
19
  children: d
20
- }), /* @__PURE__ */ r(I, {
21
- inputRef: b,
20
+ }), /* @__PURE__ */ o(N, {
21
+ inputRef: E,
22
22
  autoComplete: "off",
23
23
  type: "text",
24
24
  dataTest: n,
@@ -26,27 +26,28 @@ var O = (c) => {
26
26
  placeholder: x,
27
27
  size: "small",
28
28
  error: i,
29
- helperText: /* @__PURE__ */ r(y, {
29
+ helperText: /* @__PURE__ */ o(P, {
30
30
  isValidTime: p,
31
31
  isValidEndTime: m,
32
32
  error: i,
33
33
  localization: k,
34
- helperText: u,
35
- messages: P
34
+ helperText: h,
35
+ messages: R
36
36
  }),
37
37
  onChange: T,
38
+ onBlur: C,
38
39
  slotProps: {
39
40
  input: {
40
41
  ref: s,
41
- onClick: (o) => {
42
- !e && !t && a.open(o);
42
+ onClick: (r) => {
43
+ !e && !t && a.open(r);
43
44
  },
44
- endAdornment: /* @__PURE__ */ r(E, {
45
+ endAdornment: /* @__PURE__ */ o(I, {
45
46
  width: 24,
46
47
  height: 24,
47
48
  className: e ? "text-delta-300" : "text-delta-700",
48
- onClick: (o) => {
49
- o.stopPropagation(), !e && !t && a.open(o);
49
+ onClick: (r) => {
50
+ r.stopPropagation(), !e && !t && a.open(r);
50
51
  }
51
52
  })
52
53
  },
@@ -55,7 +56,7 @@ var O = (c) => {
55
56
  hideErrorIcon: !0
56
57
  }
57
58
  },
58
- value: C,
59
+ value: b,
59
60
  sx: {
60
61
  maxWidth: l ?? 130,
61
62
  width: l,
@@ -63,7 +64,7 @@ var O = (c) => {
63
64
  },
64
65
  disabled: e,
65
66
  readOnly: t,
66
- className: f,
67
+ className: u,
67
68
  label: g
68
69
  })]
69
70
  });
@@ -1,29 +1,30 @@
1
- import { bindPopper as l } from "../../../hooks/usePopupState.js";
2
- import { Paper as n } from "../../../components/mui-compat/Paper.js";
3
- import { Fade as c } from "../../../components/mui-compat/Fade.js";
4
- import { Popper as d } from "../../../components/mui-compat/Popper.js";
5
- import f from "./StyledTimePicker.module.js";
6
- import { TimePickerPanel as s } from "./components/TimePickerPanel.js";
7
- import u from "clsx";
1
+ import { bindPopper as n } from "../../../hooks/usePopupState.js";
2
+ import { Paper as c } from "../../../components/mui-compat/Paper.js";
3
+ import { Fade as d } from "../../../components/mui-compat/Fade.js";
4
+ import { Popper as f } from "../../../components/mui-compat/Popper.js";
5
+ import s from "./StyledTimePicker.module.js";
6
+ import { TimePickerPanel as u } from "./components/TimePickerPanel.js";
7
+ import P from "clsx";
8
8
  import { jsx as e } from "react/jsx-runtime";
9
- var C = (o) => {
10
- const { popupState: r, dataTest: t, value: i, onSelect: m, handleClear: p } = o;
11
- return /* @__PURE__ */ e(d, {
12
- ...l(r),
9
+ var _ = (o) => {
10
+ const { popupState: r, dataTest: t, value: i, minTime: m, onSelect: p, handleClear: a } = o;
11
+ return /* @__PURE__ */ e(f, {
12
+ ...n(r),
13
13
  transition: !0,
14
14
  style: { zIndex: "1300" },
15
- children: ({ TransitionProps: a }) => /* @__PURE__ */ e(c, {
16
- ...a,
15
+ children: ({ TransitionProps: l }) => /* @__PURE__ */ e(d, {
16
+ ...l,
17
17
  timeout: 350,
18
- children: /* @__PURE__ */ e(n, {
18
+ children: /* @__PURE__ */ e(c, {
19
19
  elevation: 0,
20
- className: u(f["time-picker-surface"]),
20
+ className: P(s["time-picker-surface"]),
21
21
  style: { paddingBottom: "1px" },
22
- children: /* @__PURE__ */ e(s, {
22
+ children: /* @__PURE__ */ e(u, {
23
23
  dataTest: t,
24
24
  value: i,
25
- onSelect: m,
26
- handleClear: p,
25
+ minTime: m,
26
+ onSelect: p,
27
+ handleClear: a,
27
28
  onConfirm: () => r.close()
28
29
  })
29
30
  })
@@ -31,5 +32,5 @@ var C = (o) => {
31
32
  });
32
33
  };
33
34
  export {
34
- C as TimePickerPopper
35
+ _ as TimePickerPopper
35
36
  };
@@ -1,32 +1,34 @@
1
- import f from "../StyledTimePicker.module.js";
2
- import { TimePickerColumn as s } from "./TimePickerColumn.js";
3
- import { useEffect as u, useRef as d } from "react";
4
- import { jsx as m, jsxs as p } from "react/jsx-runtime";
5
- var k = ({ value: l, onSelect: i, dataTest: n }) => {
6
- const t = d(null);
7
- return u(() => {
1
+ import u from "../StyledTimePicker.module.js";
2
+ import { TimePickerColumn as n } from "./TimePickerColumn.js";
3
+ import { useEffect as d, useRef as p } from "react";
4
+ import { jsx as f, jsxs as a } from "react/jsx-runtime";
5
+ var g = ({ value: l, onSelect: c, dataTest: m, minTime: s }) => {
6
+ const t = p(null);
7
+ return d(() => {
8
8
  const r = t.current;
9
9
  if (!r) return;
10
- const c = r.querySelectorAll('[data-cell="selected"]');
11
- (c.length ? c : r.querySelectorAll('[data-cell="now"]')).forEach((o) => {
10
+ const i = r.querySelectorAll('[data-cell="selected"]');
11
+ (i.length ? i : r.querySelectorAll('[data-cell="now"]')).forEach((o) => {
12
12
  const e = o.parentElement;
13
13
  e && (e.scrollTop = o.offsetTop - e.offsetTop - (e.clientHeight - o.clientHeight) / 2);
14
14
  });
15
- }, [t]), /* @__PURE__ */ p("div", {
15
+ }, [t]), /* @__PURE__ */ a("div", {
16
16
  ref: t,
17
- "data-test": n,
18
- className: f["styled-time-picker-root"],
19
- children: [/* @__PURE__ */ m(s, {
17
+ "data-test": m,
18
+ className: u["styled-time-picker-root"],
19
+ children: [/* @__PURE__ */ f(n, {
20
20
  type: "hours",
21
21
  value: l,
22
- onSelect: i
23
- }), /* @__PURE__ */ m(s, {
22
+ onSelect: c,
23
+ minTime: s
24
+ }), /* @__PURE__ */ f(n, {
24
25
  type: "minutes",
25
26
  value: l,
26
- onSelect: i
27
+ onSelect: c,
28
+ minTime: s
27
29
  })]
28
30
  });
29
31
  };
30
32
  export {
31
- k as TimePickerBody
33
+ g as TimePickerBody
32
34
  };
@@ -1,19 +1,22 @@
1
1
  import r from "../StyledTimePicker.module.js";
2
- import a from "clsx";
3
- import { jsx as n } from "react/jsx-runtime";
4
- import { getHours as _, getMinutes as k, set as w } from "date-fns";
5
- var b = ({ type: m, value: o, onSelect: d }) => {
6
- const s = /* @__PURE__ */ new Date(), t = m === "hours", u = t ? 24 : 12, p = t ? s.getHours() : s.getMinutes();
7
- return /* @__PURE__ */ n("div", {
2
+ import { clampToMinTime as w, isHourDisabled as y, isMinuteDisabled as b } from "../helpers/minTime.js";
3
+ import g from "clsx";
4
+ import { jsx as d } from "react/jsx-runtime";
5
+ import { getHours as u, getMinutes as h, set as M } from "date-fns";
6
+ var C = ({ type: a, value: o, onSelect: p, minTime: s }) => {
7
+ const i = /* @__PURE__ */ new Date(), t = a === "hours", _ = u(o ?? i), f = t ? 24 : 12, k = t ? i.getHours() : i.getMinutes();
8
+ return /* @__PURE__ */ d("div", {
8
9
  className: r["styled-time-picker-root_column"],
9
- children: new Array(u).fill(null).map((y, i) => {
10
- const e = t ? i : i * 5, l = o && e === (t ? _(o) : k(o)), c = p == e;
11
- return /* @__PURE__ */ n("button", {
10
+ children: new Array(f).fill(null).map((x, l) => {
11
+ const e = t ? l : l * 5, c = o && e === (t ? u(o) : h(o)), n = k == e;
12
+ return /* @__PURE__ */ d("button", {
12
13
  type: "button",
13
- "data-cell": l ? "selected" : c ? "now" : void 0,
14
- className: a("border-0", r["styled-time-picker-root_cell"], c && r["styled-time-picker-root_cell__cell-now"], l && r["styled-time-picker-root_cell__cell-selected"]),
14
+ disabled: t ? y(e, s) : b(_, e, s),
15
+ "data-cell": c ? "selected" : n ? "now" : void 0,
16
+ className: g("border-0", r["styled-time-picker-root_cell"], n && r["styled-time-picker-root_cell__cell-now"], c && r["styled-time-picker-root_cell__cell-selected"]),
15
17
  onClick: () => {
16
- d(w(o ?? /* @__PURE__ */ new Date(), t ? { hours: e } : { minutes: e }));
18
+ const m = M(o ?? /* @__PURE__ */ new Date(), t ? { hours: e } : { minutes: e });
19
+ p(t ? w(m, s) : m);
17
20
  },
18
21
  children: e.toString().padStart(2, "0")
19
22
  }, e);
@@ -21,5 +24,5 @@ var b = ({ type: m, value: o, onSelect: d }) => {
21
24
  });
22
25
  };
23
26
  export {
24
- b as TimePickerColumn
27
+ C as TimePickerColumn
25
28
  };
@@ -1,12 +1,13 @@
1
1
  import { StyledButton as e } from "../../../shared-components/button/StyledButton.js";
2
- import { TimePickerBody as d } from "./TimePickerBody.js";
3
- import { EraserIcon as l } from "../../../shared-components/EraserIcon.js";
4
- import { CheckIcon as s } from "../../../shared-components/CheckIcon.js";
5
- import { Fragment as c, jsx as t, jsxs as r } from "react/jsx-runtime";
6
- var b = ({ dataTest: a, value: i, onSelect: m, handleClear: n, onConfirm: o }) => /* @__PURE__ */ r(c, { children: [/* @__PURE__ */ t(d, {
2
+ import { TimePickerBody as l } from "./TimePickerBody.js";
3
+ import { EraserIcon as s } from "../../../shared-components/EraserIcon.js";
4
+ import { CheckIcon as c } from "../../../shared-components/CheckIcon.js";
5
+ import { Fragment as p, jsx as t, jsxs as r } from "react/jsx-runtime";
6
+ var g = ({ dataTest: a, value: i, minTime: m, onSelect: n, handleClear: o, onConfirm: d }) => /* @__PURE__ */ r(p, { children: [/* @__PURE__ */ t(l, {
7
7
  dataTest: `${a}-time-picker-body`,
8
8
  value: i,
9
- onSelect: m
9
+ minTime: m,
10
+ onSelect: n
10
11
  }), /* @__PURE__ */ r("div", {
11
12
  style: {
12
13
  display: "flex",
@@ -19,14 +20,14 @@ var b = ({ dataTest: a, value: i, onSelect: m, handleClear: n, onConfirm: o }) =
19
20
  "data-testid": "time-picker-erase-button",
20
21
  "aria-label": "Clear time",
21
22
  variant: "text",
22
- onClick: n,
23
+ onClick: o,
23
24
  size: "small",
24
25
  disabled: !i,
25
26
  style: {
26
27
  minWidth: "40px",
27
28
  marginLeft: "10px"
28
29
  },
29
- children: /* @__PURE__ */ t(l, {
30
+ children: /* @__PURE__ */ t(s, {
30
31
  width: 24,
31
32
  height: 24
32
33
  })
@@ -36,17 +37,17 @@ var b = ({ dataTest: a, value: i, onSelect: m, handleClear: n, onConfirm: o }) =
36
37
  "aria-label": "Confirm time",
37
38
  variant: "contained",
38
39
  size: "small",
39
- onClick: o,
40
+ onClick: d,
40
41
  style: {
41
42
  minWidth: "40px",
42
43
  marginRight: "16px"
43
44
  },
44
- children: /* @__PURE__ */ t(s, {
45
+ children: /* @__PURE__ */ t(c, {
45
46
  width: 20,
46
47
  height: 20
47
48
  })
48
49
  })]
49
50
  })] });
50
51
  export {
51
- b as TimePickerPanel
52
+ g as TimePickerPanel
52
53
  };
@@ -1,8 +1,8 @@
1
- var u = (s, o) => {
2
- const t = s.split(":"), e = Number(t[0]), n = Number(t[1]);
3
- if (t[0]?.length == 2 && t[1]?.length == 2 && e >= 0 && e <= 23 && n >= 0 && n <= 59) {
4
- const r = o ?? /* @__PURE__ */ new Date();
5
- return r.setHours(e), r.setMinutes(n), r;
1
+ var u = (o, s) => {
2
+ const e = o.split(":"), t = Number(e[0]), n = Number(e[1]);
3
+ if (e[0]?.length == 2 && e[1]?.length == 2 && t >= 0 && t <= 23 && n >= 0 && n <= 59) {
4
+ const r = s ? new Date(s) : /* @__PURE__ */ new Date();
5
+ return r.setHours(t), r.setMinutes(n), r;
6
6
  }
7
7
  return null;
8
8
  };
@@ -0,0 +1,12 @@
1
+ import { isValid as M } from "date-fns";
2
+ var e = (r) => r.getHours() * 60 + r.getMinutes(), s = (r) => !!r && M(r), o = (r, t) => s(t) && e(r) < e(t), i = (r, t) => s(t) && r * 60 + 55 < e(t), n = (r, t, a) => s(a) && r * 60 + t < e(a), v = (r, t) => {
3
+ if (!s(t) || !o(r, t)) return r;
4
+ const a = new Date(r);
5
+ return a.setMinutes(Math.ceil(t.getMinutes() / 5) * 5), a;
6
+ };
7
+ export {
8
+ v as clampToMinTime,
9
+ o as isBeforeMinTime,
10
+ i as isHourDisabled,
11
+ n as isMinuteDisabled
12
+ };