@itilite/lumina-ui 1.0.1-beta.4 → 1.0.2-alpha

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 (98) hide show
  1. package/dist/AdvancedDateRangePicker-ozItnkhp.d.mts +57 -0
  2. package/dist/AdvancedDateRangePicker-ozItnkhp.d.ts +57 -0
  3. package/dist/Table-BOq-_9Nr.d.mts +121 -0
  4. package/dist/Table-BOq-_9Nr.d.ts +121 -0
  5. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.d.mts +2 -0
  6. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.d.ts +2 -0
  7. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.js +791 -0
  8. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.mjs +11 -0
  9. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.d.mts +17 -0
  10. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.d.ts +17 -0
  11. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.js +370 -0
  12. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.mjs +8 -0
  13. package/dist/{Avatar.d.mts → atom/Avatar/Avatar.d.mts} +1 -9
  14. package/dist/{Avatar.d.ts → atom/Avatar/Avatar.d.ts} +1 -9
  15. package/dist/{Avatar.js → atom/Avatar/Avatar.js} +4 -2
  16. package/dist/{Avatar.mjs → atom/Avatar/Avatar.mjs} +2 -2
  17. package/dist/{Button.js → atom/Button/Button.js} +1 -1
  18. package/dist/{Button.mjs → atom/Button/Button.mjs} +2 -2
  19. package/dist/{Checkbox.mjs → atom/Checkbox/Checkbox.mjs} +2 -2
  20. package/dist/atom/LoadingSpinner/LoadingSpinner.d.mts +19 -0
  21. package/dist/atom/LoadingSpinner/LoadingSpinner.d.ts +19 -0
  22. package/dist/atom/LoadingSpinner/LoadingSpinner.js +90 -0
  23. package/dist/atom/LoadingSpinner/LoadingSpinner.mjs +9 -0
  24. package/dist/{Modal.d.mts → atom/Modal/Modal.d.mts} +1 -1
  25. package/dist/{Modal.d.ts → atom/Modal/Modal.d.ts} +1 -1
  26. package/dist/{Modal.js → atom/Modal/Modal.js} +1 -1
  27. package/dist/atom/Modal/Modal.mjs +10 -0
  28. package/dist/{Radio.mjs → atom/Radio/Radio.mjs} +2 -2
  29. package/dist/atom/RangePicker/Chevron.d.mts +13 -0
  30. package/dist/atom/RangePicker/Chevron.d.ts +13 -0
  31. package/dist/atom/RangePicker/Chevron.js +110 -0
  32. package/dist/atom/RangePicker/Chevron.mjs +7 -0
  33. package/dist/atom/RangePicker/RangePicker.d.mts +26 -0
  34. package/dist/atom/RangePicker/RangePicker.d.ts +26 -0
  35. package/dist/atom/RangePicker/RangePicker.js +1465 -0
  36. package/dist/atom/RangePicker/RangePicker.mjs +13 -0
  37. package/dist/atom/Select/Select.d.mts +40 -0
  38. package/dist/atom/Select/Select.d.ts +40 -0
  39. package/dist/atom/Select/Select.js +805 -0
  40. package/dist/atom/Select/Select.mjs +11 -0
  41. package/dist/atom/Slider/Slider.d.mts +34 -0
  42. package/dist/atom/Slider/Slider.d.ts +34 -0
  43. package/dist/atom/Slider/Slider.js +107 -0
  44. package/dist/atom/Slider/Slider.mjs +9 -0
  45. package/dist/{Switch.mjs → atom/Switch/Switch.mjs} +2 -2
  46. package/dist/atom/Table/Table.d.mts +3 -0
  47. package/dist/atom/Table/Table.d.ts +3 -0
  48. package/dist/atom/Table/Table.js +306 -0
  49. package/dist/atom/Table/Table.mjs +9 -0
  50. package/dist/atom/Tag/Tag.d.mts +6 -0
  51. package/dist/atom/Tag/Tag.d.ts +6 -0
  52. package/dist/atom/Tag/Tag.js +108 -0
  53. package/dist/atom/Tag/Tag.mjs +9 -0
  54. package/dist/{Tooltip.mjs → atom/Tooltip/Tooltip.mjs} +2 -2
  55. package/dist/chunk-4JX54OKI.mjs +627 -0
  56. package/dist/chunk-4VZB2KR2.mjs +51 -0
  57. package/dist/chunk-53O7JM5I.mjs +424 -0
  58. package/dist/{chunk-HISCHZ5H.mjs → chunk-AF2RKLH6.mjs} +1 -1
  59. package/dist/chunk-D3N7VFER.mjs +73 -0
  60. package/dist/chunk-GU5F7Z7I.mjs +681 -0
  61. package/dist/{chunk-X76GNSBB.mjs → chunk-IWO2Y5QX.mjs} +4 -2
  62. package/dist/chunk-J4YYP4IZ.mjs +0 -0
  63. package/dist/chunk-N2WTNCQU.mjs +66 -0
  64. package/dist/chunk-N4DPPZVJ.mjs +269 -0
  65. package/dist/chunk-PQ3B2FEB.mjs +249 -0
  66. package/dist/chunk-QKTMWS4J.mjs +43 -0
  67. package/dist/{chunk-N355RJGH.mjs → chunk-UQJ3BDM4.mjs} +1 -1
  68. package/dist/chunk-V3CHJHUX.mjs +424 -0
  69. package/dist/chunk-ZTRM4HZJ.mjs +53 -0
  70. package/dist/index.d.mts +18 -7
  71. package/dist/index.d.ts +18 -7
  72. package/dist/index.js +2461 -8
  73. package/dist/index.mjs +46 -12
  74. package/dist/molecules/UserProfile/UserProfile.d.mts +23 -0
  75. package/dist/molecules/UserProfile/UserProfile.d.ts +23 -0
  76. package/dist/molecules/UserProfile/UserProfile.js +243 -0
  77. package/dist/molecules/UserProfile/UserProfile.mjs +11 -0
  78. package/dist/styles.css +1795 -146
  79. package/dist/types-D4MD2w3_.d.mts +9 -0
  80. package/dist/types-D4MD2w3_.d.ts +9 -0
  81. package/dist/types-mhQmqhsR.d.mts +10 -0
  82. package/dist/types-mhQmqhsR.d.ts +10 -0
  83. package/package.json +8 -36
  84. package/dist/Modal.mjs +0 -10
  85. /package/dist/{Button.d.mts → atom/Button/Button.d.mts} +0 -0
  86. /package/dist/{Button.d.ts → atom/Button/Button.d.ts} +0 -0
  87. /package/dist/{Checkbox.d.mts → atom/Checkbox/Checkbox.d.mts} +0 -0
  88. /package/dist/{Checkbox.d.ts → atom/Checkbox/Checkbox.d.ts} +0 -0
  89. /package/dist/{Checkbox.js → atom/Checkbox/Checkbox.js} +0 -0
  90. /package/dist/{Radio.d.mts → atom/Radio/Radio.d.mts} +0 -0
  91. /package/dist/{Radio.d.ts → atom/Radio/Radio.d.ts} +0 -0
  92. /package/dist/{Radio.js → atom/Radio/Radio.js} +0 -0
  93. /package/dist/{Switch.d.mts → atom/Switch/Switch.d.mts} +0 -0
  94. /package/dist/{Switch.d.ts → atom/Switch/Switch.d.ts} +0 -0
  95. /package/dist/{Switch.js → atom/Switch/Switch.js} +0 -0
  96. /package/dist/{Tooltip.d.mts → atom/Tooltip/Tooltip.d.mts} +0 -0
  97. /package/dist/{Tooltip.d.ts → atom/Tooltip/Tooltip.d.ts} +0 -0
  98. /package/dist/{Tooltip.js → atom/Tooltip/Tooltip.js} +0 -0
