@deepnoid/ui 0.1.109 → 0.1.110

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 (59) hide show
  1. package/.turbo/turbo-build.log +446 -466
  2. package/dist/chunk-CV6IVDL6.mjs +356 -0
  3. package/dist/{chunk-2EECKYM4.mjs → chunk-YCLB7ZNK.mjs} +1 -1
  4. package/dist/{chunk-7VS6YXNB.mjs → chunk-ZWLRSZTC.mjs} +2 -2
  5. package/dist/components/charts/circularProgress.js +2 -2
  6. package/dist/components/charts/circularProgress.mjs +1 -1
  7. package/dist/components/charts/index.js +2 -2
  8. package/dist/components/charts/index.mjs +1 -1
  9. package/dist/components/picker/index.d.mts +4 -0
  10. package/dist/components/picker/index.d.ts +4 -0
  11. package/dist/components/{dateTimePicker/calendar.js → picker/index.js} +716 -173
  12. package/dist/components/{dateTimePicker/calendar.mjs → picker/index.mjs} +7 -6
  13. package/dist/components/picker/timePicker.d.mts +251 -0
  14. package/dist/components/picker/timePicker.d.ts +251 -0
  15. package/dist/components/{dateTimePicker/dateTimePicker.js → picker/timePicker.js} +617 -904
  16. package/dist/components/{dateTimePicker → picker}/timePicker.mjs +7 -6
  17. package/dist/components/select/index.js +1 -1
  18. package/dist/components/select/index.mjs +1 -1
  19. package/dist/components/select/select.js +1 -1
  20. package/dist/components/select/select.mjs +1 -1
  21. package/dist/components/table/index.mjs +3 -3
  22. package/dist/components/table/table-body.mjs +3 -3
  23. package/dist/components/table/table-head.mjs +3 -3
  24. package/dist/components/table/table.mjs +3 -3
  25. package/dist/components/toast/index.mjs +2 -2
  26. package/dist/components/toast/use-toast.mjs +2 -2
  27. package/dist/index.d.mts +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.js +383 -777
  30. package/dist/index.mjs +41 -45
  31. package/package.json +1 -1
  32. package/dist/chunk-FWJ2ZKH6.mjs +0 -87
  33. package/dist/chunk-P732YGHO.mjs +0 -18
  34. package/dist/chunk-X5XJWJSO.mjs +0 -122
  35. package/dist/chunk-Y4W76B42.mjs +0 -210
  36. package/dist/chunk-ZSQQFMEC.mjs +0 -366
  37. package/dist/components/dateTimePicker/calendar.d.mts +0 -68
  38. package/dist/components/dateTimePicker/calendar.d.ts +0 -68
  39. package/dist/components/dateTimePicker/dateTimePicker.d.mts +0 -288
  40. package/dist/components/dateTimePicker/dateTimePicker.d.ts +0 -288
  41. package/dist/components/dateTimePicker/dateTimePicker.mjs +0 -23
  42. package/dist/components/dateTimePicker/index.d.mts +0 -4
  43. package/dist/components/dateTimePicker/index.d.ts +0 -4
  44. package/dist/components/dateTimePicker/index.js +0 -6040
  45. package/dist/components/dateTimePicker/index.mjs +0 -22
  46. package/dist/components/dateTimePicker/timePicker.d.mts +0 -11
  47. package/dist/components/dateTimePicker/timePicker.d.ts +0 -11
  48. package/dist/components/dateTimePicker/timePicker.js +0 -5417
  49. package/dist/components/dateTimePicker/useDateTimePicker.d.mts +0 -34
  50. package/dist/components/dateTimePicker/useDateTimePicker.d.ts +0 -34
  51. package/dist/components/dateTimePicker/useDateTimePicker.js +0 -117
  52. package/dist/components/dateTimePicker/useDateTimePicker.mjs +0 -9
  53. package/dist/components/dateTimePicker/util.d.mts +0 -4
  54. package/dist/components/dateTimePicker/util.d.ts +0 -4
  55. package/dist/components/dateTimePicker/util.js +0 -42
  56. package/dist/components/dateTimePicker/util.mjs +0 -10
  57. package/dist/{chunk-75HLCORR.mjs → chunk-BG7VAVOX.mjs} +0 -0
  58. package/dist/{chunk-2OK3VF75.mjs → chunk-U3O7RIXM.mjs} +3 -3
  59. package/dist/{chunk-IQYWSATB.mjs → chunk-X67ELNP6.mjs} +3 -3
