@itilite/lumina-ui 1.0.2-alpha → 1.0.4-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 (34) hide show
  1. package/dist/AdvancedDateRangePicker-D7xn4So6.d.mts +59 -0
  2. package/dist/AdvancedDateRangePicker-D7xn4So6.d.ts +59 -0
  3. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.d.mts +1 -1
  4. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.d.ts +1 -1
  5. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.js +896 -77
  6. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.mjs +6 -2
  7. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.js +5 -5
  8. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.mjs +1 -1
  9. package/dist/atom/Table/Table.js +4 -3
  10. package/dist/atom/Table/Table.mjs +1 -1
  11. package/dist/chunk-27LRL4RO.mjs +428 -0
  12. package/dist/chunk-3HXZIFV6.mjs +438 -0
  13. package/dist/chunk-62VAYFZA.mjs +437 -0
  14. package/dist/chunk-6ON32H2N.mjs +431 -0
  15. package/dist/chunk-6XIT27XY.mjs +269 -0
  16. package/dist/chunk-772C454L.mjs +438 -0
  17. package/dist/chunk-7L267Y4P.mjs +429 -0
  18. package/dist/chunk-7WSVCE2C.mjs +269 -0
  19. package/dist/chunk-BFFLWW7N.mjs +250 -0
  20. package/dist/chunk-FTL3PFC2.mjs +438 -0
  21. package/dist/chunk-GZ4P7OL3.mjs +429 -0
  22. package/dist/chunk-K2A4TWA3.mjs +430 -0
  23. package/dist/chunk-L3L42SIL.mjs +429 -0
  24. package/dist/chunk-MA23J4WQ.mjs +430 -0
  25. package/dist/chunk-QRGHJP7U.mjs +437 -0
  26. package/dist/chunk-RC6IGURJ.mjs +428 -0
  27. package/dist/chunk-TQDZWJZP.mjs +269 -0
  28. package/dist/chunk-ZGV6QMVM.mjs +437 -0
  29. package/dist/index.d.mts +1 -1
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js +41 -32
  32. package/dist/index.mjs +17 -17
  33. package/dist/styles.css +1008 -873
  34. package/package.json +1 -1
