@neuctra/ui 0.1.0

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 (102) hide show
  1. package/dist/components/avatar/Avatar.d.ts +9 -0
  2. package/dist/components/avatar/AvatarGroup.d.ts +9 -0
  3. package/dist/components/avatar/AvatarWithStatus.d.ts +10 -0
  4. package/dist/components/basic/Accordation.d.ts +35 -0
  5. package/dist/components/basic/Alert.d.ts +18 -0
  6. package/dist/components/basic/AudioPlayer.d.ts +16 -0
  7. package/dist/components/basic/Badge.d.ts +26 -0
  8. package/dist/components/basic/Button.d.ts +28 -0
  9. package/dist/components/basic/CheckRadioInput.d.ts +20 -0
  10. package/dist/components/basic/Container.d.ts +32 -0
  11. package/dist/components/basic/Drawer.d.ts +24 -0
  12. package/dist/components/basic/DropDown.d.ts +37 -0
  13. package/dist/components/basic/Flexbox.d.ts +21 -0
  14. package/dist/components/basic/GridView.d.ts +24 -0
  15. package/dist/components/basic/Image.d.ts +33 -0
  16. package/dist/components/basic/Input.d.ts +38 -0
  17. package/dist/components/basic/List.d.ts +26 -0
  18. package/dist/components/basic/Table.d.ts +25 -0
  19. package/dist/components/basic/Tabs.d.ts +34 -0
  20. package/dist/components/basic/Text.d.ts +39 -0
  21. package/dist/components/basic/VideoPlayer.d.ts +17 -0
  22. package/dist/components/button/ToggleButton.d.ts +15 -0
  23. package/dist/components/card/Card.d.ts +26 -0
  24. package/dist/components/card/ImageCard.d.ts +14 -0
  25. package/dist/components/card/InteractiveCard.d.ts +7 -0
  26. package/dist/components/gallery/AudioGallery.d.ts +21 -0
  27. package/dist/components/gallery/ImageGallery.d.ts +14 -0
  28. package/dist/components/gallery/VideoGallery.d.ts +18 -0
  29. package/dist/components/modal/FullScreenModal.d.ts +9 -0
  30. package/dist/components/modal/Modal.d.ts +11 -0
  31. package/dist/components/modal/ModalBody.d.ts +6 -0
  32. package/dist/components/modal/ModalFooter.d.ts +6 -0
  33. package/dist/components/modal/ModalHeader.d.ts +7 -0
  34. package/dist/components/table/CustomTable.d.ts +7 -0
  35. package/dist/components/table/SortableTableHeader.d.ts +7 -0
  36. package/dist/components/table/TableBody.d.ts +7 -0
  37. package/dist/components/table/TableColumn.d.ts +7 -0
  38. package/dist/components/table/TableHead.d.ts +7 -0
  39. package/dist/components/table/TableHeader.d.ts +7 -0
  40. package/dist/components/table/TableRow.d.ts +7 -0
  41. package/dist/components/tabs/CustomTabs.d.ts +8 -0
  42. package/dist/components/tabs/Tab.d.ts +10 -0
  43. package/dist/components/tabs/TabList.d.ts +7 -0
  44. package/dist/components/tabs/TabPanel.d.ts +7 -0
  45. package/dist/components/tabs/TabPanels.d.ts +8 -0
  46. package/dist/components/video/CustomVideoPlayer.d.ts +11 -0
  47. package/dist/components/video/EmbedVideo.d.ts +6 -0
  48. package/dist/components/video/PiPVideo.d.ts +4 -0
  49. package/dist/index.cjs.js +159 -0
  50. package/dist/index.d.ts +21 -0
  51. package/dist/index.es.js +2824 -0
  52. package/dist/types/components/avatar/Avatar.d.ts +9 -0
  53. package/dist/types/components/avatar/AvatarGroup.d.ts +9 -0
  54. package/dist/types/components/avatar/AvatarWithStatus.d.ts +10 -0
  55. package/dist/types/components/basic/Accordation.d.ts +35 -0
  56. package/dist/types/components/basic/Alert.d.ts +18 -0
  57. package/dist/types/components/basic/AudioPlayer.d.ts +16 -0
  58. package/dist/types/components/basic/Badge.d.ts +26 -0
  59. package/dist/types/components/basic/Button.d.ts +28 -0
  60. package/dist/types/components/basic/CheckRadioInput.d.ts +20 -0
  61. package/dist/types/components/basic/Container.d.ts +32 -0
  62. package/dist/types/components/basic/Drawer.d.ts +24 -0
  63. package/dist/types/components/basic/DropDown.d.ts +37 -0
  64. package/dist/types/components/basic/Flexbox.d.ts +21 -0
  65. package/dist/types/components/basic/GridView.d.ts +24 -0
  66. package/dist/types/components/basic/Image.d.ts +33 -0
  67. package/dist/types/components/basic/Input.d.ts +38 -0
  68. package/dist/types/components/basic/List.d.ts +26 -0
  69. package/dist/types/components/basic/Table.d.ts +25 -0
  70. package/dist/types/components/basic/Tabs.d.ts +34 -0
  71. package/dist/types/components/basic/Text.d.ts +39 -0
  72. package/dist/types/components/basic/VideoPlayer.d.ts +17 -0
  73. package/dist/types/components/button/ToggleButton.d.ts +15 -0
  74. package/dist/types/components/card/Card.d.ts +26 -0
  75. package/dist/types/components/card/ImageCard.d.ts +14 -0
  76. package/dist/types/components/card/InteractiveCard.d.ts +7 -0
  77. package/dist/types/components/gallery/AudioGallery.d.ts +21 -0
  78. package/dist/types/components/gallery/ImageGallery.d.ts +14 -0
  79. package/dist/types/components/gallery/VideoGallery.d.ts +18 -0
  80. package/dist/types/components/modal/FullScreenModal.d.ts +9 -0
  81. package/dist/types/components/modal/Modal.d.ts +11 -0
  82. package/dist/types/components/modal/ModalBody.d.ts +6 -0
  83. package/dist/types/components/modal/ModalFooter.d.ts +6 -0
  84. package/dist/types/components/modal/ModalHeader.d.ts +7 -0
  85. package/dist/types/components/table/CustomTable.d.ts +7 -0
  86. package/dist/types/components/table/SortableTableHeader.d.ts +7 -0
  87. package/dist/types/components/table/TableBody.d.ts +7 -0
  88. package/dist/types/components/table/TableColumn.d.ts +7 -0
  89. package/dist/types/components/table/TableHead.d.ts +7 -0
  90. package/dist/types/components/table/TableHeader.d.ts +7 -0
  91. package/dist/types/components/table/TableRow.d.ts +7 -0
  92. package/dist/types/components/tabs/CustomTabs.d.ts +8 -0
  93. package/dist/types/components/tabs/Tab.d.ts +10 -0
  94. package/dist/types/components/tabs/TabList.d.ts +7 -0
  95. package/dist/types/components/tabs/TabPanel.d.ts +7 -0
  96. package/dist/types/components/tabs/TabPanels.d.ts +8 -0
  97. package/dist/types/components/video/CustomVideoPlayer.d.ts +11 -0
  98. package/dist/types/components/video/EmbedVideo.d.ts +6 -0
  99. package/dist/types/components/video/PiPVideo.d.ts +4 -0
  100. package/dist/types/index.d.ts +22 -0
  101. package/dist/ui.css +1 -0
  102. package/package.json +66 -0
