@televet/kibble-ui 5.0.20 → 5.0.21-alpha.hunter.19

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 (52) hide show
  1. package/dist/chunks/dateTimePicker.component-BQlvgxLx.js +2 -0
  2. package/dist/chunks/{dateTimePicker.component-BlWhC5aT.js.map → dateTimePicker.component-BQlvgxLx.js.map} +1 -1
  3. package/dist/chunks/dateTimePicker.component-Ba3eNQdB.js +324 -0
  4. package/dist/chunks/{dateTimePicker.component-DnYStcAJ.js.map → dateTimePicker.component-Ba3eNQdB.js.map} +1 -1
  5. package/dist/chunks/timePicker.component-B4Py1wGA.js +259 -0
  6. package/dist/chunks/timePicker.component-B4Py1wGA.js.map +1 -0
  7. package/dist/chunks/timePicker.component-DK-Djh9H.js +2 -0
  8. package/dist/chunks/timePicker.component-DK-Djh9H.js.map +1 -0
  9. package/dist/chunks/timeRange.component-BOicUMic.js +26 -0
  10. package/dist/chunks/{timeRange.component-D3Db8lvh.js.map → timeRange.component-BOicUMic.js.map} +1 -1
  11. package/dist/chunks/timeRange.component-D8kEOwwe.js +2 -0
  12. package/dist/chunks/{timeRange.component-BZHpZeAX.js.map → timeRange.component-D8kEOwwe.js.map} +1 -1
  13. package/dist/cjs/components/DateTimePicker/index.cjs +1 -1
  14. package/dist/cjs/components/Icon/generated/index.cjs +1 -1
  15. package/dist/cjs/components/Icon/generated/index.cjs.map +1 -1
  16. package/dist/cjs/components/TimePicker/index.cjs +1 -1
  17. package/dist/cjs/components/TimeRange/index.cjs +1 -1
  18. package/dist/cjs/components/index.cjs +1 -1
  19. package/dist/cjs/index.cjs +1 -1
  20. package/dist/esm/components/DateTimePicker/index.js +1 -1
  21. package/dist/esm/components/Icon/generated/index.js +562 -318
  22. package/dist/esm/components/Icon/generated/index.js.map +1 -1
  23. package/dist/esm/components/TimePicker/index.js +1 -1
  24. package/dist/esm/components/TimeRange/index.js +1 -1
  25. package/dist/esm/components/index.js +3 -3
  26. package/dist/esm/index.js +3 -3
  27. package/dist/types/components/DateTimePicker/components/DateTimePickerCustomView/dateTimePickerCustomView.component.d.ts +2 -1
  28. package/dist/types/components/DateTimePicker/components/DateTimePickerRangeSelector/dateTimePickerRangeSelector.component.d.ts +2 -1
  29. package/dist/types/components/DateTimePicker/dateTimePicker.component.d.ts +6 -1
  30. package/dist/types/components/Icon/generated/BarcodeReader.d.ts +10 -0
  31. package/dist/types/components/Icon/generated/Battery.d.ts +10 -0
  32. package/dist/types/components/Icon/generated/BatteryCharging.d.ts +10 -0
  33. package/dist/types/components/Icon/generated/BatteryFull.d.ts +10 -0
  34. package/dist/types/components/Icon/generated/BatteryLow.d.ts +10 -0
  35. package/dist/types/components/Icon/generated/Connect.d.ts +10 -0
  36. package/dist/types/components/Icon/generated/MagicPen.d.ts +10 -0
  37. package/dist/types/components/Icon/generated/Wifi.d.ts +10 -0
  38. package/dist/types/components/Icon/generated/WifiOff.d.ts +10 -0
  39. package/dist/types/components/Icon/generated/WifiWarning.d.ts +10 -0
  40. package/dist/types/components/Icon/generated/Workflows.d.ts +10 -0
  41. package/dist/types/components/Icon/generated/index.d.ts +1 -1
  42. package/dist/types/components/TimePicker/timePicker.component.d.ts +9 -1
  43. package/dist/types/shared/utils/localToClinicTimezone.d.ts +6 -0
  44. package/package.json +16 -14
  45. package/dist/chunks/dateTimePicker.component-BlWhC5aT.js +0 -2
  46. package/dist/chunks/dateTimePicker.component-DnYStcAJ.js +0 -317
  47. package/dist/chunks/timePicker.component-BCMX6aqb.js +0 -220
  48. package/dist/chunks/timePicker.component-BCMX6aqb.js.map +0 -1
  49. package/dist/chunks/timePicker.component-D5hw80VV.js +0 -2
  50. package/dist/chunks/timePicker.component-D5hw80VV.js.map +0 -1
  51. package/dist/chunks/timeRange.component-BZHpZeAX.js +0 -19
  52. package/dist/chunks/timeRange.component-D3Db8lvh.js +0 -2