@@ -0,0 +1,437 @@
1
+ import {
2
+ Select_default
3
+ } from "./chunk-GU5F7Z7I.mjs";
4
+ import {
5
+ InternalCalendar_default
6
+ } from "./chunk-TQDZWJZP.mjs";
7
+ import {
8
+ Button_default
9
+ } from "./chunk-AF2RKLH6.mjs";
10
+
11
+ // src/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.tsx
12
+ import { memo, useCallback, useEffect, useMemo, useState } from "react";
13
+ import clsx from "clsx";
14
+ import dayjs from "dayjs";
15
+ import customParseFormat from "dayjs/plugin/customParseFormat.js";
16
+ import isSameOrBefore from "dayjs/plugin/isSameOrBefore.js";
17
+
18
+ // src/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.module.scss
19
+ 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", "timezoneWrapper": "AdvancedDateRangePicker-module__timezoneWrapper___886Qm", "dateTimeWrapper": "AdvancedDateRangePicker-module__dateTimeWrapper___unDQJ", "headerGroup": "AdvancedDateRangePicker-module__headerGroup___J7mJB", "headerLabel": "AdvancedDateRangePicker-module__headerLabel___Yvhkr", "headerSeparator": "AdvancedDateRangePicker-module__headerSeparator___Vwx6P", "timezoneSelect": "AdvancedDateRangePicker-module__timezoneSelect___f4oln", "timezoneSelectContainer": "AdvancedDateRangePicker-module__timezoneSelectContainer___8SMc4", "timezoneDisabledBadge": "AdvancedDateRangePicker-module__timezoneDisabledBadge___VBxOd", "inputWrapper": "AdvancedDateRangePicker-module__inputWrapper___bFFNF", "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" };
20
+
21
+ // src/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.tsx
22
+ import { jsx, jsxs } from "react/jsx-runtime";
23
+ dayjs.extend(customParseFormat);
24
+ dayjs.extend(isSameOrBefore);
25
+ var DEFAULT_TIME = { hour: "12", minute: "00", period: "PM" };
26
+ function getPresets() {
27
+ const today = /* @__PURE__ */ new Date();
28
+ today.setHours(0, 0, 0, 0);
29
+ return [
30
+ {
31
+ label: "Custom",
32
+ key: "custom",
33
+ getRange: () => [null, null]
34
+ },
35
+ {
36
+ label: "Yesterday",
37
+ key: "yesterday",
38
+ getRange: () => {
39
+ const d = new Date(today);
40
+ d.setDate(d.getDate() - 1);
41
+ return [d, d];
42
+ }
43
+ },
44
+ {
45
+ label: "Previous week",
46
+ key: "previous-week",
47
+ getRange: () => {
48
+ const dayOfWeek = today.getDay();
49
+ const start = new Date(today);
50
+ start.setDate(today.getDate() - dayOfWeek - 6);
51
+ const end = new Date(today);
52
+ return [start, end];
53
+ }
54
+ },
55
+ {
56
+ label: "This month",
57
+ key: "this-month",
58
+ getRange: () => {
59
+ const start = new Date(today.getFullYear(), today.getMonth(), 1);
60
+ const end = new Date(today.getFullYear(), today.getMonth() + 1, 0);
61
+ return [start, end];
62
+ }
63
+ },
64
+ {
65
+ label: "Previous month",
66
+ key: "previous-month",
67
+ getRange: () => {
68
+ const start = new Date(today.getFullYear(), today.getMonth() - 1, 1);
69
+ const end = new Date(today.getFullYear(), today.getMonth(), 0);
70
+ return [start, end];
71
+ }
72
+ },
73
+ {
74
+ label: "Previous quarter",
75
+ key: "previous-quarter",
76
+ getRange: () => {
77
+ const month = today.getMonth();
78
+ const quarter = Math.floor(month / 3);
79
+ const startMonth = (quarter - 1) * 3;
80
+ const start = new Date(today.getFullYear(), startMonth, 1);
81
+ const end = new Date(today.getFullYear(), startMonth + 3, 0);
82
+ return [start, end];
83
+ }
84
+ }
85
+ ];
86
+ }
87
+ function applyDateMask(v, prev) {
88
+ if (v.length < prev.length) return v;
89
+ const digits = v.replace(/[^\d]/g, "").slice(0, 8);
90
+ if (digits.length >= 2) {
91
+ const d = Number(digits.slice(0, 2));
92
+ if (d < 1 || d > 31) return prev;
93
+ }
94
+ if (digits.length >= 4) {
95
+ const m = Number(digits.slice(2, 4));
96
+ if (m < 1 || m > 12) return prev;
97
+ }
98
+ let result = "";
99
+ if (digits.length > 0) result += digits.slice(0, 2);
100
+ if (digits.length >= 2) result += "-";
101
+ if (digits.length > 2) result += digits.slice(2, 4);
102
+ if (digits.length >= 4) result += "-";
103
+ if (digits.length > 4) result += digits.slice(4, 8);
104
+ return result.slice(0, 10);
105
+ }
106
+ function applyTimeMask(v, prev) {
107
+ if (v.length < prev.length) return v;
108
+ const digits = v.replace(/[^\d]/g, "").slice(0, 4);
109
+ if (digits.length >= 2) {
110
+ const h = Number(digits.slice(0, 2));
111
+ if (h < 1 || h > 12) return prev;
112
+ }
113
+ if (digits.length >= 4) {
114
+ const m = Number(digits.slice(2, 4));
115
+ if (m > 59) return prev;
116
+ }
117
+ let result = "";
118
+ if (digits.length > 0) result += digits.slice(0, 2);
119
+ if (digits.length >= 2) result += ":";
120
+ if (digits.length > 2) result += digits.slice(2, 4);
121
+ if (v.toUpperCase().includes("A")) result += " AM";
122
+ else if (v.toUpperCase().includes("P")) result += " PM";
123
+ else if (digits.length === 4) result += " ";
124
+ return result.slice(0, 8);
125
+ }
126
+ function formatForDisplay(date) {
127
+ if (!date) return "";
128
+ return dayjs(date).format("DD-MM-YYYY");
129
+ }
130
+ function validateDateString(raw) {
131
+ const regex = /^(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[0-2])-\d{4}$/;
132
+ if (!regex.test(raw)) return false;
133
+ const [d, m, y] = raw.split("-").map(Number);
134
+ const date = new Date(y, m - 1, d);
135
+ return date.getFullYear() === y && date.getMonth() === m - 1 && date.getDate() === d;
136
+ }
137
+ function validateTimeString(raw) {
138
+ const regex = /^(0[1-9]|1[0-2]):(0[0-9]|[1-5][0-9])\s(AM|PM)$/i;
139
+ return regex.test(raw);
140
+ }
141
+ function parseDateInput(raw) {
142
+ if (!validateDateString(raw)) return null;
143
+ return dayjs(raw, "DD-MM-YYYY", true).toDate();
144
+ }
145
+ function parseTimeInput(raw) {
146
+ if (!validateTimeString(raw)) return null;
147
+ const match = raw.match(/^(\d{1,2}):(\d{2})\s*(AM|PM)$/i);
148
+ if (!match) return null;
149
+ return {
150
+ hour: match[1].padStart(2, "0"),
151
+ minute: match[2].padStart(2, "0"),
152
+ period: match[3].toUpperCase()
153
+ };
154
+ }
155
+ function formatTime(t) {
156
+ return `${t.hour}:${t.minute} ${t.period}`;
157
+ }
158
+ var DateTimeInputGroup = memo(function DateTimeInputGroup2({
159
+ label,
160
+ dateValue,
161
+ timeValue,
162
+ dateError,
163
+ timeError,
164
+ onDateChange,
165
+ onTimeChange
166
+ }) {
167
+ const [isDateFocused, setIsDateFocused] = useState(false);
168
+ const [isTimeFocused, setIsTimeFocused] = useState(false);
169
+ const showDateError = dateError && !isDateFocused;
170
+ const showTimeError = timeError && !isTimeFocused;
171
+ return /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.headerGroup, children: [
172
+ /* @__PURE__ */ jsx("span", { className: AdvancedDateRangePicker_module_default.headerLabel, children: label }),
173
+ /* @__PURE__ */ jsx("div", { className: AdvancedDateRangePicker_module_default.dateTimeColumn, children: /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.dateTimeGroup, children: [
174
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.inputWrapper, children: [
175
+ /* @__PURE__ */ jsx(
176
+ "input",
177
+ {
178
+ type: "text",
179
+ placeholder: "dd-mm-yyyy",
180
+ value: dateValue,
181
+ onFocus: () => setIsDateFocused(true),
182
+ onBlur: () => setIsDateFocused(false),
183
+ onChange: (e) => onDateChange(e.target.value),
184
+ className: clsx(AdvancedDateRangePicker_module_default.dateInput, { [AdvancedDateRangePicker_module_default.inputError]: showDateError })
185
+ }
186
+ ),
187
+ showDateError && /* @__PURE__ */ jsx("span", { className: AdvancedDateRangePicker_module_default.errorMessage, children: "Enter valid date" })
188
+ ] }),
189
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.inputWrapper, children: [
190
+ /* @__PURE__ */ jsx(
191
+ "input",
192
+ {
193
+ type: "text",
194
+ placeholder: "12:00 PM",
195
+ value: timeValue,
196
+ onFocus: () => setIsTimeFocused(true),
197
+ onBlur: () => setIsTimeFocused(false),
198
+ onChange: (e) => onTimeChange(e.target.value),
199
+ className: clsx(AdvancedDateRangePicker_module_default.timeInput, { [AdvancedDateRangePicker_module_default.inputError]: showTimeError })
200
+ }
201
+ ),
202
+ showTimeError && /* @__PURE__ */ jsx("span", { className: AdvancedDateRangePicker_module_default.errorMessage, children: "Enter valid time" })
203
+ ] })
204
+ ] }) })
205
+ ] });
206
+ });
207
+ function AdvancedDateRangePicker({
208
+ value,
209
+ onChange,
210
+ confirmLabel = "Done",
211
+ className = "",
212
+ disabled = false,
213
+ disablePastDates = false,
214
+ minDate = null,
215
+ maxDate = null,
216
+ showSingleCalendar = false,
217
+ id = "adv-drp",
218
+ defaultTimezone = "UTC",
219
+ isTimezoneDisabled = false,
220
+ timezoneOptions = [],
221
+ defaultPreset = "custom"
222
+ }) {
223
+ var _a, _b, _c;
224
+ const PRESETS = useMemo(() => getPresets(), []);
225
+ const [startDate, setStartDate] = useState((_a = value == null ? void 0 : value.startDate) != null ? _a : null);
226
+ const [endDate, setEndDate] = useState((_b = value == null ? void 0 : value.endDate) != null ? _b : null);
227
+ const [timezone, setTimezone] = useState((_c = value == null ? void 0 : value.timezone) != null ? _c : defaultTimezone);
228
+ const [fromDateStr, setFromDateStr] = useState(formatForDisplay(startDate));
229
+ const [toDateStr, setToDateStr] = useState(formatForDisplay(endDate));
230
+ const [fromTimeStr, setFromTimeStr] = useState(
231
+ (value == null ? void 0 : value.startTime) ? formatTime(value.startTime) : "12:00 PM"
232
+ );
233
+ const [toTimeStr, setToTimeStr] = useState(
234
+ (value == null ? void 0 : value.endTime) ? formatTime(value.endTime) : "12:00 PM"
235
+ );
236
+ const [activePreset, setActivePreset] = useState(defaultPreset);
237
+ const fromDateError = useMemo(() => fromDateStr.length > 0 && (fromDateStr.length < 10 || !validateDateString(fromDateStr)), [fromDateStr]);
238
+ const toDateError = useMemo(() => toDateStr.length > 0 && (toDateStr.length < 10 || !validateDateString(toDateStr)), [toDateStr]);
239
+ const fromTimeError = useMemo(() => fromTimeStr.length > 0 && (fromTimeStr.length < 8 || !validateTimeString(fromTimeStr)), [fromTimeStr]);
240
+ const toTimeError = useMemo(() => toTimeStr.length > 0 && (toTimeStr.length < 8 || !validateTimeString(toTimeStr)), [toTimeStr]);
241
+ const isReady = useMemo(() => {
242
+ return startDate !== null && endDate !== null && validateDateString(fromDateStr) && validateDateString(toDateStr) && validateTimeString(fromTimeStr) && validateTimeString(toTimeStr) && dayjs(startDate).isSameOrBefore(dayjs(endDate), "day");
243
+ }, [startDate, endDate, fromDateStr, toDateStr, fromTimeStr, toTimeStr]);
244
+ useEffect(() => {
245
+ var _a2, _b2, _c2;
246
+ if (value) {
247
+ setStartDate((_a2 = value.startDate) != null ? _a2 : null);
248
+ setEndDate((_b2 = value.endDate) != null ? _b2 : null);
249
+ setTimezone((_c2 = value.timezone) != null ? _c2 : defaultTimezone);
250
+ if (value.startTime) setFromTimeStr(formatTime(value.startTime));
251
+ if (value.endTime) setToTimeStr(formatTime(value.endTime));
252
+ }
253
+ }, [value, defaultTimezone]);
254
+ useEffect(() => {
255
+ setFromDateStr(formatForDisplay(startDate));
256
+ }, [startDate]);
257
+ useEffect(() => {
258
+ setToDateStr(formatForDisplay(endDate));
259
+ }, [endDate]);
260
+ const rangeValue = useMemo(() => [
261
+ startDate ? startDate.toISOString() : "",
262
+ endDate ? endDate.toISOString() : ""
263
+ ], [startDate, endDate]);
264
+ const handleRangeChange = useCallback(
265
+ (range) => {
266
+ const [s, e] = range;
267
+ if (s) {
268
+ const sDateByDayjs = dayjs(s, "D MMM, YYYY").toDate();
269
+ setStartDate(sDateByDayjs);
270
+ } else {
271
+ setStartDate(null);
272
+ }
273
+ if (e) {
274
+ const eDateByDayjs = dayjs(e, "D MMM, YYYY").toDate();
275
+ setEndDate(eDateByDayjs);
276
+ } else {
277
+ setEndDate(null);
278
+ }
279
+ setActivePreset("custom");
280
+ },
281
+ []
282
+ );
283
+ const handlePreset = useCallback(
284
+ (preset) => {
285
+ const [s, e] = preset.getRange();
286
+ setStartDate(s);
287
+ setEndDate(e);
288
+ setActivePreset(preset.key);
289
+ },
290
+ []
291
+ );
292
+ const handleFromDateChange = useCallback((v) => {
293
+ const masked = applyDateMask(v, fromDateStr);
294
+ setFromDateStr(masked);
295
+ setActivePreset("custom");
296
+ if (masked.length === 10) {
297
+ const parsed = parseDateInput(masked);
298
+ if (parsed) {
299
+ setStartDate(parsed);
300
+ if (endDate && dayjs(parsed).isAfter(dayjs(endDate), "day")) {
301
+ setEndDate(null);
302
+ }
303
+ }
304
+ }
305
+ }, [fromDateStr, endDate]);
306
+ const handleToDateChange = useCallback((v) => {
307
+ const masked = applyDateMask(v, toDateStr);
308
+ setToDateStr(masked);
309
+ setActivePreset("custom");
310
+ if (masked.length === 10) {
311
+ const parsed = parseDateInput(masked);
312
+ if (parsed) {
313
+ setEndDate(parsed);
314
+ if (startDate && dayjs(parsed).isBefore(dayjs(startDate), "day")) {
315
+ setStartDate(null);
316
+ }
317
+ }
318
+ }
319
+ }, [toDateStr, startDate]);
320
+ const handleFromTimeChange = useCallback((v) => {
321
+ const masked = applyTimeMask(v, fromTimeStr);
322
+ setFromTimeStr(masked);
323
+ setActivePreset("custom");
324
+ }, [fromTimeStr]);
325
+ const handleToTimeChange = useCallback((v) => {
326
+ const masked = applyTimeMask(v, toTimeStr);
327
+ setToTimeStr(masked);
328
+ setActivePreset("custom");
329
+ }, [toTimeStr]);
330
+ const handleDone = useCallback(() => {
331
+ var _a2, _b2;
332
+ if (!isReady) return;
333
+ const fromTime = (_a2 = parseTimeInput(fromTimeStr)) != null ? _a2 : DEFAULT_TIME;
334
+ const toTime = (_b2 = parseTimeInput(toTimeStr)) != null ? _b2 : DEFAULT_TIME;
335
+ onChange == null ? void 0 : onChange({
336
+ startDate,
337
+ endDate,
338
+ startTime: fromTime,
339
+ endTime: toTime,
340
+ timezone
341
+ });
342
+ }, [isReady, onChange, startDate, endDate, fromTimeStr, toTimeStr, timezone]);
343
+ return /* @__PURE__ */ jsxs("div", { className: clsx(AdvancedDateRangePicker_module_default.root, className), id, children: [
344
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.inner, children: [
345
+ /* @__PURE__ */ jsx("aside", { className: AdvancedDateRangePicker_module_default.left, children: PRESETS.map((p) => /* @__PURE__ */ jsx(
346
+ "button",
347
+ {
348
+ type: "button",
349
+ onClick: () => handlePreset(p),
350
+ className: clsx(AdvancedDateRangePicker_module_default.sidebarItem, {
351
+ [AdvancedDateRangePicker_module_default.sidebarItemActive]: activePreset === p.key
352
+ }),
353
+ children: p.label
354
+ },
355
+ p.key
356
+ )) }),
357
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.main, children: [
358
+ /* @__PURE__ */ jsxs("header", { className: AdvancedDateRangePicker_module_default.header, children: [
359
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.timezoneWrapper, children: [
360
+ /* @__PURE__ */ jsx("span", { className: AdvancedDateRangePicker_module_default.headerLabel, children: "Timezone" }),
361
+ isTimezoneDisabled ? (
362
+ /* Disabled state: plain text badge instead of empty dropdown */
363
+ /* @__PURE__ */ jsx("div", { className: AdvancedDateRangePicker_module_default.timezoneDisabledBadge, children: timezone })
364
+ ) : /* @__PURE__ */ jsx(
365
+ Select_default,
366
+ {
367
+ value: timezone,
368
+ onChange: (val) => {
369
+ if (val) setTimezone(String(val));
370
+ },
371
+ options: timezoneOptions,
372
+ size: "small",
373
+ allowClear: false,
374
+ enableSearch: false,
375
+ wrapperClassName: AdvancedDateRangePicker_module_default.timezoneSelectContainer
376
+ }
377
+ )
378
+ ] }),
379
+ /* @__PURE__ */ jsxs("div", { className: AdvancedDateRangePicker_module_default.dateTimeWrapper, children: [
380
+ /* @__PURE__ */ jsx(
381
+ DateTimeInputGroup,
382
+ {
383
+ label: "From",
384
+ dateValue: fromDateStr,
385
+ timeValue: fromTimeStr,
386
+ dateError: fromDateError,
387
+ timeError: fromTimeError,
388
+ onDateChange: handleFromDateChange,
389
+ onTimeChange: handleFromTimeChange
390
+ }
391
+ ),
392
+ /* @__PURE__ */ jsx(
393
+ DateTimeInputGroup,
394
+ {
395
+ label: "To",
396
+ dateValue: toDateStr,
397
+ timeValue: toTimeStr,
398
+ dateError: toDateError,
399
+ timeError: toTimeError,
400
+ onDateChange: handleToDateChange,
401
+ onTimeChange: handleToTimeChange
402
+ }
403
+ )
404
+ ] })
405
+ ] }),
406
+ /* @__PURE__ */ jsx("div", { className: AdvancedDateRangePicker_module_default.body, children: /* @__PURE__ */ jsx(
407
+ InternalCalendar_default,
408
+ {
409
+ id: `${id}-calendar`,
410
+ dateRange: rangeValue,
411
+ onChange: handleRangeChange,
412
+ disablePastDates,
413
+ minDate,
414
+ maxDate,
415
+ showSingleCalendar
416
+ }
417
+ ) })
418
+ ] })
419
+ ] }),
420
+ /* @__PURE__ */ jsx("footer", { className: AdvancedDateRangePicker_module_default.footer, children: /* @__PURE__ */ jsx(
421
+ Button_default,
422
+ {
423
+ onClick: handleDone,
424
+ disabled: disabled || !isReady,
425
+ shape: "round",
426
+ children: confirmLabel
427
+ }
428
+ ) })
429
+ ] });
430
+ }
431
+ AdvancedDateRangePicker.displayName = "AdvancedDateRangePicker";
432
+ var AdvancedDateRangePicker_default = AdvancedDateRangePicker;
433
+
434
+ export {
435
+ AdvancedDateRangePicker,
436
+ AdvancedDateRangePicker_default
437
+ };
package/dist/index.d.mts CHANGED
@@ -7,7 +7,7 @@ export { Tooltip } from './atom/Tooltip/Tooltip.mjs';
7
7
  export { Avatar } from './atom/Avatar/Avatar.mjs';
