@sudobility/scheduling-components 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.
@@ -0,0 +1,903 @@
1
+ import q, { useState as X } from "react";
2
+ import { cn as f } from "@sudobility/components";
3
+ var B = { exports: {} }, I = {};
4
+ var K;
5
+ function ne() {
6
+ if (K) return I;
7
+ K = 1;
8
+ var t = Symbol.for("react.transitional.element"), i = Symbol.for("react.fragment");
9
+ function a(g, u, n) {
10
+ var k = null;
11
+ if (n !== void 0 && (k = "" + n), u.key !== void 0 && (k = "" + u.key), "key" in u) {
12
+ n = {};
13
+ for (var c in u)
14
+ c !== "key" && (n[c] = u[c]);
15
+ } else n = u;
16
+ return u = n.ref, {
17
+ $$typeof: t,
18
+ type: g,
19
+ key: k,
20
+ ref: u !== void 0 ? u : null,
21
+ props: n
22
+ };
23
+ }
24
+ return I.Fragment = i, I.jsx = a, I.jsxs = a, I;
25
+ }
26
+ var W = {};
27
+ var ee;
28
+ function ae() {
29
+ return ee || (ee = 1, process.env.NODE_ENV !== "production" && (function() {
30
+ function t(e) {
31
+ if (e == null) return null;
32
+ if (typeof e == "function")
33
+ return e.$$typeof === v ? null : e.displayName || e.name || null;
34
+ if (typeof e == "string") return e;
35
+ switch (e) {
36
+ case D:
37
+ return "Fragment";
38
+ case F:
39
+ return "Profiler";
40
+ case P:
41
+ return "StrictMode";
42
+ case S:
43
+ return "Suspense";
44
+ case l:
45
+ return "SuspenseList";
46
+ case T:
47
+ return "Activity";
48
+ }
49
+ if (typeof e == "object")
50
+ switch (typeof e.tag == "number" && console.error(
51
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
52
+ ), e.$$typeof) {
53
+ case C:
54
+ return "Portal";
55
+ case o:
56
+ return e.displayName || "Context";
57
+ case L:
58
+ return (e._context.displayName || "Context") + ".Consumer";
59
+ case x:
60
+ var s = e.render;
61
+ return e = e.displayName, e || (e = s.displayName || s.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
62
+ case d:
63
+ return s = e.displayName || null, s !== null ? s : t(e.type) || "Memo";
64
+ case h:
65
+ s = e._payload, e = e._init;
66
+ try {
67
+ return t(e(s));
68
+ } catch {
69
+ }
70
+ }
71
+ return null;
72
+ }
73
+ function i(e) {
74
+ return "" + e;
75
+ }
76
+ function a(e) {
77
+ try {
78
+ i(e);
79
+ var s = !1;
80
+ } catch {
81
+ s = !0;
82
+ }
83
+ if (s) {
84
+ s = console;
85
+ var m = s.error, y = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
86
+ return m.call(
87
+ s,
88
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
89
+ y
90
+ ), i(e);
91
+ }
92
+ }
93
+ function g(e) {
94
+ if (e === D) return "<>";
95
+ if (typeof e == "object" && e !== null && e.$$typeof === h)
96
+ return "<...>";
97
+ try {
98
+ var s = t(e);
99
+ return s ? "<" + s + ">" : "<...>";
100
+ } catch {
101
+ return "<...>";
102
+ }
103
+ }
104
+ function u() {
105
+ var e = U.A;
106
+ return e === null ? null : e.getOwner();
107
+ }
108
+ function n() {
109
+ return Error("react-stack-top-frame");
110
+ }
111
+ function k(e) {
112
+ if (O.call(e, "key")) {
113
+ var s = Object.getOwnPropertyDescriptor(e, "key").get;
114
+ if (s && s.isReactWarning) return !1;
115
+ }
116
+ return e.key !== void 0;
117
+ }
118
+ function c(e, s) {
119
+ function m() {
120
+ $ || ($ = !0, console.error(
121
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
122
+ s
123
+ ));
124
+ }
125
+ m.isReactWarning = !0, Object.defineProperty(e, "key", {
126
+ get: m,
127
+ configurable: !0
128
+ });
129
+ }
130
+ function b() {
131
+ var e = t(this.type);
132
+ return z[e] || (z[e] = !0, console.error(
133
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
134
+ )), e = this.props.ref, e !== void 0 ? e : null;
135
+ }
136
+ function M(e, s, m, y, V, J) {
137
+ var p = m.ref;
138
+ return e = {
139
+ $$typeof: E,
140
+ type: e,
141
+ key: s,
142
+ props: m,
143
+ _owner: y
144
+ }, (p !== void 0 ? p : null) !== null ? Object.defineProperty(e, "ref", {
145
+ enumerable: !1,
146
+ get: b
147
+ }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
148
+ configurable: !1,
149
+ enumerable: !1,
150
+ writable: !0,
151
+ value: 0
152
+ }), Object.defineProperty(e, "_debugInfo", {
153
+ configurable: !1,
154
+ enumerable: !1,
155
+ writable: !0,
156
+ value: null
157
+ }), Object.defineProperty(e, "_debugStack", {
158
+ configurable: !1,
159
+ enumerable: !1,
160
+ writable: !0,
161
+ value: V
162
+ }), Object.defineProperty(e, "_debugTask", {
163
+ configurable: !1,
164
+ enumerable: !1,
165
+ writable: !0,
166
+ value: J
167
+ }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
168
+ }
169
+ function R(e, s, m, y, V, J) {
170
+ var p = s.children;
171
+ if (p !== void 0)
172
+ if (y)
173
+ if (_(p)) {
174
+ for (y = 0; y < p.length; y++)
175
+ w(p[y]);
176
+ Object.freeze && Object.freeze(p);
177
+ } else
178
+ console.error(
179
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
180
+ );
181
+ else w(p);
182
+ if (O.call(s, "key")) {
183
+ p = t(e);
184
+ var Y = Object.keys(s).filter(function(te) {
185
+ return te !== "key";
186
+ });
187
+ y = 0 < Y.length ? "{key: someKey, " + Y.join(": ..., ") + ": ...}" : "{key: someKey}", Q[p + y] || (Y = 0 < Y.length ? "{" + Y.join(": ..., ") + ": ...}" : "{}", console.error(
188
+ `A props object containing a "key" prop is being spread into JSX:
189
+ let props = %s;
190
+ <%s {...props} />
191
+ React keys must be passed directly to JSX without using spread:
192
+ let props = %s;
193
+ <%s key={someKey} {...props} />`,
194
+ y,
195
+ p,
196
+ Y,
197
+ p
198
+ ), Q[p + y] = !0);
199
+ }
200
+ if (p = null, m !== void 0 && (a(m), p = "" + m), k(s) && (a(s.key), p = "" + s.key), "key" in s) {
201
+ m = {};
202
+ for (var G in s)
203
+ G !== "key" && (m[G] = s[G]);
204
+ } else m = s;
205
+ return p && c(
206
+ m,
207
+ typeof e == "function" ? e.displayName || e.name || "Unknown" : e
208
+ ), M(
209
+ e,
210
+ p,
211
+ m,
212
+ u(),
213
+ V,
214
+ J
215
+ );
216
+ }
217
+ function w(e) {
218
+ j(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === h && (e._payload.status === "fulfilled" ? j(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
219
+ }
220
+ function j(e) {
221
+ return typeof e == "object" && e !== null && e.$$typeof === E;
222
+ }
223
+ var N = q, E = Symbol.for("react.transitional.element"), C = Symbol.for("react.portal"), D = Symbol.for("react.fragment"), P = Symbol.for("react.strict_mode"), F = Symbol.for("react.profiler"), L = Symbol.for("react.consumer"), o = Symbol.for("react.context"), x = Symbol.for("react.forward_ref"), S = Symbol.for("react.suspense"), l = Symbol.for("react.suspense_list"), d = Symbol.for("react.memo"), h = Symbol.for("react.lazy"), T = Symbol.for("react.activity"), v = Symbol.for("react.client.reference"), U = N.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, O = Object.prototype.hasOwnProperty, _ = Array.isArray, A = console.createTask ? console.createTask : function() {
224
+ return null;
225
+ };
226
+ N = {
227
+ react_stack_bottom_frame: function(e) {
228
+ return e();
229
+ }
230
+ };
231
+ var $, z = {}, H = N.react_stack_bottom_frame.bind(
232
+ N,
233
+ n
234
+ )(), Z = A(g(n)), Q = {};
235
+ W.Fragment = D, W.jsx = function(e, s, m) {
236
+ var y = 1e4 > U.recentlyCreatedOwnerStacks++;
237
+ return R(
238
+ e,
239
+ s,
240
+ m,
241
+ !1,
242
+ y ? Error("react-stack-top-frame") : H,
243
+ y ? A(g(e)) : Z
244
+ );
245
+ }, W.jsxs = function(e, s, m) {
246
+ var y = 1e4 > U.recentlyCreatedOwnerStacks++;
247
+ return R(
248
+ e,
249
+ s,
250
+ m,
251
+ !0,
252
+ y ? Error("react-stack-top-frame") : H,
253
+ y ? A(g(e)) : Z
254
+ );
255
+ };
256
+ })()), W;
257
+ }
258
+ var re;
259
+ function se() {
260
+ return re || (re = 1, process.env.NODE_ENV === "production" ? B.exports = ne() : B.exports = ae()), B.exports;
261
+ }
262
+ var r = se();
263
+ const ie = ({
264
+ value: t,
265
+ onChange: i,
266
+ minDate: a,
267
+ maxDate: g,
268
+ disabledDates: u = [],
269
+ showOutsideDays: n = !0,
270
+ className: k
271
+ }) => {
272
+ const [c, b] = X(t || /* @__PURE__ */ new Date()), M = (o) => {
273
+ const x = o.getFullYear(), S = o.getMonth();
274
+ return new Date(x, S + 1, 0).getDate();
275
+ }, R = (o) => {
276
+ const x = o.getFullYear(), S = o.getMonth();
277
+ return new Date(x, S, 1).getDay();
278
+ }, w = (o, x) => o.getFullYear() === x.getFullYear() && o.getMonth() === x.getMonth() && o.getDate() === x.getDate(), j = (o) => a && o < a || g && o > g ? !0 : u.some((x) => w(o, x)), N = () => {
279
+ b(
280
+ new Date(c.getFullYear(), c.getMonth() - 1)
281
+ );
282
+ }, E = () => {
283
+ b(
284
+ new Date(c.getFullYear(), c.getMonth() + 1)
285
+ );
286
+ }, D = (() => {
287
+ const o = c.getFullYear(), x = c.getMonth(), S = M(c), l = R(c), d = [];
288
+ if (n) {
289
+ const h = M(new Date(o, x - 1));
290
+ for (let T = l - 1; T >= 0; T--)
291
+ d.push(new Date(o, x - 1, h - T));
292
+ } else
293
+ for (let h = 0; h < l; h++)
294
+ d.push(null);
295
+ for (let h = 1; h <= S; h++)
296
+ d.push(new Date(o, x, h));
297
+ if (n) {
298
+ const h = 42 - d.length;
299
+ for (let T = 1; T <= h; T++)
300
+ d.push(new Date(o, x + 1, T));
301
+ }
302
+ return d;
303
+ })(), P = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], F = (o) => {
304
+ !o || j(o) || i(o);
305
+ }, L = c.toLocaleDateString("en-US", {
306
+ month: "long",
307
+ year: "numeric"
308
+ });
309
+ return /* @__PURE__ */ r.jsxs("div", { className: f("bg-white dark:bg-gray-900 rounded-lg p-4", k), children: [
310
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between mb-4", children: [
311
+ /* @__PURE__ */ r.jsx(
312
+ "button",
313
+ {
314
+ onClick: N,
315
+ className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-md transition-colors",
316
+ "aria-label": "Previous month",
317
+ children: /* @__PURE__ */ r.jsx(
318
+ "svg",
319
+ {
320
+ className: "w-5 h-5",
321
+ fill: "none",
322
+ stroke: "currentColor",
323
+ viewBox: "0 0 24 24",
324
+ children: /* @__PURE__ */ r.jsx(
325
+ "path",
326
+ {
327
+ strokeLinecap: "round",
328
+ strokeLinejoin: "round",
329
+ strokeWidth: 2,
330
+ d: "M15 19l-7-7 7-7"
331
+ }
332
+ )
333
+ }
334
+ )
335
+ }
336
+ ),
337
+ /* @__PURE__ */ r.jsx("h2", { className: "text-base font-semibold text-gray-900 dark:text-white", children: L }),
338
+ /* @__PURE__ */ r.jsx(
339
+ "button",
340
+ {
341
+ onClick: E,
342
+ className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-md transition-colors",
343
+ "aria-label": "Next month",
344
+ children: /* @__PURE__ */ r.jsx(
345
+ "svg",
346
+ {
347
+ className: "w-5 h-5",
348
+ fill: "none",
349
+ stroke: "currentColor",
350
+ viewBox: "0 0 24 24",
351
+ children: /* @__PURE__ */ r.jsx(
352
+ "path",
353
+ {
354
+ strokeLinecap: "round",
355
+ strokeLinejoin: "round",
356
+ strokeWidth: 2,
357
+ d: "M9 5l7 7-7 7"
358
+ }
359
+ )
360
+ }
361
+ )
362
+ }
363
+ )
364
+ ] }),
365
+ /* @__PURE__ */ r.jsx("div", { className: "grid grid-cols-7 gap-1 mb-2", children: P.map((o) => /* @__PURE__ */ r.jsx(
366
+ "div",
367
+ {
368
+ className: "text-center text-xs font-medium text-gray-600 dark:text-gray-400 py-2",
369
+ children: o
370
+ },
371
+ o
372
+ )) }),
373
+ /* @__PURE__ */ r.jsx("div", { className: "grid grid-cols-7 gap-1", children: D.map((o, x) => {
374
+ if (!o)
375
+ return /* @__PURE__ */ r.jsx("div", { className: "aspect-square" }, x);
376
+ const S = o.getMonth() === c.getMonth(), l = t && w(o, t), d = w(o, /* @__PURE__ */ new Date()), h = j(o);
377
+ return /* @__PURE__ */ r.jsx(
378
+ "button",
379
+ {
380
+ onClick: () => F(o),
381
+ disabled: h,
382
+ className: f(
383
+ "aspect-square flex items-center justify-center rounded-md text-sm transition-colors",
384
+ "hover:bg-gray-100 dark:hover:bg-gray-800",
385
+ "disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent",
386
+ S ? "text-gray-900 dark:text-white" : "text-gray-400 dark:text-gray-600",
387
+ l && "bg-blue-600 text-white hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600",
388
+ d && !l && "border-2 border-blue-600 dark:border-blue-400"
389
+ ),
390
+ children: o.getDate()
391
+ },
392
+ x
393
+ );
394
+ }) })
395
+ ] });
396
+ }, ce = ({
397
+ value: t,
398
+ onChange: i,
399
+ minDate: a,
400
+ maxDate: g,
401
+ disabledDates: u = [],
402
+ months: n = 2,
403
+ className: k
404
+ }) => {
405
+ const [c, b] = X(/* @__PURE__ */ new Date()), [M, R] = X(null), w = (l, d) => l.getFullYear() === d.getFullYear() && l.getMonth() === d.getMonth() && l.getDate() === d.getDate(), j = (l) => a && l < a || g && l > g ? !0 : u.some((d) => w(l, d)), N = (l) => {
406
+ if (!t.start || !t.end && !M) return !1;
407
+ const d = t.end || M;
408
+ return d ? l > t.start && l < d : !1;
409
+ }, E = (l) => t.start ? w(l, t.start) : !1, C = (l) => t.end ? w(l, t.end) : !1, D = (l) => {
410
+ j(l) || (!t.start || t.start && t.end ? i({ start: l, end: null }) : l < t.start ? i({ start: l, end: t.start }) : i({ start: t.start, end: l }));
411
+ }, P = (l) => {
412
+ const d = l.getFullYear(), h = l.getMonth();
413
+ return new Date(d, h + 1, 0).getDate();
414
+ }, F = (l) => {
415
+ const d = l.getFullYear(), h = l.getMonth();
416
+ return new Date(d, h, 1).getDay();
417
+ }, L = (l) => {
418
+ const d = new Date(
419
+ c.getFullYear(),
420
+ c.getMonth() + l
421
+ ), h = d.getFullYear(), T = d.getMonth(), v = P(d), U = F(d), O = [];
422
+ for (let _ = 0; _ < U; _++)
423
+ O.push(null);
424
+ for (let _ = 1; _ <= v; _++)
425
+ O.push(new Date(h, T, _));
426
+ return {
427
+ days: O,
428
+ monthName: d.toLocaleDateString("en-US", {
429
+ month: "long",
430
+ year: "numeric"
431
+ })
432
+ };
433
+ }, o = () => {
434
+ b(
435
+ new Date(c.getFullYear(), c.getMonth() - 1)
436
+ );
437
+ }, x = () => {
438
+ b(
439
+ new Date(c.getFullYear(), c.getMonth() + 1)
440
+ );
441
+ }, S = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
442
+ return /* @__PURE__ */ r.jsxs("div", { className: f("bg-white dark:bg-gray-900 rounded-lg p-4", k), children: [
443
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between mb-4", children: [
444
+ /* @__PURE__ */ r.jsx(
445
+ "button",
446
+ {
447
+ onClick: o,
448
+ className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-md transition-colors",
449
+ "aria-label": "Previous month",
450
+ children: /* @__PURE__ */ r.jsx(
451
+ "svg",
452
+ {
453
+ className: "w-5 h-5",
454
+ fill: "none",
455
+ stroke: "currentColor",
456
+ viewBox: "0 0 24 24",
457
+ children: /* @__PURE__ */ r.jsx(
458
+ "path",
459
+ {
460
+ strokeLinecap: "round",
461
+ strokeLinejoin: "round",
462
+ strokeWidth: 2,
463
+ d: "M15 19l-7-7 7-7"
464
+ }
465
+ )
466
+ }
467
+ )
468
+ }
469
+ ),
470
+ /* @__PURE__ */ r.jsx(
471
+ "button",
472
+ {
473
+ onClick: x,
474
+ className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-md transition-colors",
475
+ "aria-label": "Next month",
476
+ children: /* @__PURE__ */ r.jsx(
477
+ "svg",
478
+ {
479
+ className: "w-5 h-5",
480
+ fill: "none",
481
+ stroke: "currentColor",
482
+ viewBox: "0 0 24 24",
483
+ children: /* @__PURE__ */ r.jsx(
484
+ "path",
485
+ {
486
+ strokeLinecap: "round",
487
+ strokeLinejoin: "round",
488
+ strokeWidth: 2,
489
+ d: "M9 5l7 7-7 7"
490
+ }
491
+ )
492
+ }
493
+ )
494
+ }
495
+ )
496
+ ] }),
497
+ /* @__PURE__ */ r.jsx(
498
+ "div",
499
+ {
500
+ className: "grid gap-4",
501
+ style: { gridTemplateColumns: `repeat(${n}, 1fr)` },
502
+ children: Array.from({ length: n }, (l, d) => {
503
+ const { days: h, monthName: T } = L(d);
504
+ return /* @__PURE__ */ r.jsxs("div", { children: [
505
+ /* @__PURE__ */ r.jsx("h3", { className: "text-base font-semibold text-gray-900 dark:text-white mb-4 text-center", children: T }),
506
+ /* @__PURE__ */ r.jsx("div", { className: "grid grid-cols-7 gap-1 mb-2", children: S.map((v) => /* @__PURE__ */ r.jsx(
507
+ "div",
508
+ {
509
+ className: "text-center text-xs font-medium text-gray-600 dark:text-gray-400 py-2",
510
+ children: v
511
+ },
512
+ v
513
+ )) }),
514
+ /* @__PURE__ */ r.jsx("div", { className: "grid grid-cols-7 gap-1", children: h.map((v, U) => {
515
+ if (!v)
516
+ return /* @__PURE__ */ r.jsx("div", { className: "aspect-square" }, U);
517
+ const O = j(v), _ = E(v), A = C(v), $ = N(v), z = w(v, /* @__PURE__ */ new Date());
518
+ return /* @__PURE__ */ r.jsx(
519
+ "button",
520
+ {
521
+ onClick: () => D(v),
522
+ onMouseEnter: () => R(v),
523
+ onMouseLeave: () => R(null),
524
+ disabled: O,
525
+ className: f(
526
+ "aspect-square flex items-center justify-center rounded-md text-sm transition-colors relative",
527
+ "disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent",
528
+ $ && "bg-blue-100 dark:bg-blue-900/30",
529
+ (_ || A) && "bg-blue-600 text-white hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600",
530
+ !_ && !A && !$ && "hover:bg-gray-100 dark:hover:bg-gray-800",
531
+ z && !_ && !A && "border-2 border-blue-600 dark:border-blue-400"
532
+ ),
533
+ children: v.getDate()
534
+ },
535
+ U
536
+ );
537
+ }) })
538
+ ] }, d);
539
+ })
540
+ }
541
+ ),
542
+ (t.start || t.end) && /* @__PURE__ */ r.jsx("div", { className: "mt-4 pt-4 border-t border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between text-sm", children: [
543
+ /* @__PURE__ */ r.jsxs("div", { children: [
544
+ /* @__PURE__ */ r.jsx("span", { className: "text-gray-600 dark:text-gray-400", children: "Start: " }),
545
+ /* @__PURE__ */ r.jsx("span", { className: "font-medium text-gray-900 dark:text-white", children: t.start?.toLocaleDateString() || "Not selected" })
546
+ ] }),
547
+ /* @__PURE__ */ r.jsxs("div", { children: [
548
+ /* @__PURE__ */ r.jsx("span", { className: "text-gray-600 dark:text-gray-400", children: "End: " }),
549
+ /* @__PURE__ */ r.jsx("span", { className: "font-medium text-gray-900 dark:text-white", children: t.end?.toLocaleDateString() || "Not selected" })
550
+ ] })
551
+ ] }) })
552
+ ] });
553
+ }, de = ({
554
+ className: t,
555
+ children: i,
556
+ disabled: a
557
+ }) => /* @__PURE__ */ r.jsx(
558
+ "div",
559
+ {
560
+ className: f(
561
+ "p-4 rounded-lg border transition-colors",
562
+ "bg-white dark:bg-gray-900",
563
+ "border-gray-200 dark:border-gray-700",
564
+ "text-gray-900 dark:text-white",
565
+ a && "opacity-50 cursor-not-allowed",
566
+ t
567
+ ),
568
+ role: "region",
569
+ "aria-label": "InterviewScheduler",
570
+ children: i || "InterviewScheduler Component"
571
+ }
572
+ ), ue = ({
573
+ className: t,
574
+ children: i,
575
+ disabled: a = !1,
576
+ onClick: g
577
+ }) => /* @__PURE__ */ r.jsx(
578
+ "div",
579
+ {
580
+ className: f(
581
+ "p-4 rounded-lg border transition-colors",
582
+ "bg-white dark:bg-gray-900",
583
+ "border-gray-200 dark:border-gray-700",
584
+ "text-gray-900 dark:text-white",
585
+ a && "opacity-50 cursor-not-allowed",
586
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
587
+ t
588
+ ),
589
+ onClick: a ? void 0 : g,
590
+ role: "region",
591
+ "aria-label": "UmeetingUscheduler",
592
+ children: i || "UmeetingUscheduler Component"
593
+ }
594
+ ), ge = ({
595
+ className: t,
596
+ children: i,
597
+ disabled: a
598
+ }) => /* @__PURE__ */ r.jsx(
599
+ "div",
600
+ {
601
+ className: f(
602
+ "p-4 rounded-lg border transition-colors",
603
+ "bg-white dark:bg-gray-900",
604
+ "border-gray-200 dark:border-gray-700",
605
+ "text-gray-900 dark:text-white",
606
+ a && "opacity-50 cursor-not-allowed",
607
+ t
608
+ ),
609
+ role: "region",
610
+ "aria-label": "PortSchedule",
611
+ children: i || "PortSchedule Component"
612
+ }
613
+ ), he = ({
614
+ date: t,
615
+ showTooltip: i = !0,
616
+ updateInterval: a = 0,
617
+ className: g
618
+ }) => {
619
+ const [, u] = q.useState(0), n = q.useMemo(() => t instanceof Date ? t : new Date(t), [t]);
620
+ q.useEffect(() => {
621
+ if (a === 0) return;
622
+ const M = setInterval(() => {
623
+ u((R) => R + 1);
624
+ }, a * 1e3);
625
+ return () => clearInterval(M);
626
+ }, [a]);
627
+ const c = (() => {
628
+ const R = (/* @__PURE__ */ new Date()).getTime() - n.getTime(), w = Math.floor(R / 1e3), j = Math.floor(w / 60), N = Math.floor(j / 60), E = Math.floor(N / 24), C = Math.floor(E / 7), D = Math.floor(E / 30), P = Math.floor(E / 365);
629
+ return w < 60 ? "just now" : j < 60 ? `${j} ${j === 1 ? "minute" : "minutes"} ago` : N < 24 ? `${N} ${N === 1 ? "hour" : "hours"} ago` : E < 7 ? `${E} ${E === 1 ? "day" : "days"} ago` : C < 4 ? `${C} ${C === 1 ? "week" : "weeks"} ago` : D < 12 ? `${D} ${D === 1 ? "month" : "months"} ago` : `${P} ${P === 1 ? "year" : "years"} ago`;
630
+ })(), b = n.toLocaleString();
631
+ return /* @__PURE__ */ r.jsx(
632
+ "time",
633
+ {
634
+ dateTime: n.toISOString(),
635
+ title: i ? b : void 0,
636
+ className: f(g),
637
+ children: c
638
+ }
639
+ );
640
+ }, me = ({
641
+ className: t,
642
+ children: i,
643
+ disabled: a = !1,
644
+ onClick: g
645
+ }) => /* @__PURE__ */ r.jsx(
646
+ "div",
647
+ {
648
+ className: f(
649
+ "p-4 rounded-lg border transition-colors",
650
+ "bg-white dark:bg-gray-900",
651
+ "border-gray-200 dark:border-gray-700",
652
+ "text-gray-900 dark:text-white",
653
+ a && "opacity-50 cursor-not-allowed",
654
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
655
+ t
656
+ ),
657
+ onClick: a ? void 0 : g,
658
+ role: "region",
659
+ "aria-label": "UscheduleUtimeline",
660
+ children: i || "UscheduleUtimeline Component"
661
+ }
662
+ ), fe = ({
663
+ className: t,
664
+ children: i,
665
+ disabled: a = !1,
666
+ onClick: g
667
+ }) => /* @__PURE__ */ r.jsx(
668
+ "div",
669
+ {
670
+ className: f(
671
+ "p-4 rounded-lg border transition-colors",
672
+ "bg-white dark:bg-gray-900",
673
+ "border-gray-200 dark:border-gray-700",
674
+ "text-gray-900 dark:text-white",
675
+ a && "opacity-50 cursor-not-allowed",
676
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
677
+ t
678
+ ),
679
+ onClick: a ? void 0 : g,
680
+ role: "region",
681
+ "aria-label": "UsentimentUindicator",
682
+ children: i || "UsentimentUindicator Component"
683
+ }
684
+ ), xe = ({
685
+ className: t,
686
+ children: i,
687
+ disabled: a = !1,
688
+ onClick: g
689
+ }) => /* @__PURE__ */ r.jsx(
690
+ "div",
691
+ {
692
+ className: f(
693
+ "p-4 rounded-lg border transition-colors",
694
+ "bg-white dark:bg-gray-900",
695
+ "border-gray-200 dark:border-gray-700",
696
+ "text-gray-900 dark:text-white",
697
+ a && "opacity-50 cursor-not-allowed",
698
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
699
+ t
700
+ ),
701
+ onClick: a ? void 0 : g,
702
+ role: "region",
703
+ "aria-label": "UtimeUslotUpicker",
704
+ children: i || "UtimeUslotUpicker Component"
705
+ }
706
+ ), be = ({
707
+ events: t,
708
+ align: i = "left",
709
+ showConnectors: a = !0,
710
+ className: g
711
+ }) => /* @__PURE__ */ r.jsx("div", { className: f("relative", g), children: t.map((u, n) => {
712
+ const k = n === t.length - 1, c = u.color || "#3b82f6";
713
+ return /* @__PURE__ */ r.jsxs(
714
+ "div",
715
+ {
716
+ className: f(
717
+ "relative flex gap-4 pb-8",
718
+ i === "center" && "justify-center",
719
+ i === "right" && "justify-end"
720
+ ),
721
+ children: [
722
+ a && !k && /* @__PURE__ */ r.jsx(
723
+ "div",
724
+ {
725
+ className: "absolute left-4 top-8 w-0.5 h-full bg-gray-300 dark:bg-gray-600",
726
+ style: i === "center" ? { left: "50%" } : i === "right" ? { right: "2rem" } : void 0
727
+ }
728
+ ),
729
+ /* @__PURE__ */ r.jsx("div", { className: "relative z-10 flex-shrink-0", children: u.icon ? /* @__PURE__ */ r.jsx(
730
+ "div",
731
+ {
732
+ className: "w-8 h-8 rounded-full flex items-center justify-center text-white",
733
+ style: { backgroundColor: c },
734
+ children: u.icon
735
+ }
736
+ ) : /* @__PURE__ */ r.jsx(
737
+ "div",
738
+ {
739
+ className: "w-4 h-4 rounded-full border-4 border-white dark:border-gray-900",
740
+ style: { backgroundColor: c }
741
+ }
742
+ ) }),
743
+ /* @__PURE__ */ r.jsxs("div", { className: "flex-1 min-w-0", children: [
744
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center gap-3 mb-1", children: [
745
+ /* @__PURE__ */ r.jsx("h4", { className: "font-semibold text-gray-900 dark:text-white", children: u.title }),
746
+ u.timestamp && /* @__PURE__ */ r.jsx("span", { className: "text-xs text-gray-600 dark:text-gray-400", children: u.timestamp })
747
+ ] }),
748
+ u.description && /* @__PURE__ */ r.jsx("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: u.description })
749
+ ] })
750
+ ]
751
+ },
752
+ u.id
753
+ );
754
+ }) }), ye = ({
755
+ items: t,
756
+ orientation: i = "vertical",
757
+ className: a
758
+ }) => {
759
+ const g = {
760
+ completed: "bg-green-500 border-green-500",
761
+ active: "bg-blue-500 border-blue-500",
762
+ pending: "bg-gray-300 dark:bg-gray-600 border-gray-300 dark:border-gray-600",
763
+ error: "bg-red-500 border-red-500"
764
+ }, u = {
765
+ completed: "text-white",
766
+ active: "text-white",
767
+ pending: "text-gray-500 dark:text-gray-400",
768
+ error: "text-white"
769
+ };
770
+ return i === "horizontal" ? /* @__PURE__ */ r.jsx("div", { className: f("w-full overflow-x-auto", a), children: /* @__PURE__ */ r.jsx("div", { className: "flex items-start min-w-max px-4", children: t.map((n, k) => {
771
+ const c = k === t.length - 1, b = n.status || "pending";
772
+ return /* @__PURE__ */ r.jsxs(q.Fragment, { children: [
773
+ /* @__PURE__ */ r.jsxs("div", { className: "flex flex-col items-center", children: [
774
+ /* @__PURE__ */ r.jsx(
775
+ "div",
776
+ {
777
+ className: f(
778
+ "w-10 h-10 rounded-full flex items-center justify-center border-2",
779
+ g[b]
780
+ ),
781
+ children: n.icon ? /* @__PURE__ */ r.jsx("span", { className: f("w-5 h-5", u[b]), children: n.icon }) : b === "completed" ? /* @__PURE__ */ r.jsx(
782
+ "svg",
783
+ {
784
+ className: "w-5 h-5 text-white",
785
+ fill: "none",
786
+ stroke: "currentColor",
787
+ viewBox: "0 0 24 24",
788
+ children: /* @__PURE__ */ r.jsx(
789
+ "path",
790
+ {
791
+ strokeLinecap: "round",
792
+ strokeLinejoin: "round",
793
+ strokeWidth: 3,
794
+ d: "M5 13l4 4L19 7"
795
+ }
796
+ )
797
+ }
798
+ ) : null
799
+ }
800
+ ),
801
+ /* @__PURE__ */ r.jsxs("div", { className: "mt-4 text-center max-w-[200px]", children: [
802
+ /* @__PURE__ */ r.jsx("p", { className: "text-sm font-medium text-gray-900 dark:text-white", children: n.title }),
803
+ n.description && /* @__PURE__ */ r.jsx("p", { className: "text-xs text-gray-600 dark:text-gray-400 mt-1", children: n.description }),
804
+ n.timestamp && /* @__PURE__ */ r.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-500 mt-1", children: n.timestamp })
805
+ ] })
806
+ ] }),
807
+ !c && /* @__PURE__ */ r.jsx("div", { className: "flex-shrink-0 w-16 h-0.5 bg-gray-300 dark:bg-gray-700 mt-5 mx-2 relative", children: /* @__PURE__ */ r.jsx(
808
+ "div",
809
+ {
810
+ className: f(
811
+ "absolute left-0 top-0 h-full transition-all duration-300",
812
+ b === "completed" ? "w-full bg-green-500" : "w-0"
813
+ )
814
+ }
815
+ ) })
816
+ ] }, n.id);
817
+ }) }) }) : /* @__PURE__ */ r.jsx("div", { className: f("w-full", a), children: /* @__PURE__ */ r.jsx("div", { className: "space-y-4", children: t.map((n, k) => {
818
+ const c = k === t.length - 1, b = n.status || "pending";
819
+ return /* @__PURE__ */ r.jsxs("div", { className: "flex gap-4", children: [
820
+ /* @__PURE__ */ r.jsxs("div", { className: "flex flex-col items-center", children: [
821
+ /* @__PURE__ */ r.jsx(
822
+ "div",
823
+ {
824
+ className: f(
825
+ "w-10 h-10 rounded-full flex items-center justify-center border-2 flex-shrink-0",
826
+ g[b]
827
+ ),
828
+ children: n.icon ? /* @__PURE__ */ r.jsx("span", { className: f("w-5 h-5", u[b]), children: n.icon }) : b === "completed" ? /* @__PURE__ */ r.jsx(
829
+ "svg",
830
+ {
831
+ className: "w-5 h-5 text-white",
832
+ fill: "none",
833
+ stroke: "currentColor",
834
+ viewBox: "0 0 24 24",
835
+ children: /* @__PURE__ */ r.jsx(
836
+ "path",
837
+ {
838
+ strokeLinecap: "round",
839
+ strokeLinejoin: "round",
840
+ strokeWidth: 3,
841
+ d: "M5 13l4 4L19 7"
842
+ }
843
+ )
844
+ }
845
+ ) : null
846
+ }
847
+ ),
848
+ !c && /* @__PURE__ */ r.jsx("div", { className: "w-0.5 flex-1 min-h-[32px] bg-gray-300 dark:bg-gray-700 relative mt-2", children: /* @__PURE__ */ r.jsx(
849
+ "div",
850
+ {
851
+ className: f(
852
+ "absolute top-0 left-0 w-full transition-all duration-300",
853
+ b === "completed" ? "h-full bg-green-500" : "h-0"
854
+ )
855
+ }
856
+ ) })
857
+ ] }),
858
+ /* @__PURE__ */ r.jsx("div", { className: "flex-1 pb-4", children: /* @__PURE__ */ r.jsxs("div", { className: "flex items-start justify-between", children: [
859
+ /* @__PURE__ */ r.jsxs("div", { className: "flex-1", children: [
860
+ /* @__PURE__ */ r.jsx("p", { className: "text-sm font-medium text-gray-900 dark:text-white", children: n.title }),
861
+ n.description && /* @__PURE__ */ r.jsx("p", { className: "text-sm text-gray-600 dark:text-gray-400 mt-1", children: n.description })
862
+ ] }),
863
+ n.timestamp && /* @__PURE__ */ r.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-500 ml-4 flex-shrink-0", children: n.timestamp })
864
+ ] }) })
865
+ ] }, n.id);
866
+ }) }) });
867
+ }, pe = ({
868
+ className: t,
869
+ children: i,
870
+ disabled: a = !1,
871
+ onClick: g
872
+ }) => /* @__PURE__ */ r.jsx(
873
+ "div",
874
+ {
875
+ className: f(
876
+ "p-4 rounded-lg border transition-colors",
877
+ "bg-white dark:bg-gray-900",
878
+ "border-gray-200 dark:border-gray-700",
879
+ "text-gray-900 dark:text-white",
880
+ a && "opacity-50 cursor-not-allowed",
881
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
882
+ t
883
+ ),
884
+ onClick: a ? void 0 : g,
885
+ role: "region",
886
+ "aria-label": "UworkUcalendar",
887
+ children: i || "UworkUcalendar Component"
888
+ }
889
+ );
890
+ export {
891
+ ie as Calendar,
892
+ ce as DateRangePicker,
893
+ de as InterviewScheduler,
894
+ ge as PortSchedule,
895
+ he as RelativeTime,
896
+ ye as Timeline,
897
+ be as TimelineVertical,
898
+ ue as UmeetingUscheduler,
899
+ me as UscheduleUtimeline,
900
+ fe as UsentimentUindicator,
901
+ xe as UtimeUslotUpicker,
902
+ pe as UworkUcalendar
903
+ };