@@ -0,0 +1,2824 @@
1
+ import ce, { useMemo as K, forwardRef as ne, createElement as re, useRef as J, useState as P, useImperativeHandle as ke, useEffect as q } from "react";
2
+ var ee = { exports: {} }, Z = {};
3
+ /**
4
+ * @license React
5
+ * react-jsx-runtime.production.js
6
+ *
7
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ var oe;
13
+ function Se() {
14
+ if (oe) return Z;
15
+ oe = 1;
16
+ var t = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
17
+ function l(o, a, s) {
18
+ var i = null;
19
+ if (s !== void 0 && (i = "" + s), a.key !== void 0 && (i = "" + a.key), "key" in a) {
20
+ s = {};
21
+ for (var p in a)
22
+ p !== "key" && (s[p] = a[p]);
23
+ } else s = a;
24
+ return a = s.ref, {
25
+ $$typeof: t,
26
+ type: o,
27
+ key: i,
28
+ ref: a !== void 0 ? a : null,
29
+ props: s
30
+ };
31
+ }
32
+ return Z.Fragment = n, Z.jsx = l, Z.jsxs = l, Z;
33
+ }
34
+ var Q = {};
35
+ /**
36
+ * @license React
37
+ * react-jsx-runtime.development.js
38
+ *
39
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
40
+ *
41
+ * This source code is licensed under the MIT license found in the
42
+ * LICENSE file in the root directory of this source tree.
43
+ */
44
+ var le;
45
+ function Te() {
46
+ return le || (le = 1, process.env.NODE_ENV !== "production" && function() {
47
+ function t(r) {
48
+ if (r == null) return null;
49
+ if (typeof r == "function")
50
+ return r.$$typeof === z ? null : r.displayName || r.name || null;
51
+ if (typeof r == "string") return r;
52
+ switch (r) {
53
+ case u:
54
+ return "Fragment";
55
+ case b:
56
+ return "Profiler";
57
+ case k:
58
+ return "StrictMode";
59
+ case O:
60
+ return "Suspense";
61
+ case v:
62
+ return "SuspenseList";
63
+ case B:
64
+ return "Activity";
65
+ }
66
+ if (typeof r == "object")
67
+ switch (typeof r.tag == "number" && console.error(
68
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
69
+ ), r.$$typeof) {
70
+ case d:
71
+ return "Portal";
72
+ case A:
73
+ return (r.displayName || "Context") + ".Provider";
74
+ case S:
75
+ return (r._context.displayName || "Context") + ".Consumer";
76
+ case I:
77
+ var j = r.render;
78
+ return r = r.displayName, r || (r = j.displayName || j.name || "", r = r !== "" ? "ForwardRef(" + r + ")" : "ForwardRef"), r;
79
+ case T:
80
+ return j = r.displayName || null, j !== null ? j : t(r.type) || "Memo";
81
+ case M:
82
+ j = r._payload, r = r._init;
83
+ try {
84
+ return t(r(j));
85
+ } catch {
86
+ }
87
+ }
88
+ return null;
89
+ }
90
+ function n(r) {
91
+ return "" + r;
92
+ }
93
+ function l(r) {
94
+ try {
95
+ n(r);
96
+ var j = !1;
97
+ } catch {
98
+ j = !0;
99
+ }
100
+ if (j) {
101
+ j = console;
102
+ var W = j.error, D = typeof Symbol == "function" && Symbol.toStringTag && r[Symbol.toStringTag] || r.constructor.name || "Object";
103
+ return W.call(
104
+ j,
105
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
106
+ D
107
+ ), n(r);
108
+ }
109
+ }
110
+ function o(r) {
111
+ if (r === u) return "<>";
112
+ if (typeof r == "object" && r !== null && r.$$typeof === M)
113
+ return "<...>";
114
+ try {
115
+ var j = t(r);
116
+ return j ? "<" + j + ">" : "<...>";
117
+ } catch {
118
+ return "<...>";
119
+ }
120
+ }
121
+ function a() {
122
+ var r = _.A;
123
+ return r === null ? null : r.getOwner();
124
+ }
125
+ function s() {
126
+ return Error("react-stack-top-frame");
127
+ }
128
+ function i(r) {
129
+ if (R.call(r, "key")) {
130
+ var j = Object.getOwnPropertyDescriptor(r, "key").get;
131
+ if (j && j.isReactWarning) return !1;
132
+ }
133
+ return r.key !== void 0;
134
+ }
135
+ function p(r, j) {
136
+ function W() {
137
+ y || (y = !0, console.error(
138
+ "%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)",
139
+ j
140
+ ));
141
+ }
142
+ W.isReactWarning = !0, Object.defineProperty(r, "key", {
143
+ get: W,
144
+ configurable: !0
145
+ });
146
+ }
147
+ function h() {
148
+ var r = t(this.type);
149
+ return w[r] || (w[r] = !0, console.error(
150
+ "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."
151
+ )), r = this.props.ref, r !== void 0 ? r : null;
152
+ }
153
+ function g(r, j, W, D, F, C, L, X) {
154
+ return W = C.ref, r = {
155
+ $$typeof: f,
156
+ type: r,
157
+ key: j,
158
+ props: C,
159
+ _owner: F
160
+ }, (W !== void 0 ? W : null) !== null ? Object.defineProperty(r, "ref", {
161
+ enumerable: !1,
162
+ get: h
163
+ }) : Object.defineProperty(r, "ref", { enumerable: !1, value: null }), r._store = {}, Object.defineProperty(r._store, "validated", {
164
+ configurable: !1,
165
+ enumerable: !1,
166
+ writable: !0,
167
+ value: 0
168
+ }), Object.defineProperty(r, "_debugInfo", {
169
+ configurable: !1,
170
+ enumerable: !1,
171
+ writable: !0,
172
+ value: null
173
+ }), Object.defineProperty(r, "_debugStack", {
174
+ configurable: !1,
175
+ enumerable: !1,
176
+ writable: !0,
177
+ value: L
178
+ }), Object.defineProperty(r, "_debugTask", {
179
+ configurable: !1,
180
+ enumerable: !1,
181
+ writable: !0,
182
+ value: X
183
+ }), Object.freeze && (Object.freeze(r.props), Object.freeze(r)), r;
184
+ }
185
+ function m(r, j, W, D, F, C, L, X) {
186
+ var E = j.children;
187
+ if (E !== void 0)
188
+ if (D)
189
+ if (H(E)) {
190
+ for (D = 0; D < E.length; D++)
191
+ c(E[D]);
192
+ Object.freeze && Object.freeze(E);
193
+ } else
194
+ console.error(
195
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
196
+ );
197
+ else c(E);
198
+ if (R.call(j, "key")) {
199
+ E = t(r);
200
+ var G = Object.keys(j).filter(function(ve) {
201
+ return ve !== "key";
202
+ });
203
+ D = 0 < G.length ? "{key: someKey, " + G.join(": ..., ") + ": ...}" : "{key: someKey}", U[E + D] || (G = 0 < G.length ? "{" + G.join(": ..., ") + ": ...}" : "{}", console.error(
204
+ `A props object containing a "key" prop is being spread into JSX:
205
+ let props = %s;
206
+ <%s {...props} />
207
+ React keys must be passed directly to JSX without using spread:
208
+ let props = %s;
209
+ <%s key={someKey} {...props} />`,
210
+ D,
211
+ E,
212
+ G,
213
+ E
214
+ ), U[E + D] = !0);
215
+ }
216
+ if (E = null, W !== void 0 && (l(W), E = "" + W), i(j) && (l(j.key), E = "" + j.key), "key" in j) {
217
+ W = {};
218
+ for (var te in j)
219
+ te !== "key" && (W[te] = j[te]);
220
+ } else W = j;
221
+ return E && p(
222
+ W,
223
+ typeof r == "function" ? r.displayName || r.name || "Unknown" : r
224
+ ), g(
225
+ r,
226
+ E,
227
+ C,
228
+ F,
229
+ a(),
230
+ W,
231
+ L,
232
+ X
233
+ );
234
+ }
235
+ function c(r) {
236
+ typeof r == "object" && r !== null && r.$$typeof === f && r._store && (r._store.validated = 1);
237
+ }
238
+ var x = ce, f = Symbol.for("react.transitional.element"), d = Symbol.for("react.portal"), u = Symbol.for("react.fragment"), k = Symbol.for("react.strict_mode"), b = Symbol.for("react.profiler"), S = Symbol.for("react.consumer"), A = Symbol.for("react.context"), I = Symbol.for("react.forward_ref"), O = Symbol.for("react.suspense"), v = Symbol.for("react.suspense_list"), T = Symbol.for("react.memo"), M = Symbol.for("react.lazy"), B = Symbol.for("react.activity"), z = Symbol.for("react.client.reference"), _ = x.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, R = Object.prototype.hasOwnProperty, H = Array.isArray, Y = console.createTask ? console.createTask : function() {
239
+ return null;
240
+ };
241
+ x = {
242
+ react_stack_bottom_frame: function(r) {
243
+ return r();
244
+ }
245
+ };
246
+ var y, w = {}, N = x.react_stack_bottom_frame.bind(
247
+ x,
248
+ s
249
+ )(), $ = Y(o(s)), U = {};
250
+ Q.Fragment = u, Q.jsx = function(r, j, W, D, F) {
251
+ var C = 1e4 > _.recentlyCreatedOwnerStacks++;
252
+ return m(
253
+ r,
254
+ j,
255
+ W,
256
+ !1,
257
+ D,
258
+ F,
259
+ C ? Error("react-stack-top-frame") : N,
260
+ C ? Y(o(r)) : $
261
+ );
262
+ }, Q.jsxs = function(r, j, W, D, F) {
263
+ var C = 1e4 > _.recentlyCreatedOwnerStacks++;
264
+ return m(
265
+ r,
266
+ j,
267
+ W,
268
+ !0,
269
+ D,
270
+ F,
271
+ C ? Error("react-stack-top-frame") : N,
272
+ C ? Y(o(r)) : $
273
+ );
274
+ };
275
+ }()), Q;
276
+ }
277
+ var ae;
278
+ function ze() {
279
+ return ae || (ae = 1, process.env.NODE_ENV === "production" ? ee.exports = Se() : ee.exports = Te()), ee.exports;
280
+ }
281
+ var e = ze();
282
+ const nt = ({
283
+ as: t = "p",
284
+ children: n,
285
+ className: l = "",
286
+ href: o,
287
+ target: a,
288
+ rel: s,
289
+ // Style
290
+ color: i = "#333",
291
+ bgColor: p,
292
+ fontSize: h = "16px",
293
+ fontWeight: g = "normal",
294
+ textAlign: m = "left",
295
+ textTransform: c = "none",
296
+ lineHeight: x = "normal",
297
+ letterSpacing: f = "normal",
298
+ maxWidth: d,
299
+ padding: u,
300
+ margin: k,
301
+ borderRadius: b,
302
+ boxShadow: S,
303
+ shadowColor: A = "rgba(0,0,0,0.1)",
304
+ wordBreak: I = "normal",
305
+ // Text styles
306
+ italic: O = !1,
307
+ bold: v = !1,
308
+ underline: T = !1,
309
+ strikethrough: M = !1,
310
+ selectable: B = !0,
311
+ truncate: z = !1,
312
+ // Hover & Active
313
+ hoverColor: _,
314
+ hoverBgColor: R,
315
+ hoverTextDecoration: H,
316
+ activeColor: Y,
317
+ activeBgColor: y,
318
+ transitionDuration: w = "0.25s",
319
+ // Event
320
+ onClick: N
321
+ }) => {
322
+ const $ = K(() => {
323
+ const C = [];
324
+ return T && C.push("underline"), M && C.push("line-through"), C.join(" ") || "none";
325
+ }, [T, M]), U = {
326
+ color: i,
327
+ backgroundColor: p || "transparent",
328
+ fontSize: h,
329
+ fontWeight: v ? "bold" : g,
330
+ textAlign: m,
331
+ textTransform: c,
332
+ lineHeight: x,
333
+ letterSpacing: f,
334
+ maxWidth: d,
335
+ padding: u,
336
+ margin: k,
337
+ borderRadius: b,
338
+ textDecoration: $,
339
+ fontStyle: O ? "italic" : "normal",
340
+ wordBreak: I,
341
+ boxShadow: S || (A ? `0 1px 4px ${A}` : void 0),
342
+ cursor: N || o ? "pointer" : "default",
343
+ userSelect: B ? "text" : "none",
344
+ transition: `all ${w} ease-in-out`,
345
+ overflow: z ? "hidden" : void 0,
346
+ whiteSpace: z ? "nowrap" : void 0,
347
+ textOverflow: z ? "ellipsis" : void 0
348
+ }, F = {
349
+ className: l,
350
+ style: U,
351
+ onClick: N,
352
+ onMouseEnter: (C) => {
353
+ const L = C.currentTarget;
354
+ _ && (L.style.color = _), R && (L.style.backgroundColor = R), H && (L.style.textDecoration = H);
355
+ },
356
+ onMouseLeave: (C) => {
357
+ const L = C.currentTarget;
358
+ L.style.color = i, L.style.backgroundColor = p || "transparent", L.style.textDecoration = $;
359
+ },
360
+ onMouseDown: (C) => {
361
+ const L = C.currentTarget;
362
+ Y && (L.style.color = Y), y && (L.style.backgroundColor = y);
363
+ },
364
+ onMouseUp: (C) => {
365
+ const L = C.currentTarget;
366
+ L.style.color = _ || i, L.style.backgroundColor = R || p || "transparent";
367
+ }
368
+ };
369
+ return t === "a" || o ? /* @__PURE__ */ e.jsx(
370
+ "a",
371
+ {
372
+ ...F,
373
+ href: o,
374
+ target: a,
375
+ rel: s || (a === "_blank" ? "noopener noreferrer" : void 0),
376
+ children: n
377
+ }
378
+ ) : /* @__PURE__ */ e.jsx(t, { ...F, children: n });
379
+ }, st = ({
380
+ src: t,
381
+ alt: n = "Image",
382
+ width: l = "100%",
383
+ height: o = "auto",
384
+ borderRadius: a = "8px",
385
+ borderColor: s = "transparent",
386
+ borderStyle: i = "solid",
387
+ borderWidth: p = "0px",
388
+ shadow: h = !1,
389
+ boxShadow: g,
390
+ opacity: m = 1,
391
+ objectFit: c = "cover",
392
+ overlayText: x,
393
+ overlayColor: f = "rgba(0, 0, 0, 0.5)",
394
+ svgIcon: d,
395
+ responsive: u = !1,
396
+ padding: k,
397
+ margin: b,
398
+ lazyLoad: S = !1,
399
+ hoverOpacity: A,
400
+ hoverShadow: I = !1,
401
+ hoverScale: O,
402
+ hoverRotate: v,
403
+ transitionDuration: T = "0.3s",
404
+ overflow: M = "hidden",
405
+ className: B,
406
+ style: z,
407
+ onClick: _
408
+ }) => {
409
+ const R = {
410
+ width: u ? "100%" : l,
411
+ height: u ? "100%" : o,
412
+ borderRadius: a,
413
+ border: `${p} ${i} ${s}`,
414
+ objectFit: c,
415
+ opacity: m,
416
+ boxShadow: h ? g || "0 4px 12px rgba(0,0,0,0.15)" : "none",
417
+ transition: `all ${T} ease`,
418
+ display: "block"
419
+ }, H = (w) => {
420
+ w.currentTarget.style.opacity = A !== void 0 ? A.toString() : R.opacity?.toString() || "1", w.currentTarget.style.boxShadow = I ? "0 8px 20px rgba(0,0,0,0.3)" : R.boxShadow?.toString() || "none", w.currentTarget.style.transform = `scale(${O || 1}) rotate(${v || 0}deg)`;
421
+ }, Y = (w) => {
422
+ w.currentTarget.style.opacity = R.opacity?.toString() || "1", w.currentTarget.style.boxShadow = R.boxShadow?.toString() || "none", w.currentTarget.style.transform = "scale(1) rotate(0deg)";
423
+ }, y = (() => {
424
+ switch (M) {
425
+ case "x":
426
+ return { overflowX: "hidden" };
427
+ case "y":
428
+ return { overflowY: "hidden" };
429
+ default:
430
+ return { overflow: M };
431
+ }
432
+ })();
433
+ return /* @__PURE__ */ e.jsxs(
434
+ "div",
435
+ {
436
+ role: "img",
437
+ "aria-label": n,
438
+ onClick: _,
439
+ className: B,
440
+ style: {
441
+ width: u ? "100%" : l,
442
+ height: u ? "auto" : o,
443
+ padding: k,
444
+ margin: b,
445
+ position: "relative",
446
+ cursor: _ ? "pointer" : "default",
447
+ display: "inline-block",
448
+ transition: `all ${T} ease`,
449
+ ...y,
450
+ ...z
451
+ // Allow external override
452
+ },
453
+ children: [
454
+ d ? /* @__PURE__ */ e.jsx(
455
+ "div",
456
+ {
457
+ style: {
458
+ width: "100%",
459
+ height: "100%",
460
+ display: "flex",
461
+ alignItems: "center",
462
+ justifyContent: "center"
463
+ },
464
+ children: d
465
+ }
466
+ ) : /* @__PURE__ */ e.jsx(
467
+ "img",
468
+ {
469
+ src: t,
470
+ alt: n,
471
+ loading: S ? "lazy" : "eager",
472
+ style: R,
473
+ onMouseEnter: H,
474
+ onMouseLeave: Y
475
+ }
476
+ ),
477
+ x && /* @__PURE__ */ e.jsx(
478
+ "div",
479
+ {
480
+ style: {
481
+ position: "absolute",
482
+ top: 0,
483
+ left: 0,
484
+ width: "100%",
485
+ height: "100%",
486
+ backgroundColor: f,
487
+ color: "#fff",
488
+ display: "flex",
489
+ alignItems: "center",
490
+ justifyContent: "center",
491
+ fontWeight: "bold",
492
+ fontSize: "1.25rem",
493
+ textAlign: "center",
494
+ padding: "1rem",
495
+ boxSizing: "border-box"
496
+ },
497
+ children: x
498
+ }
499
+ )
500
+ ]
501
+ }
502
+ );
503
+ }, ot = ({
504
+ children: t,
505
+ type: n = "button",
506
+ onClick: l,
507
+ iconBefore: o,
508
+ iconAfter: a,
509
+ className: s = "",
510
+ style: i,
511
+ // ✅ NEW
512
+ fullWidth: p = !1,
513
+ disabled: h = !1,
514
+ loading: g = !1,
515
+ loadingText: m = "Loading...",
516
+ paddingHorizontal: c = 10,
517
+ paddingVertical: x = 8,
518
+ fontSize: f = "1rem",
519
+ fontWeight: d = 400,
520
+ borderRadius: u = 12,
521
+ backgroundColor: k = "rgba(0, 255, 0, 0.15)",
522
+ textColor: b = "green",
523
+ borderColor: S = "transparent",
524
+ hoverBgColor: A = "#2563EB",
525
+ hoverTextColor: I = "#2563EB",
526
+ hoverBorderColor: O,
527
+ boxShadow: v = "0 1px 2px rgba(0, 0, 0, 0.05)"
528
+ }) => {
529
+ const [T, M] = ce.useState(!1), B = T && !h && I || b, z = T && !h && O || S, _ = T && !h ? A : k, R = {
530
+ display: "inline-flex",
531
+ alignItems: "center",
532
+ justifyContent: "center",
533
+ padding: `${x}px ${c}px`,
534
+ fontSize: f,
535
+ fontWeight: d,
536
+ borderRadius: `${u}px`,
537
+ width: p ? "100%" : "auto",
538
+ color: B,
539
+ border: `1px solid ${z}`,
540
+ backgroundColor: _,
541
+ boxShadow: v,
542
+ cursor: h ? "not-allowed" : "pointer",
543
+ opacity: h ? 0.6 : 1,
544
+ transition: "all 0.2s ease-in-out",
545
+ gap: "8px",
546
+ ...i
547
+ // ✅ Apply user-supplied inline styles last
548
+ };
549
+ return /* @__PURE__ */ e.jsxs(
550
+ "button",
551
+ {
552
+ type: n,
553
+ className: s,
554
+ style: R,
555
+ onClick: !h && !g ? l : void 0,
556
+ disabled: h,
557
+ onMouseEnter: () => M(!0),
558
+ onMouseLeave: () => M(!1),
559
+ children: [
560
+ g ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
561
+ /* @__PURE__ */ e.jsx(
562
+ "span",
563
+ {
564
+ style: {
565
+ width: "18px",
566
+ height: "18px",
567
+ border: "2px solid currentColor",
568
+ borderTopColor: "transparent",
569
+ borderRadius: "50%",
570
+ animation: "spin 1s linear infinite"
571
+ }
572
+ }
573
+ ),
574
+ /* @__PURE__ */ e.jsx("span", { children: m })
575
+ ] }) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
576
+ o && /* @__PURE__ */ e.jsx("span", { children: o }),
577
+ /* @__PURE__ */ e.jsx("span", { children: t }),
578
+ a && /* @__PURE__ */ e.jsx("span", { children: a })
579
+ ] }),
580
+ /* @__PURE__ */ e.jsx("style", { children: `
581
+ @keyframes spin {
582
+ to { transform: rotate(360deg); }
583
+ }
584
+ ` })
585
+ ]
586
+ }
587
+ );
588
+ };
589
+ /**
590
+ * @license lucide-react v0.536.0 - ISC
591
+ *
592
+ * This source code is licensed under the ISC license.
593
+ * See the LICENSE file in the root directory of this source tree.
594
+ */
595
+ const $e = (t) => t.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Ce = (t) => t.replace(
596
+ /^([A-Z])|[\s-_]+(\w)/g,
597
+ (n, l, o) => o ? o.toUpperCase() : l.toLowerCase()
598
+ ), ie = (t) => {
599
+ const n = Ce(t);
600
+ return n.charAt(0).toUpperCase() + n.slice(1);
601
+ }, de = (...t) => t.filter((n, l, o) => !!n && n.trim() !== "" && o.indexOf(n) === l).join(" ").trim(), Ee = (t) => {
602
+ for (const n in t)
603
+ if (n.startsWith("aria-") || n === "role" || n === "title")
604
+ return !0;
605
+ };
606
+ /**
607
+ * @license lucide-react v0.536.0 - ISC
608
+ *
609
+ * This source code is licensed under the ISC license.
610
+ * See the LICENSE file in the root directory of this source tree.
611
+ */
612
+ var _e = {
613
+ xmlns: "http://www.w3.org/2000/svg",
614
+ width: 24,
615
+ height: 24,
616
+ viewBox: "0 0 24 24",
617
+ fill: "none",
618
+ stroke: "currentColor",
619
+ strokeWidth: 2,
620
+ strokeLinecap: "round",
621
+ strokeLinejoin: "round"
622
+ };
623
+ /**
624
+ * @license lucide-react v0.536.0 - ISC
625
+ *
626
+ * This source code is licensed under the ISC license.
627
+ * See the LICENSE file in the root directory of this source tree.
628
+ */
629
+ const Re = ne(
630
+ ({
631
+ color: t = "currentColor",
632
+ size: n = 24,
633
+ strokeWidth: l = 2,
634
+ absoluteStrokeWidth: o,
635
+ className: a = "",
636
+ children: s,
637
+ iconNode: i,
638
+ ...p
639
+ }, h) => re(
640
+ "svg",
641
+ {
642
+ ref: h,
643
+ ..._e,
644
+ width: n,
645
+ height: n,
646
+ stroke: t,
647
+ strokeWidth: o ? Number(l) * 24 / Number(n) : l,
648
+ className: de("lucide", a),
649
+ ...!s && !Ee(p) && { "aria-hidden": "true" },
650
+ ...p
651
+ },
652
+ [
653
+ ...i.map(([g, m]) => re(g, m)),
654
+ ...Array.isArray(s) ? s : [s]
655
+ ]
656
+ )
657
+ );
658
+ /**
659
+ * @license lucide-react v0.536.0 - ISC
660
+ *
661
+ * This source code is licensed under the ISC license.
662
+ * See the LICENSE file in the root directory of this source tree.
663
+ */
664
+ const V = (t, n) => {
665
+ const l = ne(
666
+ ({ className: o, ...a }, s) => re(Re, {
667
+ ref: s,
668
+ iconNode: n,
669
+ className: de(
670
+ `lucide-${$e(ie(t))}`,
671
+ `lucide-${t}`,
672
+ o
673
+ ),
674
+ ...a
675
+ })
676
+ );
677
+ return l.displayName = ie(t), l;
678
+ };
679
+ /**
680
+ * @license lucide-react v0.536.0 - ISC
681
+ *
682
+ * This source code is licensed under the ISC license.
683
+ * See the LICENSE file in the root directory of this source tree.
684
+ */
685
+ const Me = [
686
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
687
+ ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
688
+ ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
689
+ ], Ne = V("circle-alert", Me);
690
+ /**
691
+ * @license lucide-react v0.536.0 - ISC
692
+ *
693
+ * This source code is licensed under the ISC license.
694
+ * See the LICENSE file in the root directory of this source tree.
695
+ */
696
+ const Ae = [
697
+ ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
698
+ ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
699
+ ], Ie = V("circle-check-big", Ae);
700
+ /**
701
+ * @license lucide-react v0.536.0 - ISC
702
+ *
703
+ * This source code is licensed under the ISC license.
704
+ * See the LICENSE file in the root directory of this source tree.
705
+ */
706
+ const Le = [
707
+ [
708
+ "path",
709
+ {
710
+ d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
711
+ key: "ct8e1f"
712
+ }
713
+ ],
714
+ ["path", { d: "M14.084 14.158a3 3 0 0 1-4.242-4.242", key: "151rxh" }],
715
+ [
716
+ "path",
717
+ {
718
+ d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",
719
+ key: "13bj9a"
720
+ }
721
+ ],
722
+ ["path", { d: "m2 2 20 20", key: "1ooewy" }]
723
+ ], Pe = V("eye-off", Le);
724
+ /**
725
+ * @license lucide-react v0.536.0 - ISC
726
+ *
727
+ * This source code is licensed under the ISC license.
728
+ * See the LICENSE file in the root directory of this source tree.
729
+ */
730
+ const Oe = [
731
+ [
732
+ "path",
733
+ {
734
+ d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
735
+ key: "1nclc0"
736
+ }
737
+ ],
738
+ ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
739
+ ], We = V("eye", Oe);
740
+ /**
741
+ * @license lucide-react v0.536.0 - ISC
742
+ *
743
+ * This source code is licensed under the ISC license.
744
+ * See the LICENSE file in the root directory of this source tree.
745
+ */
746
+ const Fe = [
747
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
748
+ ["path", { d: "M12 16v-4", key: "1dtifu" }],
749
+ ["path", { d: "M12 8h.01", key: "e9boi3" }]
750
+ ], Be = V("info", Fe);
751
+ /**
752
+ * @license lucide-react v0.536.0 - ISC
753
+ *
754
+ * This source code is licensed under the ISC license.
755
+ * See the LICENSE file in the root directory of this source tree.
756
+ */
757
+ const Ye = [
758
+ ["path", { d: "M8 3H5a2 2 0 0 0-2 2v3", key: "1dcmit" }],
759
+ ["path", { d: "M21 8V5a2 2 0 0 0-2-2h-3", key: "1e4gt3" }],
760
+ ["path", { d: "M3 16v3a2 2 0 0 0 2 2h3", key: "wsl5sc" }],
761
+ ["path", { d: "M16 21h3a2 2 0 0 0 2-2v-3", key: "18trek" }]
762
+ ], ue = V("maximize", Ye);
763
+ /**
764
+ * @license lucide-react v0.536.0 - ISC
765
+ *
766
+ * This source code is licensed under the ISC license.
767
+ * See the LICENSE file in the root directory of this source tree.
768
+ */
769
+ const De = [
770
+ ["path", { d: "M8 3v3a2 2 0 0 1-2 2H3", key: "hohbtr" }],
771
+ ["path", { d: "M21 8h-3a2 2 0 0 1-2-2V3", key: "5jw1f3" }],
772
+ ["path", { d: "M3 16h3a2 2 0 0 1 2 2v3", key: "198tvr" }],
773
+ ["path", { d: "M16 21v-3a2 2 0 0 1 2-2h3", key: "ph8mxp" }]
774
+ ], pe = V("minimize", De);
775
+ /**
776
+ * @license lucide-react v0.536.0 - ISC
777
+ *
778
+ * This source code is licensed under the ISC license.
779
+ * See the LICENSE file in the root directory of this source tree.
780
+ */
781
+ const He = [
782
+ ["rect", { x: "14", y: "3", width: "5", height: "18", rx: "1", key: "kaeet6" }],
783
+ ["rect", { x: "5", y: "3", width: "5", height: "18", rx: "1", key: "1wsw3u" }]
784
+ ], xe = V("pause", He);
785
+ /**
786
+ * @license lucide-react v0.536.0 - ISC
787
+ *
788
+ * This source code is licensed under the ISC license.
789
+ * See the LICENSE file in the root directory of this source tree.
790
+ */
791
+ const Ue = [
792
+ [
793
+ "path",
794
+ {
795
+ d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",
796
+ key: "10ikf1"
797
+ }
798
+ ]
799
+ ], fe = V("play", Ue);
800
+ /**
801
+ * @license lucide-react v0.536.0 - ISC
802
+ *
803
+ * This source code is licensed under the ISC license.
804
+ * See the LICENSE file in the root directory of this source tree.
805
+ */
806
+ const Ve = [
807
+ ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
808
+ ["path", { d: "M3 3v5h5", key: "1xhq8a" }]
809
+ ], he = V("rotate-ccw", Ve);
810
+ /**
811
+ * @license lucide-react v0.536.0 - ISC
812
+ *
813
+ * This source code is licensed under the ISC license.
814
+ * See the LICENSE file in the root directory of this source tree.
815
+ */
816
+ const qe = [
817
+ [
818
+ "path",
819
+ {
820
+ d: "M17.971 4.285A2 2 0 0 1 21 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z",
821
+ key: "15892j"
822
+ }
823
+ ],
824
+ ["path", { d: "M3 20V4", key: "1ptbpl" }]
825
+ ], me = V("skip-back", qe);
826
+ /**
827
+ * @license lucide-react v0.536.0 - ISC
828
+ *
829
+ * This source code is licensed under the ISC license.
830
+ * See the LICENSE file in the root directory of this source tree.
831
+ */
832
+ const Xe = [
833
+ ["path", { d: "M21 4v16", key: "7j8fe9" }],
834
+ [
835
+ "path",
836
+ {
837
+ d: "M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",
838
+ key: "zs4d6"
839
+ }
840
+ ]
841
+ ], ge = V("skip-forward", Xe);
842
+ /**
843
+ * @license lucide-react v0.536.0 - ISC
844
+ *
845
+ * This source code is licensed under the ISC license.
846
+ * See the LICENSE file in the root directory of this source tree.
847
+ */
848
+ const Je = [
849
+ [
850
+ "path",
851
+ {
852
+ d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
853
+ key: "wmoenq"
854
+ }
855
+ ],
856
+ ["path", { d: "M12 9v4", key: "juzpu7" }],
857
+ ["path", { d: "M12 17h.01", key: "p32p05" }]
858
+ ], Ge = V("triangle-alert", Je);
859
+ /**
860
+ * @license lucide-react v0.536.0 - ISC
861
+ *
862
+ * This source code is licensed under the ISC license.
863
+ * See the LICENSE file in the root directory of this source tree.
864
+ */
865
+ const Ze = [
866
+ [
867
+ "path",
868
+ {
869
+ d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",
870
+ key: "uqj9uw"
871
+ }
872
+ ],
873
+ ["path", { d: "M16 9a5 5 0 0 1 0 6", key: "1q6k2b" }],
874
+ ["path", { d: "M19.364 18.364a9 9 0 0 0 0-12.728", key: "ijwkga" }]
875
+ ], be = V("volume-2", Ze);
876
+ /**
877
+ * @license lucide-react v0.536.0 - ISC
878
+ *
879
+ * This source code is licensed under the ISC license.
880
+ * See the LICENSE file in the root directory of this source tree.
881
+ */
882
+ const Qe = [
883
+ [
884
+ "path",
885
+ {
886
+ d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",
887
+ key: "uqj9uw"
888
+ }
889
+ ],
890
+ ["line", { x1: "22", x2: "16", y1: "9", y2: "15", key: "1ewh16" }],
891
+ ["line", { x1: "16", x2: "22", y1: "9", y2: "15", key: "5ykzw1" }]
892
+ ], ye = V("volume-x", Qe);
893
+ /**
894
+ * @license lucide-react v0.536.0 - ISC
895
+ *
896
+ * This source code is licensed under the ISC license.
897
+ * See the LICENSE file in the root directory of this source tree.
898
+ */
899
+ const Ke = [
900
+ ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
901
+ ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
902
+ ], je = V("x", Ke), lt = ne(
903
+ ({
904
+ type: t = "text",
905
+ placeholder: n = "",
906
+ label: l,
907
+ value: o,
908
+ defaultValue: a,
909
+ onChange: s,
910
+ name: i = "",
911
+ disabled: p = !1,
912
+ readOnly: h = !1,
913
+ required: g = !1,
914
+ error: m,
915
+ success: c = !1,
916
+ autoFocus: x = !1,
917
+ iconLeft: f,
918
+ iconRight: d,
919
+ borderColor: u = "#ccc",
920
+ focusBorderColor: k = "#2563eb",
921
+ hoverBorderColor: b = "#4b5563",
922
+ backgroundColor: S = "#ffffff",
923
+ textColor: A = "#111827",
924
+ errorColor: I = "#dc2626",
925
+ successColor: O = "#16a34a",
926
+ labelColor: v = "#374151",
927
+ size: T = "md",
928
+ radius: M = "6px",
929
+ fontSize: B = "14px",
930
+ rows: z = 4,
931
+ cols: _,
932
+ maxLength: R,
933
+ resize: H = !0,
934
+ showCharacterCount: Y = !0,
935
+ className: y,
936
+ style: w
937
+ }, N) => {
938
+ const $ = J(null), [U, r] = P(a || ""), [j, W] = P(!1);
939
+ ke(N, () => $.current);
940
+ const D = (E) => {
941
+ R && E.target.value.length > R || (r(E.target.value), s && s(i, E.target.value));
942
+ }, F = () => {
943
+ switch (T) {
944
+ case "sm":
945
+ return "6px 12px";
946
+ case "lg":
947
+ return "12px 20px";
948
+ default:
949
+ return "10px 16px";
950
+ }
951
+ }, C = () => {
952
+ switch (T) {
953
+ case "sm":
954
+ return "13px";
955
+ case "lg":
956
+ return "16px";
957
+ default:
958
+ return B;
959
+ }
960
+ }, L = m ? I : c ? O : u, X = {
961
+ width: "100%",
962
+ padding: F(),
963
+ paddingLeft: f ? "40px" : F().split(" ")[1],
964
+ paddingRight: d || t === "password" ? "40px" : F().split(" ")[1],
965
+ border: `1px solid ${L}`,
966
+ borderRadius: M,
967
+ backgroundColor: S,
968
+ color: A,
969
+ fontSize: C(),
970
+ outline: "none",
971
+ resize: t === "textarea" && !H ? "none" : void 0,
972
+ ...w
973
+ };
974
+ return /* @__PURE__ */ e.jsxs(
975
+ "div",
976
+ {
977
+ style: { width: "100%", fontFamily: "sans-serif" },
978
+ className: y,
979
+ children: [
980
+ l && /* @__PURE__ */ e.jsxs(
981
+ "label",
982
+ {
983
+ htmlFor: i,
984
+ style: {
985
+ display: "block",
986
+ marginBottom: "6px",
987
+ fontSize: "14px",
988
+ fontWeight: 500,
989
+ color: v
990
+ },
991
+ children: [
992
+ l,
993
+ " ",
994
+ g && /* @__PURE__ */ e.jsx("span", { style: { color: I }, children: "*" })
995
+ ]
996
+ }
997
+ ),
998
+ /* @__PURE__ */ e.jsxs("div", { style: { position: "relative", width: "100%" }, children: [
999
+ f && /* @__PURE__ */ e.jsx(
1000
+ "span",
1001
+ {
1002
+ style: {
1003
+ position: "absolute",
1004
+ left: "12px",
1005
+ top: "50%",
1006
+ transform: "translateY(-50%)",
1007
+ pointerEvents: "none",
1008
+ color: "#6b7280"
1009
+ },
1010
+ children: f
1011
+ }
1012
+ ),
1013
+ t === "textarea" ? /* @__PURE__ */ e.jsx(
1014
+ "textarea",
1015
+ {
1016
+ ref: $,
1017
+ name: i,
1018
+ value: o ?? U,
1019
+ onChange: D,
1020
+ placeholder: n,
1021
+ rows: z,
1022
+ cols: _,
1023
+ maxLength: R,
1024
+ disabled: p,
1025
+ readOnly: h,
1026
+ autoFocus: x,
1027
+ style: X,
1028
+ onFocus: (E) => {
1029
+ E.currentTarget.style.borderColor = k;
1030
+ },
1031
+ onBlur: (E) => {
1032
+ E.currentTarget.style.borderColor = L;
1033
+ },
1034
+ onMouseEnter: (E) => {
1035
+ E.currentTarget.style.borderColor = b;
1036
+ },
1037
+ onMouseLeave: (E) => {
1038
+ E.currentTarget.style.borderColor = L;
1039
+ }
1040
+ }
1041
+ ) : /* @__PURE__ */ e.jsx(
1042
+ "input",
1043
+ {
1044
+ ref: $,
1045
+ id: i,
1046
+ name: i,
1047
+ type: t === "password" ? j ? "text" : "password" : t,
1048
+ value: o ?? U,
1049
+ onChange: D,
1050
+ placeholder: n,
1051
+ disabled: p,
1052
+ readOnly: h,
1053
+ autoFocus: x,
1054
+ style: X,
1055
+ onFocus: (E) => {
1056
+ E.currentTarget.style.borderColor = k;
1057
+ },
1058
+ onBlur: (E) => {
1059
+ E.currentTarget.style.borderColor = L;
1060
+ },
1061
+ onMouseEnter: (E) => {
1062
+ E.currentTarget.style.borderColor = b;
1063
+ },
1064
+ onMouseLeave: (E) => {
1065
+ E.currentTarget.style.borderColor = L;
1066
+ }
1067
+ }
1068
+ ),
1069
+ t === "password" && /* @__PURE__ */ e.jsx(
1070
+ "button",
1071
+ {
1072
+ type: "button",
1073
+ onClick: () => W(!j),
1074
+ style: {
1075
+ position: "absolute",
1076
+ right: "10px",
1077
+ top: "50%",
1078
+ transform: "translateY(-50%)",
1079
+ background: "transparent",
1080
+ border: "none",
1081
+ color: "#6b7280",
1082
+ cursor: "pointer",
1083
+ padding: 0
1084
+ },
1085
+ children: j ? /* @__PURE__ */ e.jsx(Pe, { size: 18 }) : /* @__PURE__ */ e.jsx(We, { size: 18 })
1086
+ }
1087
+ ),
1088
+ d && t !== "password" && /* @__PURE__ */ e.jsx(
1089
+ "span",
1090
+ {
1091
+ style: {
1092
+ position: "absolute",
1093
+ right: "12px",
1094
+ top: "50%",
1095
+ transform: "translateY(-50%)",
1096
+ pointerEvents: "none",
1097
+ color: "#6b7280"
1098
+ },
1099
+ children: d
1100
+ }
1101
+ )
1102
+ ] }),
1103
+ t === "textarea" && Y && R && /* @__PURE__ */ e.jsxs(
1104
+ "div",
1105
+ {
1106
+ style: {
1107
+ textAlign: "right",
1108
+ fontSize: "12px",
1109
+ color: "#6b7280",
1110
+ marginTop: "4px"
1111
+ },
1112
+ children: [
1113
+ (o ?? U).length,
1114
+ "/",
1115
+ R
1116
+ ]
1117
+ }
1118
+ ),
1119
+ m && /* @__PURE__ */ e.jsx(
1120
+ "p",
1121
+ {
1122
+ style: {
1123
+ color: I,
1124
+ fontSize: "12px",
1125
+ marginTop: "4px",
1126
+ lineHeight: "1.3"
1127
+ },
1128
+ children: m
1129
+ }
1130
+ )
1131
+ ]
1132
+ }
1133
+ );
1134
+ }
1135
+ ), at = ({
1136
+ title: t,
1137
+ titleIcon: n,
1138
+ items: l,
1139
+ type: o = "unordered",
1140
+ bulletColor: a = "#2563eb",
1141
+ textColor: s = "#111827",
1142
+ backgroundColor: i = "#fff",
1143
+ borderColor: p = "#e5e7eb",
1144
+ fontSize: h = "15px",
1145
+ fontWeight: g = 500,
1146
+ borderRadius: m = "12px",
1147
+ padding: c = "16px",
1148
+ spacing: x = "12px",
1149
+ className: f,
1150
+ style: d
1151
+ }) => {
1152
+ const u = o === "ordered", k = o === "inline", b = {
1153
+ backgroundColor: i,
1154
+ borderColor: p,
1155
+ color: s,
1156
+ borderWidth: p ? "1px" : "0px",
1157
+ borderStyle: "solid",
1158
+ borderRadius: m,
1159
+ padding: c,
1160
+ ...d
1161
+ }, S = k ? {
1162
+ display: "flex",
1163
+ gap: x,
1164
+ paddingLeft: 0,
1165
+ listStyleType: "none",
1166
+ margin: 0
1167
+ } : {
1168
+ listStyleType: u ? "decimal" : "none",
1169
+ paddingLeft: u ? "20px" : "0",
1170
+ margin: 0
1171
+ }, A = u ? "ol" : "ul";
1172
+ return /* @__PURE__ */ e.jsxs("div", { className: f, style: b, children: [
1173
+ t && /* @__PURE__ */ e.jsxs(
1174
+ "div",
1175
+ {
1176
+ style: {
1177
+ display: "flex",
1178
+ alignItems: "center",
1179
+ fontSize: "17px",
1180
+ fontWeight: 600,
1181
+ marginBottom: "10px",
1182
+ gap: "8px"
1183
+ },
1184
+ children: [
1185
+ n && /* @__PURE__ */ e.jsx("span", { style: { fontSize: "18px" }, children: n }),
1186
+ /* @__PURE__ */ e.jsx("span", { children: t })
1187
+ ]
1188
+ }
1189
+ ),
1190
+ /* @__PURE__ */ e.jsx(A, { style: S, children: l.map((I, O) => /* @__PURE__ */ e.jsx(
1191
+ we,
1192
+ {
1193
+ ...I,
1194
+ bulletColor: a,
1195
+ textColor: s,
1196
+ fontSize: h,
1197
+ fontWeight: g,
1198
+ spacing: x,
1199
+ isInline: k
1200
+ },
1201
+ O
1202
+ )) })
1203
+ ] });
1204
+ }, we = ({
1205
+ text: t,
1206
+ icon: n,
1207
+ onClick: l,
1208
+ subItems: o,
1209
+ bulletColor: a,
1210
+ textColor: s,
1211
+ fontSize: i,
1212
+ fontWeight: p,
1213
+ spacing: h,
1214
+ isInline: g
1215
+ }) => {
1216
+ const m = {
1217
+ display: "flex",
1218
+ flexDirection: "column",
1219
+ gap: "6px",
1220
+ marginBottom: g ? "0" : h
1221
+ }, c = {
1222
+ display: "flex",
1223
+ alignItems: "center",
1224
+ gap: "8px",
1225
+ fontSize: i,
1226
+ fontWeight: p,
1227
+ color: s,
1228
+ cursor: l ? "pointer" : "default"
1229
+ }, x = {
1230
+ width: "8px",
1231
+ height: "8px",
1232
+ backgroundColor: a,
1233
+ borderRadius: "50%",
1234
+ flexShrink: 0
1235
+ }, f = {
1236
+ listStyleType: "disc",
1237
+ paddingLeft: "20px",
1238
+ margin: 0
1239
+ };
1240
+ return /* @__PURE__ */ e.jsxs("li", { style: m, children: [
1241
+ /* @__PURE__ */ e.jsxs("div", { style: c, onClick: l, children: [
1242
+ n ? /* @__PURE__ */ e.jsx("span", { style: { fontSize: "16px", color: s }, children: n }) : !g && /* @__PURE__ */ e.jsx("span", { style: x }),
1243
+ /* @__PURE__ */ e.jsx("span", { children: t })
1244
+ ] }),
1245
+ o && o.length > 0 && /* @__PURE__ */ e.jsx("ul", { style: f, children: o.map((d, u) => /* @__PURE__ */ e.jsx(
1246
+ we,
1247
+ {
1248
+ ...d,
1249
+ bulletColor: a,
1250
+ textColor: s,
1251
+ fontSize: i,
1252
+ fontWeight: p,
1253
+ spacing: h,
1254
+ isInline: !1
1255
+ },
1256
+ u
1257
+ )) })
1258
+ ] });
1259
+ }, se = ({
1260
+ tabs: t,
1261
+ defaultActive: n = 0,
1262
+ tabPosition: l,
1263
+ activeTabClassName: o = "",
1264
+ inactiveTabClassName: a = "",
1265
+ tabContainerClassName: s = "",
1266
+ contentContainerClassName: i = "",
1267
+ className: p = "",
1268
+ activeTabStyle: h,
1269
+ inactiveTabStyle: g,
1270
+ tabContainerStyle: m,
1271
+ contentContainerStyle: c,
1272
+ style: x,
1273
+ tabsWidth: f = "240px",
1274
+ tabGap: d = 8,
1275
+ tabPadding: u = "12px 16px",
1276
+ tabBorderRadius: k = 12,
1277
+ primaryColor: b = "#2563eb",
1278
+ textColor: S = "#374151",
1279
+ backgroundColor: A = "#ffffff",
1280
+ hoverTextColor: I = "#1e40af",
1281
+ responsiveBreakpoint: O = 768,
1282
+ showDrawerLabel: v = "Select Tab"
1283
+ }) => {
1284
+ const [T, M] = P(n), [B, z] = P(null), [_, R] = P(!1), [H, Y] = P(!1);
1285
+ q(() => {
1286
+ const F = () => {
1287
+ R(window.innerWidth <= O);
1288
+ };
1289
+ return F(), window.addEventListener("resize", F), () => window.removeEventListener("resize", F);
1290
+ }, [O]);
1291
+ const y = l === "left" || l === "right", N = {
1292
+ display: "flex",
1293
+ flexDirection: y ? _ ? "column" : l === "left" ? "row" : "row-reverse" : "column",
1294
+ width: "100%",
1295
+ height: "100%",
1296
+ backgroundColor: A,
1297
+ ...y && !_ ? {} : { flexWrap: "wrap" },
1298
+ ...x
1299
+ }, $ = {
1300
+ width: y && !_ ? f : "100%",
1301
+ display: "flex",
1302
+ flexDirection: y && !_ ? "column" : "row",
1303
+ justifyContent: !y && l === "top" ? "center" : void 0,
1304
+ gap: d,
1305
+ padding: 8,
1306
+ boxSizing: "border-box",
1307
+ ...m
1308
+ }, U = {
1309
+ flexGrow: 1,
1310
+ padding: 24,
1311
+ background: "#f9fafb",
1312
+ boxSizing: "border-box",
1313
+ minWidth: 0,
1314
+ ...y && !_ ? { width: "calc(100% - " + f + ")" } : { width: "100%" },
1315
+ ...c
1316
+ }, r = {
1317
+ cursor: "pointer",
1318
+ display: "flex",
1319
+ alignItems: "center",
1320
+ gap: 8,
1321
+ padding: u,
1322
+ borderRadius: k,
1323
+ border: "none",
1324
+ backgroundColor: "transparent",
1325
+ fontWeight: 500,
1326
+ transition: "all 0.2s ease",
1327
+ width: y && !_ ? "100%" : "auto",
1328
+ marginBottom: y && !_ ? d : 0,
1329
+ marginRight: !y || _ ? d : 0,
1330
+ justifyContent: "flex-start"
1331
+ }, j = {
1332
+ backgroundColor: b,
1333
+ color: "#fff",
1334
+ fontWeight: 700,
1335
+ boxShadow: `0 2px 10px ${b}55`,
1336
+ ...h
1337
+ }, W = {
1338
+ backgroundColor: "transparent",
1339
+ color: S,
1340
+ ...g
1341
+ }, D = {
1342
+ backgroundColor: `${b}22`,
1343
+ color: I
1344
+ };
1345
+ return /* @__PURE__ */ e.jsxs("div", { className: p, style: N, children: [
1346
+ /* @__PURE__ */ e.jsx("style", { children: `
1347
+ @media (max-width: ${O}px) {
1348
+ .custom-tab-drawer-button {
1349
+ width: 100%;
1350
+ display: flex;
1351
+ justify-content: space-between;
1352
+ align-items: center;
1353
+ font-size: 16px;
1354
+ }
1355
+ .custom-tab-mobile-drawer {
1356
+ display: flex;
1357
+ flex-direction: column;
1358
+ gap: 8px;
1359
+ margin-top: 8px;
1360
+ width: 100%;
1361
+ animation: slideDown 0.3s ease-out;
1362
+ }
1363
+ @keyframes slideDown {
1364
+ from { opacity: 0; transform: translateY(-10px); }
1365
+ to { opacity: 1; transform: translateY(0); }
1366
+ }
1367
+ }
1368
+ ` }),
1369
+ _ && y ? /* @__PURE__ */ e.jsxs("div", { style: { width: "100%", marginBottom: 12 }, children: [
1370
+ /* @__PURE__ */ e.jsxs(
1371
+ "button",
1372
+ {
1373
+ onClick: () => Y(!H),
1374
+ style: {
1375
+ ...r,
1376
+ ...j,
1377
+ justifyContent: "space-between",
1378
+ width: "100%"
1379
+ },
1380
+ className: "custom-tab-drawer-button",
1381
+ children: [
1382
+ /* @__PURE__ */ e.jsx("span", { children: v }),
1383
+ /* @__PURE__ */ e.jsx("span", { style: { fontSize: 18 }, children: "☰" })
1384
+ ]
1385
+ }
1386
+ ),
1387
+ H && /* @__PURE__ */ e.jsx("div", { className: "custom-tab-mobile-drawer", children: t.map((F, C) => {
1388
+ const L = C === T, X = B === C;
1389
+ return /* @__PURE__ */ e.jsxs(
1390
+ "button",
1391
+ {
1392
+ onClick: () => {
1393
+ M(C), Y(!1);
1394
+ },
1395
+ onMouseEnter: () => z(C),
1396
+ onMouseLeave: () => z(null),
1397
+ className: L ? o : a,
1398
+ style: {
1399
+ ...r,
1400
+ ...L ? j : W,
1401
+ ...X && !L ? D : {}
1402
+ },
1403
+ children: [
1404
+ F.icon && /* @__PURE__ */ e.jsx("span", { children: F.icon }),
1405
+ /* @__PURE__ */ e.jsx("span", { children: F.label })
1406
+ ]
1407
+ },
1408
+ C
1409
+ );
1410
+ }) })
1411
+ ] }) : /* @__PURE__ */ e.jsx(
1412
+ "nav",
1413
+ {
1414
+ className: s,
1415
+ style: $,
1416
+ "aria-label": "Tabs Navigation",
1417
+ children: t.map((F, C) => {
1418
+ const L = C === T, X = B === C;
1419
+ return /* @__PURE__ */ e.jsxs(
1420
+ "button",
1421
+ {
1422
+ onClick: () => M(C),
1423
+ onMouseEnter: () => z(C),
1424
+ onMouseLeave: () => z(null),
1425
+ className: L ? o : a,
1426
+ style: {
1427
+ ...r,
1428
+ ...L ? j : W,
1429
+ ...X && !L ? D : {}
1430
+ },
1431
+ children: [
1432
+ F.icon && /* @__PURE__ */ e.jsx("span", { children: F.icon }),
1433
+ /* @__PURE__ */ e.jsx("span", { children: F.label })
1434
+ ]
1435
+ },
1436
+ C
1437
+ );
1438
+ })
1439
+ }
1440
+ ),
1441
+ /* @__PURE__ */ e.jsx(
1442
+ "section",
1443
+ {
1444
+ className: i,
1445
+ style: U,
1446
+ role: "tabpanel",
1447
+ children: t[T]?.content
1448
+ }
1449
+ )
1450
+ ] });
1451
+ }, it = (t) => /* @__PURE__ */ e.jsx(se, { ...t, tabPosition: "left" }), ct = (t) => /* @__PURE__ */ e.jsx(se, { ...t, tabPosition: "top" }), dt = (t) => /* @__PURE__ */ e.jsx(se, { ...t, tabPosition: "right" }), ut = ({
1452
+ src: t,
1453
+ poster: n,
1454
+ autoPlay: l = !1,
1455
+ loop: o = !1,
1456
+ controls: a = !1,
1457
+ width: s = "100%",
1458
+ height: i = "150px",
1459
+ borderRadius: p = "12px",
1460
+ backgroundColor: h = "#1e1e1e",
1461
+ primaryColor: g = "#ff4081",
1462
+ padding: m = "16px",
1463
+ className: c
1464
+ }) => {
1465
+ const x = J(null), f = J(null), [d, u] = P(l), [k, b] = P(0), [S, A] = P(0), [I, O] = P(0.5), [v, T] = P(!1), [M, B] = P(o);
1466
+ q(() => {
1467
+ x.current && (x.current.volume = I, x.current.loop = M);
1468
+ }, [I, M]);
1469
+ const z = () => {
1470
+ x.current && (d ? x.current.pause() : x.current.play(), u(!d));
1471
+ }, _ = () => {
1472
+ x.current && (b(x.current.currentTime), A(x.current.duration));
1473
+ }, R = (w) => {
1474
+ if (!x.current || !w.currentTarget) return;
1475
+ const N = w.currentTarget.getBoundingClientRect(), U = (w.clientX - N.left) / N.width * S;
1476
+ x.current.currentTime = U, b(U);
1477
+ }, H = (w) => {
1478
+ x.current && (x.current.currentTime += w);
1479
+ }, Y = () => {
1480
+ f.current && (v ? document.exitFullscreen?.() : f.current.requestFullscreen?.(), T(!v));
1481
+ }, y = (w) => {
1482
+ const N = Math.floor(w / 60), $ = Math.floor(w % 60);
1483
+ return `${N}:${$ < 10 ? "0" : ""}${$}`;
1484
+ };
1485
+ return /* @__PURE__ */ e.jsxs(
1486
+ "div",
1487
+ {
1488
+ ref: f,
1489
+ className: c,
1490
+ style: {
1491
+ position: "relative",
1492
+ width: s,
1493
+ backgroundColor: h,
1494
+ borderRadius: p,
1495
+ color: "#fff",
1496
+ overflow: "hidden",
1497
+ padding: m,
1498
+ boxSizing: "border-box",
1499
+ maxWidth: "100%",
1500
+ boxShadow: "0 4px 12px rgba(0,0,0,0.3)"
1501
+ },
1502
+ children: [
1503
+ /* @__PURE__ */ e.jsx(
1504
+ "video",
1505
+ {
1506
+ ref: x,
1507
+ src: t,
1508
+ poster: n,
1509
+ autoPlay: l,
1510
+ loop: o,
1511
+ controls: a,
1512
+ onTimeUpdate: _,
1513
+ onLoadedMetadata: _,
1514
+ style: {
1515
+ width: "100%",
1516
+ height: i,
1517
+ borderRadius: p,
1518
+ objectFit: "cover",
1519
+ backgroundColor: "#000"
1520
+ }
1521
+ }
1522
+ ),
1523
+ /* @__PURE__ */ e.jsxs(
1524
+ "div",
1525
+ {
1526
+ style: {
1527
+ display: "flex",
1528
+ alignItems: "center",
1529
+ justifyContent: "center",
1530
+ gap: "10px",
1531
+ marginTop: "10px",
1532
+ flexWrap: "wrap"
1533
+ },
1534
+ children: [
1535
+ /* @__PURE__ */ e.jsx("button", { onClick: () => H(-10), "aria-label": "Skip Back 10s", children: /* @__PURE__ */ e.jsx(me, { size: 20 }) }),
1536
+ /* @__PURE__ */ e.jsx(
1537
+ "button",
1538
+ {
1539
+ onClick: z,
1540
+ style: {
1541
+ background: g,
1542
+ borderRadius: "9999px",
1543
+ padding: "10px",
1544
+ color: "#fff",
1545
+ border: "none",
1546
+ cursor: "pointer"
1547
+ },
1548
+ "aria-label": d ? "Pause" : "Play",
1549
+ children: d ? /* @__PURE__ */ e.jsx(xe, { size: 20 }) : /* @__PURE__ */ e.jsx(fe, { size: 20 })
1550
+ }
1551
+ ),
1552
+ /* @__PURE__ */ e.jsx("button", { onClick: () => H(10), "aria-label": "Skip Forward 10s", children: /* @__PURE__ */ e.jsx(ge, { size: 20 }) })
1553
+ ]
1554
+ }
1555
+ ),
1556
+ /* @__PURE__ */ e.jsxs(
1557
+ "div",
1558
+ {
1559
+ style: {
1560
+ display: "flex",
1561
+ alignItems: "center",
1562
+ justifyContent: "space-between",
1563
+ marginTop: "8px",
1564
+ gap: "12px",
1565
+ flexWrap: "wrap"
1566
+ },
1567
+ children: [
1568
+ /* @__PURE__ */ e.jsxs("div", { style: { flexShrink: 0, minWidth: "60px", textAlign: "center" }, children: [
1569
+ /* @__PURE__ */ e.jsx("span", { style: { fontSize: "14px" }, children: y(k) }),
1570
+ /* @__PURE__ */ e.jsxs("span", { style: { fontSize: "14px", color: "#aaa" }, children: [
1571
+ " ",
1572
+ "/ ",
1573
+ y(S)
1574
+ ] })
1575
+ ] }),
1576
+ /* @__PURE__ */ e.jsx(
1577
+ "div",
1578
+ {
1579
+ onClick: R,
1580
+ style: {
1581
+ flex: 1,
1582
+ height: "8px",
1583
+ background: "#444",
1584
+ borderRadius: "4px",
1585
+ cursor: "pointer",
1586
+ position: "relative",
1587
+ minWidth: "100px"
1588
+ },
1589
+ children: /* @__PURE__ */ e.jsx(
1590
+ "div",
1591
+ {
1592
+ style: {
1593
+ width: `${k / S * 100 || 0}%`,
1594
+ height: "100%",
1595
+ background: g,
1596
+ borderRadius: "4px"
1597
+ }
1598
+ }
1599
+ )
1600
+ }
1601
+ ),
1602
+ /* @__PURE__ */ e.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "10px" }, children: [
1603
+ /* @__PURE__ */ e.jsx(
1604
+ "button",
1605
+ {
1606
+ onClick: () => B(!M),
1607
+ "aria-label": "Toggle Loop",
1608
+ children: /* @__PURE__ */ e.jsx(he, { size: 18, color: M ? g : void 0 })
1609
+ }
1610
+ ),
1611
+ /* @__PURE__ */ e.jsx(
1612
+ "button",
1613
+ {
1614
+ onClick: () => O(I > 0 ? 0 : 0.5),
1615
+ "aria-label": "Toggle Mute",
1616
+ children: I > 0 ? /* @__PURE__ */ e.jsx(be, { size: 18 }) : /* @__PURE__ */ e.jsx(ye, { size: 18 })
1617
+ }
1618
+ ),
1619
+ /* @__PURE__ */ e.jsx("button", { onClick: Y, "aria-label": "Toggle Fullscreen", children: v ? /* @__PURE__ */ e.jsx(pe, { size: 18 }) : /* @__PURE__ */ e.jsx(ue, { size: 18 }) })
1620
+ ] })
1621
+ ]
1622
+ }
1623
+ )
1624
+ ]
1625
+ }
1626
+ );
1627
+ }, pt = ({
1628
+ src: t,
1629
+ thumbnail: n,
1630
+ autoPlay: l = !1,
1631
+ loop: o = !1,
1632
+ backgroundColor: a = "#000000",
1633
+ primaryColor: s = "#10b981",
1634
+ secondaryColor: i = "#ffffff",
1635
+ borderRadius: p = "12px",
1636
+ padding: h = "16px",
1637
+ width: g = "100%",
1638
+ className: m
1639
+ }) => {
1640
+ const c = J(null), x = J(null), [f, d] = P(l), [u, k] = P(0), [b, S] = P(0), [A, I] = P(0.5), [O, v] = P(!1), [T, M] = P(o);
1641
+ q(() => {
1642
+ c.current && (c.current.volume = A);
1643
+ }, [A]), q(() => {
1644
+ c.current && (c.current.loop = T);
1645
+ }, [T]);
1646
+ const B = () => {
1647
+ c.current && (f ? c.current.pause() : c.current.play(), d(!f));
1648
+ }, z = () => {
1649
+ c.current && (k(c.current.currentTime), S(c.current.duration));
1650
+ }, _ = (y) => {
1651
+ if (!c.current || !y.currentTarget) return;
1652
+ const w = y.currentTarget.getBoundingClientRect(), $ = (y.clientX - w.left) / w.width * b;
1653
+ c.current.currentTime = $, k($);
1654
+ }, R = (y) => {
1655
+ c.current && (c.current.currentTime += y);
1656
+ }, H = () => {
1657
+ x.current && (O ? document.exitFullscreen?.() : x.current.requestFullscreen?.(), v(!O));
1658
+ }, Y = (y) => {
1659
+ const w = Math.floor(y / 60), N = Math.floor(y % 60);
1660
+ return `${w}:${N < 10 ? "0" : ""}${N}`;
1661
+ };
1662
+ return /* @__PURE__ */ e.jsxs(
1663
+ "div",
1664
+ {
1665
+ ref: x,
1666
+ className: m,
1667
+ style: {
1668
+ position: "relative",
1669
+ width: g,
1670
+ backgroundColor: a,
1671
+ borderRadius: p,
1672
+ color: i,
1673
+ boxShadow: "0 4px 12px rgba(0,0,0,0.3)",
1674
+ overflow: "hidden",
1675
+ padding: h,
1676
+ boxSizing: "border-box",
1677
+ maxWidth: "100%"
1678
+ },
1679
+ children: [
1680
+ /* @__PURE__ */ e.jsx(
1681
+ "audio",
1682
+ {
1683
+ ref: c,
1684
+ src: t,
1685
+ autoPlay: l,
1686
+ loop: o,
1687
+ onTimeUpdate: z,
1688
+ onLoadedMetadata: z
1689
+ }
1690
+ ),
1691
+ n && /* @__PURE__ */ e.jsx(
1692
+ "img",
1693
+ {
1694
+ src: n,
1695
+ alt: "Audio Thumbnail",
1696
+ style: {
1697
+ width: "100%",
1698
+ objectFit: "cover",
1699
+ borderRadius: p,
1700
+ marginBottom: "16px",
1701
+ maxHeight: "150px"
1702
+ }
1703
+ }
1704
+ ),
1705
+ /* @__PURE__ */ e.jsxs(
1706
+ "div",
1707
+ {
1708
+ style: {
1709
+ display: "flex",
1710
+ alignItems: "center",
1711
+ justifyContent: "center",
1712
+ gap: "10px",
1713
+ flexShrink: 0,
1714
+ marginTop: "10px"
1715
+ },
1716
+ children: [
1717
+ /* @__PURE__ */ e.jsx("button", { onClick: () => R(-10), "aria-label": "Skip Back 10s", children: /* @__PURE__ */ e.jsx(me, { size: 20 }) }),
1718
+ /* @__PURE__ */ e.jsx(
1719
+ "button",
1720
+ {
1721
+ onClick: B,
1722
+ style: {
1723
+ background: s,
1724
+ borderRadius: "9999px",
1725
+ padding: "10px",
1726
+ color: "#fff",
1727
+ border: "none",
1728
+ cursor: "pointer"
1729
+ },
1730
+ "aria-label": f ? "Pause" : "Play",
1731
+ children: f ? /* @__PURE__ */ e.jsx(xe, { size: 20 }) : /* @__PURE__ */ e.jsx(fe, { size: 20 })
1732
+ }
1733
+ ),
1734
+ /* @__PURE__ */ e.jsx("button", { onClick: () => R(10), "aria-label": "Skip Forward 10s", children: /* @__PURE__ */ e.jsx(ge, { size: 20 }) })
1735
+ ]
1736
+ }
1737
+ ),
1738
+ /* @__PURE__ */ e.jsxs(
1739
+ "div",
1740
+ {
1741
+ style: {
1742
+ display: "flex",
1743
+ flexWrap: "wrap",
1744
+ alignItems: "center",
1745
+ justifyContent: "space-between",
1746
+ gap: "12px",
1747
+ width: "100%"
1748
+ },
1749
+ children: [
1750
+ /* @__PURE__ */ e.jsxs("div", { style: { flexShrink: 0, minWidth: "60px", textAlign: "center" }, children: [
1751
+ /* @__PURE__ */ e.jsx("span", { style: { fontSize: "14px", marginRight: "4px" }, children: Y(u) }),
1752
+ /* @__PURE__ */ e.jsxs("span", { style: { fontSize: "14px", color: "#aaa" }, children: [
1753
+ "/ ",
1754
+ Y(b)
1755
+ ] })
1756
+ ] }),
1757
+ /* @__PURE__ */ e.jsx(
1758
+ "div",
1759
+ {
1760
+ onClick: _,
1761
+ style: {
1762
+ flex: 1,
1763
+ height: "8px",
1764
+ background: "#444",
1765
+ borderRadius: "4px",
1766
+ cursor: "pointer",
1767
+ position: "relative",
1768
+ minWidth: "100px"
1769
+ },
1770
+ children: /* @__PURE__ */ e.jsx(
1771
+ "div",
1772
+ {
1773
+ style: {
1774
+ width: `${u / b * 100 || 0}%`,
1775
+ height: "100%",
1776
+ background: s,
1777
+ borderRadius: "4px"
1778
+ }
1779
+ }
1780
+ )
1781
+ }
1782
+ ),
1783
+ /* @__PURE__ */ e.jsxs(
1784
+ "div",
1785
+ {
1786
+ style: {
1787
+ display: "flex",
1788
+ alignItems: "center",
1789
+ gap: "10px",
1790
+ flexShrink: 0
1791
+ },
1792
+ children: [
1793
+ /* @__PURE__ */ e.jsx(
1794
+ "button",
1795
+ {
1796
+ onClick: () => M(!T),
1797
+ "aria-label": "Toggle Loop",
1798
+ children: /* @__PURE__ */ e.jsx(he, { size: 18, color: T ? s : void 0 })
1799
+ }
1800
+ ),
1801
+ /* @__PURE__ */ e.jsx(
1802
+ "button",
1803
+ {
1804
+ onClick: () => I(A > 0 ? 0 : 0.5),
1805
+ "aria-label": "Toggle Mute",
1806
+ children: A > 0 ? /* @__PURE__ */ e.jsx(be, { size: 18 }) : /* @__PURE__ */ e.jsx(ye, { size: 18 })
1807
+ }
1808
+ ),
1809
+ /* @__PURE__ */ e.jsx("button", { onClick: H, "aria-label": "Toggle Fullscreen", children: O ? /* @__PURE__ */ e.jsx(pe, { size: 18 }) : /* @__PURE__ */ e.jsx(ue, { size: 18 }) })
1810
+ ]
1811
+ }
1812
+ )
1813
+ ]
1814
+ }
1815
+ )
1816
+ ]
1817
+ }
1818
+ );
1819
+ }, xt = ({
1820
+ display: t = { sm: "block", md: "flex", lg: "grid" },
1821
+ flexDirection: n = { sm: "column", md: "row", lg: "row" },
1822
+ justifyContent: l = { sm: "flex-start", md: "center", lg: "space-between" },
1823
+ alignItems: o = { sm: "stretch", md: "center", lg: "center" },
1824
+ gridTemplateColumns: a = { sm: "1fr", md: "1fr 1fr", lg: "1fr 1fr 1fr" },
1825
+ gridTemplateRows: s = { sm: "auto", md: "auto", lg: "auto" },
1826
+ gap: i = { sm: "10px", md: "20px", lg: "30px" },
1827
+ rowGap: p = { sm: "10px", md: "15px", lg: "20px" },
1828
+ columnGap: h = { sm: "10px", md: "15px", lg: "20px" },
1829
+ width: g = { sm: "100%", md: "90%", lg: "80%" },
1830
+ maxWidth: m = { sm: "100%", md: "800px", lg: "1200px" },
1831
+ height: c = { sm: "auto", md: "auto", lg: "auto" },
1832
+ padding: x = { sm: "10px", md: "20px", lg: "40px" },
1833
+ margin: f = { sm: "0 auto", md: "0 auto", lg: "0 auto" },
1834
+ textAlign: d = { sm: "left", md: "center", lg: "center" },
1835
+ backgroundColor: u = "#ffffff",
1836
+ border: k = { sm: "none", md: "1px solid #ddd", lg: "2px solid #ccc" },
1837
+ borderRadius: b = { sm: "0px", md: "8px", lg: "12px" },
1838
+ boxShadow: S = { sm: "none", md: "0px 4px 6px rgba(0,0,0,0.1)", lg: "0px 6px 10px rgba(0,0,0,0.15)" },
1839
+ overflow: A = { sm: "visible", md: "hidden", lg: "auto" },
1840
+ children: I,
1841
+ className: O = ""
1842
+ }) => {
1843
+ const [v, T] = P("lg");
1844
+ q(() => {
1845
+ const B = () => {
1846
+ const z = window.innerWidth;
1847
+ z <= 767 ? T("sm") : z >= 768 && z <= 1023 ? T("md") : T("lg");
1848
+ };
1849
+ return B(), window.addEventListener("resize", B), () => window.removeEventListener("resize", B);
1850
+ }, []);
1851
+ const M = K(
1852
+ () => ({
1853
+ display: t[v],
1854
+ flexDirection: n[v],
1855
+ justifyContent: l[v],
1856
+ alignItems: o[v],
1857
+ gridTemplateColumns: a[v],
1858
+ gridTemplateRows: s[v],
1859
+ gap: i[v],
1860
+ rowGap: p[v],
1861
+ columnGap: h[v],
1862
+ width: g[v],
1863
+ maxWidth: m[v],
1864
+ height: c[v],
1865
+ padding: x[v],
1866
+ margin: f[v],
1867
+ textAlign: d[v],
1868
+ backgroundColor: u,
1869
+ border: k[v],
1870
+ borderRadius: b[v],
1871
+ boxShadow: S[v],
1872
+ overflow: A[v],
1873
+ boxSizing: "border-box"
1874
+ }),
1875
+ [v, t, n, l, o, a, s, i, p, h, g, m, c, x, f, d, u, k, b, S, A]
1876
+ );
1877
+ return /* @__PURE__ */ e.jsx("div", { className: O, style: M, children: I });
1878
+ }, ft = ({
1879
+ items: t,
1880
+ allowMultiple: n = !1,
1881
+ defaultOpenIndex: l = [],
1882
+ borderColor: o = "#d1d5db",
1883
+ backgroundColor: a = "#ffffff",
1884
+ textColor: s = "#111827",
1885
+ hoverBgColor: i = "#f3f4f6",
1886
+ hoverTextColor: p = "#111827",
1887
+ paddingVertical: h = "16px",
1888
+ paddingHorizontal: g = "16px",
1889
+ margin: m = "12px 0",
1890
+ iconOpen: c = "−",
1891
+ iconClose: x = "+",
1892
+ transitionDuration: f = "300ms",
1893
+ borderRadius: d = "8px",
1894
+ shadow: u = "0 2px 8px rgba(0, 0, 0, 0.05)",
1895
+ contentPadding: k = "16px",
1896
+ fontSize: b = "16px",
1897
+ fontWeight: S = "600",
1898
+ iconSize: A = "18px",
1899
+ contentFontSize: I = "14px",
1900
+ contentFontWeight: O = "400",
1901
+ contentBackgroundColor: v = "#ffffff",
1902
+ contentTextColor: T = "#111827",
1903
+ className: M,
1904
+ style: B
1905
+ }) => {
1906
+ const [z, _] = P(l), R = J([]), H = J([]);
1907
+ q(() => {
1908
+ R.current.forEach((y, w) => {
1909
+ y && (y.style.maxHeight = z.includes(w) ? `${y.scrollHeight}px` : "0px");
1910
+ });
1911
+ }, [z]);
1912
+ const Y = (y) => {
1913
+ _(
1914
+ (w) => n ? w.includes(y) ? w.filter((N) => N !== y) : [...w, y] : w.includes(y) ? [] : [y]
1915
+ );
1916
+ };
1917
+ return /* @__PURE__ */ e.jsx("div", { className: M, style: { width: "100%", ...B }, children: t.map((y, w) => /* @__PURE__ */ e.jsxs(
1918
+ "div",
1919
+ {
1920
+ style: {
1921
+ border: `1px solid ${o}`,
1922
+ borderRadius: d,
1923
+ margin: m,
1924
+ boxShadow: u,
1925
+ overflow: "hidden",
1926
+ transition: `all ${f} ease`
1927
+ },
1928
+ children: [
1929
+ /* @__PURE__ */ e.jsxs(
1930
+ "button",
1931
+ {
1932
+ ref: (N) => {
1933
+ H.current[w] = N;
1934
+ },
1935
+ onClick: () => Y(w),
1936
+ style: {
1937
+ width: "100%",
1938
+ display: "flex",
1939
+ justifyContent: "space-between",
1940
+ alignItems: "center",
1941
+ backgroundColor: a,
1942
+ color: s,
1943
+ padding: `${h} ${g}`,
1944
+ fontWeight: S,
1945
+ fontSize: b,
1946
+ cursor: "pointer",
1947
+ outline: "none",
1948
+ border: "none",
1949
+ transition: `all ${f}`
1950
+ },
1951
+ onMouseEnter: (N) => {
1952
+ N.currentTarget.style.backgroundColor = i, N.currentTarget.style.color = p;
1953
+ },
1954
+ onMouseLeave: (N) => {
1955
+ N.currentTarget.style.backgroundColor = a, N.currentTarget.style.color = s;
1956
+ },
1957
+ children: [
1958
+ /* @__PURE__ */ e.jsx("span", { children: y.title }),
1959
+ /* @__PURE__ */ e.jsx("span", { style: { fontSize: A }, children: z.includes(w) ? c : x })
1960
+ ]
1961
+ }
1962
+ ),
1963
+ /* @__PURE__ */ e.jsx(
1964
+ "div",
1965
+ {
1966
+ ref: (N) => {
1967
+ R.current[w] = N;
1968
+ },
1969
+ style: {
1970
+ overflow: "hidden",
1971
+ maxHeight: z.includes(w) ? `${R.current[w]?.scrollHeight}px` : "0px",
1972
+ transition: `max-height ${f} ease-in-out`
1973
+ },
1974
+ children: /* @__PURE__ */ e.jsx(
1975
+ "div",
1976
+ {
1977
+ style: {
1978
+ borderTop: `1px solid ${o}`,
1979
+ backgroundColor: v,
1980
+ color: T,
1981
+ padding: k,
1982
+ fontSize: I,
1983
+ fontWeight: O
1984
+ },
1985
+ children: y.content
1986
+ }
1987
+ )
1988
+ }
1989
+ )
1990
+ ]
1991
+ },
1992
+ w
1993
+ )) });
1994
+ }, ht = ({
1995
+ type: t,
1996
+ name: n,
1997
+ options: l,
1998
+ selectedValues: o,
1999
+ onChange: a,
2000
+ disabled: s = !1,
2001
+ readOnly: i = !1,
2002
+ required: p = !1,
2003
+ error: h,
2004
+ className: g = "",
2005
+ customIcon: m
2006
+ }) => {
2007
+ const c = t === "checkbox", x = (f) => {
2008
+ if (a)
2009
+ if (c) {
2010
+ const d = Array.isArray(o) ? o.includes(f) ? o.filter((u) => u !== f) : [...o, f] : [f];
2011
+ a(d);
2012
+ } else
2013
+ a(f);
2014
+ };
2015
+ return /* @__PURE__ */ e.jsxs("div", { className: `w-full ${g}`, children: [
2016
+ l.map((f) => {
2017
+ const d = c ? Array.isArray(o) && o.includes(f.value) : o === f.value;
2018
+ return /* @__PURE__ */ e.jsxs(
2019
+ "label",
2020
+ {
2021
+ className: `flex items-center space-x-2 cursor-pointer p-2 ${s ? "opacity-50 cursor-not-allowed" : ""}`,
2022
+ children: [
2023
+ m ? m(d) : /* @__PURE__ */ e.jsx(
2024
+ "span",
2025
+ {
2026
+ className: `flex justify-center items-center w-5 h-5 border ${d ? "bg-blue-500 border-blue-500" : "border-gray-400"} rounded-${c ? "md" : "full"}`,
2027
+ children: d && /* @__PURE__ */ e.jsx("span", { className: "w-3 h-3 bg-white rounded-full" })
2028
+ }
2029
+ ),
2030
+ /* @__PURE__ */ e.jsx(
2031
+ "input",
2032
+ {
2033
+ type: t,
2034
+ name: n,
2035
+ value: f.value,
2036
+ checked: d,
2037
+ disabled: s || i,
2038
+ required: p,
2039
+ onChange: () => x(f.value),
2040
+ className: "hidden"
2041
+ }
2042
+ ),
2043
+ /* @__PURE__ */ e.jsx("span", { className: "text-gray-700", children: f.label })
2044
+ ]
2045
+ },
2046
+ f.value
2047
+ );
2048
+ }),
2049
+ h && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-red-500 mt-1", children: h })
2050
+ ] });
2051
+ }, mt = ({
2052
+ label: t = "Open Drawer",
2053
+ icon: n,
2054
+ iconPosition: l = "left",
2055
+ onClick: o,
2056
+ style: a = {}
2057
+ }) => /* @__PURE__ */ e.jsxs(
2058
+ "button",
2059
+ {
2060
+ onClick: o,
2061
+ style: {
2062
+ padding: "10px 16px",
2063
+ backgroundColor: "#2563eb",
2064
+ color: "#fff",
2065
+ border: "none",
2066
+ borderRadius: "6px",
2067
+ cursor: "pointer",
2068
+ display: "inline-flex",
2069
+ alignItems: "center",
2070
+ fontSize: "14px",
2071
+ gap: "8px",
2072
+ ...a
2073
+ },
2074
+ children: [
2075
+ n && l === "left" && n,
2076
+ t,
2077
+ n && l === "right" && n
2078
+ ]
2079
+ }
2080
+ ), gt = ({
2081
+ open: t,
2082
+ onClose: n,
2083
+ position: l = "right",
2084
+ width: o = "300px",
2085
+ height: a = "300px",
2086
+ backgroundColor: s = "#fff",
2087
+ transitionDuration: i = 300,
2088
+ style: p = {},
2089
+ children: h,
2090
+ showCloseButton: g = !0,
2091
+ closeButtonStyle: m = {}
2092
+ }) => {
2093
+ const [c, x] = P(t);
2094
+ q(() => {
2095
+ t ? x(!0) : setTimeout(() => x(!1), i);
2096
+ }, [t, i]);
2097
+ const f = K(() => {
2098
+ if (t) return "translate(0, 0)";
2099
+ switch (l) {
2100
+ case "left":
2101
+ return "translateX(-100%)";
2102
+ case "right":
2103
+ return "translateX(100%)";
2104
+ case "top":
2105
+ return "translateY(-100%)";
2106
+ case "bottom":
2107
+ return "translateY(100%)";
2108
+ default:
2109
+ return "translate(0, 0)";
2110
+ }
2111
+ }, [t, l]), d = {
2112
+ position: "fixed",
2113
+ zIndex: 1e3,
2114
+ backgroundColor: s,
2115
+ transition: `transform ${i}ms ease, opacity ${i}ms ease`,
2116
+ transform: f,
2117
+ opacity: t ? 1 : 0,
2118
+ ...p,
2119
+ ...l === "left" || l === "right" ? { top: 0, [l]: 0, width: o, height: "100%" } : { left: 0, [l]: 0, height: a, width: "100%" }
2120
+ }, u = {
2121
+ position: "fixed",
2122
+ display: c ? "block" : "none",
2123
+ top: 0,
2124
+ left: 0,
2125
+ width: "100%",
2126
+ height: "100%",
2127
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
2128
+ zIndex: 999,
2129
+ transition: `opacity ${i}ms ease`,
2130
+ opacity: t ? 1 : 0,
2131
+ pointerEvents: t ? "auto" : "none"
2132
+ }, k = {
2133
+ position: "absolute",
2134
+ top: "10px",
2135
+ right: "10px",
2136
+ fontSize: "20px",
2137
+ background: "none",
2138
+ border: "none",
2139
+ cursor: "pointer",
2140
+ color: "#000"
2141
+ };
2142
+ return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
2143
+ /* @__PURE__ */ e.jsx("div", { style: u, onClick: n }),
2144
+ /* @__PURE__ */ e.jsxs(
2145
+ "div",
2146
+ {
2147
+ style: {
2148
+ ...d,
2149
+ display: "block",
2150
+ visibility: c ? "visible" : "hidden",
2151
+ pointerEvents: t ? "auto" : "none"
2152
+ },
2153
+ children: [
2154
+ g && /* @__PURE__ */ e.jsx(
2155
+ "button",
2156
+ {
2157
+ onClick: n,
2158
+ style: { ...k, ...m },
2159
+ children: /* @__PURE__ */ e.jsx(je, { size: 20, color: "rgba(255, 0, 0, 1)" })
2160
+ }
2161
+ ),
2162
+ h
2163
+ ]
2164
+ }
2165
+ )
2166
+ ] });
2167
+ }, bt = ({
2168
+ options: t,
2169
+ value: n,
2170
+ defaultValue: l,
2171
+ onChange: o,
2172
+ placeholder: a = "Select an option",
2173
+ disabled: s = !1,
2174
+ borderColor: i = "#ccc",
2175
+ backgroundColor: p = "#fff",
2176
+ textColor: h = "#333",
2177
+ hoverColor: g = "#f0f0f0",
2178
+ padding: m = "12px 16px",
2179
+ margin: c = "0 0 1rem 0",
2180
+ dropdownWidth: x = "100%",
2181
+ dropdownHeight: f = "200px",
2182
+ borderRadius: d = "8px",
2183
+ boxShadow: u = "0 4px 8px rgba(0,0,0,0.1)",
2184
+ optionPadding: k = "10px 12px",
2185
+ optionGap: b = "8px",
2186
+ transitionDuration: S = "0.25s",
2187
+ className: A = "",
2188
+ dropdownStyle: I,
2189
+ dropdownClassName: O = "",
2190
+ optionStyle: v,
2191
+ optionClassName: T = "",
2192
+ iconPrefix: M,
2193
+ iconSuffix: B
2194
+ }) => {
2195
+ const [z, _] = P(l), [R, H] = P(!1), Y = J(null);
2196
+ q(() => {
2197
+ const $ = (U) => {
2198
+ Y.current && !Y.current.contains(U.target) && H(!1);
2199
+ };
2200
+ return document.addEventListener("mousedown", $), () => document.removeEventListener("mousedown", $);
2201
+ }, []);
2202
+ const y = ($) => {
2203
+ _($), H(!1), o && o($);
2204
+ }, w = n ?? z, N = t.find(($) => $.value === w);
2205
+ return /* @__PURE__ */ e.jsxs(
2206
+ "div",
2207
+ {
2208
+ ref: Y,
2209
+ className: A,
2210
+ style: {
2211
+ position: "relative",
2212
+ width: x,
2213
+ margin: c,
2214
+ fontFamily: "sans-serif",
2215
+ userSelect: "none"
2216
+ },
2217
+ children: [
2218
+ /* @__PURE__ */ e.jsxs(
2219
+ "button",
2220
+ {
2221
+ onClick: () => H(($) => !$),
2222
+ disabled: s,
2223
+ "aria-haspopup": "listbox",
2224
+ "aria-expanded": R,
2225
+ style: {
2226
+ width: "100%",
2227
+ padding: m,
2228
+ backgroundColor: p,
2229
+ color: h,
2230
+ border: `1px solid ${i}`,
2231
+ borderRadius: d,
2232
+ boxShadow: s ? "none" : u,
2233
+ display: "flex",
2234
+ alignItems: "center",
2235
+ justifyContent: "space-between",
2236
+ cursor: s ? "not-allowed" : "pointer",
2237
+ opacity: s ? 0.6 : 1,
2238
+ transition: `all ${S} ease-in-out`
2239
+ },
2240
+ children: [
2241
+ /* @__PURE__ */ e.jsxs("div", { style: { display: "flex", alignItems: "center", gap: b }, children: [
2242
+ M && /* @__PURE__ */ e.jsx("span", { children: M }),
2243
+ /* @__PURE__ */ e.jsx("span", { children: N?.label || a })
2244
+ ] }),
2245
+ B || /* @__PURE__ */ e.jsx("span", { style: { marginLeft: "8px" }, children: "▼" })
2246
+ ]
2247
+ }
2248
+ ),
2249
+ R && /* @__PURE__ */ e.jsx(
2250
+ "ul",
2251
+ {
2252
+ role: "listbox",
2253
+ className: O,
2254
+ style: {
2255
+ position: "absolute",
2256
+ top: "100%",
2257
+ left: 0,
2258
+ zIndex: 1e3,
2259
+ width: "100%",
2260
+ maxHeight: f,
2261
+ overflowY: "auto",
2262
+ backgroundColor: p,
2263
+ border: `1px solid ${i}`,
2264
+ borderRadius: d,
2265
+ boxShadow: u,
2266
+ marginTop: "4px",
2267
+ transition: `all ${S} ease`,
2268
+ ...I
2269
+ },
2270
+ children: t.map(($) => /* @__PURE__ */ e.jsxs(
2271
+ "li",
2272
+ {
2273
+ onClick: () => y($.value),
2274
+ role: "option",
2275
+ className: T,
2276
+ style: {
2277
+ display: "flex",
2278
+ alignItems: "center",
2279
+ gap: b,
2280
+ padding: k,
2281
+ cursor: "pointer",
2282
+ backgroundColor: z === $.value ? g : p,
2283
+ transition: `background ${S}`,
2284
+ ...v
2285
+ },
2286
+ onMouseEnter: (U) => U.currentTarget.style.backgroundColor = g,
2287
+ onMouseLeave: (U) => U.currentTarget.style.backgroundColor = z === $.value ? g : p,
2288
+ children: [
2289
+ $.icon && /* @__PURE__ */ e.jsx("span", { children: $.icon }),
2290
+ $.label
2291
+ ]
2292
+ },
2293
+ $.value
2294
+ ))
2295
+ }
2296
+ )
2297
+ ]
2298
+ }
2299
+ );
2300
+ }, yt = ({
2301
+ columns: t,
2302
+ data: n,
2303
+ className: l = "",
2304
+ pagination: o = !0,
2305
+ rowsPerPage: a = 5,
2306
+ colors: s = {
2307
+ headerBg: "bg-blue-500",
2308
+ headerText: "text-white",
2309
+ rowBg: "bg-white",
2310
+ rowText: "text-black",
2311
+ borderColor: "border-gray-300",
2312
+ hoverBg: "bg-gray-200",
2313
+ paginationBg: "bg-gray-300",
2314
+ paginationText: "text-black"
2315
+ }
2316
+ }) => {
2317
+ const [i, p] = P(null), [h, g] = P("asc"), [m, c] = P(1), x = (u) => {
2318
+ i === u ? g(h === "asc" ? "desc" : "asc") : (p(u), g("asc"));
2319
+ }, f = [...n].sort((u, k) => i ? h === "asc" ? u[i] > k[i] ? 1 : -1 : u[i] < k[i] ? 1 : -1 : 0), d = o ? f.slice(
2320
+ (m - 1) * a,
2321
+ m * a
2322
+ ) : f;
2323
+ return /* @__PURE__ */ e.jsxs("div", { className: `overflow-x-auto w-full ${l}`, children: [
2324
+ /* @__PURE__ */ e.jsxs("table", { className: `w-full border-collapse border ${s.borderColor}`, children: [
2325
+ /* @__PURE__ */ e.jsx("thead", { children: /* @__PURE__ */ e.jsx("tr", { className: `${s.headerBg} ${s.headerText} text-left`, children: t.map(({ key: u, label: k, sortable: b }) => /* @__PURE__ */ e.jsx(
2326
+ "th",
2327
+ {
2328
+ onClick: () => b && x(u),
2329
+ className: `p-3 border ${s.borderColor} ${b ? "cursor-pointer hover:opacity-80" : ""}`,
2330
+ children: /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
2331
+ k,
2332
+ " ",
2333
+ b && (i === u ? h === "asc" ? /* @__PURE__ */ e.jsx(
2334
+ "svg",
2335
+ {
2336
+ stroke: "currentColor",
2337
+ fill: "currentColor",
2338
+ strokeWidth: "0",
2339
+ viewBox: "0 0 576 512",
2340
+ height: "15px",
2341
+ width: "15px",
2342
+ xmlns: "http://www.w3.org/2000/svg",
2343
+ children: /* @__PURE__ */ e.jsx("path", { d: "M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0z" })
2344
+ }
2345
+ ) : /* @__PURE__ */ e.jsx(
2346
+ "svg",
2347
+ {
2348
+ stroke: "currentColor",
2349
+ fill: "currentColor",
2350
+ strokeWidth: "0",
2351
+ viewBox: "0 0 576 512",
2352
+ height: "15px",
2353
+ width: "15px",
2354
+ xmlns: "http://www.w3.org/2000/svg",
2355
+ children: /* @__PURE__ */ e.jsx("path", { d: "M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z" })
2356
+ }
2357
+ ) : /* @__PURE__ */ e.jsx(
2358
+ "svg",
2359
+ {
2360
+ stroke: "currentColor",
2361
+ fill: "currentColor",
2362
+ strokeWidth: "0",
2363
+ viewBox: "0 0 320 512",
2364
+ height: "15px",
2365
+ width: "15px",
2366
+ xmlns: "http://www.w3.org/2000/svg",
2367
+ children: /* @__PURE__ */ e.jsx("path", { d: "M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3l0 293.5L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7l0-293.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z" })
2368
+ }
2369
+ ))
2370
+ ] })
2371
+ },
2372
+ u
2373
+ )) }) }),
2374
+ /* @__PURE__ */ e.jsx("tbody", { children: d.map((u, k) => /* @__PURE__ */ e.jsx(
2375
+ "tr",
2376
+ {
2377
+ className: `${s.rowBg} ${s.rowText} hover:${s.hoverBg}`,
2378
+ children: t.map(({ key: b }) => /* @__PURE__ */ e.jsx("td", { className: `p-3 border ${s.borderColor}`, children: u[b] }, b))
2379
+ },
2380
+ k
2381
+ )) })
2382
+ ] }),
2383
+ o && /* @__PURE__ */ e.jsxs("div", { className: "flex justify-between items-center mt-3 p-2", children: [
2384
+ /* @__PURE__ */ e.jsx(
2385
+ "button",
2386
+ {
2387
+ className: `px-3 py-1 ${s.paginationBg} ${s.paginationText} rounded-md disabled:opacity-50`,
2388
+ disabled: m === 1,
2389
+ onClick: () => c((u) => Math.max(u - 1, 1)),
2390
+ children: "Prev"
2391
+ }
2392
+ ),
2393
+ /* @__PURE__ */ e.jsxs("span", { className: `${s.paginationText}`, children: [
2394
+ "Page ",
2395
+ m
2396
+ ] }),
2397
+ /* @__PURE__ */ e.jsx(
2398
+ "button",
2399
+ {
2400
+ className: `px-3 py-1 ${s.paginationBg} ${s.paginationText} rounded-md disabled:opacity-50`,
2401
+ disabled: m * a >= n.length,
2402
+ onClick: () => c((u) => u + 1),
2403
+ children: "Next"
2404
+ }
2405
+ )
2406
+ ] })
2407
+ ] });
2408
+ }, jt = ({
2409
+ columns: t = { sm: 1, md: 2, lg: 3 },
2410
+ rows: n = { sm: "auto", md: "auto", lg: "auto" },
2411
+ gap: l = { sm: "10px", md: "20px", lg: "30px" },
2412
+ rowGap: o = { sm: "10px", md: "15px", lg: "20px" },
2413
+ columnGap: a = { sm: "10px", md: "15px", lg: "20px" },
2414
+ padding: s = { sm: "10px", md: "20px", lg: "40px" },
2415
+ alignItems: i = { sm: "stretch", md: "center", lg: "center" },
2416
+ justifyItems: p = { sm: "stretch", md: "center", lg: "center" },
2417
+ backgroundColor: h = "#f4f4f4",
2418
+ width: g = { sm: "100%", md: "100%", lg: "100%" },
2419
+ maxWidth: m = { sm: "100%", md: "100%", lg: "100%" },
2420
+ height: c = { sm: "auto", md: "auto", lg: "auto" },
2421
+ children: x,
2422
+ className: f = ""
2423
+ }) => {
2424
+ const [d, u] = P("lg");
2425
+ q(() => {
2426
+ const b = () => {
2427
+ const S = window.innerWidth;
2428
+ S <= 767 ? u("sm") : S >= 768 && S <= 1023 ? u("md") : u("lg");
2429
+ };
2430
+ return b(), window.addEventListener("resize", b), () => window.removeEventListener("resize", b);
2431
+ }, []);
2432
+ const k = K(
2433
+ () => ({
2434
+ display: "grid",
2435
+ gridTemplateColumns: `repeat(${t[d]}, 1fr)`,
2436
+ gridTemplateRows: n[d] !== "auto" ? `repeat(${n[d]}, 1fr)` : "auto",
2437
+ gap: l[d],
2438
+ rowGap: o[d],
2439
+ columnGap: a[d],
2440
+ padding: s[d],
2441
+ alignItems: i[d],
2442
+ justifyItems: p[d],
2443
+ backgroundColor: h,
2444
+ width: g[d],
2445
+ maxWidth: m[d],
2446
+ height: c[d]
2447
+ }),
2448
+ [d, t, n, l, o, a, s, i, p, g, m, c, h]
2449
+ );
2450
+ return /* @__PURE__ */ e.jsx("div", { className: f, style: k, children: x });
2451
+ }, wt = ({
2452
+ direction: t = { sm: "column", md: "row", lg: "row" },
2453
+ align: n = { sm: "center", md: "center", lg: "center" },
2454
+ justify: l = { sm: "center", md: "space-between", lg: "space-around" },
2455
+ gap: o = { sm: "10px", md: "20px", lg: "30px" },
2456
+ padding: a = { sm: "10px", md: "20px", lg: "40px" },
2457
+ backgroundColor: s = "#f4f4f4",
2458
+ width: i = { sm: "100%", md: "100%", lg: "100%" },
2459
+ height: p = { sm: "auto", md: "auto", lg: "auto" },
2460
+ maxWidth: h = { sm: "100%", md: "100%", lg: "100%" },
2461
+ children: g,
2462
+ className: m = ""
2463
+ }) => {
2464
+ const [c, x] = P("lg");
2465
+ q(() => {
2466
+ const d = () => {
2467
+ const u = window.innerWidth;
2468
+ u <= 767 ? x("sm") : u >= 768 && u <= 1023 ? x("md") : x("lg");
2469
+ };
2470
+ return d(), window.addEventListener("resize", d), () => window.removeEventListener("resize", d);
2471
+ }, []);
2472
+ const f = K(
2473
+ () => ({
2474
+ display: "flex",
2475
+ flexDirection: t[c],
2476
+ alignItems: n[c],
2477
+ justifyContent: l[c],
2478
+ gap: o[c],
2479
+ padding: a[c],
2480
+ backgroundColor: s,
2481
+ width: i[c],
2482
+ maxWidth: h[c],
2483
+ height: p[c]
2484
+ }),
2485
+ [c, t, n, l, o, a, i, h, p, s]
2486
+ );
2487
+ return /* @__PURE__ */ e.jsx("div", { className: m, style: f, children: g });
2488
+ }, et = {
2489
+ success: {
2490
+ bg: "#ecfdf5",
2491
+ border: "#34d399",
2492
+ iconColor: "#059669",
2493
+ Icon: /* @__PURE__ */ e.jsx(Ie, { size: 20 })
2494
+ },
2495
+ error: {
2496
+ bg: "#fef2f2",
2497
+ border: "#f87171",
2498
+ iconColor: "#dc2626",
2499
+ Icon: /* @__PURE__ */ e.jsx(Ne, { size: 20 })
2500
+ },
2501
+ warning: {
2502
+ bg: "#fffbeb",
2503
+ border: "#facc15",
2504
+ iconColor: "#d97706",
2505
+ Icon: /* @__PURE__ */ e.jsx(Ge, { size: 20 })
2506
+ },
2507
+ info: {
2508
+ bg: "#eff6ff",
2509
+ border: "#3b82f6",
2510
+ iconColor: "#2563eb",
2511
+ Icon: /* @__PURE__ */ e.jsx(Be, { size: 20 })
2512
+ }
2513
+ }, tt = (t) => {
2514
+ const n = {
2515
+ position: "fixed",
2516
+ zIndex: 9999
2517
+ };
2518
+ switch (t) {
2519
+ case "top-left":
2520
+ return { ...n, top: "20px", left: "20px" };
2521
+ case "top-center":
2522
+ return { ...n, top: "20px", left: "50%", transform: "translateX(-50%)" };
2523
+ case "top-right":
2524
+ return { ...n, top: "20px", right: "20px" };
2525
+ case "bottom-left":
2526
+ return { ...n, bottom: "20px", left: "20px" };
2527
+ case "bottom-center":
2528
+ return { ...n, bottom: "20px", left: "50%", transform: "translateX(-50%)" };
2529
+ case "bottom-right":
2530
+ default:
2531
+ return { ...n, bottom: "20px", right: "20px" };
2532
+ }
2533
+ }, vt = ({
2534
+ title: t = "",
2535
+ description: n = "",
2536
+ type: l = "info",
2537
+ dismissible: o = !0,
2538
+ onClose: a,
2539
+ duration: s,
2540
+ icon: i,
2541
+ actionButton: p,
2542
+ position: h = "top-right",
2543
+ className: g,
2544
+ style: m
2545
+ }) => {
2546
+ const [c, x] = P(!0);
2547
+ if (q(() => {
2548
+ if (s) {
2549
+ const S = setTimeout(() => {
2550
+ x(!1), a?.();
2551
+ }, s);
2552
+ return () => clearTimeout(S);
2553
+ }
2554
+ }, [s, a]), !c) return null;
2555
+ const { bg: f, border: d, iconColor: u, Icon: k } = et[l], b = tt(h);
2556
+ return /* @__PURE__ */ e.jsxs(
2557
+ "div",
2558
+ {
2559
+ className: g,
2560
+ style: {
2561
+ ...b,
2562
+ display: "flex",
2563
+ gap: "12px",
2564
+ padding: "16px",
2565
+ backgroundColor: f,
2566
+ borderLeft: `4px solid ${d}`,
2567
+ borderRadius: "8px",
2568
+ color: "#111827",
2569
+ alignItems: "flex-start",
2570
+ boxShadow: "0 4px 12px rgba(0,0,0,0.08)",
2571
+ transition: "all 0.3s ease",
2572
+ animation: "slideIn 0.3s ease",
2573
+ maxWidth: "600px",
2574
+ width: "calc(100% - 40px)",
2575
+ ...m
2576
+ // ✅ User custom styles merged last
2577
+ },
2578
+ children: [
2579
+ /* @__PURE__ */ e.jsx("div", { style: { color: u, marginTop: "3px" }, children: i || k }),
2580
+ /* @__PURE__ */ e.jsxs("div", { style: { flex: 1 }, children: [
2581
+ t && /* @__PURE__ */ e.jsx("div", { style: { fontWeight: "600", marginBottom: "4px" }, children: t }),
2582
+ n && /* @__PURE__ */ e.jsx("div", { style: { fontSize: "14px", color: "#374151" }, children: n }),
2583
+ p && /* @__PURE__ */ e.jsx("div", { style: { marginTop: "10px" }, children: p })
2584
+ ] }),
2585
+ o && /* @__PURE__ */ e.jsx(
2586
+ "button",
2587
+ {
2588
+ onClick: () => {
2589
+ x(!1), a?.();
2590
+ },
2591
+ style: {
2592
+ background: "transparent",
2593
+ border: "none",
2594
+ color: "#6b7280",
2595
+ cursor: "pointer",
2596
+ marginLeft: "8px"
2597
+ },
2598
+ children: /* @__PURE__ */ e.jsx(je, { size: 16 })
2599
+ }
2600
+ ),
2601
+ /* @__PURE__ */ e.jsx("style", { children: `
2602
+ @keyframes slideIn {
2603
+ from { opacity: 0; transform: translateY(-10px); }
2604
+ to { opacity: 1; transform: translateY(0); }
2605
+ }
2606
+ ` })
2607
+ ]
2608
+ }
2609
+ );
2610
+ }, kt = ({
2611
+ text: t,
2612
+ color: n = "#2563eb",
2613
+ textColor: l = "#fff",
2614
+ borderColor: o = "#2563eb",
2615
+ icon: a,
2616
+ iconPosition: s = "left",
2617
+ rounded: i = !1,
2618
+ borderRadius: p,
2619
+ borderWidth: h = "0",
2620
+ fontSize: g = "14px",
2621
+ fontWeight: m = 500,
2622
+ horizontalPadding: c = "10px",
2623
+ verticalPadding: x = "6px",
2624
+ margin: f = "0",
2625
+ shadow: d = "0 1px 4px rgba(0, 0, 0, 0.1)",
2626
+ notificationDot: u = !1,
2627
+ dotColor: k = "#ef4444",
2628
+ count: b,
2629
+ pulse: S = !1,
2630
+ style: A,
2631
+ onClick: I
2632
+ }) => {
2633
+ const O = {
2634
+ display: "inline-flex",
2635
+ alignItems: "center",
2636
+ justifyContent: "center",
2637
+ backgroundColor: n,
2638
+ border: `${h} solid ${o}`,
2639
+ borderRadius: p || (i ? "9999px" : "6px"),
2640
+ padding: `${x} ${c}`,
2641
+ fontSize: g,
2642
+ fontWeight: m,
2643
+ margin: f,
2644
+ boxShadow: d,
2645
+ position: "relative",
2646
+ cursor: I ? "pointer" : "default",
2647
+ ...A
2648
+ }, v = {
2649
+ color: l,
2650
+ display: "inline"
2651
+ }, T = {
2652
+ display: "flex",
2653
+ alignItems: "center",
2654
+ color: l
2655
+ }, M = {
2656
+ ...T,
2657
+ marginRight: t ? "6px" : "0px"
2658
+ }, B = {
2659
+ ...T,
2660
+ marginLeft: t ? "6px" : "0px"
2661
+ }, z = {
2662
+ position: "absolute",
2663
+ top: "-6px",
2664
+ right: "-6px",
2665
+ backgroundColor: "#ef4444",
2666
+ color: "#fff",
2667
+ borderRadius: "50%",
2668
+ minWidth: "20px",
2669
+ height: "20px",
2670
+ fontSize: "12px",
2671
+ padding: "0 6px",
2672
+ display: "flex",
2673
+ alignItems: "center",
2674
+ justifyContent: "center",
2675
+ lineHeight: 1,
2676
+ zIndex: 1
2677
+ }, _ = {
2678
+ position: "absolute",
2679
+ top: "-4px",
2680
+ right: "-4px",
2681
+ height: "8px",
2682
+ width: "8px",
2683
+ backgroundColor: k,
2684
+ borderRadius: "50%",
2685
+ zIndex: 1,
2686
+ animation: S ? "pulseAnim 1.2s infinite" : void 0
2687
+ };
2688
+ return /* @__PURE__ */ e.jsxs("span", { style: O, onClick: I, children: [
2689
+ u && /* @__PURE__ */ e.jsx("span", { style: _ }),
2690
+ typeof b < "u" && /* @__PURE__ */ e.jsx("span", { style: z, children: b }),
2691
+ a && s === "left" && /* @__PURE__ */ e.jsx("span", { style: M, children: a }),
2692
+ t && /* @__PURE__ */ e.jsx("span", { style: v, children: t }),
2693
+ a && s === "right" && /* @__PURE__ */ e.jsx("span", { style: B, children: a }),
2694
+ /* @__PURE__ */ e.jsx("style", { children: `
2695
+ @keyframes pulseAnim {
2696
+ 0% { transform: scale(1); opacity: 1; }
2697
+ 50% { transform: scale(1.5); opacity: 0.5; }
2698
+ 100% { transform: scale(1); opacity: 1; }
2699
+ }
2700
+ ` })
2701
+ ] });
2702
+ }, St = ({
2703
+ src: t,
2704
+ alt: n = "User Avatar",
2705
+ size: l = "medium",
2706
+ className: o = ""
2707
+ }) => {
2708
+ const a = {
2709
+ small: "w-8 h-8",
2710
+ medium: "w-12 h-12",
2711
+ large: "w-16 h-16"
2712
+ };
2713
+ return /* @__PURE__ */ e.jsx(
2714
+ "img",
2715
+ {
2716
+ src: t,
2717
+ alt: n,
2718
+ className: `rounded-full object-cover ${a[l]} ${o}`
2719
+ }
2720
+ );
2721
+ }, Tt = ({
2722
+ avatars: t,
2723
+ size: n = "medium",
2724
+ maxVisible: l = 3,
2725
+ className: o = ""
2726
+ }) => {
2727
+ const a = {
2728
+ small: "w-8 h-8",
2729
+ medium: "w-12 h-12",
2730
+ large: "w-16 h-16"
2731
+ };
2732
+ return /* @__PURE__ */ e.jsxs("div", { className: "flex -space-x-2", children: [
2733
+ t.slice(0, l).map((s, i) => /* @__PURE__ */ e.jsx(
2734
+ "img",
2735
+ {
2736
+ src: s,
2737
+ className: `rounded-full border-2 border-white object-cover ${a[n]} ${o}`
2738
+ },
2739
+ i
2740
+ )),
2741
+ t.length > l && /* @__PURE__ */ e.jsxs("span", { className: `rounded-full border-2 border-white bg-gray-500 text-white flex items-center justify-center ${a[n]}`, children: [
2742
+ "+",
2743
+ t.length - l
2744
+ ] })
2745
+ ] });
2746
+ }, zt = ({
2747
+ src: t,
2748
+ alt: n = "User Avatar",
2749
+ status: l = "online",
2750
+ size: o = "medium",
2751
+ className: a = ""
2752
+ }) => {
2753
+ const [s, i] = P(!1), p = {
2754
+ small: { size: "w-8 h-8", statusSize: "w-2 h-2" },
2755
+ medium: { size: "w-12 h-12", statusSize: "w-3 h-3" },
2756
+ large: { size: "w-16 h-16", statusSize: "w-4 h-4" }
2757
+ }, h = {
2758
+ online: "bg-green-500",
2759
+ offline: "bg-gray-400",
2760
+ away: "bg-yellow-500",
2761
+ busy: "bg-red-500"
2762
+ };
2763
+ return /* @__PURE__ */ e.jsxs("div", { className: `relative inline-block ${p[o].size}`, children: [
2764
+ t && !s ? /* @__PURE__ */ e.jsx(
2765
+ "img",
2766
+ {
2767
+ src: t,
2768
+ alt: n,
2769
+ "aria-label": n,
2770
+ className: `rounded-full object-cover ${p[o].size} ${a}`,
2771
+ onError: () => i(!0)
2772
+ }
2773
+ ) : /* @__PURE__ */ e.jsx(
2774
+ "svg",
2775
+ {
2776
+ "aria-label": "Placeholder for user avatar",
2777
+ className: `rounded-full bg-gray-300 text-gray-500 dark:bg-gray-600 dark:text-gray-400 ${p[o].size}`,
2778
+ xmlns: "http://www.w3.org/2000/svg",
2779
+ viewBox: "0 0 24 24",
2780
+ fill: "currentColor",
2781
+ children: /* @__PURE__ */ e.jsx(
2782
+ "path",
2783
+ {
2784
+ fillRule: "evenodd",
2785
+ d: "M12 12a5 5 0 100-10 5 5 0 000 10zm-7 9c0-3 3-5 7-5s7 2 7 5v1H5v-1z",
2786
+ clipRule: "evenodd"
2787
+ }
2788
+ )
2789
+ }
2790
+ ),
2791
+ /* @__PURE__ */ e.jsx(
2792
+ "span",
2793
+ {
2794
+ className: `z-[1000] w-full h-full absolute bottom-0 right-0 border-2 border-white rounded-full ${h[l]} ${p[o].statusSize}`
2795
+ }
2796
+ )
2797
+ ] });
2798
+ };
2799
+ export {
2800
+ ft as Accordion,
2801
+ vt as Alert,
2802
+ pt as AudioPlayer,
2803
+ St as Avatar,
2804
+ Tt as AvatarGroup,
2805
+ zt as AvatarWithStatus,
2806
+ kt as Badge,
2807
+ ot as Button,
2808
+ ht as CheckRadio,
2809
+ xt as Container,
2810
+ gt as Drawer,
2811
+ mt as DrawerButton,
2812
+ bt as Dropdown,
2813
+ wt as Flexbox,
2814
+ jt as GridView,
2815
+ st as Image,
2816
+ lt as Input,
2817
+ it as LeftTabs,
2818
+ at as List,
2819
+ dt as RightTabs,
2820
+ yt as Table,
2821
+ nt as Text,
2822
+ ct as TopTabs,
2823
+ ut as VideoPlayer
2824
+ };