8
8
  export { Tag } from './atom/Tag/Tag.mjs';
9
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';
10
+ export { A as AdvancedDateRangePicker, D as DateRangePickerProps, a as DateRangeValue, P as PresetOption, T as TimeValue, b as TimezoneOption } from './AdvancedDateRangePicker-D7xn4So6.mjs';
11
11
  export { Select } from './atom/Select/Select.mjs';
12
12
  export { LoadingSpinner } from './atom/LoadingSpinner/LoadingSpinner.mjs';
13
13
  export { Slider } from './atom/Slider/Slider.mjs';
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { Tooltip } from './atom/Tooltip/Tooltip.js';
7
7
  export { Avatar } from './atom/Avatar/Avatar.js';
8
8
  export { Tag } from './atom/Tag/Tag.js';
9
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';
10
+ export { A as AdvancedDateRangePicker, D as DateRangePickerProps, a as DateRangeValue, P as PresetOption, T as TimeValue, b as TimezoneOption } from './AdvancedDateRangePicker-D7xn4So6.js';
11
11
  export { Select } from './atom/Select/Select.js';
12
12
  export { LoadingSpinner } from './atom/LoadingSpinner/LoadingSpinner.js';
13
13
  export { Slider } from './atom/Slider/Slider.js';
package/dist/index.js CHANGED
@@ -1957,7 +1957,7 @@ var import_customParseFormat = __toESM(require("dayjs/plugin/customParseFormat.j
1957
1957
  var import_isSameOrBefore = __toESM(require("dayjs/plugin/isSameOrBefore.js"));
1958
1958
 
1959
1959
  // src/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.module.scss
1960
- 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" };
1960
+ 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", "timezoneWrapper": "AdvancedDateRangePicker-module__timezoneWrapper___886Qm", "dateTimeWrapper": "AdvancedDateRangePicker-module__dateTimeWrapper___unDQJ", "headerGroup": "AdvancedDateRangePicker-module__headerGroup___J7mJB", "headerLabel": "AdvancedDateRangePicker-module__headerLabel___Yvhkr", "headerSeparator": "AdvancedDateRangePicker-module__headerSeparator___Vwx6P", "timezoneSelect": "AdvancedDateRangePicker-module__timezoneSelect___f4oln", "timezoneSelectContainer": "AdvancedDateRangePicker-module__timezoneSelectContainer___8SMc4", "timezoneSelectInput": "AdvancedDateRangePicker-module__timezoneSelectInput___ol0-7", "timezoneDisabledBadge": "AdvancedDateRangePicker-module__timezoneDisabledBadge___VBxOd", "inputWrapper": "AdvancedDateRangePicker-module__inputWrapper___bFFNF", "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" };
1961
1961
 
1962
1962
  // src/atom/AdvancedDateRangePicker/InternalCalendar.tsx
1963
1963
  var import_react4 = require("react");
@@ -2157,14 +2157,14 @@ var InternalCalendar = ({
2157
2157
  ] }) }),