@@ -0,0 +1,424 @@
1
+ import {
2
+ InternalCalendar_default
3
+ } from "./chunk-N4DPPZVJ.mjs";
4
+
5
+ // src/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.tsx
6
+ import { memo, useCallback, useEffect, useMemo, useState } from "react";
7
+ import clsx from "clsx";
8
+ import dayjs from "dayjs";
9
+ import customParseFormat from "dayjs/plugin/customParseFormat";
10
+ import isSameOrBefore from "dayjs/plugin/isSameOrBefore";
11
+
12
+ // src/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.module.scss
13
+ var AdvancedDateRangePicker_module_default = { "root": "AdvancedDateRangePicker-module__root___udir8", "inner": "AdvancedDateRangePicker-module__inner___P4OHa", "left": "AdvancedDateRangePicker-module__left___T6E84", "sidebarItem": "AdvancedDateRangePicker-module__sidebarItem___-NXPm", "sidebarItemActive": "AdvancedDateRangePicker-module__sidebarItemActive___5GmBY", "main": "AdvancedDateRangePicker-module__main___G4MU9", "header": "AdvancedDateRangePicker-module__header___mxXEE", "headerGroup": "AdvancedDateRangePicker-module__headerGroup___J7mJB", "headerLabel": "AdvancedDateRangePicker-module__headerLabel___Yvhkr", "timezoneWrapper": "AdvancedDateRangePicker-module__timezoneWrapper___886Qm", "dateTimeWrapper": "AdvancedDateRangePicker-module__dateTimeWrapper___unDQJ", "headerSeparator": "AdvancedDateRangePicker-module__headerSeparator___Vwx6P", "timezoneSelect": "AdvancedDateRangePicker-module__timezoneSelect___f4oln", "dateTimeColumn": "AdvancedDateRangePicker-module__dateTimeColumn___tdDV3", "dateTimeGroup": "AdvancedDateRangePicker-module__dateTimeGroup___azF09", "dateInput": "AdvancedDateRangePicker-module__dateInput___0t9ww", "inputError": "AdvancedDateRangePicker-module__inputError___A5hid", "timeInput": "AdvancedDateRangePicker-module__timeInput___Jalr9", "errorMessage": "AdvancedDateRangePicker-module__errorMessage___gx7ag", "body": "AdvancedDateRangePicker-module__body___f8XYj", "footer": "AdvancedDateRangePicker-module__footer___rsJ2w", "doneBtn": "AdvancedDateRangePicker-module__doneBtn___mt-Sv" };
14
+
15
+ // src/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.tsx
16
+ import { jsx, jsxs } from "react/jsx-runtime";
17
+ dayjs.extend(customParseFormat);
18
+ dayjs.extend(isSameOrBefore);
19
+ var DEFAULT_TIME = { hour: "12", minute: "00", period: "PM" };
20
+ function getPresets() {
21
+ const today = /* @__PURE__ */ new Date();
22
+ today.setHours(0, 0, 0, 0);
23
+ return [
24
+ {
25
+ label: "Custom",
26
+ key: "custom",
27
+ getRange: () => [null, null]
28
+ },
29
+ {
30
+ label: "Yesterday",
31
+ key: "yesterday",
32
+ getRange: () => {
33
+ const d = new Date(today);
34
+ d.setDate(d.getDate() - 1);
35
+ return [d, d];
36
+ }
37
+ },
38
+ {
39
+ label: "Previous week",
40
+ key: "previous-week",
41
+ getRange: () => {
42
+ const dayOfWeek = today.getDay();
43
+ const start = new Date(today);
44
+ start.setDate(today.getDate() - dayOfWeek - 6);
45
+ const end = new Date(today);
46
+ return [start, end];
47
+ }
48
+ },
49
+ {
50
+ label: "This month",
51
+ key: "this-month",
52
+ getRange: () => {
53
+ const start = new Date(today.getFullYear(), today.getMonth(), 1);
54
+ const end = new Date(today.getFullYear(), today.getMonth() + 1, 0);
55
+ return [start, end];
56
+ }
57
+ },
58
+ {
59
+ label: "Previous month",
60
+ key: "previous-month",
61
+ getRange: () => {
62
+ const start = new Date(today.getFullYear(), today.getMonth() - 1, 1);
63
+ const end = new Date(today.getFullYear(), today.getMonth(), 0);
64
+ return [start, end];
65
+ }
66
+ },
67
+ {
68
+ label: "Previous quarter",
69
+ key: "previous-quarter",
70
+ getRange: () => {
71
+ const month = today.getMonth();
72
+ const quarter = Math.floor(month / 3);
73
+ const startMonth = (quarter - 1) * 3;
74
+ const start = new Date(today.getFullYear(), startMonth, 1);
75
+ const end = new Date(today.getFullYear(), startMonth + 3, 0);
76
+ return [start, end];
77
+ }
78
+ }
79
+ ];
80
+ }
81
+ function applyDateMask(v, prev) {
82
+ if (v.length < prev.length) return v;
83
+ const digits = v.replace(/[^\d]/g, "").slice(0, 8);
84
+ if (digits.length >= 2) {
85
+ const d = Number(digits.slice(0, 2));
86
+ if (d < 1 || d > 31) return prev;
87
+ }
88
+ if (digits.length >= 4) {
89
+ const m = Number(digits.slice(2, 4));
90
+ if (m < 1 || m > 12) return prev;
91
+ }
92
+ let result = "";
93
+ if (digits.length > 0) result += digits.slice(0, 2);
94
+ if (digits.length >= 2) result += "-";
95
+ if (digits.length > 2) result += digits.slice(2, 4);
96
+ if (digits.length >= 4) result += "-";
97
+ if (digits.length > 4) result += digits.slice(4, 8);
98
+ return result.slice(0, 10);
99
+ }
100
+ function applyTimeMask(v, prev) {
101
+ if (v.length < prev.length) return v;
102
+ const digits = v.replace(/[^\d]/g, "").slice(0, 4);
103
+ if (digits.length >= 2) {
104
+ const h = Number(digits.slice(0, 2));
105
+ if (h < 1 || h > 12) return prev;
106
+ }
107
+ if (digits.length >= 4) {
108
+ const m = Number(digits.slice(2, 4));
109
+ if (m > 59) return prev;
110
+ }
111
+ let result = "";
112
+ if (digits.length > 0) result += digits.slice(0, 2);
113
+ if (digits.length >= 2) result += ":";
114
+ if (digits.length > 2) result += digits.slice(2, 4);
115
+ if (v.toUpperCase().includes("A")) result += " AM";
116
+ else if (v.toUpperCase().includes("P")) result += " PM";
117
+ else if (digits.length === 4) result += " ";
118
+ return result.slice(0, 8);
119
+ }
120
+ function formatForDisplay(date) {
121
+ if (!date) return "";
122
+ return dayjs(date).format("DD-MM-YYYY");
123
+ }
124
+ function validateDateString(raw) {
125
+ const regex = /^(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[0-2])-\d{4}$/;
126
+ if (!regex.test(raw)) return false;
127
+ const [d, m, y] = raw.split("-").map(Number);
128
+ const date = new Date(y, m - 1, d);
129
+ return date.getFullYear() === y && date.getMonth() === m - 1 && date.getDate() === d;
130
+ }
131
+ function validateTimeString(raw) {
132
+ const regex = /^(0[1-9]|1[0-2]):(0[0-9]|[1-5][0-9])\s(AM|PM)$/i;
133
+ return regex.test(raw);
134
+ }
135
+ function parseDateInput(raw) {
136
+ if (!validateDateString(raw)) return null;
137
+ return dayjs(raw, "DD-MM-YYYY", true).toDate();
138
+ }
139
+ function parseTimeInput(raw) {
140
+ if (!validateTimeString(raw)) return null;
141
+ const match = raw.match(/^(\d{1,2}):(\d{2})\s*(AM|PM)$/i);
142
+ if (!match) return null;
143
+ return {
144
+ hour: match[1].padStart(2, "0"),
145
+ minute: match[2].padStart(2, "0"),
146
+ period: match[3].toUpperCase()
147
+ };
148
+ }
149
+ function formatTime(t) {
150
+ return `${t.hour}:${t.minute} ${t.period}`;
151
+ }
152
+ var DateTimeInputGroup = memo(function DateTimeInputGroup2({
153
+ label,
154
+ dateValue,
155
+ timeValue,
156
+ dateError,
157
+ timeError,
158
+ onDateChange,
159
+ onTimeChange
160
+ }) {
161
+ const [isDateFocused, setIsDateFocused] = useState(false);
162
+ const [isTimeFocused, setIsTimeFocused] = useState(false);
163
+ const showDateError = dateError && !isDateFocused;
164
+ const showTimeError = timeError && !isTimeFocused && !showDateError;
165
+ return /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.headerGroup, children: [
166
+ /* @__PURE__ */ jsx("span", { className: AdvancedDateRangePicker_module_default.headerLabel, children: label }),
167
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.dateTimeColumn, children: [
168
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.dateTimeGroup, children: [
169
+ /* @__PURE__ */ jsx(
170
+ "input",
171
+ {
172
+ type: "text",
173
+ placeholder: "DD-MM-YYYY",
174
+ value: dateValue,
175
+ onFocus: () => setIsDateFocused(true),
176
+ onBlur: () => setIsDateFocused(false),
177
+ onChange: (e) => onDateChange(e.target.value),
178
+ className: clsx(AdvancedDateRangePicker_module_default.dateInput, { [AdvancedDateRangePicker_module_default.inputError]: showDateError })
179
+ }
180
+ ),
181
+ /* @__PURE__ */ jsx(
182
+ "input",
183
+ {
184
+ type: "text",
185
+ placeholder: "12:00 PM",
186
+ value: timeValue,
187
+ onFocus: () => setIsTimeFocused(true),
188
+ onBlur: () => setIsTimeFocused(false),
189
+ onChange: (e) => onTimeChange(e.target.value),
190
+ className: clsx(AdvancedDateRangePicker_module_default.timeInput, { [AdvancedDateRangePicker_module_default.inputError]: showTimeError })
191
+ }
192
+ )
193
+ ] }),
194
+ showDateError && /* @__PURE__ */ jsx("span", { className: AdvancedDateRangePicker_module_default.errorMessage, children: "Enter valid date" }),
195
+ showTimeError && /* @__PURE__ */ jsx("span", { className: AdvancedDateRangePicker_module_default.errorMessage, children: "Enter valid time" })
196
+ ] })
197
+ ] });
198
+ });
199
+ function AdvancedDateRangePicker({
200
+ value,
201
+ onChange,
202
+ confirmLabel = "Done",
203
+ className = "",
204
+ disabled = false,
205
+ disablePastDates = false,
206
+ minDate = null,
207
+ maxDate = null,
208
+ showSingleCalendar = false,
209
+ id = "adv-drp",
210
+ defaultTimezone = "UTC",
211
+ isTimezoneDisabled = false,
212
+ timezoneOptions = []
213
+ }) {
214
+ var _a, _b, _c;
215
+ const PRESETS = useMemo(() => getPresets(), []);
216
+ const [startDate, setStartDate] = useState((_a = value == null ? void 0 : value.startDate) != null ? _a : null);
217
+ const [endDate, setEndDate] = useState((_b = value == null ? void 0 : value.endDate) != null ? _b : null);
218
+ const [timezone, setTimezone] = useState((_c = value == null ? void 0 : value.timezone) != null ? _c : defaultTimezone);
219
+ const [fromDateStr, setFromDateStr] = useState(formatForDisplay(startDate));
220
+ const [toDateStr, setToDateStr] = useState(formatForDisplay(endDate));
221
+ const [fromTimeStr, setFromTimeStr] = useState(
222
+ (value == null ? void 0 : value.startTime) ? formatTime(value.startTime) : "12:00 PM"
223
+ );
224
+ const [toTimeStr, setToTimeStr] = useState(
225
+ (value == null ? void 0 : value.endTime) ? formatTime(value.endTime) : "12:00 PM"
226
+ );
227
+ const [activePreset, setActivePreset] = useState("custom");
228
+ const fromDateError = useMemo(() => fromDateStr.length > 0 && (fromDateStr.length < 10 || !validateDateString(fromDateStr)), [fromDateStr]);
229
+ const toDateError = useMemo(() => toDateStr.length > 0 && (toDateStr.length < 10 || !validateDateString(toDateStr)), [toDateStr]);
230
+ const fromTimeError = useMemo(() => fromTimeStr.length > 0 && (fromTimeStr.length < 8 || !validateTimeString(fromTimeStr)), [fromTimeStr]);
231
+ const toTimeError = useMemo(() => toTimeStr.length > 0 && (toTimeStr.length < 8 || !validateTimeString(toTimeStr)), [toTimeStr]);
232
+ const isReady = useMemo(() => {
233
+ return startDate !== null && endDate !== null && validateDateString(fromDateStr) && validateDateString(toDateStr) && validateTimeString(fromTimeStr) && validateTimeString(toTimeStr) && dayjs(startDate).isSameOrBefore(dayjs(endDate), "day");
234
+ }, [startDate, endDate, fromDateStr, toDateStr, fromTimeStr, toTimeStr]);
235
+ useEffect(() => {
236
+ var _a2, _b2, _c2;
237
+ if (value) {
238
+ setStartDate((_a2 = value.startDate) != null ? _a2 : null);
239
+ setEndDate((_b2 = value.endDate) != null ? _b2 : null);
240
+ setTimezone((_c2 = value.timezone) != null ? _c2 : defaultTimezone);
241
+ if (value.startTime) setFromTimeStr(formatTime(value.startTime));
242
+ if (value.endTime) setToTimeStr(formatTime(value.endTime));
243
+ }
244
+ }, [value, defaultTimezone]);
245
+ useEffect(() => {
246
+ setFromDateStr(formatForDisplay(startDate));
247
+ }, [startDate]);
248
+ useEffect(() => {
249
+ setToDateStr(formatForDisplay(endDate));
250
+ }, [endDate]);
251
+ const rangeValue = useMemo(() => [
252
+ startDate ? startDate.toISOString() : "",
253
+ endDate ? endDate.toISOString() : ""
254
+ ], [startDate, endDate]);
255
+ const handleRangeChange = useCallback(
256
+ (range) => {
257
+ const [s, e] = range;
258
+ if (s) {
259
+ const sDateByDayjs = dayjs(s, "D MMM, YYYY").toDate();
260
+ setStartDate(sDateByDayjs);
261
+ } else {
262
+ setStartDate(null);
263
+ }
264
+ if (e) {
265
+ const eDateByDayjs = dayjs(e, "D MMM, YYYY").toDate();
266
+ setEndDate(eDateByDayjs);
267
+ } else {
268
+ setEndDate(null);
269
+ }
270
+ setActivePreset("custom");
271
+ },
272
+ []
273
+ );
274
+ const handlePreset = useCallback(
275
+ (preset) => {
276
+ const [s, e] = preset.getRange();
277
+ setStartDate(s);
278
+ setEndDate(e);
279
+ setActivePreset(preset.key);
280
+ },
281
+ []
282
+ );
283
+ const handleFromDateChange = useCallback((v) => {
284
+ const masked = applyDateMask(v, fromDateStr);
285
+ setFromDateStr(masked);
286
+ setActivePreset("custom");
287
+ if (masked.length === 10) {
288
+ const parsed = parseDateInput(masked);
289
+ if (parsed) {
290
+ setStartDate(parsed);
291
+ if (endDate && dayjs(parsed).isAfter(dayjs(endDate), "day")) {
292
+ setEndDate(null);
293
+ }
294
+ }
295
+ }
296
+ }, [fromDateStr, endDate]);
297
+ const handleToDateChange = useCallback((v) => {
298
+ const masked = applyDateMask(v, toDateStr);
299
+ setToDateStr(masked);
300
+ setActivePreset("custom");
301
+ if (masked.length === 10) {
302
+ const parsed = parseDateInput(masked);
303
+ if (parsed) {
304
+ setEndDate(parsed);
305
+ if (startDate && dayjs(parsed).isBefore(dayjs(startDate), "day")) {
306
+ setStartDate(null);
307
+ }
308
+ }
309
+ }
310
+ }, [toDateStr, startDate]);
311
+ const handleFromTimeChange = useCallback((v) => {
312
+ const masked = applyTimeMask(v, fromTimeStr);
313
+ setFromTimeStr(masked);
314
+ setActivePreset("custom");
315
+ }, [fromTimeStr]);
316
+ const handleToTimeChange = useCallback((v) => {
317
+ const masked = applyTimeMask(v, toTimeStr);
318
+ setToTimeStr(masked);
319
+ setActivePreset("custom");
320
+ }, [toTimeStr]);
321
+ const handleDone = useCallback(() => {
322
+ var _a2, _b2;
323
+ if (!isReady) return;
324
+ const fromTime = (_a2 = parseTimeInput(fromTimeStr)) != null ? _a2 : DEFAULT_TIME;
325
+ const toTime = (_b2 = parseTimeInput(toTimeStr)) != null ? _b2 : DEFAULT_TIME;
326
+ onChange == null ? void 0 : onChange({
327
+ startDate,
328
+ endDate,
329
+ startTime: fromTime,
330
+ endTime: toTime,
331
+ timezone
332
+ });
333
+ }, [isReady, onChange, startDate, endDate, fromTimeStr, toTimeStr, timezone]);
334
+ return /* @__PURE__ */ jsxs("div", { className: clsx(AdvancedDateRangePicker_module_default.root, className), id, children: [
335
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.inner, children: [
336
+ /* @__PURE__ */ jsx("aside", { className: AdvancedDateRangePicker_module_default.left, children: PRESETS.map((p) => /* @__PURE__ */ jsx(
337
+ "button",
338
+ {
339
+ type: "button",
340
+ onClick: () => handlePreset(p),
341
+ className: clsx(AdvancedDateRangePicker_module_default.sidebarItem, {
342
+ [AdvancedDateRangePicker_module_default.sidebarItemActive]: activePreset === p.key
343
+ }),
344
+ children: p.label
345
+ },
346
+ p.key
347
+ )) }),
348
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.main, children: [
349
+ /* @__PURE__ */ jsxs("header", { className: AdvancedDateRangePicker_module_default.header, children: [
350
+ /* @__PURE__ */ jsxs("div", { className: clsx(AdvancedDateRangePicker_module_default.headerGroup, AdvancedDateRangePicker_module_default.timezoneWrapper), children: [
351
+ /* @__PURE__ */ jsx("span", { className: AdvancedDateRangePicker_module_default.headerLabel, children: "Timezone" }),
352
+ /* @__PURE__ */ jsx(
353
+ "select",
354
+ {
355
+ value: timezone,
356
+ onChange: (e) => setTimezone(e.target.value),
357
+ className: AdvancedDateRangePicker_module_default.timezoneSelect,
358
+ disabled: isTimezoneDisabled,
359
+ children: timezoneOptions.map((tz) => /* @__PURE__ */ jsx("option", { value: tz.value, children: tz.label }, tz.value))
360
+ }
361
+ )
362
+ ] }),
363
+ /* @__PURE__ */ jsx("div", { className: AdvancedDateRangePicker_module_default.headerSeparator }),
364
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.dateTimeWrapper, children: [
365
+ /* @__PURE__ */ jsx(
366
+ DateTimeInputGroup,
367
+ {
368
+ label: "From",
369
+ dateValue: fromDateStr,
370
+ timeValue: fromTimeStr,
371
+ dateError: fromDateError,
372
+ timeError: fromTimeError,
373
+ onDateChange: handleFromDateChange,
374
+ onTimeChange: handleFromTimeChange
375
+ }
376
+ ),
377
+ /* @__PURE__ */ jsx("div", { className: AdvancedDateRangePicker_module_default.headerSeparator }),
378
+ /* @__PURE__ */ jsx(
379
+ DateTimeInputGroup,
380
+ {
381
+ label: "To",
382
+ dateValue: toDateStr,
383
+ timeValue: toTimeStr,
384
+ dateError: toDateError,
385
+ timeError: toTimeError,
386
+ onDateChange: handleToDateChange,
387
+ onTimeChange: handleToTimeChange
388
+ }
389
+ )
390
+ ] })
391
+ ] }),
392
+ /* @__PURE__ */ jsx("div", { className: AdvancedDateRangePicker_module_default.body, children: /* @__PURE__ */ jsx(
393
+ InternalCalendar_default,
394
+ {
395
+ id: `${id}-calendar`,
396
+ dateRange: rangeValue,
397
+ onChange: handleRangeChange,
398
+ disablePastDates,
399
+ minDate,
400
+ maxDate,
401
+ showSingleCalendar
402
+ }
403
+ ) })
404
+ ] })
405
+ ] }),
406
+ /* @__PURE__ */ jsx("footer", { className: AdvancedDateRangePicker_module_default.footer, children: /* @__PURE__ */ jsx(
407
+ "button",
408
+ {
409
+ type: "button",
410
+ onClick: handleDone,
411
+ disabled: disabled || !isReady,
412
+ className: AdvancedDateRangePicker_module_default.doneBtn,
413
+ children: confirmLabel
414
+ }
415
+ ) })
416
+ ] });
417
+ }
418
+ AdvancedDateRangePicker.displayName = "AdvancedDateRangePicker";
419
+ var AdvancedDateRangePicker_default = AdvancedDateRangePicker;
420
+
421
+ export {
422
+ AdvancedDateRangePicker,
423
+ AdvancedDateRangePicker_default
424
+ };
@@ -0,0 +1,53 @@
1
+ import {
2
+ __objRest,
3
+ __spreadProps,
4
+ __spreadValues
5
+ } from "./chunk-FWCSY2DS.mjs";
6
+
7
+ // src/atom/RangePicker/Chevron.tsx
8
+ import * as React from "react";
9
+ import { jsx } from "react/jsx-runtime";
10
+ var Chevron = React.memo(
11
+ (_a) => {
12
+ var _b = _a, { size = "normal", color = "black", className } = _b, rest = __objRest(_b, ["size", "color", "className"]);
13
+ const getSize = (size2) => {
14
+ switch (size2) {
15
+ case "small":
16
+ return "M9.78 11.78a.75.75 0 000-1.06L7.06 8l2.72-2.72a.75.75 0 00-1.06-1.06L5.47 7.47a.75.75 0 000 1.06l3.25 3.25a.75.75 0 001.06 0z";
17
+ case "normal":
18
+ return "M14.78 17.78a.75.75 0 000-1.06L10.06 12l4.72-4.72a.75.75 0 00-1.06-1.06l-5.25 5.25a.75.75 0 000 1.06l5.25 5.25a.75.75 0 001.06 0z";
19
+ default:
20
+ return "M14.78 17.78a.75.75 0 000-1.06L10.06 12l4.72-4.72a.75.75 0 00-1.06-1.06l-5.25 5.25a.75.75 0 000 1.06l5.25 5.25a.75.75 0 001.06 0z";
21
+ }
22
+ };
23
+ const getContainer = (size2) => {
24
+ switch (size2) {
25
+ case "small":
26
+ return 16;
27
+ case "medium":
28
+ return 20;
29
+ case "normal":
30
+ return 24;
31
+ default:
32
+ return 24;
33
+ }
34
+ };
35
+ return /* @__PURE__ */ jsx(
36
+ "svg",
37
+ __spreadProps(__spreadValues({
38
+ xmlns: "http://www.w3.org/2000/svg",
39
+ width: getContainer(size),
40
+ height: getContainer(size),
41
+ fill: "none",
42
+ viewBox: `0 0 ${getContainer(size)} ${getContainer(size)}`,
43
+ className
44
+ }, rest), {
45
+ children: /* @__PURE__ */ jsx("path", { fill: color, d: getSize(size) })
46
+ })
47
+ );
48
+ }
49
+ );
50
+
51
+ export {
52
+ Chevron
53
+ };
package/dist/index.d.mts CHANGED
@@ -1,10 +1,21 @@
1
- export { default as Button } from './Button.mjs';
2
- export { default as Checkbox } from './Checkbox.mjs';
3
- export { default as Modal } from './Modal.mjs';
4
- export { default as Radio } from './Radio.mjs';
5
- export { default as Switch } from './Switch.mjs';
6
- export { default as Tooltip } from './Tooltip.mjs';
7
- export { default as Avatar } from './Avatar.mjs';
1
+ export { Button } from './atom/Button/Button.mjs';
2
+ export { Checkbox } from './atom/Checkbox/Checkbox.mjs';
3
+ export { Modal } from './atom/Modal/Modal.mjs';
4
+ export { Radio } from './atom/Radio/Radio.mjs';
5
+ export { Switch } from './atom/Switch/Switch.mjs';
6
+ export { Tooltip } from './atom/Tooltip/Tooltip.mjs';
7
+ export { Avatar } from './atom/Avatar/Avatar.mjs';
8
+ export { Tag } from './atom/Tag/Tag.mjs';
9
+ export { RangePicker } from './atom/RangePicker/RangePicker.mjs';
10
+ export { A as AdvancedDateRangePicker, D as DateRangePickerProps, a as DateRangeValue, P as PresetOption, T as TimeValue, b as TimezoneOption } from './AdvancedDateRangePicker-ozItnkhp.mjs';
11
+ export { Select } from './atom/Select/Select.mjs';
12
+ export { LoadingSpinner } from './atom/LoadingSpinner/LoadingSpinner.mjs';
13
+ export { Slider } from './atom/Slider/Slider.mjs';
14
+ export { L as LuminaColumnHeaderProps, a as LuminaColumnType, b as LuminaColumnsType, S as SortOrder, T as Table, c as TableProps } from './Table-BOq-_9Nr.mjs';
15
+ export { UserProfile } from './molecules/UserProfile/UserProfile.mjs';
16
+ export { TablePaginationConfig } from 'antd';
8
17
  import 'react';
