@theengineerguy/chronos-picker 1.0.6 → 1.0.8

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.
package/dist/index.esm.js CHANGED
@@ -1,7 +1,43 @@
1
- import { jsxs as h, jsx as o } from "react/jsx-runtime";
2
- import { useMemo as Y, useState as S, useEffect as B, useRef as Q, useCallback as G } from "react";
3
- import { DateTime as w } from "luxon";
4
- const me = "Asia/Kolkata", X = [
1
+ import { jsxs as m, jsx as n } from "react/jsx-runtime";
2
+ import { useMemo as Y, useState as E, useEffect as J, useRef as Q, useCallback as j } from "react";
3
+ import { DateTime as k } from "luxon";
4
+ const ye = "Asia/Kolkata", pe = [
5
+ // --- 2026 National Holidays (India) ---
6
+ { date: "2026-01-26", name: "Republic Day", type: "national" },
7
+ { date: "2026-03-19", name: "Holi", type: "national" },
8
+ // Tentative
9
+ { date: "2026-04-14", name: "Dr. Ambedkar Jayanti", type: "national" },
10
+ { date: "2026-08-15", name: "Independence Day", type: "national" },
11
+ { date: "2026-10-02", name: "Gandhi Jayanti", type: "national" },
12
+ { date: "2026-10-20", name: "Dussehra", type: "national" },
13
+ // Tentative
14
+ { date: "2026-11-08", name: "Diwali", type: "national" },
15
+ // Tentative
16
+ { date: "2026-12-25", name: "Christmas", type: "national" }
17
+ ], Me = [
18
+ // Republic Day Weekend (Jan 24-26)
19
+ { date: "2026-01-24", name: "Long Weekend: Trip to Jaipur?", type: "long-weekend" },
20
+ { date: "2026-01-25", name: "Long Weekend: Fort Visit", type: "long-weekend" },
21
+ { date: "2026-01-26", name: "Republic Day", type: "long-weekend" },
22
+ // Holi Weekend (Mar 19-22 - Take Friday off)
23
+ { date: "2026-03-19", name: "Holi Celebration", type: "long-weekend" },
24
+ { date: "2026-03-20", name: "Take a leave! Beach time?", type: "long-weekend" },
25
+ { date: "2026-03-21", name: "Relaxing Saturday", type: "long-weekend" },
26
+ { date: "2026-03-22", name: "Lazy Sunday", type: "long-weekend" },
27
+ // Independence Day Weekend (Aug 15-17)
28
+ { date: "2026-08-15", name: "Independence Day", type: "long-weekend" },
29
+ { date: "2026-08-16", name: "Sunday Brunch", type: "long-weekend" },
30
+ { date: "2026-08-17", name: "Take a leave? Hills calling!", type: "long-weekend" },
31
+ // Monday leave suggestion
32
+ // Diwali Weekend (Nov 7-9)
33
+ { date: "2026-11-07", name: "Choti Diwali", type: "long-weekend" },
34
+ { date: "2026-11-08", name: "Diwali", type: "long-weekend" },
35
+ { date: "2026-11-09", name: "Govardhan Puja (Take leave)", type: "long-weekend" }
36
+ ];
37
+ function ve(e) {
38
+ return e === ye ? [...pe, ...Me] : [];
39
+ }
40
+ const be = "Asia/Kolkata", X = [
5
41
  { value: "Asia/Kolkata", label: "India (IST)" },
6
42
  { value: "America/New_York", label: "Eastern Time (ET)" },
7
43
  { value: "America/Chicago", label: "Central Time (CT)" },
@@ -15,207 +51,231 @@ const me = "Asia/Kolkata", X = [
15
51
  { value: "Australia/Sydney", label: "Sydney (AEDT)" },
16
52
  { value: "UTC", label: "UTC" }
17
53
  ];
18
- function L(e, i) {
19
- return w.isDateTime(e) ? e.setZone(i) : typeof e == "string" ? w.fromISO(e, { zone: i }) : w.fromJSDate(e, { zone: i });
54
+ function Z(e, o) {
55
+ return k.isDateTime(e) ? e.setZone(o) : typeof e == "string" ? k.fromISO(e, { zone: o }) : k.fromJSDate(e, { zone: o });
20
56
  }
21
- function H(e) {
22
- return w.now().setZone(e);
57
+ function U(e) {
58
+ return k.now().setZone(e);
23
59
  }
24
- function F(e) {
25
- const s = w.now().setZone(e).offset, l = Math.floor(Math.abs(s) / 60), c = Math.abs(s) % 60;
26
- return `UTC${s >= 0 ? "+" : "-"}${l}${c > 0 ? `:${c.toString().padStart(2, "0")}` : ""}`;
60
+ function V(e) {
61
+ const s = k.now().setZone(e).offset, i = Math.floor(Math.abs(s) / 60), c = Math.abs(s) % 60;
62
+ return `UTC${s >= 0 ? "+" : "-"}${i}${c > 0 ? `:${c.toString().padStart(2, "0")}` : ""}`;
27
63
  }
28
- function ue(e, i, s, l, c, v, d, y, g) {
29
- const M = w.fromObject(
30
- { year: e, month: i, day: 1 },
64
+ function ge(e, o, s, i, c, v, d, h, N) {
65
+ const f = k.fromObject(
66
+ { year: e, month: o, day: 1 },
31
67
  { zone: s }
32
- ), I = M.startOf("week"), R = M.endOf("month").endOf("week"), E = w.now().setZone(s).startOf("day"), P = d != null && y != null, O = d == null ? void 0 : d.startOf("day"), x = y == null ? void 0 : y.endOf("day"), n = /* @__PURE__ */ new Map();
33
- g && g.forEach((b) => {
34
- let T;
35
- w.isDateTime(b.date) ? T = b.date.setZone(s) : typeof b.date == "string" ? T = w.fromISO(b.date, { zone: s }) : T = w.fromJSDate(b.date, { zone: s }), n.set(T.toISODate() || "", { name: b.name, type: b.type || "national" });
68
+ ), T = f.startOf("week"), I = f.endOf("month").endOf("week"), x = k.now().setZone(s).startOf("day"), P = d != null && h != null, L = d == null ? void 0 : d.startOf("day"), R = h == null ? void 0 : h.endOf("day"), t = /* @__PURE__ */ new Map();
69
+ N && N.forEach((D) => {
70
+ let u;
71
+ k.isDateTime(D.date) ? u = D.date.setZone(s) : typeof D.date == "string" ? u = k.fromISO(D.date, { zone: s }) : u = k.fromJSDate(D.date, { zone: s }), t.set(u.toISODate() || "", { name: D.name, type: D.type || "national" });
36
72
  });
37
- const u = [];
38
- let $ = [], r = I;
39
- for (; r <= R; ) {
40
- const b = r.month === i, T = r.hasSame(E, "day"), t = r.startOf("day"), p = r.toISODate() || "";
41
- let a = !1, C = !1, N = !1, W = !1;
42
- P && O && x ? (N = t.hasSame(O, "day"), W = t.hasSame(x, "day"), C = t >= O && t <= x || N || W, a = N || W) : l && (a = r.hasSame(l, "day"));
43
- let k = !1;
44
- c && r < c.startOf("day") && (k = !0), v && r > v.endOf("day") && (k = !0);
45
- const K = n.get(p);
46
- $.push({
47
- date: r,
48
- isCurrentMonth: b,
49
- isToday: T,
50
- isSelected: a,
51
- isDisabled: k,
52
- isInRange: C,
53
- isRangeStart: N,
54
- isRangeEnd: W,
55
- holiday: K ? { date: r, ...K } : void 0
56
- }), $.length === 7 && (u.push($), $ = []), r = r.plus({ days: 1 });
73
+ const p = [];
74
+ let _ = [], S = T;
75
+ for (; S <= I; ) {
76
+ const D = S.month === o, u = S.hasSame(x, "day"), O = S.startOf("day"), a = S.toISODate() || "";
77
+ let l = !1, r = !1, g = !1, $ = !1;
78
+ P && L && R ? (g = O.hasSame(L, "day"), $ = O.hasSame(R, "day"), r = O >= L && O <= R || g || $, l = g || $) : i && (l = S.hasSame(i, "day"));
79
+ let A = !1;
80
+ c && S < c.startOf("day") && (A = !0), v && S > v.endOf("day") && (A = !0);
81
+ const B = t.get(a);
82
+ _.push({
83
+ date: S,
84
+ isCurrentMonth: D,
85
+ isToday: u,
86
+ isSelected: l,
87
+ isDisabled: A,
88
+ isInRange: r,
89
+ isRangeStart: g,
90
+ isRangeEnd: $,
91
+ holiday: B ? { date: S, ...B } : void 0
92
+ }), _.length === 7 && (p.push(_), _ = []), S = S.plus({ days: 1 });
57
93
  }
58
- return u;
94
+ return p;
59
95
  }
60
- function pe() {
61
- const e = w.now().startOf("week"), i = [];
96
+ function ke() {
97
+ const e = k.now().startOf("week"), o = [];
62
98
  for (let s = 0; s < 7; s++) {
63
- const l = e.plus({ days: s });
64
- i.push(l.toFormat("ccc"));
99
+ const i = e.plus({ days: s });
100
+ o.push(i.toFormat("ccc"));
65
101
  }
66
- return i;
102
+ return o;
67
103
  }
68
- function ye() {
104
+ function Ne() {
69
105
  const e = [];
70
- for (let i = 1; i <= 12; i++) {
71
- const s = w.fromObject({ month: i });
106
+ for (let o = 1; o <= 12; o++) {
107
+ const s = k.fromObject({ month: o });
72
108
  e.push(s.toFormat("MMMM"));
73
109
  }
74
110
  return e;
75
111
  }
76
- const fe = ({
112
+ function Se(e, o, s, i) {
113
+ if (!e || e.length === 0) return [];
114
+ const c = (b) => k.isDateTime(b.date) ? b.date.setZone(o).startOf("day") : typeof b.date == "string" ? k.fromISO(b.date, { zone: o }).startOf("day") : k.fromJSDate(b.date, { zone: o }).startOf("day"), v = k.fromObject({ year: s, month: i, day: 1 }, { zone: o }), d = v.endOf("month"), h = Array.from(
115
+ new Set(e.map((b) => c(b).toISODate()).filter(Boolean))
116
+ ).sort();
117
+ if (h.length === 0) return [];
118
+ const N = [];
119
+ let f = k.fromISO(h[0], { zone: o }), T = f;
120
+ for (let b = 1; b < h.length; b++) {
121
+ const I = k.fromISO(h[b], { zone: o }), x = k.fromISO(h[b - 1], { zone: o });
122
+ I.diff(x, "days").days <= 1 || (T >= v && f <= d && N.push({ start: f, end: T }), f = I), T = I;
123
+ }
124
+ return T >= v && f <= d && N.push({ start: f, end: T }), N;
125
+ }
126
+ const Te = ({
77
127
  viewDate: e,
78
- selectedDate: i,
128
+ selectedDate: o,
79
129
  onDateSelect: s,
80
- onViewDateChange: l,
130
+ onViewDateChange: i,
81
131
  timezone: c,
82
132
  minDate: v,
83
133
  maxDate: d,
84
- selectedStart: y,
85
- selectedEnd: g,
86
- onRangeSelect: M,
87
- holidays: I
134
+ selectedStart: h,
135
+ selectedEnd: N,
136
+ onRangeSelect: f,
137
+ holidays: T
88
138
  }) => {
89
- const _ = M != null, R = Y(() => ue(
139
+ const b = f != null, I = Y(() => ge(
90
140
  e.year,
91
141
  e.month,
92
142
  c,
93
- i ?? void 0,
143
+ o ?? void 0,
94
144
  v,
95
145
  d,
96
- y ?? void 0,
97
- g ?? void 0,
98
- I
99
- ), [e, i, c, v, d, y, g, I]), E = Y(() => pe(), []), P = Y(() => ye(), []), O = () => {
100
- l(e.minus({ months: 1 }));
101
- }, x = () => {
102
- l(e.plus({ months: 1 }));
103
- }, n = (t) => {
104
- const p = parseInt(t.target.value, 10);
105
- l(e.set({ month: p }));
106
- }, u = (t) => {
107
- const p = parseInt(t.target.value, 10);
108
- l(e.set({ year: p }));
109
- }, $ = (t, p) => {
110
- if (!p)
111
- if (_ && M) {
112
- const a = t.startOf("day");
113
- if (y == null)
114
- M(t, t);
115
- else if (g != null && y.hasSame(g, "day")) {
116
- const C = y.startOf("day");
117
- a < C ? M(t, y) : M(y, t);
146
+ h ?? void 0,
147
+ N ?? void 0,
148
+ T
149
+ ), [e, o, c, v, d, h, N, T]), x = Y(
150
+ () => Se(T, c, e.year, e.month),
151
+ [T, c, e.year, e.month]
152
+ ), P = Y(() => ke(), []), L = Y(() => Ne(), []), R = () => {
153
+ i(e.minus({ months: 1 }));
154
+ }, t = () => {
155
+ i(e.plus({ months: 1 }));
156
+ }, p = (a) => {
157
+ const l = parseInt(a.target.value, 10);
158
+ i(e.set({ month: l }));
159
+ }, _ = (a) => {
160
+ const l = parseInt(a.target.value, 10);
161
+ i(e.set({ year: l }));
162
+ }, S = (a, l) => {
163
+ if (!l)
164
+ if (b && f) {
165
+ const r = a.startOf("day");
166
+ if (h == null)
167
+ f(a, a);
168
+ else if (N != null && h.hasSame(N, "day")) {
169
+ const g = h.startOf("day");
170
+ r < g ? f(a, h) : f(h, a);
118
171
  } else
119
- M(t, t);
172
+ f(a, a);
120
173
  } else
121
- s(t);
122
- }, r = (t, p, a) => {
123
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), $(p, a));
124
- }, b = e.year, T = Array.from({ length: 21 }, (t, p) => b - 10 + p);
125
- return /* @__PURE__ */ h("div", { className: "chronos-calendar", role: "region", "aria-label": "Calendar", children: [
126
- /* @__PURE__ */ h("div", { className: "chronos-calendar-header", children: [
127
- /* @__PURE__ */ o(
174
+ s(a);
175
+ }, D = (a, l, r) => {
176
+ (a.key === "Enter" || a.key === " ") && (a.preventDefault(), S(l, r));
177
+ }, u = e.year, O = Array.from({ length: 21 }, (a, l) => u - 10 + l);
178
+ return /* @__PURE__ */ m("div", { className: "chronos-calendar", role: "region", "aria-label": "Calendar", children: [
179
+ /* @__PURE__ */ m("div", { className: "chronos-calendar-header", children: [
180
+ /* @__PURE__ */ n(
128
181
  "button",
129
182
  {
130
183
  type: "button",
131
184
  className: "chronos-nav-button",
132
- onClick: O,
185
+ onClick: R,
133
186
  "aria-label": "Previous month",
134
187
  children: "‹"
135
188
  }
136
189
  ),
137
- /* @__PURE__ */ h("div", { className: "chronos-month-year-selectors", children: [
138
- /* @__PURE__ */ o(
190
+ /* @__PURE__ */ m("div", { className: "chronos-month-year-selectors", children: [
191
+ /* @__PURE__ */ n(
139
192
  "select",
140
193
  {
141
194
  className: "chronos-month-select",
142
195
  value: e.month,
143
- onChange: n,
196
+ onChange: p,
144
197
  "aria-label": "Select month",
145
- children: P.map((t, p) => /* @__PURE__ */ o("option", { value: p + 1, children: t }, p))
198
+ children: L.map((a, l) => /* @__PURE__ */ n("option", { value: l + 1, children: a }, l))
146
199
  }
147
200
  ),
148
- /* @__PURE__ */ o(
201
+ /* @__PURE__ */ n(
149
202
  "select",
150
203
  {
151
204
  className: "chronos-year-select",
152
205
  value: e.year,
153
- onChange: u,
206
+ onChange: _,
154
207
  "aria-label": "Select year",
155
- children: T.map((t) => /* @__PURE__ */ o("option", { value: t, children: t }, t))
208
+ children: O.map((a) => /* @__PURE__ */ n("option", { value: a, children: a }, a))
156
209
  }
157
210
  )
158
211
  ] }),
159
- /* @__PURE__ */ o(
212
+ /* @__PURE__ */ n(
160
213
  "button",
161
214
  {
162
215
  type: "button",
163
216
  className: "chronos-nav-button",
164
- onClick: x,
217
+ onClick: t,
165
218
  "aria-label": "Next month",
166
219
  children: "›"
167
220
  }
168
221
  )
169
222
  ] }),
170
- /* @__PURE__ */ h("div", { className: "chronos-calendar-grid", children: [
171
- /* @__PURE__ */ o("div", { className: "chronos-weekday-row", children: E.map((t) => /* @__PURE__ */ o("div", { className: "chronos-weekday", children: t }, t)) }),
172
- R.map((t, p) => /* @__PURE__ */ o("div", { className: "chronos-week-row", children: t.map((a, C) => /* @__PURE__ */ h(
223
+ /* @__PURE__ */ m("div", { className: "chronos-calendar-grid", children: [
224
+ /* @__PURE__ */ n("div", { className: "chronos-weekday-row", children: P.map((a) => /* @__PURE__ */ n("div", { className: "chronos-weekday", children: a }, a)) }),
225
+ I.map((a, l) => /* @__PURE__ */ n("div", { className: "chronos-week-row", children: a.map((r, g) => /* @__PURE__ */ m(
173
226
  "button",
174
227
  {
175
228
  type: "button",
176
- className: `chronos-day ${a.isSelected ? "selected" : ""} ${a.isToday ? "today" : ""} ${a.isCurrentMonth ? "" : "other-month"} ${a.isDisabled ? "disabled" : ""} ${a.isInRange ? "in-range" : ""} ${a.isRangeStart ? "range-start" : ""} ${a.isRangeEnd ? "range-end" : ""} ${a.holiday ? `holiday ${a.holiday.type}` : ""}`,
177
- onClick: () => $(a.date, a.isDisabled),
178
- onKeyDown: (N) => r(N, a.date, a.isDisabled),
179
- disabled: a.isDisabled,
180
- "aria-label": `${a.date.toFormat("MMMM d, yyyy")}${a.holiday ? `, ${a.holiday.name}` : ""}`,
181
- "aria-selected": a.isSelected,
182
- "aria-current": a.isToday ? "date" : void 0,
183
- title: a.holiday ? a.holiday.name : void 0,
229
+ className: `chronos-day ${r.isSelected ? "selected" : ""} ${r.isToday ? "today" : ""} ${r.isCurrentMonth ? "" : "other-month"} ${r.isDisabled ? "disabled" : ""} ${r.isInRange ? "in-range" : ""} ${r.isRangeStart ? "range-start" : ""} ${r.isRangeEnd ? "range-end" : ""} ${r.holiday ? `holiday ${r.holiday.type}` : ""}`,
230
+ onClick: () => S(r.date, r.isDisabled),
231
+ onKeyDown: ($) => D($, r.date, r.isDisabled),
232
+ disabled: r.isDisabled,
233
+ "aria-label": `${r.date.toFormat("MMMM d, yyyy")}${r.holiday ? `, ${r.holiday.name}` : ""}`,
234
+ "aria-selected": r.isSelected,
235
+ "aria-current": r.isToday ? "date" : void 0,
236
+ title: r.holiday ? r.holiday.name : void 0,
184
237
  children: [
185
- a.date.day,
186
- a.holiday && /* @__PURE__ */ o("span", { className: "chronos-holiday-dot" })
238
+ r.date.day,
239
+ r.holiday && /* @__PURE__ */ n("span", { className: "chronos-holiday-dot" })
187
240
  ]
188
241
  },
189
- C
190
- )) }, p))
191
- ] })
242
+ g
243
+ )) }, l))
244
+ ] }),
245
+ x.length > 0 && /* @__PURE__ */ n("div", { className: "chronos-vacation-notes", role: "region", "aria-label": "Vacation suggestions", children: x.map((a, l) => {
246
+ const r = a.start.hasSame(a.end, "day"), g = a.start.toFormat("d MMM yyyy"), $ = a.end.toFormat("d MMM yyyy");
247
+ return /* @__PURE__ */ m("div", { className: "chronos-vacation-note", children: [
248
+ /* @__PURE__ */ n("div", { className: "chronos-vacation-note-title", children: r ? "Vacation day" : "You can take your vacation" }),
249
+ /* @__PURE__ */ n("div", { className: "chronos-vacation-note-dates", children: r ? g : `from ${g} to ${$}` })
250
+ ] }, l);
251
+ }) })
192
252
  ] });
193
- }, be = ({
253
+ }, Oe = ({
194
254
  value: e,
195
- onChange: i,
255
+ onChange: o,
196
256
  use24Hour: s
197
257
  }) => {
198
- const [l, c] = S((e == null ? void 0 : e.hour) ?? 12), [v, d] = S((e == null ? void 0 : e.minute) ?? 0), [y, g] = S(
258
+ const [i, c] = E((e == null ? void 0 : e.hour) ?? 12), [v, d] = E((e == null ? void 0 : e.minute) ?? 0), [h, N] = E(
199
259
  e && e.hour >= 12 ? "PM" : "AM"
200
260
  );
201
- B(() => {
202
- e && (c(e.hour), d(e.minute), g(e.hour >= 12 ? "PM" : "AM"));
261
+ J(() => {
262
+ e && (c(e.hour), d(e.minute), N(e.hour >= 12 ? "PM" : "AM"));
203
263
  }, [e]);
204
- const M = (n) => {
205
- c(n);
206
- let u = n;
207
- s || (y === "PM" && n !== 12 ? u = n + 12 : y === "AM" && n === 12 && (u = 0)), i(u, v);
208
- }, I = (n) => {
209
- d(n), i(l, n);
210
- }, _ = () => {
211
- const n = y === "AM" ? "PM" : "AM";
212
- g(n);
213
- let u = l;
214
- n === "PM" && l !== 12 ? u = l + 12 : n === "AM" && l === 12 ? u = 0 : n === "AM" && l > 12 && (u = l - 12), i(u, v);
215
- }, R = s ? l : l % 12 || 12, E = s ? 23 : 12, P = s ? 0 : 1, O = Array.from({ length: E - P + 1 }, (n, u) => P + u), x = Array.from({ length: 60 }, (n, u) => u);
216
- return /* @__PURE__ */ h("div", { className: "chronos-time-picker", role: "group", "aria-label": "Time picker", children: [
217
- /* @__PURE__ */ h("div", { className: "chronos-time-header", children: [
218
- /* @__PURE__ */ h(
264
+ const f = (t) => {
265
+ c(t);
266
+ let p = t;
267
+ s || (h === "PM" && t !== 12 ? p = t + 12 : h === "AM" && t === 12 && (p = 0)), o(p, v);
268
+ }, T = (t) => {
269
+ d(t), o(i, t);
270
+ }, b = () => {
271
+ const t = h === "AM" ? "PM" : "AM";
272
+ N(t);
273
+ let p = i;
274
+ t === "PM" && i !== 12 ? p = i + 12 : t === "AM" && i === 12 ? p = 0 : t === "AM" && i > 12 && (p = i - 12), o(p, v);
275
+ }, I = s ? i : i % 12 || 12, x = s ? 23 : 12, P = s ? 0 : 1, L = Array.from({ length: x - P + 1 }, (t, p) => P + p), R = Array.from({ length: 60 }, (t, p) => p);
276
+ return /* @__PURE__ */ m("div", { className: "chronos-time-picker", role: "group", "aria-label": "Time picker", children: [
277
+ /* @__PURE__ */ m("div", { className: "chronos-time-header", children: [
278
+ /* @__PURE__ */ m(
219
279
  "svg",
220
280
  {
221
281
  className: "chronos-clock-icon",
@@ -225,67 +285,67 @@ const fe = ({
225
285
  stroke: "currentColor",
226
286
  strokeWidth: "2",
227
287
  children: [
228
- /* @__PURE__ */ o("circle", { cx: "12", cy: "12", r: "10" }),
229
- /* @__PURE__ */ o("polyline", { points: "12 6 12 12 16 14" })
288
+ /* @__PURE__ */ n("circle", { cx: "12", cy: "12", r: "10" }),
289
+ /* @__PURE__ */ n("polyline", { points: "12 6 12 12 16 14" })
230
290
  ]
231
291
  }
232
292
  ),
233
- /* @__PURE__ */ o("span", { children: "Time" })
293
+ /* @__PURE__ */ n("span", { children: "Time" })
234
294
  ] }),
235
- /* @__PURE__ */ h("div", { className: "chronos-time-controls", children: [
236
- /* @__PURE__ */ h("div", { className: "chronos-time-input-group", children: [
237
- /* @__PURE__ */ o("label", { htmlFor: "chronos-hour-select", className: "chronos-time-label", children: "Hour" }),
238
- /* @__PURE__ */ o(
295
+ /* @__PURE__ */ m("div", { className: "chronos-time-controls", children: [
296
+ /* @__PURE__ */ m("div", { className: "chronos-time-input-group", children: [
297
+ /* @__PURE__ */ n("label", { htmlFor: "chronos-hour-select", className: "chronos-time-label", children: "Hour" }),
298
+ /* @__PURE__ */ n(
239
299
  "select",
240
300
  {
241
301
  id: "chronos-hour-select",
242
302
  className: "chronos-time-select",
243
- value: R,
244
- onChange: (n) => M(parseInt(n.target.value, 10)),
303
+ value: I,
304
+ onChange: (t) => f(parseInt(t.target.value, 10)),
245
305
  "aria-label": "Select hour",
246
- children: O.map((n) => /* @__PURE__ */ o("option", { value: n, children: n.toString().padStart(2, "0") }, n))
306
+ children: L.map((t) => /* @__PURE__ */ n("option", { value: t, children: t.toString().padStart(2, "0") }, t))
247
307
  }
248
308
  )
249
309
  ] }),
250
- /* @__PURE__ */ o("span", { className: "chronos-time-separator", children: ":" }),
251
- /* @__PURE__ */ h("div", { className: "chronos-time-input-group", children: [
252
- /* @__PURE__ */ o("label", { htmlFor: "chronos-minute-select", className: "chronos-time-label", children: "Minute" }),
253
- /* @__PURE__ */ o(
310
+ /* @__PURE__ */ n("span", { className: "chronos-time-separator", children: ":" }),
311
+ /* @__PURE__ */ m("div", { className: "chronos-time-input-group", children: [
312
+ /* @__PURE__ */ n("label", { htmlFor: "chronos-minute-select", className: "chronos-time-label", children: "Minute" }),
313
+ /* @__PURE__ */ n(
254
314
  "select",
255
315
  {
256
316
  id: "chronos-minute-select",
257
317
  className: "chronos-time-select",
258
318
  value: v,
259
- onChange: (n) => I(parseInt(n.target.value, 10)),
319
+ onChange: (t) => T(parseInt(t.target.value, 10)),
260
320
  "aria-label": "Select minute",
261
- children: x.map((n) => /* @__PURE__ */ o("option", { value: n, children: n.toString().padStart(2, "0") }, n))
321
+ children: R.map((t) => /* @__PURE__ */ n("option", { value: t, children: t.toString().padStart(2, "0") }, t))
262
322
  }
263
323
  )
264
324
  ] }),
265
- !s && /* @__PURE__ */ o(
325
+ !s && /* @__PURE__ */ n(
266
326
  "button",
267
327
  {
268
328
  type: "button",
269
329
  className: "chronos-period-toggle",
270
- onClick: _,
271
- "aria-label": `Switch to ${y === "AM" ? "PM" : "AM"}`,
272
- children: y
330
+ onClick: b,
331
+ "aria-label": `Switch to ${h === "AM" ? "PM" : "AM"}`,
332
+ children: h
273
333
  }
274
334
  )
275
335
  ] })
276
336
  ] });
277
- }, Me = ({
337
+ }, De = ({
278
338
  value: e,
279
- onChange: i
339
+ onChange: o
280
340
  }) => {
281
- const [s, l] = S(!1), c = X.find((d) => d.value === e) || {
341
+ const [s, i] = E(!1), c = X.find((d) => d.value === e) || {
282
342
  label: e
283
343
  }, v = (d) => {
284
- i(d), l(!1);
344
+ o(d), i(!1);
285
345
  };
286
- return /* @__PURE__ */ h("div", { className: "chronos-timezone-selector", children: [
287
- /* @__PURE__ */ h("div", { className: "chronos-timezone-header", children: [
288
- /* @__PURE__ */ h(
346
+ return /* @__PURE__ */ m("div", { className: "chronos-timezone-selector", children: [
347
+ /* @__PURE__ */ m("div", { className: "chronos-timezone-header", children: [
348
+ /* @__PURE__ */ m(
289
349
  "svg",
290
350
  {
291
351
  className: "chronos-globe-icon",
@@ -295,26 +355,26 @@ const fe = ({
295
355
  stroke: "currentColor",
296
356
  strokeWidth: "2",
297
357
  children: [
298
- /* @__PURE__ */ o("circle", { cx: "12", cy: "12", r: "10" }),
299
- /* @__PURE__ */ o("line", { x1: "2", y1: "12", x2: "22", y2: "12" }),
300
- /* @__PURE__ */ o("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })
358
+ /* @__PURE__ */ n("circle", { cx: "12", cy: "12", r: "10" }),
359
+ /* @__PURE__ */ n("line", { x1: "2", y1: "12", x2: "22", y2: "12" }),
360
+ /* @__PURE__ */ n("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })
301
361
  ]
302
362
  }
303
363
  ),
304
- /* @__PURE__ */ o("span", { children: "Timezone" })
364
+ /* @__PURE__ */ n("span", { children: "Timezone" })
305
365
  ] }),
306
- /* @__PURE__ */ h(
366
+ /* @__PURE__ */ m(
307
367
  "button",
308
368
  {
309
369
  type: "button",
310
370
  className: "chronos-timezone-button",
311
- onClick: () => l(!s),
371
+ onClick: () => i(!s),
312
372
  "aria-expanded": s,
313
373
  "aria-label": "Select timezone",
314
374
  children: [
315
- /* @__PURE__ */ o("span", { className: "chronos-timezone-label", children: c.label }),
316
- /* @__PURE__ */ o("span", { className: "chronos-timezone-offset", children: F(e) }),
317
- /* @__PURE__ */ o(
375
+ /* @__PURE__ */ n("span", { className: "chronos-timezone-label", children: c.label }),
376
+ /* @__PURE__ */ n("span", { className: "chronos-timezone-offset", children: V(e) }),
377
+ /* @__PURE__ */ n(
318
378
  "svg",
319
379
  {
320
380
  className: `chronos-chevron ${s ? "expanded" : ""}`,
@@ -323,13 +383,13 @@ const fe = ({
323
383
  fill: "none",
324
384
  stroke: "currentColor",
325
385
  strokeWidth: "2",
326
- children: /* @__PURE__ */ o("polyline", { points: "6 9 12 15 18 9" })
386
+ children: /* @__PURE__ */ n("polyline", { points: "6 9 12 15 18 9" })
327
387
  }
328
388
  )
329
389
  ]
330
390
  }
331
391
  ),
332
- s && /* @__PURE__ */ o("div", { className: "chronos-timezone-list", role: "listbox", children: X.map((d) => /* @__PURE__ */ h(
392
+ s && /* @__PURE__ */ n("div", { className: "chronos-timezone-list", role: "listbox", children: X.map((d) => /* @__PURE__ */ m(
333
393
  "button",
334
394
  {
335
395
  type: "button",
@@ -338,145 +398,147 @@ const fe = ({
338
398
  role: "option",
339
399
  "aria-selected": d.value === e,
340
400
  children: [
341
- /* @__PURE__ */ o("span", { className: "chronos-timezone-option-label", children: d.label }),
342
- /* @__PURE__ */ o("span", { className: "chronos-timezone-option-offset", children: F(d.value) })
401
+ /* @__PURE__ */ n("span", { className: "chronos-timezone-option-label", children: d.label }),
402
+ /* @__PURE__ */ n("span", { className: "chronos-timezone-option-offset", children: V(d.value) })
343
403
  ]
344
404
  },
345
405
  d.value
346
406
  )) })
347
407
  ] });
348
408
  };
349
- function V(e, i, s) {
409
+ function ee(e, o, s) {
350
410
  return {
351
411
  iso: e.toISO() || "",
352
- formatted: e.toFormat(`${i} ${s}`),
412
+ formatted: e.toFormat(`${o} ${s}`),
353
413
  timestamp: e.toMillis(),
354
414
  dateTime: e
355
415
  };
356
416
  }
357
- const Ne = ({
417
+ const $e = ({
358
418
  value: e,
359
- onChange: i,
360
- timezone: s = me,
361
- dateFormat: l = "DD",
419
+ onChange: o,
420
+ timezone: s = be,
421
+ dateFormat: i = "DD",
362
422
  timeFormat: c = "HH:mm",
363
423
  minDate: v,
364
424
  maxDate: d,
365
- placeholder: y = "Select date and time",
366
- disabled: g = !1,
367
- showTime: M = !0,
368
- use24Hour: I = !0,
369
- className: _ = "",
370
- ariaLabel: R = "Date and time picker",
371
- showTimezoneSelector: E = !1,
425
+ placeholder: h = "Select date and time",
426
+ disabled: N = !1,
427
+ showTime: f = !0,
428
+ use24Hour: T = !0,
429
+ className: b = "",
430
+ ariaLabel: I = "Date and time picker",
431
+ showTimezoneSelector: x = !1,
372
432
  theme: P = "light",
373
- orientation: O = "portrait",
374
- selectionMode: x = "single",
375
- rangeValue: n,
376
- onRangeChange: u,
377
- holidays: $
433
+ orientation: L = "portrait",
434
+ selectionMode: R = "single",
435
+ rangeValue: t,
436
+ onRangeChange: p,
437
+ holidays: _,
438
+ customHolidays: S,
439
+ showHolidays: D = !0
378
440
  }) => {
379
- const r = x === "range", [b, T] = S(!1), [t, p] = S(() => !r && e ? L(e, s) : null), [a, C] = S(() => r && (n != null && n.start) ? L(n.start, s) : null), [N, W] = S(() => r && (n != null && n.end) ? L(n.end, s) : null), [k, K] = S(s), [ee, Z] = S(() => t || a || N || H(s)), J = Q(null), U = Q(null);
380
- B(() => {
381
- !r && e && p(L(e, k));
382
- }, [e, k, r]), B(() => {
383
- r && (n == null ? void 0 : n.start) != null && (n == null ? void 0 : n.end) != null && (C(L(n.start, k)), W(L(n.end, k)));
384
- }, [r, n, k]), B(() => {
385
- const f = (m) => {
386
- J.current && !J.current.contains(m.target) && T(!1);
441
+ const u = R === "range", [O, a] = E(!1), [l, r] = E(() => !u && e ? Z(e, s) : null), [g, $] = E(() => u && (t != null && t.start) ? Z(t.start, s) : null), [A, B] = E(() => u && (t != null && t.end) ? Z(t.end, s) : null), [w, te] = E(s), [ne, K] = E(() => l || g || A || U(s)), G = Q(null), F = Q(null);
442
+ J(() => {
443
+ !u && e && r(Z(e, w));
444
+ }, [e, w, u]), J(() => {
445
+ u && (t == null ? void 0 : t.start) != null && (t == null ? void 0 : t.end) != null && ($(Z(t.start, w)), B(Z(t.end, w)));
446
+ }, [u, t, w]), J(() => {
447
+ const M = (y) => {
448
+ G.current && !G.current.contains(y.target) && a(!1);
387
449
  };
388
- if (b)
389
- return document.addEventListener("mousedown", f), () => document.removeEventListener("mousedown", f);
390
- }, [b]), B(() => {
391
- const f = (m) => {
392
- var D;
393
- m.key === "Escape" && b && (T(!1), (D = U.current) == null || D.focus());
450
+ if (O)
451
+ return document.addEventListener("mousedown", M), () => document.removeEventListener("mousedown", M);
452
+ }, [O]), J(() => {
453
+ const M = (y) => {
454
+ var C;
455
+ y.key === "Escape" && O && (a(!1), (C = F.current) == null || C.focus());
394
456
  };
395
- return document.addEventListener("keydown", f), () => document.removeEventListener("keydown", f);
396
- }, [b]);
397
- const ne = G((f) => {
398
- let m = f;
399
- if (t && (m = f.set({
400
- hour: t.hour,
401
- minute: t.minute,
402
- second: t.second
403
- })), p(m), Z(m), M || T(!1), i) {
404
- const D = {
405
- iso: m.toISO() || "",
406
- formatted: m.toFormat(`${l} ${c}`),
407
- timestamp: m.toMillis(),
408
- dateTime: m
457
+ return document.addEventListener("keydown", M), () => document.removeEventListener("keydown", M);
458
+ }, [O]);
459
+ const oe = j((M) => {
460
+ let y = M;
461
+ if (l && (y = M.set({
462
+ hour: l.hour,
463
+ minute: l.minute,
464
+ second: l.second
465
+ })), r(y), K(y), f || a(!1), o) {
466
+ const C = {
467
+ iso: y.toISO() || "",
468
+ formatted: y.toFormat(`${i} ${c}`),
469
+ timestamp: y.toMillis(),
470
+ dateTime: y
409
471
  };
410
- i(D);
472
+ o(C);
411
473
  }
412
- }, [t, M, i, l, c]), te = G((f, m) => {
413
- const A = (t || H(k)).set({ hour: f, minute: m, second: 0 });
414
- if (p(A), i) {
474
+ }, [l, f, o, i, c]), ae = j((M, y) => {
475
+ const W = (l || U(w)).set({ hour: M, minute: y, second: 0 });
476
+ if (r(W), o) {
415
477
  const z = {
416
- iso: A.toISO() || "",
417
- formatted: A.toFormat(`${l} ${c}`),
418
- timestamp: A.toMillis(),
419
- dateTime: A
478
+ iso: W.toISO() || "",
479
+ formatted: W.toFormat(`${i} ${c}`),
480
+ timestamp: W.toMillis(),
481
+ dateTime: W
420
482
  };
421
- i(z);
483
+ o(z);
422
484
  }
423
- }, [t, k, i, l, c]), oe = G((f, m) => {
424
- const D = f.startOf("day"), A = m.startOf("day"), [z, j] = D <= A ? [D, A] : [A, D];
425
- if (C(z), W(j), Z(z), u) {
426
- const ce = V(z, l, c), de = V(j, l, c), he = Math.max(0, Math.ceil(j.diff(z, "days").days));
427
- u({ start: ce, end: de, nights: he });
485
+ }, [l, w, o, i, c]), se = j((M, y) => {
486
+ const C = M.startOf("day"), W = y.startOf("day"), [z, H] = C <= W ? [C, W] : [W, C];
487
+ if ($(z), B(H), K(z), p) {
488
+ const me = ee(z, i, c), fe = ee(H, i, c), ue = Math.max(0, Math.ceil(H.diff(z, "days").days));
489
+ p({ start: me, end: fe, nights: ue });
428
490
  }
429
- }, [u, l, c]), ae = G((f) => {
430
- if (K(f), t) {
431
- const m = t.setZone(f);
432
- if (p(m), Z(m), i) {
433
- const D = {
434
- iso: m.toISO() || "",
435
- formatted: m.toFormat(`${l} ${c}`),
436
- timestamp: m.toMillis(),
437
- dateTime: m
491
+ }, [p, i, c]), re = j((M) => {
492
+ if (te(M), l) {
493
+ const y = l.setZone(M);
494
+ if (r(y), K(y), o) {
495
+ const C = {
496
+ iso: y.toISO() || "",
497
+ formatted: y.toFormat(`${i} ${c}`),
498
+ timestamp: y.toMillis(),
499
+ dateTime: y
438
500
  };
439
- i(D);
501
+ o(C);
440
502
  }
441
503
  } else
442
- Z(H(f));
443
- }, [t, i, l, c]), q = () => {
444
- g || T(!b);
445
- }, se = (f) => {
446
- (f.key === "Enter" || f.key === " ") && (f.preventDefault(), q());
447
- }, ie = r ? a && N ? `${a.toFormat("d MMM yyyy")} – ${N.toFormat("d MMM yyyy")}` : "" : t ? t.toFormat(`${l} ${M ? c : ""}`) : "", le = v ? L(v, k) : void 0, re = d ? L(d, k) : void 0;
448
- return /* @__PURE__ */ h(
504
+ K(U(M));
505
+ }, [l, o, i, c]), q = () => {
506
+ N || a(!O);
507
+ }, ie = (M) => {
508
+ (M.key === "Enter" || M.key === " ") && (M.preventDefault(), q());
509
+ }, le = u ? g && A ? `${g.toFormat("d MMM yyyy")} – ${A.toFormat("d MMM yyyy")}` : "" : l ? l.toFormat(`${i} ${f ? c : ""}`) : "", ce = v ? Z(v, w) : void 0, de = d ? Z(d, w) : void 0, he = _ !== void 0 ? _ : D ? [...ve(w), ...S ?? []] : S ?? [];
510
+ return /* @__PURE__ */ m(
449
511
  "div",
450
512
  {
451
- ref: J,
452
- className: `chronos-picker ${_}`,
453
- "data-disabled": g,
513
+ ref: G,
514
+ className: `chronos-picker ${b}`,
515
+ "data-disabled": N,
454
516
  "data-theme": P,
455
517
  children: [
456
- /* @__PURE__ */ h(
518
+ /* @__PURE__ */ m(
457
519
  "div",
458
520
  {
459
521
  className: "chronos-input-wrapper",
460
522
  onClick: q,
461
523
  children: [
462
- /* @__PURE__ */ o(
524
+ /* @__PURE__ */ n(
463
525
  "input",
464
526
  {
465
- ref: U,
527
+ ref: F,
466
528
  type: "text",
467
529
  className: "chronos-input",
468
- value: ie,
469
- placeholder: y,
530
+ value: le,
531
+ placeholder: h,
470
532
  readOnly: !0,
471
- disabled: g,
472
- onKeyDown: se,
473
- "aria-label": R,
474
- "aria-expanded": b,
533
+ disabled: N,
534
+ onKeyDown: ie,
535
+ "aria-label": I,
536
+ "aria-expanded": O,
475
537
  "aria-haspopup": "dialog",
476
538
  role: "combobox"
477
539
  }
478
540
  ),
479
- /* @__PURE__ */ h(
541
+ /* @__PURE__ */ m(
480
542
  "svg",
481
543
  {
482
544
  className: "chronos-calendar-icon",
@@ -486,67 +548,67 @@ const Ne = ({
486
548
  stroke: "currentColor",
487
549
  strokeWidth: "2",
488
550
  children: [
489
- /* @__PURE__ */ o("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }),
490
- /* @__PURE__ */ o("line", { x1: "16", y1: "2", x2: "16", y2: "6" }),
491
- /* @__PURE__ */ o("line", { x1: "8", y1: "2", x2: "8", y2: "6" }),
492
- /* @__PURE__ */ o("line", { x1: "3", y1: "10", x2: "21", y2: "10" })
551
+ /* @__PURE__ */ n("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }),
552
+ /* @__PURE__ */ n("line", { x1: "16", y1: "2", x2: "16", y2: "6" }),
553
+ /* @__PURE__ */ n("line", { x1: "8", y1: "2", x2: "8", y2: "6" }),
554
+ /* @__PURE__ */ n("line", { x1: "3", y1: "10", x2: "21", y2: "10" })
493
555
  ]
494
556
  }
495
557
  )
496
558
  ]
497
559
  }
498
560
  ),
499
- b && /* @__PURE__ */ o(
561
+ O && /* @__PURE__ */ n(
500
562
  "div",
501
563
  {
502
564
  className: "chronos-dropdown",
503
- "data-orientation": O,
504
- "data-range-mode": r,
565
+ "data-orientation": L,
566
+ "data-range-mode": u,
505
567
  role: "dialog",
506
568
  "aria-label": "Date and time picker dialog",
507
- children: /* @__PURE__ */ h("div", { className: "chronos-dropdown-content", children: [
508
- r && a && N && /* @__PURE__ */ h("div", { className: "chronos-range-summary", children: [
509
- /* @__PURE__ */ h("div", { className: "chronos-range-nights", children: [
510
- Math.max(0, Math.ceil(N.diff(a, "days").days)),
569
+ children: /* @__PURE__ */ m("div", { className: "chronos-dropdown-content", children: [
570
+ u && g && A && /* @__PURE__ */ m("div", { className: "chronos-range-summary", children: [
571
+ /* @__PURE__ */ m("div", { className: "chronos-range-nights", children: [
572
+ Math.max(0, Math.ceil(A.diff(g, "days").days)),
511
573
  " nights"
512
574
  ] }),
513
- /* @__PURE__ */ h("div", { className: "chronos-range-dates", children: [
514
- a.toFormat("d MMM yyyy"),
575
+ /* @__PURE__ */ m("div", { className: "chronos-range-dates", children: [
576
+ g.toFormat("d MMM yyyy"),
515
577
  " – ",
516
- N.toFormat("d MMM yyyy")
578
+ A.toFormat("d MMM yyyy")
517
579
  ] })
518
580
  ] }),
519
- /* @__PURE__ */ o(
520
- fe,
581
+ /* @__PURE__ */ n(
582
+ Te,
521
583
  {
522
- viewDate: ee,
523
- selectedDate: r ? null : t,
524
- onDateSelect: ne,
525
- onViewDateChange: Z,
526
- timezone: k,
527
- minDate: le,
528
- maxDate: re,
529
- selectedStart: r ? a : void 0,
530
- selectedEnd: r ? N : void 0,
531
- onRangeSelect: r ? oe : void 0,
532
- holidays: $
584
+ viewDate: ne,
585
+ selectedDate: u ? null : l,
586
+ onDateSelect: oe,
587
+ onViewDateChange: K,
588
+ timezone: w,
589
+ minDate: ce,
590
+ maxDate: de,
591
+ selectedStart: u ? g : void 0,
592
+ selectedEnd: u ? A : void 0,
593
+ onRangeSelect: u ? se : void 0,
594
+ holidays: he
533
595
  }
534
596
  ),
535
- !r && (M || E) && /* @__PURE__ */ h("div", { className: "chronos-sidebar", children: [
536
- M && /* @__PURE__ */ o(
537
- be,
597
+ !u && (f || x) && /* @__PURE__ */ m("div", { className: "chronos-sidebar", children: [
598
+ f && /* @__PURE__ */ n(
599
+ Oe,
538
600
  {
539
- value: t,
540
- onChange: te,
541
- use24Hour: I,
542
- timezone: k
601
+ value: l,
602
+ onChange: ae,
603
+ use24Hour: T,
604
+ timezone: w
543
605
  }
544
606
  ),
545
- E && /* @__PURE__ */ o(
546
- Me,
607
+ x && /* @__PURE__ */ n(
608
+ De,
547
609
  {
548
- value: k,
549
- onChange: ae
610
+ value: w,
611
+ onChange: re
550
612
  }
551
613
  )
552
614
  ] })
@@ -556,45 +618,15 @@ const Ne = ({
556
618
  ]
557
619
  }
558
620
  );
559
- }, Te = [
560
- // --- 2026 National Holidays (India) ---
561
- { date: "2026-01-26", name: "Republic Day", type: "national" },
562
- { date: "2026-03-19", name: "Holi", type: "national" },
563
- // Tentative
564
- { date: "2026-04-14", name: "Dr. Ambedkar Jayanti", type: "national" },
565
- { date: "2026-08-15", name: "Independence Day", type: "national" },
566
- { date: "2026-10-02", name: "Gandhi Jayanti", type: "national" },
567
- { date: "2026-10-20", name: "Dussehra", type: "national" },
568
- // Tentative
569
- { date: "2026-11-08", name: "Diwali", type: "national" },
570
- // Tentative
571
- { date: "2026-12-25", name: "Christmas", type: "national" }
572
- ], we = [
573
- // Republic Day Weekend (Jan 24-26)
574
- { date: "2026-01-24", name: "Long Weekend: Trip to Jaipur?", type: "long-weekend" },
575
- { date: "2026-01-25", name: "Long Weekend: Fort Visit", type: "long-weekend" },
576
- { date: "2026-01-26", name: "Republic Day", type: "long-weekend" },
577
- // Holi Weekend (Mar 19-22 - Take Friday off)
578
- { date: "2026-03-19", name: "Holi Celebration", type: "long-weekend" },
579
- { date: "2026-03-20", name: "Take a leave! Beach time?", type: "long-weekend" },
580
- { date: "2026-03-21", name: "Relaxing Saturday", type: "long-weekend" },
581
- { date: "2026-03-22", name: "Lazy Sunday", type: "long-weekend" },
582
- // Independence Day Weekend (Aug 15-17)
583
- { date: "2026-08-15", name: "Independence Day", type: "long-weekend" },
584
- { date: "2026-08-16", name: "Sunday Brunch", type: "long-weekend" },
585
- { date: "2026-08-17", name: "Take a leave? Hills calling!", type: "long-weekend" },
586
- // Monday leave suggestion
587
- // Diwali Weekend (Nov 7-9)
588
- { date: "2026-11-07", name: "Choti Diwali", type: "long-weekend" },
589
- { date: "2026-11-08", name: "Diwali", type: "long-weekend" },
590
- { date: "2026-11-09", name: "Govardhan Puja (Take leave)", type: "long-weekend" }
591
- ];
621
+ };
592
622
  export {
593
623
  X as COMMON_TIMEZONES,
594
- me as DEFAULT_TIMEZONE,
595
- Ne as DateTimePicker,
596
- Te as INDIAN_HOLIDAYS_2026,
597
- we as LONG_WEEKENDS_2026,
598
- L as convertToTimezone,
599
- H as nowInTimezone
624
+ ye as DEFAULT_HOLIDAYS_TIMEZONE,
625
+ be as DEFAULT_TIMEZONE,
626
+ $e as DateTimePicker,
627
+ pe as INDIAN_HOLIDAYS_2026,
628
+ Me as LONG_WEEKENDS_2026,
629
+ Z as convertToTimezone,
630
+ ve as getDefaultHolidaysForTimezone,
631
+ U as nowInTimezone
600
632
  };