2158
2158
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-grid tw-grid-cols-7 tw-mb-2", children: dayNames.map((day) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-py-2 tw-text-center tw-typography-caption2 tw-text-gray-500", children: day }, day)) }),
2159
2159
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-grid tw-grid-cols-7", children: days.map((date, index) => {
2160
- if (!date) return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-h-10" }, index);
2160
+ if (!date) return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-h-7" }, index);
2161
2161
  const isStart = isSameDate(date, startDate);
2162
2162
  const isEnd = isSameDate(date, endDate);
2163
2163
  const isInRange = isDateBetweenRange(date);
2164
2164
  const isSelected = isDateInRange(date);
2165
2165
  const isDisabled = isDateDisabled(date);
2166
2166
  const isHovering = isSelectingEnd && hoverDate && isSameDate(date, hoverDate);
2167
- let cellClasses = "tw-relative tw-z-20 tw-h-10 tw-w-10 tw-flex tw-items-center tw-justify-center tw-typography-caption1Bold tw-cursor-pointer tw-transition-all ";
2167
+ let cellClasses = "tw-relative tw-z-20 tw-h-7 tw-w-7 tw-flex tw-items-center tw-justify-center tw-typography-caption1Bold tw-cursor-pointer tw-transition-all ";
2168
2168
  if (isDisabled) {
2169
2169
  cellClasses += "tw-text-gray-300 tw-cursor-not-allowed ";
2170
2170
  } else if (isStart || isEnd) {
@@ -2178,9 +2178,9 @@ var InternalCalendar = ({
2178
2178
  cellClasses += "tw-border-2 tw-border-gray-400 tw-border-dashed ";
2179
2179
  }
2180
2180
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "tw-relative tw-flex tw-justify-center", children: [
2181
- isInRange && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-absolute tw-inset-y-1 tw-inset-x-0 tw-bg-[#f2efec] tw-z-10" }),
2182
- isStart && endDate && !isSameDate(startDate, endDate) && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-absolute tw-inset-y-1 tw-right-0 tw-left-1/2 tw-bg-[#f2efec] tw-z-10" }),
2183
- isEnd && startDate && !isSameDate(startDate, endDate) && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-absolute tw-inset-y-1 tw-left-0 tw-right-1/2 tw-bg-[#f2efec] tw-z-10" }),
2181
+ isInRange && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-absolute tw-inset-y-1 tw-inset-x-0 tw-bg-[#E5E9ED] tw-z-10" }),
2182
+ isStart && endDate && !isSameDate(startDate, endDate) && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-absolute tw-inset-y-1 tw-right-0 tw-left-1/2 tw-bg-[#E5E9ED] tw-z-10" }),
2183
+ isEnd && startDate && !isSameDate(startDate, endDate) && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "tw-absolute tw-inset-y-1 tw-left-0 tw-right-1/2 tw-bg-[#E5E9ED] tw-z-10" }),
2184
2184
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2185
2185
  "div",
2186
2186
  {
@@ -2370,16 +2370,16 @@ var DateTimeInputGroup = (0, import_react5.memo)(function DateTimeInputGroup2({
2370
2370
  const [isDateFocused, setIsDateFocused] = (0, import_react5.useState)(false);
2371
2371
  const [isTimeFocused, setIsTimeFocused] = (0, import_react5.useState)(false);
2372
2372
  const showDateError = dateError && !isDateFocused;
2373
- const showTimeError = timeError && !isTimeFocused && !showDateError;
2373
+ const showTimeError = timeError && !isTimeFocused;
2374
2374
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: AdvancedDateRangePicker_module_default.headerGroup, children: [
2375
2375
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: AdvancedDateRangePicker_module_default.headerLabel, children: label }),
2376
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: AdvancedDateRangePicker_module_default.dateTimeColumn, children: [
2377
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: AdvancedDateRangePicker_module_default.dateTimeGroup, children: [
2376
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: AdvancedDateRangePicker_module_default.dateTimeColumn, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: AdvancedDateRangePicker_module_default.dateTimeGroup, children: [
2377
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: AdvancedDateRangePicker_module_default.inputWrapper, children: [
2378
2378
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2379
2379
  "input",
2380
2380
  {
2381
2381
  type: "text",
2382
- placeholder: "DD-MM-YYYY",
2382
+ placeholder: "dd-mm-yyyy",
2383
2383
  value: dateValue,
2384
2384
  onFocus: () => setIsDateFocused(true),
2385
2385
  onBlur: () => setIsDateFocused(false),
@@ -2387,6 +2387,9 @@ var DateTimeInputGroup = (0, import_react5.memo)(function DateTimeInputGroup2({
2387
2387
  className: (0, import_clsx10.default)(AdvancedDateRangePicker_module_default.dateInput, { [AdvancedDateRangePicker_module_default.inputError]: showDateError })
2388
2388
  }
2389
2389
  ),
2390
+ showDateError && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: AdvancedDateRangePicker_module_default.errorMessage, children: "Enter valid date" })
2391
+ ] }),
2392
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: AdvancedDateRangePicker_module_default.inputWrapper, children: [
2390
2393
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2391
2394
  "input",
2392
2395
  {
@@ -2398,11 +2401,10 @@ var DateTimeInputGroup = (0, import_react5.memo)(function DateTimeInputGroup2({
2398
2401
  onChange: (e) => onTimeChange(e.target.value),
2399
2402
  className: (0, import_clsx10.default)(AdvancedDateRangePicker_module_default.timeInput, { [AdvancedDateRangePicker_module_default.inputError]: showTimeError })
2400
2403
  }
2401
- )
2402
- ] }),
2403
- showDateError && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: AdvancedDateRangePicker_module_default.errorMessage, children: "Enter valid date" }),
2404
- showTimeError && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: AdvancedDateRangePicker_module_default.errorMessage, children: "Enter valid time" })
2405
- ] })
2404
+ ),
2405
+ showTimeError && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: AdvancedDateRangePicker_module_default.errorMessage, children: "Enter valid time" })
2406
+ ] })
2407
+ ] }) })
2406
2408
  ] });