9
18
  import 'antd/es/checkbox';
10
19
  import 'antd/lib/radio';
20
+ import './types-mhQmqhsR.mjs';
21
+ import './types-D4MD2w3_.mjs';
package/dist/index.d.ts CHANGED
@@ -1,10 +1,21 @@
1
- export { default as Button } from './Button.js';
2
- export { default as Checkbox } from './Checkbox.js';
3
- export { default as Modal } from './Modal.js';
4
- export { default as Radio } from './Radio.js';
5
- export { default as Switch } from './Switch.js';
6
- export { default as Tooltip } from './Tooltip.js';
7
- export { default as Avatar } from './Avatar.js';
1
+ export { Button } from './atom/Button/Button.js';
2
+ export { Checkbox } from './atom/Checkbox/Checkbox.js';
3
+ export { Modal } from './atom/Modal/Modal.js';
4
+ export { Radio } from './atom/Radio/Radio.js';
5
+ export { Switch } from './atom/Switch/Switch.js';
6
+ export { Tooltip } from './atom/Tooltip/Tooltip.js';
7
+ export { Avatar } from './atom/Avatar/Avatar.js';
8
+ export { Tag } from './atom/Tag/Tag.js';
9
+ export { RangePicker } from './atom/RangePicker/RangePicker.js';
10
+ export { A as AdvancedDateRangePicker, D as DateRangePickerProps, a as DateRangeValue, P as PresetOption, T as TimeValue, b as TimezoneOption } from './AdvancedDateRangePicker-ozItnkhp.js';
11
+ export { Select } from './atom/Select/Select.js';
12
+ export { LoadingSpinner } from './atom/LoadingSpinner/LoadingSpinner.js';
13
+ export { Slider } from './atom/Slider/Slider.js';
14
+ export { L as LuminaColumnHeaderProps, a as LuminaColumnType, b as LuminaColumnsType, S as SortOrder, T as Table, c as TableProps } from './Table-BOq-_9Nr.js';
15
+ export { UserProfile } from './molecules/UserProfile/UserProfile.js';
16
+ export { TablePaginationConfig } from 'antd';
8
17
  import 'react';
9
18
  import 'antd/es/checkbox';
10
19
  import 'antd/lib/radio';
20
+ import './types-mhQmqhsR.js';
21
+ import './types-D4MD2w3_.js';