@@ -0,0 +1,356 @@
1
+ "use client";
2
+ import {
3
+ select_default
4
+ } from "./chunk-YCLB7ZNK.mjs";
5
+ import {
6
+ Icon_default
7
+ } from "./chunk-33DLD2L6.mjs";
8
+ import {
9
+ mapPropsVariants
10
+ } from "./chunk-E3G5QXSH.mjs";
11
+ import {
12
+ tv
13
+ } from "./chunk-CDXBML6O.mjs";
14
+
15
+ // src/components/picker/timePicker.tsx
16
+ import { forwardRef, useCallback, useMemo, useState, useRef } from "react";
17
+ import { createPortal } from "react-dom";
18
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
19
+ var TimePicker = forwardRef((originalProps, ref) => {
20
+ const [props, variantProps] = mapPropsVariants(originalProps, timePickerStyle.variantKeys);
21
+ const {
22
+ classNames,
23
+ label,
24
+ errorMessage,
25
+ valueRange,
26
+ onChangeRange,
27
+ size,
28
+ selectClassNames,
29
+ placeholder = "",
30
+ ...inputProps
31
+ } = props;
32
+ const [selectedRange, setSelectedRange] = useState(
33
+ valueRange || { start: "", end: "" }
34
+ );
35
+ const [isPanelOpen, setIsPanelOpen] = useState(false);
36
+ const inputWrapperRef = useRef(null);
37
+ const panelWrapperRef = useRef(null);
38
+ const [panelPos, setPanelPos] = useState({ top: -9999, left: -9999 });
39
+ const displayValue = useMemo(() => {
40
+ if (selectedRange.start && selectedRange.end) {
41
+ return `${selectedRange.start} ~ ${selectedRange.end}`;
42
+ }
43
+ return "";
44
+ }, [selectedRange]);
45
+ const calculatePosition = useCallback(() => {
46
+ if (inputWrapperRef.current) {
47
+ const rect = inputWrapperRef.current.getBoundingClientRect();
48
+ setPanelPos({ top: rect.bottom + window.scrollY + 6, left: rect.left + window.scrollX });
49
+ }
50
+ }, []);
51
+ const handleFocusInput = () => {
52
+ calculatePosition();
53
+ setIsPanelOpen(true);
54
+ };
55
+ const handleInputBlur = () => {
56
+ setTimeout(() => setIsPanelOpen(false), 150);
57
+ };
58
+ const handleInputKeyDown = (e) => {
59
+ if (e.key === "Enter" || e.key === " ") {
60
+ e.preventDefault();
61
+ calculatePosition();
62
+ setIsPanelOpen((prev) => !prev);
63
+ } else if (e.key === "Escape") {
64
+ setIsPanelOpen(false);
65
+ }
66
+ };
67
+ const slots = useMemo(() => timePickerStyle({ ...variantProps }), [variantProps]);
68
+ const renderHourOptions = () => {
69
+ return Array.from({ length: 24 }, (_, i) => {
70
+ const value = String(i).padStart(2, "0");
71
+ return { label: value, value };
72
+ });
73
+ };
74
+ const renderMinuteOptions = () => {
75
+ return Array.from({ length: 60 }, (_, i) => {
76
+ const value = String(i).padStart(2, "0");
77
+ return { label: value, value };
78
+ });
79
+ };
80
+ const defaultSelectClassNames = {
81
+ selectWrapper: "!w-[80px]",
82
+ optionsWrapper: "max-h-[300px]"
83
+ };
84
+ const handleRangeChange = (type, option) => {
85
+ const [shRaw, smRaw] = selectedRange.start.split(":");
86
+ const [ehRaw, emRaw] = selectedRange.end.split(":");
87
+ const sh = (shRaw != null ? shRaw : "00").padStart(2, "0");
88
+ const sm = (smRaw != null ? smRaw : "00").padStart(2, "0");
89
+ const eh = (ehRaw != null ? ehRaw : "00").padStart(2, "0");
90
+ const em = (emRaw != null ? emRaw : "00").padStart(2, "0");
91
+ const range = {
92
+ start: `${type === "startHour" ? option.value : sh}:${type === "startMinute" ? option.value : sm}`,
93
+ end: `${type === "endHour" ? option.value : eh}:${type === "endMinute" ? option.value : em}`
94
+ };
95
+ setSelectedRange(range);
96
+ onChangeRange == null ? void 0 : onChangeRange(range);
97
+ };
98
+ const mergedSelectClassNames = {
99
+ selectWrapper: (selectClassNames == null ? void 0 : selectClassNames.selectWrapper) || defaultSelectClassNames.selectWrapper,
100
+ optionsWrapper: (selectClassNames == null ? void 0 : selectClassNames.optionsWrapper) || defaultSelectClassNames.optionsWrapper
101
+ };
102
+ const getSelectValue = (timeString, part) => {
103
+ if (!timeString) return "00";
104
+ const [hour, minute] = timeString.split(":");
105
+ return part === "hour" ? hour || "00" : minute || "00";
106
+ };
107
+ const handleClearRange = () => {
108
+ const emptyRange = { start: "", end: "" };
109
+ setSelectedRange(emptyRange);
110
+ onChangeRange == null ? void 0 : onChangeRange(emptyRange);
111
+ };
112
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
113
+ /* @__PURE__ */ jsxs("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
114
+ label && /* @__PURE__ */ jsx("label", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label }),
115
+ /* @__PURE__ */ jsxs("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
116
+ /* @__PURE__ */ jsxs("div", { ref: inputWrapperRef, className: slots.inputWrapper({ class: classNames == null ? void 0 : classNames.inputWrapper }), children: [
117
+ /* @__PURE__ */ jsx(
118
+ "input",
119
+ {
120
+ ...inputProps,
121
+ ref,
122
+ className: slots.input({ class: classNames == null ? void 0 : classNames.input }),
123
+ type: "text",
124
+ value: displayValue,
125
+ placeholder,
126
+ readOnly: true,
127
+ onFocus: handleFocusInput,
128
+ onBlur: handleInputBlur,
129
+ onKeyDown: handleInputKeyDown
130
+ }
131
+ ),
132
+ /* @__PURE__ */ jsxs("div", { className: slots.icon({ class: classNames == null ? void 0 : classNames.icon }), children: [
133
+ displayValue && /* @__PURE__ */ jsx(
134
+ Icon_default,
135
+ {
136
+ name: "close",
137
+ className: "text-neutral-light hover:text-neutral-main mr-[5px] cursor-pointer",
138
+ onClick: (e) => {
139
+ e.stopPropagation();
140
+ handleClearRange();
141
+ }
142
+ }
143
+ ),
144
+ /* @__PURE__ */ jsx(
145
+ Icon_default,
146
+ {
147
+ name: "clock",
148
+ className: "cursor-pointer",
149
+ onClick: () => {
150
+ calculatePosition();
151
+ setIsPanelOpen((v) => !v);
152
+ }
153
+ }
154
+ )
155
+ ] })
156
+ ] }),
157
+ errorMessage && /* @__PURE__ */ jsx("p", { className: slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage }), children: errorMessage })
158
+ ] })
159
+ ] }),
160
+ isPanelOpen && createPortal(
161
+ /* @__PURE__ */ jsx(
162
+ "div",
163
+ {
164
+ ref: panelWrapperRef,
165
+ className: slots.optionsWrapper({ class: classNames == null ? void 0 : classNames.optionsWrapper }),
166
+ style: {
167
+ position: "absolute",
168
+ top: panelPos.top,
169
+ left: panelPos.left,
170
+ zIndex: 1e3
171
+ },
172
+ onMouseDown: (e) => e.preventDefault(),
173
+ children: /* @__PURE__ */ jsxs("div", { className: "bg-body-background text-neutral-main flex items-center gap-[5px] p-[10px]", children: [
174
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[5px]", children: [
175
+ /* @__PURE__ */ jsx(
176
+ select_default,
177
+ {
178
+ options: renderHourOptions(),
179
+ value: getSelectValue(selectedRange.start, "hour"),
180
+ onChange: (options) => {
181
+ if (options[0]) handleRangeChange("startHour", options[0]);
182
+ },
183
+ classNames: mergedSelectClassNames
184
+ }
185
+ ),
186
+ /* @__PURE__ */ jsx("span", { children: ":" }),
187
+ /* @__PURE__ */ jsx(
188
+ select_default,
189
+ {
190
+ options: renderMinuteOptions(),
191
+ value: getSelectValue(selectedRange.start, "minute"),
192
+ onChange: (options) => {
193
+ if (options[0]) handleRangeChange("startMinute", options[0]);
194
+ },
195
+ classNames: mergedSelectClassNames
196
+ }
197
+ )
198
+ ] }),
199
+ /* @__PURE__ */ jsx("span", { children: "~" }),
200
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[5px]", children: [
201
+ /* @__PURE__ */ jsx(
202
+ select_default,
203
+ {
204
+ options: renderHourOptions(),
205
+ value: getSelectValue(selectedRange.end, "hour"),
206
+ onChange: (options) => {
207
+ if (options[0]) handleRangeChange("endHour", options[0]);
208
+ },
209
+ classNames: mergedSelectClassNames
210
+ }
211
+ ),
212
+ /* @__PURE__ */ jsx("span", { children: ":" }),
213
+ /* @__PURE__ */ jsx(
214
+ select_default,
215
+ {
216
+ options: renderMinuteOptions(),
217
+ value: getSelectValue(selectedRange.end, "minute"),
218
+ onChange: (options) => {
219
+ if (options[0]) handleRangeChange("endMinute", options[0]);
220
+ },
221
+ classNames: mergedSelectClassNames
222
+ }
223
+ )
224
+ ] })
225
+ ] })
226
+ }
227
+ ),
228
+ document.body
229
+ )
230
+ ] });
231
+ });
232
+ TimePicker.displayName = "TimePicker";
233
+ var timePicker_default = TimePicker;
234
+ var timePickerStyle = tv({
235
+ slots: {
236
+ base: ["group/timepicker", "flex", "flex-col"],
237
+ label: ["flex", "items-center", "font-bold", "text-body-foreground", "min-w-[80px]"],
238
+ wrapper: ["flex", "flex-col"],
239
+ inputWrapper: [
240
+ "flex",
241
+ "items-center",
242
+ "justify-between",
243
+ "border",
244
+ "cursor-pointer",
245
+ "text-neutral-main",
246
+ "hover:bg-trans-soft",
247
+ "group-has-[p.error]/input:border-danger-main",
248
+ "group-has-[p.error]/input:bg-danger-soft",
249
+ "group-has-[p.error]/input:text-danger-main",
250
+ "group-has-[p.error]/input:hover:bg-danger-soft"
251
+ ],
252
+ input: [
253
+ "bg-transparent",
254
+ "w-full",
255
+ "outline-none",
256
+ "placeholder:text-neutral-main",
257
+ "text-body-foreground",
258
+ "group-has-[p.error]/input:text-danger-main",
259
+ "group-has-[p.error]/input:placeholder:text-danger-main",
260
+ "cursor-pointer"
261
+ ],
262
+ icon: ["flex", "items-center", "select-none", "text-body-foreground", "group-has-[p.error]/input:text-danger-main"],
263
+ optionsWrapper: ["border", "rounded", "bg-body-background", "shadow", "overflow-auto"],
264
+ errorMessage: ["text-danger-main", "mt-1", "text-sm"],
265
+ selectWrapper: []
266
+ },
267
+ variants: {
268
+ color: {
269
+ primary: {
270
+ icon: ["text-primary-main"]
271
+ },
272
+ secondary: {
273
+ icon: ["text-secondary-main"]
274
+ }
275
+ },
276
+ size: {
277
+ sm: {
278
+ base: ["text-sm", "gap-[4px]"],
279
+ label: ["text-sm"],
280
+ wrapper: ["gap-[4px]"],
281
+ inputWrapper: ["w-[240px]", "h-[24px]", "rounded-sm", "px-[4px]"],
282
+ input: ["text-sm"],
283
+ icon: ["text-sm"],
284
+ errorMessage: ["text-sm"]
285
+ },
286
+ md: {
287
+ base: ["text-md", "gap-[6px]"],
288
+ label: ["text-md"],
289
+ wrapper: ["gap-[6px]"],
290
+ inputWrapper: ["w-[240px]", "h-[32px]", "rounded-md", "px-[6px]"],
291
+ input: ["text-md"],
292
+ icon: ["text-md"],
293
+ errorMessage: ["text-sm"]
294
+ },
295
+ lg: {
296
+ base: ["text-lg", "gap-[8px]"],
297
+ label: ["text-lg"],
298
+ wrapper: ["gap-[8px]"],
299
+ inputWrapper: ["w-[240px]", "h-[40px]", "rounded-lg", "px-[8px]"],
300
+ input: ["text-lg"],
301
+ icon: ["text-lg"],
302
+ errorMessage: ["text-md"]
303
+ },
304
+ xl: {
305
+ base: ["text-xl", "gap-[10px]"],
306
+ label: ["text-xl"],
307
+ wrapper: ["gap-[10px]"],
308
+ inputWrapper: ["w-[240px]", "h-[50px]", "rounded-lg", "px-[10px]"],
309
+ input: ["text-xl"],
310
+ icon: ["text-xl"],
311
+ errorMessage: ["text-md"]
312
+ }
313
+ },
314
+ full: {
315
+ true: {
316
+ base: ["w-full"],
317
+ wrapper: ["w-full"],
318
+ inputWrapper: ["w-full"]
319
+ }
320
+ },
321
+ disabled: {
322
+ true: {
323
+ base: ["pointer-events-none"],
324
+ label: ["text-neutral-light"],
325
+ inputWrapper: [
326
+ "bg-neutral-soft",
327
+ "border-neutral-light",
328
+ "group-has-[p.error]/input:text-danger-light",
329
+ "group-has-[p.error]/input:bg-danger-soft",
330
+ "group-has-[p.error]/input:border-danger-light",
331
+ "cursor-not-allowed"
332
+ ],
333
+ input: [
334
+ "text-neutral-light",
335
+ "placeholder:text-neutral-light",
336
+ "group-has-[p.error]/input:text-danger-light",
337
+ "group-has-[p.error]/input:placeholder:text-danger-light",
338
+ "cursor-not-allowed"
339
+ ],
340
+ icon: ["text-neutral-light"],
341
+ errorMessage: ["text-danger-light"]
342
+ }
343
+ }
344
+ },
345
+ defaultVariants: {
346
+ color: "primary",
347
+ size: "md",
348
+ full: false,
349
+ disabled: false
350
+ }
351
+ });
352
+
353
+ export {
354
+ timePicker_default,
355
+ timePickerStyle
356
+ };
@@ -248,7 +248,7 @@ var select = tv({
248
248
  "group-has-[p.error]/select:text-danger-main",
249
249
  "group-has-[p.error]/select:placeholder:text-danger-main"
250
250
  ],
251
- optionsWrapper: ["border", "rounded", "bg-white", "shadow", "overflow-auto"],
251
+ optionsWrapper: ["border", "rounded", "bg-body-background", "shadow", "overflow-auto"],
252
252
  option: ["flex", "justify-between", "items-center", "cursor-pointer"],
253
253
  helperMessage: ["text-neutral-main"],
254
254
  errorMessage: ["text-danger-main"],
@@ -21,7 +21,7 @@ var CircularProgress = forwardRef((originalProps, ref) => {
21
21
  }
22
22
  ];
23
23
  const BAR_SIZE = 24;
24
- const OUTER_RADIUS = 88;
24
+ const OUTER_RADIUS = 75;
25
25
  const INNER_RADIUS = OUTER_RADIUS - BAR_SIZE;
26
26
  return /* @__PURE__ */ jsxs("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
27
27
  /* @__PURE__ */ jsxs("div", { className: "relative", style: { width: size, height: size }, children: [
@@ -42,7 +42,7 @@ var CircularProgress = forwardRef((originalProps, ref) => {
42
42
  {
43
43
  cx: size / 2,
44
44
  cy: size / 2,
45
- r: INNER_RADIUS + BAR_SIZE / 2,
45
+ r: OUTER_RADIUS,
46
46
  className: slots.background({ class: classNames == null ? void 0 : classNames.background }),
47
47
  fill: "currentColor"
48
48
  }
@@ -381,7 +381,7 @@ var CircularProgress = (0, import_react.forwardRef)((originalProps, ref) => {
381
381
  }
382
382
  ];
383
383
  const BAR_SIZE = 24;
384
- const OUTER_RADIUS = 88;
384
+ const OUTER_RADIUS = 75;
385
385
  const INNER_RADIUS = OUTER_RADIUS - BAR_SIZE;
386
386
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
387
387
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative", style: { width: size, height: size }, children: [
@@ -402,7 +402,7 @@ var CircularProgress = (0, import_react.forwardRef)((originalProps, ref) => {
402
402
  {
403
403
  cx: size / 2,
404
404
  cy: size / 2,
405
- r: INNER_RADIUS + BAR_SIZE / 2,
405
+ r: OUTER_RADIUS,
406
406
  className: slots.background({ class: classNames == null ? void 0 : classNames.background }),
407
407
  fill: "currentColor"
408
408
  }
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  circularProgress_default
4
- } from "../../chunk-7VS6YXNB.mjs";
4
+ } from "../../chunk-ZWLRSZTC.mjs";
5
5
  import "../../chunk-E3G5QXSH.mjs";
6
6
  import "../../chunk-CDXBML6O.mjs";
7
7
  import "../../chunk-AC6TWLRT.mjs";
@@ -386,7 +386,7 @@ var CircularProgress = (0, import_react.forwardRef)((originalProps, ref) => {
386
386
  }
387
387
  ];
388
388
  const BAR_SIZE = 24;
389
- const OUTER_RADIUS = 88;
389
+ const OUTER_RADIUS = 75;
390
390
  const INNER_RADIUS = OUTER_RADIUS - BAR_SIZE;
391
391
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
392
392
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative", style: { width: size, height: size }, children: [
@@ -407,7 +407,7 @@ var CircularProgress = (0, import_react.forwardRef)((originalProps, ref) => {
407
407
  {
408
408
  cx: size / 2,
409
409
  cy: size / 2,
410
- r: INNER_RADIUS + BAR_SIZE / 2,
410
+ r: OUTER_RADIUS,
411
411
  className: slots.background({ class: classNames == null ? void 0 : classNames.background }),
412
412
  fill: "currentColor"
413
413
  }
@@ -8,7 +8,7 @@ import {
8
8
  } from "../../chunk-GAZ472ZU.mjs";
9
9
  import {
10
10
  circularProgress_default
11
- } from "../../chunk-7VS6YXNB.mjs";
11
+ } from "../../chunk-ZWLRSZTC.mjs";
12
12
  import {
13
13
  radarChart_default
14
14
  } from "../../chunk-63KZGR73.mjs";
@@ -0,0 +1,4 @@
1
+ export { default as TimePicker, TimePickerProps } from './timePicker.mjs';
2
+ import 'tailwind-variants';
3
+ import 'react';
4
+ import '../../utils/types.mjs';
@@ -0,0 +1,4 @@
1
+ export { default as TimePicker, TimePickerProps } from './timePicker.js';
2
+ import 'tailwind-variants';
3
+ import 'react';
4
+ import '../../utils/types.js';