2407
2409
  });
2408
2410
  function AdvancedDateRangePicker({
@@ -2418,7 +2420,8 @@ function AdvancedDateRangePicker({
2418
2420
  id = "adv-drp",
2419
2421
  defaultTimezone = "UTC",
2420
2422
  isTimezoneDisabled = false,
2421
- timezoneOptions = []
2423
+ timezoneOptions = [],
2424
+ defaultPreset = "custom"
2422
2425
  }) {
2423
2426
  var _a, _b, _c;
2424
2427
  const PRESETS = (0, import_react5.useMemo)(() => getPresets(), []);
@@ -2433,7 +2436,7 @@ function AdvancedDateRangePicker({
2433
2436
  const [toTimeStr, setToTimeStr] = (0, import_react5.useState)(
2434
2437
  (value == null ? void 0 : value.endTime) ? formatTime(value.endTime) : "12:00 PM"
2435
2438
  );
2436
- const [activePreset, setActivePreset] = (0, import_react5.useState)("custom");
2439
+ const [activePreset, setActivePreset] = (0, import_react5.useState)(defaultPreset);
2437
2440
  const fromDateError = (0, import_react5.useMemo)(() => fromDateStr.length > 0 && (fromDateStr.length < 10 || !validateDateString(fromDateStr)), [fromDateStr]);
2438
2441
  const toDateError = (0, import_react5.useMemo)(() => toDateStr.length > 0 && (toDateStr.length < 10 || !validateDateString(toDateStr)), [toDateStr]);
2439
2442
  const fromTimeError = (0, import_react5.useMemo)(() => fromTimeStr.length > 0 && (fromTimeStr.length < 8 || !validateTimeString(fromTimeStr)), [fromTimeStr]);
@@ -2556,20 +2559,27 @@ function AdvancedDateRangePicker({
2556
2559
  )) }),
2557
2560
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: AdvancedDateRangePicker_module_default.main, children: [
2558
2561
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("header", { className: AdvancedDateRangePicker_module_default.header, children: [
2559
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: (0, import_clsx10.default)(AdvancedDateRangePicker_module_default.headerGroup, AdvancedDateRangePicker_module_default.timezoneWrapper), children: [
2562
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: AdvancedDateRangePicker_module_default.timezoneWrapper, children: [
2560
2563
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: AdvancedDateRangePicker_module_default.headerLabel, children: "Timezone" }),
2561
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2562
- "select",
2564
+ isTimezoneDisabled ? (
2565
+ /* Disabled state: plain text badge instead of empty dropdown */
2566
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: AdvancedDateRangePicker_module_default.timezoneDisabledBadge, children: timezone })
2567
+ ) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2568
+ Select_default,
2563
2569
  {
2564
2570
  value: timezone,
2565
- onChange: (e) => setTimezone(e.target.value),
2566
- className: AdvancedDateRangePicker_module_default.timezoneSelect,
2567
- disabled: isTimezoneDisabled,
2568
- children: timezoneOptions.map((tz) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: tz.value, children: tz.label }, tz.value))
2571
+ onChange: (val) => {
2572
+ if (val) setTimezone(String(val));
2573
+ },
2574
+ options: timezoneOptions,
2575
+ size: "small",
2576
+ allowClear: false,
2577
+ enableSearch: false,
2578
+ wrapperClassName: AdvancedDateRangePicker_module_default.timezoneSelectContainer,
2579
+ inputClassName: AdvancedDateRangePicker_module_default.timezoneSelectInput
2569
2580
  }
2570
2581
  )
2571
2582
  ] }),