@@ -1,317 +0,0 @@
1
- import { j as s } from "./jsx-runtime-C5mzlN2N.js";
2
- import { useMemo as d, useEffect as N, useState as E } from "react";
3
- import { B as R } from "./button.component-BO6oee_V.js";
4
- import { e as Y, d as $, f as z, u as T, F as p, b as A, c as G, a as Q } from "./datePicker.provider-CavuOZl4.js";
5
- import { u as q } from "./usePortalContentRef-DO_jc4W9.js";
6
- import { p as V } from "./popover.recipe-DPwwsWLb.js";
7
- import { s as L, c as J, g as K, t as f, a as P, f as U } from "./format-CqTHHSak.js";
8
- import { c as y } from "./isToday-iCYsPDMT.js";
9
- import { u as X } from "./popover-root-provider-CFn2dthZ.js";
10
- import { F as v } from "./flex-CX-8gE9T.js";
11
- import { useBreakpoint as Z } from "../esm/hooks/useBreakpoint/index.js";
12
- import { B as k } from "./index-9BerxEcw.js";
13
- import { W as ee } from "./text.component-DhuUgP3j.js";
14
- import { W as te } from "./textInput.component-BeiTxTkS.js";
15
- import { T as ae } from "./timePicker.component-BCMX6aqb.js";
16
- import { G as se, a as j } from "./grid-item-BmCSQ38y.js";
17
- import { D as ne } from "./divider.component-CFOh4Nw3.js";
18
- import { u as re } from "./create-slot-recipe-context-D_FXDJGp.js";
19
- import { P as oe } from "./index-DcmJgLUo.js";
20
- import { P as ie, a as ce, b as le, c as de } from "./popover-Gb1fXSR7.js";
21
- var n = /* @__PURE__ */ ((t) => (t.Today = "Today", t.Yesterday = "Yesterday", t.ThisWeek = "ThisWeek", t.LastWeek = "LastWeek", t.ThisMonth = "ThisMonth", t.LastMonth = "LastMonth", t.Custom = "Custom", t))(n || {});
22
- const ze = ["single", "double"], ue = [
23
- {
24
- label: "Today",
25
- value: n.Today
26
- },
27
- {
28
- label: "Yesterday",
29
- value: n.Yesterday
30
- },
31
- {
32
- label: "This Week",
33
- value: n.ThisWeek
34
- },
35
- {
36
- label: "Last Week",
37
- value: n.LastWeek
38
- },
39
- {
40
- label: "This Month",
41
- value: n.ThisMonth
42
- },
43
- {
44
- label: "Last Month",
45
- value: n.LastMonth
46
- },
47
- {
48
- label: "Custom",
49
- value: n.Custom,
50
- iconName: "calendarPen"
51
- }
52
- ], me = {
53
- single: 1,
54
- double: 2
55
- };
56
- function pe(t) {
57
- return L(Date.now(), t);
58
- }
59
- function fe(t) {
60
- return Y(Date.now(), t);
61
- }
62
- function he(t) {
63
- const e = y(t?.in), a = e.getFullYear(), r = e.getMonth(), o = e.getDate(), i = y(t?.in);
64
- return i.setFullYear(a, r, o - 1), i.setHours(0, 0, 0, 0), i;
65
- }
66
- function De(t) {
67
- const e = y(t?.in), a = J(t?.in, 0);
68
- return a.setFullYear(e.getFullYear(), e.getMonth(), e.getDate() - 1), a.setHours(23, 59, 59, 999), a;
69
- }
70
- function W(t, e) {
71
- const a = K(), r = e?.weekStartsOn ?? e?.locale?.options?.weekStartsOn ?? a.weekStartsOn ?? a.locale?.options?.weekStartsOn ?? 0, o = f(t, e?.in), i = o.getDay(), l = (i < r ? -7 : 0) + 6 - (i - r);
72
- return o.setDate(o.getDate() + l), o.setHours(23, 59, 59, 999), o;
73
- }
74
- function M(t, e) {
75
- const a = f(t, e?.in);
76
- return a.setDate(1), a.setHours(0, 0, 0, 0), a;
77
- }
78
- function O(t, e) {
79
- const a = f(t, e?.in), r = a.getMonth();
80
- return a.setFullYear(a.getFullYear(), r + 1, 0), a.setHours(23, 59, 59, 999), a;
81
- }
82
- function xe(t, e, a) {
83
- return $(t, e * 7, a);
84
- }
85
- function ke(t, e, a) {
86
- return xe(t, -1, a);
87
- }
88
- function ge(t, e, a) {
89
- return z(t, -1, a);
90
- }
91
- function _(t, e) {
92
- return +f(t) == +f(e);
93
- }
94
- const I = (t) => {
95
- const e = /* @__PURE__ */ new Date();
96
- switch (t) {
97
- case n.Today:
98
- return {
99
- startDate: pe(),
100
- endDate: fe()
101
- };
102
- case n.Yesterday:
103
- return {
104
- startDate: he(),
105
- endDate: De()
106
- };
107
- case n.ThisWeek:
108
- return {
109
- startDate: P(e, { weekStartsOn: 1 }),
110
- endDate: W(e, { weekStartsOn: 1 })
111
- };
112
- case n.LastWeek: {
113
- const a = ke(e);
114
- return {
115
- startDate: P(a, { weekStartsOn: 1 }),
116
- endDate: W(a, { weekStartsOn: 1 })
117
- };
118
- }
119
- case n.ThisMonth:
120
- return {
121
- startDate: M(e),
122
- endDate: O(e)
123
- };
124
- case n.LastMonth: {
125
- const a = ge(e);
126
- return {
127
- startDate: M(a),
128
- endDate: O(a)
129
- };
130
- }
131
- default:
132
- return null;
133
- }
134
- }, be = (t, e) => {
135
- if (!t || !e)
136
- return n.Today;
137
- const a = [
138
- n.Today,
139
- n.Yesterday,
140
- n.ThisWeek,
141
- n.LastWeek,
142
- n.ThisMonth,
143
- n.LastMonth
144
- ];
145
- for (const r of a) {
146
- const o = I(r);
147
- if (o && _(t, o.startDate) && _(e, o.endDate))
148
- return r;
149
- }
150
- return n.Custom;
151
- }, Ce = ({
152
- selectedQuickOption: t,
153
- setSelectedQuickOption: e,
154
- ["data-testid"]: a = "kibble-datetime-picker-quick-options"
155
- }) => {
156
- const { setFocusedInput: r, onQuickOptionSelect: o } = T(), { setOpen: i } = X(), l = (c) => {
157
- if (e(c), c === n.Custom) {
158
- r(p.StartDate);
159
- return;
160
- }
161
- const m = I(c);
162
- m && (o(m), i(!1));
163
- };
164
- return /* @__PURE__ */ s.jsx(v, { className: "DateTimePicker__QuickFilters", flexDirection: "column", gap: 2, w: "100%", maxW: "120px", children: ue.map((c) => /* @__PURE__ */ s.jsx(
165
- R,
166
- {
167
- className: "DateTimePicker__Option",
168
- "data-testid": `${a}-option-${c.value}`,
169
- variant: "secondarySubtle",
170
- ...c.iconName && { iconName: c.iconName, iconPosition: "right" },
171
- ...t === c.value && { active: !0 },
172
- onClick: () => l(c.value),
173
- children: c.label
174
- },
175
- c.value
176
- )) });
177
- }, F = ({
178
- label: t,
179
- rangeType: e
180
- }) => {
181
- const { startDate: a, endDate: r, dateFormat: o, focusedInput: i, setFocusedInput: l, onTimeChange: c } = T(), m = d(
182
- () => (e === p.StartDate ? a : r) || /* @__PURE__ */ new Date(),
183
- [a, r, e]
184
- ), g = d(() => U(m, o), [m, o]), h = (u) => {
185
- u && c(u, e);
186
- };
187
- return /* @__PURE__ */ s.jsxs(
188
- se,
189
- {
190
- alignItems: "center",
191
- templateColumns: "repeat(5, 1fr)",
192
- gap: 1,
193
- bgColor: "background.secondaryAlpha",
194
- borderRadius: "md",
195
- p: 1,
196
- flex: "0 0 50%",
197
- children: [
198
- /* @__PURE__ */ s.jsx(j, { colSpan: 1, children: /* @__PURE__ */ s.jsx(ee, { size: "sm", fontWeight: "semibold", textAlign: "center", children: t }) }),
199
- /* @__PURE__ */ s.jsx(j, { colSpan: 2, children: /* @__PURE__ */ s.jsx(
200
- te,
201
- {
202
- readOnly: !0,
203
- value: g,
204
- onClick: () => l(e),
205
- ...i === e && {
206
- "data-focus": !0
207
- }
208
- }
209
- ) }),
210
- /* @__PURE__ */ s.jsx(j, { colSpan: 2, children: /* @__PURE__ */ s.jsx(
211
- ae,
212
- {
213
- minuteInterval: 1,
214
- initialTime: m,
215
- onClose: (u) => h(u),
216
- inputProps: { rightElement: void 0, onClick: () => l(e) }
217
- }
218
- ) })
219
- ]
220
- }
221
- );
222
- }, je = ({ isSingleView: t }) => {
223
- const { focusedInput: e, setFocusedInput: a } = T();
224
- return N(() => {
225
- e || a(p.StartDate);
226
- }, [e, a]), /* @__PURE__ */ s.jsxs(k, { className: "DateTimePicker__CustomFilters", mt: -1, children: [
227
- /* @__PURE__ */ s.jsxs(
228
- v,
229
- {
230
- className: "DateTimePicker__CustomFilters__RangeSelectors",
231
- flexDirection: t ? "column" : "row",
232
- alignItems: "center",
233
- gap: 2,
234
- justifyContent: "space-between",
235
- children: [
236
- /* @__PURE__ */ s.jsx(F, { label: "Start", rangeType: p.StartDate }),
237
- /* @__PURE__ */ s.jsx(F, { label: "End", rangeType: p.EndDate })
238
- ]
239
- }
240
- ),
241
- /* @__PURE__ */ s.jsxs(k, { className: "CalendarView", bgColor: "background.secondaryAlpha", borderRadius: "md", p: 1, mt: 5, children: [
242
- /* @__PURE__ */ s.jsx(k, { className: "CalendarView__Header", bgColor: "background.accent.subtle", borderRadius: "md", children: /* @__PURE__ */ s.jsx(A, { triggerProps: { variant: "ghostNeutral" } }) }),
243
- /* @__PURE__ */ s.jsx(k, { className: "CalendarView__Body", children: /* @__PURE__ */ s.jsx(G, { showMonthLabels: !0 }) })
244
- ] })
245
- ] });
246
- }, Ae = ({
247
- trigger: t,
248
- calendarView: e = "double",
249
- portalled: a = !0,
250
- showQuickOptions: r = !0,
251
- ["data-testid"]: o = "kibble-datetime-picker",
252
- ...i
253
- }) => {
254
- const l = d(() => {
255
- const w = /* @__PURE__ */ new Date();
256
- return {
257
- startDate: L(w),
258
- endDate: Y(w)
259
- };
260
- }, []), { contentRef: c } = q(), g = re({ recipe: V })(), h = Z(), u = d(() => r ? be(i.startDate || null, i.endDate || null) : n.Custom, [r, i.startDate, i.endDate]), [D, S] = E(u);
261
- N(() => {
262
- S(u);
263
- }, [u]);
264
- const x = d(
265
- () => ["base", "sm"].includes(h) ? "single" : e,
266
- [e, h]
267
- ), B = d(() => me[x], [x]), b = d(() => x === "single", [x]), C = d(
268
- () => D === n.Custom,
269
- [D]
270
- ), H = d(() => C ? "max-content" : "160px", [C]);
271
- return /* @__PURE__ */ s.jsxs(
272
- Q,
273
- {
274
- ...i,
275
- startDate: i.startDate || l.startDate,
276
- endDate: i.endDate || l.endDate,
277
- withDateRange: !0,
278
- numberOfMonths: B,
279
- sameWidth: !0,
280
- children: [
281
- /* @__PURE__ */ s.jsx(ie, { asChild: !0, w: "max-content", children: t || /* @__PURE__ */ s.jsx(R, { variant: "secondarySubtle", iconName: "calendarInfo", "data-testid": `${o}-default-trigger`, children: "Date/Time Range" }) }),
282
- /* @__PURE__ */ s.jsx(oe, { container: c || void 0, disabled: !a, children: /* @__PURE__ */ s.jsx(ce, { className: "DateTimePicker", "data-testid": o, children: /* @__PURE__ */ s.jsx(
283
- le,
284
- {
285
- className: "DateTimePicker__Content",
286
- "data-testid": `${o}-content`,
287
- css: {
288
- ...g.content,
289
- "--popover-size": H,
290
- maxW: r ? b ? "550px" : "890px" : b ? "390px" : "730px",
291
- ...C && { minW: r ? "550px" : "390px" }
292
- },
293
- children: /* @__PURE__ */ s.jsx(de, { css: { "--popover-padding": 0 }, children: /* @__PURE__ */ s.jsxs(v, { className: "DateTimePicker__Container", "data-testid": `${o}-container`, p: 5, children: [
294
- r && /* @__PURE__ */ s.jsx(
295
- Ce,
296
- {
297
- selectedQuickOption: D,
298
- setSelectedQuickOption: S
299
- }
300
- ),
301
- D === n.Custom && /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
302
- r && /* @__PURE__ */ s.jsx(ne, { orientation: "vertical", my: -5, mx: 5 }),
303
- /* @__PURE__ */ s.jsx(je, { isSingleView: b })
304
- ] })
305
- ] }) })
306
- }
307
- ) }) })
308
- ]
309
- }
310
- );
311
- };
312
- export {
313
- Ae as D,
314
- n as a,
315
- ze as c
316
- };
317
- //# sourceMappingURL=dateTimePicker.component-DnYStcAJ.js.map
@@ -1,220 +0,0 @@
1
- import { j as o } from "./jsx-runtime-C5mzlN2N.js";
2
- import { useCallback as b, useRef as J, useEffect as T, useState as k, useMemo as R } from "react";
3
- import { W as K } from "./textInput.component-BeiTxTkS.js";
4
- import { P as Q } from "./popover.component-DIYT1Lc0.js";
5
- import { I as U } from "./icon.component-PV_nHBId.js";
6
- import { u as X } from "./useIconTextSizeMap-BK-pUrQv.js";
7
- import { f as Z } from "./format-CqTHHSak.js";
8
- import { B as S } from "./index-9BerxEcw.js";
9
- import { a as ee, d as te } from "./config-Djkl1N81.js";
10
- import { u as re } from "./use-recipe-d63ABaZ3.js";
11
- import { u as V } from "./create-slot-recipe-context-D_FXDJGp.js";
12
- const se = ee({
13
- base: {
14
- borderRadius: "4px",
15
- cursor: "pointer",
16
- fontSize: "sm",
17
- px: 3,
18
- py: 1,
19
- textAlign: "center"
20
- },
21
- variants: {
22
- selected: {
23
- true: {
24
- background: "background.secondary",
25
- color: "text.contrast",
26
- _hover: {
27
- background: "background.secondary.hover"
28
- }
29
- },
30
- false: {
31
- background: "background",
32
- color: "text.subtle",
33
- _hover: {
34
- background: "background.secondaryAlpha.hover"
35
- }
36
- }
37
- }
38
- },
39
- defaultVariants: {
40
- selected: !1
41
- }
42
- }), oe = ({
43
- value: t,
44
- innerRef: i,
45
- onClick: n,
46
- selected: l,
47
- ["data-testid"]: u = "kibble-timepicker-option"
48
- }) => {
49
- const a = re({ recipe: se })({ selected: l }), x = b(
50
- (c) => {
51
- const r = c.currentTarget.textContent || "";
52
- n(r);
53
- },
54
- [n]
55
- );
56
- return /* @__PURE__ */ o.jsx(S, { className: "TimePicker__Option", "data-testid": u, ref: i, onClick: x, css: a, children: t });
57
- }, z = te({
58
- slots: ["trigger", "container", "list"],
59
- base: {
60
- trigger: {
61
- width: "100%"
62
- },
63
- container: {
64
- display: "flex",
65
- gap: 1.5,
66
- height: "186px",
67
- overflow: "hidden"
68
- },
69
- list: {
70
- display: "flex",
71
- flexDirection: "column",
72
- gap: 1,
73
- overflowY: "auto",
74
- "&::webkit-scrollbar": {
75
- display: "none"
76
- }
77
- }
78
- }
79
- }), C = ({
80
- options: t,
81
- optionType: i,
82
- selectedValue: n,
83
- onClick: l,
84
- open: u = !1,
85
- ["data-testid"]: f = "kibble-timepicker-list"
86
- }) => {
87
- const x = V({ recipe: z })(), c = J(null);
88
- return T(() => {
89
- u && c.current && requestAnimationFrame(() => {
90
- c.current && c.current.scrollIntoView({ block: "center" });
91
- });
92
- }, [u, n]), /* @__PURE__ */ o.jsx(S, { className: "TimePicker__List", "data-testid": `${f}-${i}-list`, css: x.list, children: t.map((r) => {
93
- const A = r === n;
94
- return /* @__PURE__ */ o.jsx(
95
- oe,
96
- {
97
- innerRef: A ? c : null,
98
- value: r,
99
- selected: r === n,
100
- onClick: l,
101
- "data-testid": `${f}-${i}-option-${r}`
102
- },
103
- `${i}-option-${r}`
104
- );
105
- }) });
106
- };
107
- var d = /* @__PURE__ */ ((t) => (t.AM = "AM", t.PM = "PM", t))(d || {});
108
- const he = ({
109
- initialTime: t,
110
- inputProps: i,
111
- minuteInterval: n = 5,
112
- onTimeChange: l,
113
- onClose: u,
114
- placement: f = "bottom",
115
- ["data-testid"]: a = "kibble-timepicker"
116
- }) => {
117
- const c = V({ recipe: z })(), [r, A] = k(!1), [M, O] = k(t), [g, _] = k(), [m, $] = k(), [h, y] = k(), D = R(() => M ? Z(M, "h:mm aa") : "", [M]), v = (e) => {
118
- const s = e.toString();
119
- return s.length === 1 ? `0${s}` : s;
120
- }, E = R(() => [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((e) => e.toString()), []), B = R(() => {
121
- const e = [];
122
- for (let s = 0; s < 60; s += n)
123
- e.push(s);
124
- return e.map(v);
125
- }, [n]), L = [d.AM, d.PM], p = b(
126
- (e, s, j) => {
127
- const P = e || "12", Y = s || "00", N = j || "AM";
128
- let w = 0;
129
- e || _("12"), s || $("00"), j || y("AM"), N === d.PM && Number(P) < 12 && (w = 12), N === d.AM && Number(P) === 12 && (w = -12);
130
- const G = Number(P) + w, I = (/* @__PURE__ */ new Date()).setHours(G, Number(Y), 0, 0), H = new Date(I);
131
- O(H), l && l(H);
132
- },
133
- [l]
134
- ), W = b(
135
- (e) => {
136
- _(e), p(e, m, h);
137
- },
138
- [p, h, m]
139
- ), q = b(
140
- (e) => {
141
- $(e), p(g, e, h);
142
- },
143
- [p, g, h]
144
- ), F = b(
145
- (e) => {
146
- y(e), p(g, m, e);
147
- },
148
- [p, g, m]
149
- );
150
- return T(() => {
151
- if (t) {
152
- const e = new Date(t), j = e.getHours() % 12 || 12;
153
- O(t), _(j.toString()), $(e.getMinutes().toString()), y(e.getHours() > 11 ? d.PM : d.AM);
154
- }
155
- }, [t]), /* @__PURE__ */ o.jsx(
156
- Q,
157
- {
158
- open: r,
159
- onOpenChange: ({ open: e }) => {
160
- A(e), !e && u && u(M);
161
- },
162
- anchor: /* @__PURE__ */ o.jsx(S, { className: "TimePicker__Trigger", "data-testid": `${a}-trigger`, css: c.trigger, children: /* @__PURE__ */ o.jsx(
163
- K,
164
- {
165
- placeholder: "12:00 AM",
166
- rightElement: /* @__PURE__ */ o.jsx(U, { size: X(i?.size || "md"), name: "clock" }),
167
- value: D,
168
- readOnly: !0,
169
- cursor: "pointer",
170
- ...i,
171
- ...r && { "data-focus": "true" }
172
- }
173
- ) }),
174
- contentProps: { w: "max-content" },
175
- placement: f,
176
- variant: i?.onContrast ? "contrast" : "default",
177
- showArrow: !1,
178
- children: /* @__PURE__ */ o.jsxs(S, { className: "TimePicker__Container", "data-testid": `${a}-container`, css: c.container, children: [
179
- /* @__PURE__ */ o.jsx(
180
- C,
181
- {
182
- options: E,
183
- optionType: "hour",
184
- selectedValue: g,
185
- onClick: W,
186
- open: r,
187
- "data-testid": `${a}-hour-list`
188
- }
189
- ),
190
- /* @__PURE__ */ o.jsx(
191
- C,
192
- {
193
- options: B,
194
- optionType: "minute",
195
- selectedValue: m ? v(m) : void 0,
196
- onClick: q,
197
- open: r,
198
- "data-testid": `${a}-minute-list`
199
- }
200
- ),
201
- /* @__PURE__ */ o.jsx(
202
- C,
203
- {
204
- options: L,
205
- optionType: "meridiem",
206
- selectedValue: h,
207
- onClick: F,
208
- open: r,
209
- "data-testid": `${a}-meridiem-list`
210
- }
211
- )
212
- ] })
213
- }
214
- );
215
- };
216
- export {
217
- d as M,
218
- he as T
219
- };
220
- //# sourceMappingURL=timePicker.component-BCMX6aqb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timePicker.component-BCMX6aqb.js","sources":["../../src/components/TimePicker/components/TimeOption/timeOption.recipe.ts","../../src/components/TimePicker/components/TimeOption/timeOption.component.tsx","../../src/components/TimePicker/timePicker.recipe.ts","../../src/components/TimePicker/components/TimeList/timeList.component.tsx","../../src/components/TimePicker/timePicker.types.ts","../../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import { defineRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timeOptionRecipe = defineRecipe({\n base: {\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: 'sm',\n px: 3,\n py: 1,\n textAlign: 'center',\n },\n variants: {\n selected: {\n true: {\n background: 'background.secondary',\n color: 'text.contrast',\n _hover: {\n background: 'background.secondary.hover',\n },\n },\n false: {\n background: 'background',\n color: 'text.subtle',\n _hover: {\n background: 'background.secondaryAlpha.hover',\n },\n },\n },\n },\n defaultVariants: {\n selected: false,\n },\n});\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { useRecipe } from '@chakra-ui/react/styled-system';\nimport { timeOptionRecipe } from './timeOption.recipe';\n\ninterface TimeOptionProps {\n /** Ref to the option component. */\n innerRef?: React.Ref<HTMLDivElement | null> | null;\n /** Callback function to be called when the option is clicked. */\n onClick: (selectedValue: string) => void;\n /** If true, the option will be selected. */\n selected: boolean;\n /** Value of the option. */\n value: string;\n /** Data test id for the option.\n * @default kibble-timepicker-option\n */\n 'data-testid'?: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\n ['data-testid']: dataTestId = 'kibble-timepicker-option',\n}: TimeOptionProps): React.JSX.Element => {\n const recipe = useRecipe({ recipe: timeOptionRecipe });\n const styles = recipe({ selected });\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || '';\n onClick(selectedValue);\n },\n [onClick],\n );\n\n return (\n <Box className=\"TimePicker__Option\" data-testid={dataTestId} ref={innerRef} onClick={handleClick} css={styles}>\n {value}\n </Box>\n );\n};\n","import { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timePickerRecipe = defineSlotRecipe({\n slots: ['trigger', 'container', 'list'],\n base: {\n trigger: {\n width: '100%',\n },\n container: {\n display: 'flex',\n gap: 1.5,\n height: '186px',\n overflow: 'hidden',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n overflowY: 'auto',\n '&::webkit-scrollbar': {\n display: 'none',\n },\n },\n },\n});\n","import React, { useEffect, useRef } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeOption } from '../TimeOption/timeOption.component';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from '../../timePicker.recipe';\n\ninterface ScrollContainerProps {\n /** Options to display in the list. */\n options: string[];\n /** Type of the option. */\n optionType: 'hour' | 'minute' | 'meridiem';\n /** Selected value of the list. */\n selectedValue?: string;\n /** Callback function to be called when the option is clicked. */\n onClick: (value: string) => void;\n /** Determines if the list is open. */\n open: boolean;\n /** Data test id for the list.\n * @default kibble-timepicker-list\n */\n 'data-testid'?: string;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n ['data-testid']: dataTestId = 'kibble-timepicker-list',\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && itemRef.current) {\n requestAnimationFrame(() => {\n if (itemRef.current) {\n itemRef.current.scrollIntoView({ block: 'center' });\n }\n });\n }\n }, [open, selectedValue]);\n\n return (\n <Box className=\"TimePicker__List\" data-testid={`${dataTestId}-${optionType}-list`} css={styles.list}>\n {options.map((option) => {\n const isSelected = option === selectedValue;\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={isSelected ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={`${dataTestId}-${optionType}-option-${option}`}\n />\n );\n })}\n </Box>\n );\n};\n","export enum Meridiem {\n AM = 'AM',\n PM = 'PM',\n}\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { TextInput, TextInputProps } from 'components/TextInput/textInput.component';\nimport { Popover } from 'components/Popover/popover.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { useIconTextSizeMap } from 'hooks/useIconTextSizeMap';\nimport format from 'date-fns/format';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeList } from './components/TimeList/timeList.component';\nimport { Meridiem } from './timePicker.types';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from './timePicker.recipe';\nimport { Placement } from 'shared/types/placement';\n\nexport interface TimePickerProps {\n /** Initial time to be displayed in the input field. */\n initialTime?: Date;\n /** Props to customize the input field. See `TextInput` for more information. */\n inputProps?: Omit<TextInputProps, 'onChange' | 'value' | 'isClearable' | 'onClear'>;\n /**\n * Interval of minutes to be displayed in the dropdown.\n * @default 5\n */\n minuteInterval?: number;\n /** Callback function triggered when the time is changed. */\n onTimeChange?: (time: Date) => void;\n /** Callback function triggered when the time picker is closed. */\n onClose?: (time?: Date) => void;\n /**\n * Placement of the dropdown relative to the input field.\n * @default bottom\n */\n placement?: Placement;\n /**\n * Data test id for the time picker.\n * @default kibble-timepicker\n */\n 'data-testid'?: string;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n onClose,\n placement = 'bottom',\n ['data-testid']: dataTestId = 'kibble-timepicker',\n}: TimePickerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const [isOpen, setIsOpen] = useState(false);\n const [selectedTime, setSelectedTime] = useState(initialTime);\n const [selectedHour, setSelectedHour] = useState<string | undefined>();\n const [selectedMinute, setSelectedMinute] = useState<string | undefined>();\n const [selectedMeridiem, setSelectedMeridiem] = useState<string | undefined>();\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return '';\n return format(selectedTime, 'h:mm aa');\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) => hour.toString());\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || '12';\n const _minute = minute || '00';\n const _meridiem = meridiem || 'AM';\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour('12');\n }\n if (!minute) {\n setSelectedMinute('00');\n }\n if (!meridiem) {\n setSelectedMeridiem('AM');\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n useEffect(() => {\n // Set default selections based on value passed in\n if (initialTime) {\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n const adjustedHours = hours % 12 || 12;\n\n setSelectedTime(initialTime);\n setSelectedHour(adjustedHours.toString());\n setSelectedMinute(localTime.getMinutes().toString());\n setSelectedMeridiem(localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM);\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => {\n setIsOpen(open);\n if (!open && onClose) {\n onClose(selectedTime);\n }\n }}\n anchor={\n <Box className=\"TimePicker__Trigger\" data-testid={`${dataTestId}-trigger`} css={styles.trigger}>\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={<Icon size={useIconTextSizeMap(inputProps?.size || 'md')} name=\"clock\" />}\n value={formattedTime}\n readOnly\n cursor=\"pointer\"\n {...inputProps}\n {...(isOpen && { 'data-focus': 'true' })}\n />\n </Box>\n }\n contentProps={{ w: 'max-content' }}\n placement={placement}\n variant={inputProps?.onContrast ? 'contrast' : 'default'}\n showArrow={false}\n >\n <Box className=\"TimePicker__Container\" data-testid={`${dataTestId}-container`} css={styles.container}>\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n data-testid={`${dataTestId}-hour-list`}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={selectedMinute ? formatNumber(selectedMinute) : undefined}\n onClick={handleMinuteClick}\n open={isOpen}\n data-testid={`${dataTestId}-minute-list`}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n data-testid={`${dataTestId}-meridiem-list`}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","dataTestId","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","useEffect","option","isSelected","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","onClose","placement","isOpen","setIsOpen","useState","selectedTime","setSelectedTime","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","useMemo","format","formatNumber","number","formattedValue","hourOptions","hour","minuteOptions","minutes","i","meridiemOptions","handleTimeChange","minute","meridiem","_hour","_minute","_meridiem","meridiemAdjustment","hours","time","date","handleHourClick","handleMinuteClick","handleMeridiemClick","localTime","adjustedHours","Popover","TextInput","Icon","useIconTextSizeMap","jsxs"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const n=require("./jsx-runtime-BjDatQAs.js"),t=require("react"),Y=require("./textInput.component-CwTc0h_F.js"),G=require("./popover.component-DTjA1GSd.js"),J=require("./icon.component-B1hr5lLa.js"),K=require("./useIconTextSizeMap-BXmABb54.js"),Q=require("./format-CK7Imh-5.js"),j=require("./index-BQRnVsAg.js"),v=require("./config-jChwZPSv.js"),U=require("./use-recipe-DaPWl_pL.js"),O=require("./create-slot-recipe-context-HXE1VazG.js"),X=v.defineRecipe({base:{borderRadius:"4px",cursor:"pointer",fontSize:"sm",px:3,py:1,textAlign:"center"},variants:{selected:{true:{background:"background.secondary",color:"text.contrast",_hover:{background:"background.secondary.hover"}},false:{background:"background",color:"text.subtle",_hover:{background:"background.secondaryAlpha.hover"}}}},defaultVariants:{selected:!1}}),Z=({value:s,innerRef:i,onClick:c,selected:d,["data-testid"]:m="kibble-timepicker-option"})=>{const a=U.useRecipe({recipe:X})({selected:d}),b=t.useCallback(u=>{const r=u.currentTarget.textContent||"";c(r)},[c]);return n.jsxRuntimeExports.jsx(j.Box,{className:"TimePicker__Option","data-testid":m,ref:i,onClick:b,css:a,children:s})},N=v.defineSlotRecipe({slots:["trigger","container","list"],base:{trigger:{width:"100%"},container:{display:"flex",gap:1.5,height:"186px",overflow:"hidden"},list:{display:"flex",flexDirection:"column",gap:1,overflowY:"auto","&::webkit-scrollbar":{display:"none"}}}}),$=({options:s,optionType:i,selectedValue:c,onClick:d,open:m=!1,["data-testid"]:f="kibble-timepicker-list"})=>{const b=O.useSlotRecipe({recipe:N})(),u=t.useRef(null);return t.useEffect(()=>{m&&u.current&&requestAnimationFrame(()=>{u.current&&u.current.scrollIntoView({block:"center"})})},[m,c]),n.jsxRuntimeExports.jsx(j.Box,{className:"TimePicker__List","data-testid":`${f}-${i}-list`,css:b.list,children:s.map(r=>{const M=r===c;return n.jsxRuntimeExports.jsx(Z,{innerRef:M?u:null,value:r,selected:r===c,onClick:d,"data-testid":`${f}-${i}-option-${r}`},`${i}-option-${r}`)})})};var l=(s=>(s.AM="AM",s.PM="PM",s))(l||{});const ee=({initialTime:s,inputProps:i,minuteInterval:c=5,onTimeChange:d,onClose:m,placement:f="bottom",["data-testid"]:a="kibble-timepicker"})=>{const u=O.useSlotRecipe({recipe:N})(),[r,M]=t.useState(!1),[h,q]=t.useState(s),[k,S]=t.useState(),[p,_]=t.useState(),[g,C]=t.useState(),T=t.useMemo(()=>h?Q.format(h,"h:mm aa"):"",[h]),y=e=>{const o=e.toString();return o.length===1?`0${o}`:o},H=t.useMemo(()=>[12,1,2,3,4,5,6,7,8,9,10,11].map(e=>e.toString()),[]),z=t.useMemo(()=>{const e=[];for(let o=0;o<60;o+=c)e.push(o);return e.map(y)},[c]),V=[l.AM,l.PM],x=t.useCallback((e,o,R)=>{const E=e||"12",F=o||"00",P=R||"AM";let A=0;e||S("12"),o||_("00"),R||C("AM"),P===l.PM&&Number(E)<12&&(A=12),P===l.AM&&Number(E)===12&&(A=-12);const I=Number(E)+A,W=new Date().setHours(I,Number(F),0,0),w=new Date(W);q(w),d&&d(w)},[d]),B=t.useCallback(e=>{S(e),x(e,p,g)},[x,g,p]),D=t.useCallback(e=>{_(e),x(k,e,g)},[x,k,g]),L=t.useCallback(e=>{C(e),x(k,p,e)},[x,k,p]);return t.useEffect(()=>{if(s){const e=new Date(s),R=e.getHours()%12||12;q(s),S(R.toString()),_(e.getMinutes().toString()),C(e.getHours()>11?l.PM:l.AM)}},[s]),n.jsxRuntimeExports.jsx(G.Popover,{open:r,onOpenChange:({open:e})=>{M(e),!e&&m&&m(h)},anchor:n.jsxRuntimeExports.jsx(j.Box,{className:"TimePicker__Trigger","data-testid":`${a}-trigger`,css:u.trigger,children:n.jsxRuntimeExports.jsx(Y.WrappedTextInput,{placeholder:"12:00 AM",rightElement:n.jsxRuntimeExports.jsx(J.Icon,{size:K.useIconTextSizeMap(i?.size||"md"),name:"clock"}),value:T,readOnly:!0,cursor:"pointer",...i,...r&&{"data-focus":"true"}})}),contentProps:{w:"max-content"},placement:f,variant:i?.onContrast?"contrast":"default",showArrow:!1,children:n.jsxRuntimeExports.jsxs(j.Box,{className:"TimePicker__Container","data-testid":`${a}-container`,css:u.container,children:[n.jsxRuntimeExports.jsx($,{options:H,optionType:"hour",selectedValue:k,onClick:B,open:r,"data-testid":`${a}-hour-list`}),n.jsxRuntimeExports.jsx($,{options:z,optionType:"minute",selectedValue:p?y(p):void 0,onClick:D,open:r,"data-testid":`${a}-minute-list`}),n.jsxRuntimeExports.jsx($,{options:V,optionType:"meridiem",selectedValue:g,onClick:L,open:r,"data-testid":`${a}-meridiem-list`})]})})};exports.Meridiem=l;exports.TimePicker=ee;
2
- //# sourceMappingURL=timePicker.component-D5hw80VV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timePicker.component-D5hw80VV.js","sources":["../../src/components/TimePicker/components/TimeOption/timeOption.recipe.ts","../../src/components/TimePicker/components/TimeOption/timeOption.component.tsx","../../src/components/TimePicker/timePicker.recipe.ts","../../src/components/TimePicker/components/TimeList/timeList.component.tsx","../../src/components/TimePicker/timePicker.types.ts","../../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import { defineRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timeOptionRecipe = defineRecipe({\n base: {\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: 'sm',\n px: 3,\n py: 1,\n textAlign: 'center',\n },\n variants: {\n selected: {\n true: {\n background: 'background.secondary',\n color: 'text.contrast',\n _hover: {\n background: 'background.secondary.hover',\n },\n },\n false: {\n background: 'background',\n color: 'text.subtle',\n _hover: {\n background: 'background.secondaryAlpha.hover',\n },\n },\n },\n },\n defaultVariants: {\n selected: false,\n },\n});\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { useRecipe } from '@chakra-ui/react/styled-system';\nimport { timeOptionRecipe } from './timeOption.recipe';\n\ninterface TimeOptionProps {\n /** Ref to the option component. */\n innerRef?: React.Ref<HTMLDivElement | null> | null;\n /** Callback function to be called when the option is clicked. */\n onClick: (selectedValue: string) => void;\n /** If true, the option will be selected. */\n selected: boolean;\n /** Value of the option. */\n value: string;\n /** Data test id for the option.\n * @default kibble-timepicker-option\n */\n 'data-testid'?: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\n ['data-testid']: dataTestId = 'kibble-timepicker-option',\n}: TimeOptionProps): React.JSX.Element => {\n const recipe = useRecipe({ recipe: timeOptionRecipe });\n const styles = recipe({ selected });\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || '';\n onClick(selectedValue);\n },\n [onClick],\n );\n\n return (\n <Box className=\"TimePicker__Option\" data-testid={dataTestId} ref={innerRef} onClick={handleClick} css={styles}>\n {value}\n </Box>\n );\n};\n","import { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timePickerRecipe = defineSlotRecipe({\n slots: ['trigger', 'container', 'list'],\n base: {\n trigger: {\n width: '100%',\n },\n container: {\n display: 'flex',\n gap: 1.5,\n height: '186px',\n overflow: 'hidden',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n overflowY: 'auto',\n '&::webkit-scrollbar': {\n display: 'none',\n },\n },\n },\n});\n","import React, { useEffect, useRef } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeOption } from '../TimeOption/timeOption.component';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from '../../timePicker.recipe';\n\ninterface ScrollContainerProps {\n /** Options to display in the list. */\n options: string[];\n /** Type of the option. */\n optionType: 'hour' | 'minute' | 'meridiem';\n /** Selected value of the list. */\n selectedValue?: string;\n /** Callback function to be called when the option is clicked. */\n onClick: (value: string) => void;\n /** Determines if the list is open. */\n open: boolean;\n /** Data test id for the list.\n * @default kibble-timepicker-list\n */\n 'data-testid'?: string;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n ['data-testid']: dataTestId = 'kibble-timepicker-list',\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && itemRef.current) {\n requestAnimationFrame(() => {\n if (itemRef.current) {\n itemRef.current.scrollIntoView({ block: 'center' });\n }\n });\n }\n }, [open, selectedValue]);\n\n return (\n <Box className=\"TimePicker__List\" data-testid={`${dataTestId}-${optionType}-list`} css={styles.list}>\n {options.map((option) => {\n const isSelected = option === selectedValue;\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={isSelected ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={`${dataTestId}-${optionType}-option-${option}`}\n />\n );\n })}\n </Box>\n );\n};\n","export enum Meridiem {\n AM = 'AM',\n PM = 'PM',\n}\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { TextInput, TextInputProps } from 'components/TextInput/textInput.component';\nimport { Popover } from 'components/Popover/popover.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { useIconTextSizeMap } from 'hooks/useIconTextSizeMap';\nimport format from 'date-fns/format';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeList } from './components/TimeList/timeList.component';\nimport { Meridiem } from './timePicker.types';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from './timePicker.recipe';\nimport { Placement } from 'shared/types/placement';\n\nexport interface TimePickerProps {\n /** Initial time to be displayed in the input field. */\n initialTime?: Date;\n /** Props to customize the input field. See `TextInput` for more information. */\n inputProps?: Omit<TextInputProps, 'onChange' | 'value' | 'isClearable' | 'onClear'>;\n /**\n * Interval of minutes to be displayed in the dropdown.\n * @default 5\n */\n minuteInterval?: number;\n /** Callback function triggered when the time is changed. */\n onTimeChange?: (time: Date) => void;\n /** Callback function triggered when the time picker is closed. */\n onClose?: (time?: Date) => void;\n /**\n * Placement of the dropdown relative to the input field.\n * @default bottom\n */\n placement?: Placement;\n /**\n * Data test id for the time picker.\n * @default kibble-timepicker\n */\n 'data-testid'?: string;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n onClose,\n placement = 'bottom',\n ['data-testid']: dataTestId = 'kibble-timepicker',\n}: TimePickerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const [isOpen, setIsOpen] = useState(false);\n const [selectedTime, setSelectedTime] = useState(initialTime);\n const [selectedHour, setSelectedHour] = useState<string | undefined>();\n const [selectedMinute, setSelectedMinute] = useState<string | undefined>();\n const [selectedMeridiem, setSelectedMeridiem] = useState<string | undefined>();\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return '';\n return format(selectedTime, 'h:mm aa');\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) => hour.toString());\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || '12';\n const _minute = minute || '00';\n const _meridiem = meridiem || 'AM';\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour('12');\n }\n if (!minute) {\n setSelectedMinute('00');\n }\n if (!meridiem) {\n setSelectedMeridiem('AM');\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n useEffect(() => {\n // Set default selections based on value passed in\n if (initialTime) {\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n const adjustedHours = hours % 12 || 12;\n\n setSelectedTime(initialTime);\n setSelectedHour(adjustedHours.toString());\n setSelectedMinute(localTime.getMinutes().toString());\n setSelectedMeridiem(localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM);\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => {\n setIsOpen(open);\n if (!open && onClose) {\n onClose(selectedTime);\n }\n }}\n anchor={\n <Box className=\"TimePicker__Trigger\" data-testid={`${dataTestId}-trigger`} css={styles.trigger}>\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={<Icon size={useIconTextSizeMap(inputProps?.size || 'md')} name=\"clock\" />}\n value={formattedTime}\n readOnly\n cursor=\"pointer\"\n {...inputProps}\n {...(isOpen && { 'data-focus': 'true' })}\n />\n </Box>\n }\n contentProps={{ w: 'max-content' }}\n placement={placement}\n variant={inputProps?.onContrast ? 'contrast' : 'default'}\n showArrow={false}\n >\n <Box className=\"TimePicker__Container\" data-testid={`${dataTestId}-container`} css={styles.container}>\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n data-testid={`${dataTestId}-hour-list`}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={selectedMinute ? formatNumber(selectedMinute) : undefined}\n onClick={handleMinuteClick}\n open={isOpen}\n data-testid={`${dataTestId}-minute-list`}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n data-testid={`${dataTestId}-meridiem-list`}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","dataTestId","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","useEffect","option","isSelected","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","onClose","placement","isOpen","setIsOpen","useState","selectedTime","setSelectedTime","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","useMemo","format","formatNumber","number","formattedValue","hourOptions","hour","minuteOptions","minutes","i","meridiemOptions","handleTimeChange","minute","meridiem","_hour","_minute","_meridiem","meridiemAdjustment","hours","time","date","handleHourClick","handleMinuteClick","handleMeridiemClick","localTime","adjustedHours","Popover","TextInput","Icon","useIconTextSizeMap","jsxs"],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
- import { B as o } from "./index-9BerxEcw.js";
3
- import { T as i } from "./timePicker.component-BCMX6aqb.js";
4
- import { F as n } from "./flex-CX-8gE9T.js";
5
- const l = ({
6
- endTimePickerProps: r,
7
- separator: s = "-",
8
- startTimePickerProps: m,
9
- ["data-testid"]: t = "kibble-time-range",
10
- ...a
11
- }) => /* @__PURE__ */ e.jsxs(n, { className: "TimeRange", "data-testid": t, ...a, children: [
12
- /* @__PURE__ */ e.jsx(i, { ...m, "data-testid": `${t}-start-time-picker` }),
13
- /* @__PURE__ */ e.jsx(o, { alignSelf: "center", mx: 1, children: s }),
14
- /* @__PURE__ */ e.jsx(i, { ...r, "data-testid": `${t}-end-time-picker` })
15
- ] });
16
- export {
17
- l as T
18
- };
19
- //# sourceMappingURL=timeRange.component-BZHpZeAX.js.map
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("./jsx-runtime-BjDatQAs.js"),m=require("./index-BQRnVsAg.js"),t=require("./timePicker.component-D5hw80VV.js"),c=require("./flex-BOU6tYUd.js"),a=({endTimePickerProps:s,separator:r="-",startTimePickerProps:n,["data-testid"]:i="kibble-time-range",...x})=>e.jsxRuntimeExports.jsxs(c.Flex,{className:"TimeRange","data-testid":i,...x,children:[e.jsxRuntimeExports.jsx(t.TimePicker,{...n,"data-testid":`${i}-start-time-picker`}),e.jsxRuntimeExports.jsx(m.Box,{alignSelf:"center",mx:1,children:r}),e.jsxRuntimeExports.jsx(t.TimePicker,{...s,"data-testid":`${i}-end-time-picker`})]});exports.TimeRange=a;
2
- //# sourceMappingURL=timeRange.component-D3Db8lvh.js.map