2572
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: AdvancedDateRangePicker_module_default.headerSeparator }),
2573
2583
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: AdvancedDateRangePicker_module_default.dateTimeWrapper, children: [
2574
2584
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2575
2585
  DateTimeInputGroup,
@@ -2583,7 +2593,6 @@ function AdvancedDateRangePicker({
2583
2593
  onTimeChange: handleFromTimeChange
2584
2594
  }
2585
2595
  ),
2586
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: AdvancedDateRangePicker_module_default.headerSeparator }),
2587
2596
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2588
2597
  DateTimeInputGroup,
2589
2598
  {
@@ -2613,12 +2622,11 @@ function AdvancedDateRangePicker({
2613
2622
  ] })
2614
2623
  ] }),
2615
2624
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("footer", { className: AdvancedDateRangePicker_module_default.footer, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2616
- "button",
2625
+ Button_default,
2617
2626
  {
2618
- type: "button",
2619
2627
  onClick: handleDone,
2620
2628
  disabled: disabled || !isReady,
2621
- className: AdvancedDateRangePicker_module_default.doneBtn,
2629
+ shape: "round",
2622
2630
  children: confirmLabel
2623
2631
  }
2624
2632
  ) })
@@ -2811,6 +2819,7 @@ function processColumns(columns) {
2811
2819
  });
2812
2820
  }
2813
2821
  function Table(props) {
2822
+ var _b;
2814
2823
  const _a = props, {
2815
2824
  size = "middle",
2816
2825
  variant = "default",
@@ -2876,10 +2885,10 @@ function Table(props) {
2876
2885
  return __spreadProps(__spreadValues({}, base), {
2877
2886
  style: __spreadValues({ cursor: "pointer" }, base.style),
2878
2887
  onClick: (e) => {
2879
- var _a3, _b;
2888
+ var _a3, _b2;
2880
2889
  (_a3 = base.onClick) == null ? void 0 : _a3.call(base, e);
2881
2890
  const key = getKey(record, index);
2882
- const current2 = (_b = rowSelection.selectedRowKeys) != null ? _b : [];
2891
+ const current2 = (_b2 = rowSelection.selectedRowKeys) != null ? _b2 : [];
2883
2892
  const isSelected = current2.some((k) => k === key);
2884
2893
  const newKeys = isSelected ? current2.filter((k) => k !== key) : [...current2, key];
2885
2894
  const newRows = (dataSource != null ? dataSource : []).filter(
@@ -2918,7 +2927,7 @@ function Table(props) {
2918
2927
  emptyText: loading && loadingIndicator ? loadingIndicator : loading ? " " : emptyState
2919
2928
  }
2920
2929
  }, rest), {
2921
- loading: loadingIndicator ? false : loading,
2930
+ loading: loadingIndicator ? { spinning: !!loading && ((_b = dataSource == null ? void 0 : dataSource.length) != null ? _b : 0) > 0, indicator: loadingIndicator } : loading,
2922
2931
  rowClassName: (_, index) => {
2923
2932
  var _a2;
2924
2933
  return (0, import_clsx12.default)({