tailwind-ux-kit 1.0.17 → 1.0.19

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,4 @@
1
+ import { default as React } from 'react';
2
+ import { BadgeProps } from '../types/BadgeTypes';
3
+ declare const Badge: React.FC<BadgeProps>;
4
+ export default Badge;
@@ -0,0 +1,12 @@
1
+ import { default as React, ReactNode, CSSProperties } from 'react';
2
+ type TooltipPosition = "top" | "bottom" | "left" | "right";
3
+ interface TooltipProps {
4
+ children: ReactNode;
5
+ content: ReactNode;
6
+ position?: TooltipPosition;
7
+ className?: string;
8
+ tooltipClass?: string;
9
+ tooltipStyle?: CSSProperties;
10
+ }
11
+ declare const Tooltip: React.FC<TooltipProps>;
12
+ export default Tooltip;
package/lib/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export { default as Input } from './components/Input';
2
2
  export { default as Button } from './components/Button';
3
3
  export { default as Dropdown } from './components/Dropdown';
4
+ export { default as Tooltip } from './components/ToolTip';
5
+ export { default as Badge } from './components/Badge';
4
6
  export { default as Modal } from './components/modal/Modal';
5
7
  export { default as ModalProvider } from './components/modal/ModalProvider';
6
8
  export * from './components/modal/ModalContext';
@@ -1,28 +1,28 @@
1
1
  "use client";
2
- import { jsxs as x, jsx as i } from "react/jsx-runtime";
3
- import h, { forwardRef as X, useState as w, useRef as D, useMemo as Y, useCallback as v, useEffect as z, createContext as ee, useContext as te } from "react";
4
- const re = X((e, n) => {
2
+ import { jsxs as x, jsx as d } from "react/jsx-runtime";
3
+ import h, { forwardRef as Q, useState as v, useRef as z, useMemo as V, useCallback as w, useEffect as k, createContext as ee, useContext as te } from "react";
4
+ const re = Q((e, n) => {
5
5
  const {
6
6
  label: r,
7
7
  id: t,
8
8
  inputSize: s = "md",
9
- shape: c = "rounded",
10
- validate: a,
9
+ shape: u = "rounded",
10
+ validate: i,
11
11
  onValidatedChange: o,
12
12
  className: l = "",
13
- icon: d,
14
- iconPosition: f = "left",
15
- floatingLabelStyle: u,
16
- onChange: p,
17
- isValid: g,
13
+ icon: c,
14
+ iconPosition: a = "left",
15
+ floatingLabelStyle: g,
16
+ onChange: f,
17
+ isValid: p,
18
18
  isInvalid: b,
19
19
  feedback: m,
20
20
  feedbackType: y = "invalid",
21
21
  ...C
22
- } = e, [S, j] = w("default"), P = (N) => {
23
- const _ = N.target.value, k = (a == null ? void 0 : a(_)) ?? "default";
24
- j(k), o == null || o(N, k), p == null || p(N);
25
- }, L = {
22
+ } = e, [S, j] = v("default"), L = (O) => {
23
+ const I = O.target.value, $ = (i == null ? void 0 : i(I)) ?? "default";
24
+ j($), o == null || o(O, $), f == null || f(O);
25
+ }, P = {
26
26
  xs: "text-xs px-2 py-1",
27
27
  sm: "text-sm px-3 py-1.5",
28
28
  md: "text-sm px-3 py-3",
@@ -31,20 +31,20 @@ const re = X((e, n) => {
31
31
  flat: "rounded-none",
32
32
  rounded: "rounded-md",
33
33
  pill: "rounded-full"
34
- }, H = {
34
+ }, G = {
35
35
  filled: "rounded-t-lg px-2.5 pb-2.5 pt-5 bg-gray-50 border-b-2",
36
36
  outlined: "rounded-lg px-2.5 pb-2.5 pt-4 bg-transparent border",
37
37
  standard: "px-0 py-2.5 bg-transparent border-0 border-b-2"
38
- }, W = {
38
+ }, H = {
39
39
  filled: "absolute duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:scale-100 peer-focus:scale-75 peer-focus:-translate-y-4 peer-focus:text-blue-600",
40
40
  outlined: "absolute duration-300 transform -translate-y-4 scale-75 top-2 z-10 origin-[0] bg-white px-2 peer-placeholder-shown:scale-100 peer-placeholder-shown:top-1/2 peer-placeholder-shown:-translate-y-1/2 peer-focus:top-2 peer-focus:scale-75 peer-focus:-translate-y-4 peer-focus:text-blue-600",
41
41
  standard: "absolute duration-300 transform -translate-y-6 scale-75 top-3 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6 peer-focus:text-blue-600"
42
- }, K = (N, _, k) => {
43
- if (k)
42
+ }, X = (O, I, $) => {
43
+ if ($)
44
44
  return "border-red-500 bg-red-50 text-red-900 placeholder-red-700 focus:ring-red-500 focus:border-red-500";
45
- if (_)
45
+ if (I)
46
46
  return "border-green-500 bg-green-50 text-green-900 placeholder-green-700 focus:ring-green-500 focus:border-green-500";
47
- switch (N) {
47
+ switch (O) {
48
48
  case "error":
49
49
  return "border-red-500 bg-red-50 focus:ring-red-500";
50
50
  case "warning":
@@ -54,47 +54,47 @@ const re = X((e, n) => {
54
54
  default:
55
55
  return "border-gray-300 focus:ring-blue-500";
56
56
  }
57
- }, U = L[s] || L.md, q = E[c] || E.flat, J = K(S, g, b), Q = f === "start" || f === "left" ? "left-0 ps-3.5" : "right-0 pe-3.5", V = d && (f === "start" || f === "left") ? "ps-10" : d ? "pe-10" : "", T = t ?? `input-${(r == null ? void 0 : r.toLowerCase().replace(/\s+/g, "-")) || Math.random().toString(36).slice(2)}`, O = !!u;
58
- return /* @__PURE__ */ x("div", { className: `w-full relative ${O ? "z-0" : ""}`, children: [
59
- !O && r && /* @__PURE__ */ i(
57
+ }, Y = P[s] || P.md, K = E[u] || E.flat, U = X(S, p, b), q = a === "start" || a === "left" ? "left-0 ps-3.5" : "right-0 pe-3.5", J = c && (a === "start" || a === "left") ? "ps-10" : c ? "pe-10" : "", T = t ?? `input-${(r == null ? void 0 : r.toLowerCase().replace(/\s+/g, "-")) || Math.random().toString(36).slice(2)}`, N = !!g;
58
+ return /* @__PURE__ */ x("div", { className: `w-full relative ${N ? "z-0" : ""}`, children: [
59
+ !N && r && /* @__PURE__ */ d(
60
60
  "label",
61
61
  {
62
62
  htmlFor: T,
63
- className: `block mb-1 font-light text-sm ${g ? "text-green-700 dark:text-green-500" : b ? "text-red-700 dark:text-red-500" : "text-gray-700"}`,
63
+ className: `block mb-1 font-light text-sm ${p ? "text-green-700 dark:text-green-500" : b ? "text-red-700 dark:text-red-500" : "text-gray-700"}`,
64
64
  children: r
65
65
  }
66
66
  ),
67
67
  /* @__PURE__ */ x("div", { className: "relative w-full", children: [
68
- d && /* @__PURE__ */ i(
68
+ c && /* @__PURE__ */ d(
69
69
  "div",
70
70
  {
71
- className: `absolute inset-y-0 flex items-center ${Q}`,
72
- children: /* @__PURE__ */ i("span", { className: "text-gray-500", children: d })
71
+ className: `absolute inset-y-0 flex items-center ${q}`,
72
+ children: /* @__PURE__ */ d("span", { className: "text-gray-500", children: c })
73
73
  }
74
74
  ),
75
- /* @__PURE__ */ i(
75
+ /* @__PURE__ */ d(
76
76
  "input",
77
77
  {
78
78
  ...C,
79
79
  id: T,
80
80
  ref: n,
81
- placeholder: O ? " " : C.placeholder,
82
- onChange: P,
81
+ placeholder: N ? " " : C.placeholder,
82
+ onChange: L,
83
83
  className: `border peer w-full block font-light appearance-none focus:outline-none focus:ring-0 transition
84
- ${O && u ? H[u] : U}
85
- ${V} ${q} ${J} ${l}`
84
+ ${N && g ? G[g] : Y}
85
+ ${J} ${K} ${U} ${l}`
86
86
  }
87
87
  ),
88
- O && r && u && /* @__PURE__ */ i(
88
+ N && r && g && /* @__PURE__ */ d(
89
89
  "label",
90
90
  {
91
91
  htmlFor: T,
92
- className: `ms-1 ${W[u]} ${l}`,
92
+ className: `ms-1 ${H[g]} ${l}`,
93
93
  children: r
94
94
  }
95
95
  )
96
96
  ] }),
97
- m && /* @__PURE__ */ i(
97
+ m && /* @__PURE__ */ d(
98
98
  "p",
99
99
  {
100
100
  className: `mt-1 text-xs ${y === "invalid" ? "text-red-600 dark:text-red-500" : "text-green-600 dark:text-green-500"}`,
@@ -128,33 +128,33 @@ const ne = {
128
128
  md: "px-5 py-2.5 text-sm",
129
129
  lg: "px-5 py-3 text-base",
130
130
  xl: "px-6 py-3.5 text-base"
131
- }, le = {
131
+ }, se = {
132
132
  flat: "shadow-none",
133
133
  rounded: "rounded-md",
134
134
  pill: "rounded-full",
135
135
  circle: "rounded-full w-10 h-10 p-0 flex items-center justify-center"
136
- }, Ce = ({
136
+ }, ke = ({
137
137
  children: e,
138
138
  variant: n = "primary",
139
139
  size: r = "md",
140
140
  type: t = "button",
141
141
  shape: s = "rounded",
142
- className: c = "",
143
- isLoading: a = !1,
142
+ className: u = "",
143
+ isLoading: i = !1,
144
144
  disabled: o = !1,
145
145
  ...l
146
146
  }) => {
147
- const d = o || a, f = [
147
+ const c = o || i, a = [
148
148
  "inline-flex items-center justify-center font-normal transition duration-150 cursor-pointer",
149
149
  ne[n],
150
150
  oe[r],
151
- le[s],
151
+ se[s],
152
152
  s === "flat" ? "shadow-none" : "shadow-sm",
153
- d ? "opacity-50 cursor-not-allowed pointer-events-none" : "",
154
- c
153
+ c ? "opacity-50 cursor-not-allowed pointer-events-none" : "",
154
+ u
155
155
  ].filter(Boolean).join(" ");
156
- return /* @__PURE__ */ x("button", { type: t, className: f, disabled: d, ...l, children: [
157
- a && /* @__PURE__ */ x(
156
+ return /* @__PURE__ */ x("button", { type: t, className: a, disabled: c, ...l, children: [
157
+ i && /* @__PURE__ */ x(
158
158
  "svg",
159
159
  {
160
160
  "aria-hidden": "true",
@@ -164,14 +164,14 @@ const ne = {
164
164
  fill: "none",
165
165
  xmlns: "http://www.w3.org/2000/svg",
166
166
  children: [
167
- /* @__PURE__ */ i(
167
+ /* @__PURE__ */ d(
168
168
  "path",
169
169
  {
170
170
  d: "M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",
171
171
  fill: "currentColor"
172
172
  }
173
173
  ),
174
- /* @__PURE__ */ i(
174
+ /* @__PURE__ */ d(
175
175
  "path",
176
176
  {
177
177
  d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",
@@ -183,12 +183,12 @@ const ne = {
183
183
  ),
184
184
  e
185
185
  ] });
186
- }, Oe = ({
186
+ }, Se = ({
187
187
  label: e,
188
188
  children: n,
189
189
  position: r = "right"
190
190
  }) => {
191
- const [t, s] = w(!1), [c, a] = w(!1), o = D(null), l = D(null), d = Y(() => {
191
+ const [t, s] = v(!1), [u, i] = v(!1), o = z(null), l = z(null), c = V(() => {
192
192
  switch (r) {
193
193
  case "left":
194
194
  return "left-0";
@@ -198,98 +198,244 @@ const ne = {
198
198
  default:
199
199
  return "right-0";
200
200
  }
201
- }, [r]), f = v((g) => {
202
- const b = g.target;
201
+ }, [r]), a = w((p) => {
202
+ const b = p.target;
203
203
  o.current && !o.current.contains(b) && l.current && !l.current.contains(b) && s(!1);
204
- }, []), u = v(() => {
204
+ }, []), g = w(() => {
205
205
  if (!l.current || !o.current) return;
206
- const g = l.current.getBoundingClientRect(), b = o.current.getBoundingClientRect(), m = window.innerHeight - g.bottom, y = g.top;
207
- a(
206
+ const p = l.current.getBoundingClientRect(), b = o.current.getBoundingClientRect(), m = window.innerHeight - p.bottom, y = p.top;
207
+ i(
208
208
  m < b.height && y > b.height
209
209
  );
210
210
  }, []);
211
- z(() => {
211
+ k(() => {
212
212
  if (t)
213
- return u(), window.addEventListener("resize", u), window.addEventListener("scroll", u, !0), () => {
214
- window.removeEventListener("resize", u), window.removeEventListener("scroll", u, !0);
213
+ return g(), window.addEventListener("resize", g), window.addEventListener("scroll", g, !0), () => {
214
+ window.removeEventListener("resize", g), window.removeEventListener("scroll", g, !0);
215
215
  };
216
- }, [t, u]), z(() => (document.addEventListener("mousedown", f), () => document.removeEventListener("mousedown", f)), [f]);
217
- const p = v(() => s((g) => !g), []);
216
+ }, [t, g]), k(() => (document.addEventListener("mousedown", a), () => document.removeEventListener("mousedown", a)), [a]);
217
+ const f = w(() => s((p) => !p), []);
218
218
  return /* @__PURE__ */ x("div", { className: "relative flex items-center", children: [
219
- /* @__PURE__ */ i("button", { ref: l, onClick: p, children: e }),
220
- t && /* @__PURE__ */ i(
219
+ /* @__PURE__ */ d("button", { ref: l, onClick: f, children: e }),
220
+ t && /* @__PURE__ */ d(
221
221
  "div",
222
222
  {
223
223
  ref: o,
224
224
  className: `absolute z-10 bg-white rounded-sm shadow-md overflow-hidden
225
- ${c ? "bottom-full mb-2" : "top-full mt-2"}
226
- ${d}`,
225
+ ${u ? "bottom-full mb-2" : "top-full mt-2"}
226
+ ${c}`,
227
+ children: n
228
+ }
229
+ )
230
+ ] });
231
+ }, je = ({
232
+ children: e,
233
+ content: n,
234
+ position: r = "top",
235
+ className: t = "",
236
+ tooltipClass: s = "",
237
+ tooltipStyle: u = {}
238
+ }) => {
239
+ const i = z(null), o = z(null);
240
+ k(() => {
241
+ const c = i.current, a = o.current;
242
+ if (!c || !a) return;
243
+ const g = () => {
244
+ a.style.opacity = "1", a.style.visibility = "visible";
245
+ }, f = () => {
246
+ a.style.opacity = "0", a.style.visibility = "hidden";
247
+ };
248
+ return c.addEventListener("mouseenter", g), c.addEventListener("mouseleave", f), () => {
249
+ c.removeEventListener("mouseenter", g), c.removeEventListener("mouseleave", f);
250
+ };
251
+ }, []);
252
+ const l = (c) => {
253
+ const a = {
254
+ position: "absolute",
255
+ opacity: 0,
256
+ visibility: "hidden",
257
+ transition: "opacity 0.2s ease",
258
+ maxWidth: "240px",
259
+ whiteSpace: "normal",
260
+ wordBreak: "break-word",
261
+ padding: "8px 12px",
262
+ fontSize: "0.875rem",
263
+ backgroundColor: "black",
264
+ color: "white",
265
+ borderRadius: "4px",
266
+ boxShadow: "0px 4px 12px rgba(0, 0, 0, 0.15)",
267
+ zIndex: 9999,
268
+ width: "max-content"
269
+ };
270
+ switch (c) {
271
+ case "top":
272
+ return {
273
+ ...a,
274
+ bottom: "100%",
275
+ left: "50%",
276
+ transform: "translateX(-50%)",
277
+ marginBottom: "8px"
278
+ };
279
+ case "bottom":
280
+ return {
281
+ ...a,
282
+ top: "100%",
283
+ left: "50%",
284
+ transform: "translateX(-50%)",
285
+ marginTop: "8px"
286
+ };
287
+ case "left":
288
+ return {
289
+ ...a,
290
+ right: "100%",
291
+ top: "50%",
292
+ transform: "translateY(-50%)",
293
+ marginRight: "8px"
294
+ };
295
+ case "right":
296
+ return {
297
+ ...a,
298
+ left: "100%",
299
+ top: "50%",
300
+ transform: "translateY(-50%)",
301
+ marginLeft: "8px"
302
+ };
303
+ default:
304
+ return a;
305
+ }
306
+ };
307
+ return /* @__PURE__ */ x("div", { ref: i, className: `relative inline-block ${t}`, children: [
308
+ e,
309
+ /* @__PURE__ */ d(
310
+ "div",
311
+ {
312
+ ref: o,
313
+ role: "tooltip",
314
+ className: s,
315
+ style: {
316
+ ...l(r),
317
+ ...u
318
+ },
227
319
  children: n
228
320
  }
229
321
  )
230
322
  ] });
231
- }, F = ee(null), se = () => {
323
+ }, le = {
324
+ primary: "bg-blue-500 text-white",
325
+ secondary: "bg-gray-500 text-white",
326
+ success: "bg-green-500 text-white",
327
+ danger: "bg-red-500 text-white",
328
+ warning: "bg-yellow-400 text-black",
329
+ info: "bg-cyan-500 text-white",
330
+ dark: "bg-black text-white",
331
+ light: "bg-gray-100 text-gray-800",
332
+ link: "bg-transparent text-blue-500 underline",
333
+ "outline-primary": "border border-blue-500 text-blue-500 bg-transparent",
334
+ "outline-secondary": "border border-gray-500 text-gray-500 bg-transparent",
335
+ "outline-success": "border border-green-500 text-green-500 bg-transparent",
336
+ "outline-danger": "border border-red-500 text-red-500 bg-transparent",
337
+ "outline-warning": "border border-yellow-400 text-yellow-500 bg-transparent",
338
+ "outline-info": "border border-cyan-500 text-cyan-500 bg-transparent",
339
+ "outline-dark": "border border-black text-black bg-transparent",
340
+ "outline-light": "border border-gray-100 text-gray-800 bg-transparent"
341
+ }, ae = {
342
+ xs: "text-xs px-2 py-0.5",
343
+ sm: "text-sm px-2.5 py-0.5",
344
+ md: "text-base px-3 py-1",
345
+ lg: "text-lg px-3.5 py-1.5",
346
+ xl: "text-xl px-4 py-2"
347
+ }, ie = {
348
+ flat: "rounded-none",
349
+ rounded: "rounded-sm",
350
+ pill: "rounded-full",
351
+ circle: "rounded-full p-2 w-8 h-8 justify-center"
352
+ }, Le = ({
353
+ label: e,
354
+ variant: n = "primary",
355
+ size: r = "sm",
356
+ shape: t = "rounded",
357
+ icon: s,
358
+ dismissible: u,
359
+ onDismiss: i,
360
+ className: o = "",
361
+ ...l
362
+ }) => {
363
+ const c = !e && !!s, a = `inline-flex items-center font-medium ${le[n] || ""} ${ae[r] || ""} ${ie[t] || ""} ${c ? "justify-center p-2 w-8 h-8" : ""} ` + o;
364
+ return /* @__PURE__ */ x("span", { className: a.trim(), ...l, children: [
365
+ s && /* @__PURE__ */ d("span", { className: e ? "mr-1" : "", children: s }),
366
+ e,
367
+ u && /* @__PURE__ */ d(
368
+ "button",
369
+ {
370
+ type: "button",
371
+ onClick: i,
372
+ className: "ml-2 text-xs font-bold leading-none focus:outline-none",
373
+ children: "×"
374
+ }
375
+ )
376
+ ] });
377
+ }, F = ee(null), ce = () => {
232
378
  const e = te(F);
233
379
  return e || (console.warn(
234
380
  "⚠️ useModal() called outside of ModalProvider. Falling back to standalone modal usage."
235
381
  ), null);
236
382
  };
237
- function Ne({
383
+ function Pe({
238
384
  id: e,
239
385
  title: n,
240
386
  children: r,
241
387
  standalone: t = !1,
242
388
  showFloatingClose: s = !1,
243
- containerClasses: c = "",
244
- onClose: a
389
+ containerClasses: u = "",
390
+ onClose: i
245
391
  }) {
246
- const o = se(), l = o && typeof o.openModal == "function", d = !t && l, [f, u] = w(!1), p = d ? o.isOpen(e) : f, g = () => {
247
- d ? o.closeModal(e) : u(!1), a && a();
392
+ const o = ce(), l = o && typeof o.openModal == "function", c = !t && l, [a, g] = v(!1), f = c ? o.isOpen(e) : a, p = () => {
393
+ c ? o.closeModal(e) : g(!1), i && i();
248
394
  };
249
- return z(() => (p ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
395
+ return k(() => (f ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
250
396
  document.body.style.overflow = "";
251
- }), [p]), p ? /* @__PURE__ */ i("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-[2px]", children: /* @__PURE__ */ x(
397
+ }), [f]), f ? /* @__PURE__ */ d("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-[2px]", children: /* @__PURE__ */ x(
252
398
  "div",
253
399
  {
254
- className: `bg-white rounded-lg shadow-lg w-full max-w-md p-3 transform transition-all duration-300 scale-100 ${c}`,
400
+ className: `bg-white rounded-lg shadow-lg w-full max-w-md p-3 transform transition-all duration-300 scale-100 ${u}`,
255
401
  children: [
256
402
  /* @__PURE__ */ x("div", { className: "flex justify-between items-center relative", children: [
257
- n && /* @__PURE__ */ i("h2", { className: "text-lg font-semibold", children: n }),
258
- s && /* @__PURE__ */ i(
403
+ n && /* @__PURE__ */ d("h2", { className: "text-lg font-semibold", children: n }),
404
+ s && /* @__PURE__ */ d(
259
405
  "button",
260
406
  {
261
- onClick: () => g(),
407
+ onClick: () => p(),
262
408
  className: "text-gray-500 hover:text-gray-700 absolute top-2 right-3",
263
409
  "aria-label": "Close modal",
264
410
  children: "✕"
265
411
  }
266
412
  )
267
413
  ] }),
268
- /* @__PURE__ */ i("div", { className: "text-sm text-gray-700", children: r })
414
+ /* @__PURE__ */ d("div", { className: "text-sm text-gray-700", children: r })
269
415
  ]
270
416
  }
271
417
  ) }) : null;
272
418
  }
273
- function Se({ children: e }) {
274
- const [n, r] = w({}), t = v((a) => {
275
- r((o) => ({ ...o, [a]: !0 }));
276
- }, []), s = v((a) => {
277
- r((o) => ({ ...o, [a]: !1 }));
278
- }, []), c = v((a) => !!n[a], [n]);
279
- return /* @__PURE__ */ i(F.Provider, { value: { openModal: t, closeModal: s, isOpen: c }, children: e });
419
+ function Ee({ children: e }) {
420
+ const [n, r] = v({}), t = w((i) => {
421
+ r((o) => ({ ...o, [i]: !0 }));
422
+ }, []), s = w((i) => {
423
+ r((o) => ({ ...o, [i]: !1 }));
424
+ }, []), u = w((i) => !!n[i], [n]);
425
+ return /* @__PURE__ */ d(F.Provider, { value: { openModal: t, closeModal: s, isOpen: u }, children: e });
280
426
  }
281
- let I = null, R = {};
282
- function ae(e) {
283
- I = e;
427
+ let _ = null, B = {};
428
+ function de(e) {
429
+ _ = e;
284
430
  }
285
- function je(e) {
286
- R = { ...R, ...e };
431
+ function $e(e) {
432
+ B = { ...B, ...e };
287
433
  }
288
- function ie() {
289
- return R;
434
+ function ue() {
435
+ return B;
290
436
  }
291
- function Pe(e, n, r = 3e3, t) {
292
- I ? I(e, n, r, t) : console.warn("Toast system is not mounted");
437
+ function ze(e, n, r = 3e3, t) {
438
+ _ ? _(e, n, r, t) : console.warn("Toast system is not mounted");
293
439
  }
294
440
  var Z = {
295
441
  color: void 0,
@@ -297,18 +443,18 @@ var Z = {
297
443
  className: void 0,
298
444
  style: void 0,
299
445
  attr: void 0
300
- }, A = h.createContext && /* @__PURE__ */ h.createContext(Z), ce = ["attr", "size", "title"];
301
- function de(e, n) {
446
+ }, D = h.createContext && /* @__PURE__ */ h.createContext(Z), ge = ["attr", "size", "title"];
447
+ function fe(e, n) {
302
448
  if (e == null) return {};
303
- var r = ue(e, n), t, s;
449
+ var r = pe(e, n), t, s;
304
450
  if (Object.getOwnPropertySymbols) {
305
- var c = Object.getOwnPropertySymbols(e);
306
- for (s = 0; s < c.length; s++)
307
- t = c[s], !(n.indexOf(t) >= 0) && Object.prototype.propertyIsEnumerable.call(e, t) && (r[t] = e[t]);
451
+ var u = Object.getOwnPropertySymbols(e);
452
+ for (s = 0; s < u.length; s++)
453
+ t = u[s], !(n.indexOf(t) >= 0) && Object.prototype.propertyIsEnumerable.call(e, t) && (r[t] = e[t]);
308
454
  }
309
455
  return r;
310
456
  }
311
- function ue(e, n) {
457
+ function pe(e, n) {
312
458
  if (e == null) return {};
313
459
  var r = {};
314
460
  for (var t in e)
@@ -328,7 +474,7 @@ function M() {
328
474
  return e;
329
475
  }, M.apply(this, arguments);
330
476
  }
331
- function B(e, n) {
477
+ function A(e, n) {
332
478
  var r = Object.keys(e);
333
479
  if (Object.getOwnPropertySymbols) {
334
480
  var t = Object.getOwnPropertySymbols(e);
@@ -338,25 +484,25 @@ function B(e, n) {
338
484
  }
339
485
  return r;
340
486
  }
341
- function $(e) {
487
+ function R(e) {
342
488
  for (var n = 1; n < arguments.length; n++) {
343
489
  var r = arguments[n] != null ? arguments[n] : {};
344
- n % 2 ? B(Object(r), !0).forEach(function(t) {
345
- fe(e, t, r[t]);
346
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : B(Object(r)).forEach(function(t) {
490
+ n % 2 ? A(Object(r), !0).forEach(function(t) {
491
+ be(e, t, r[t]);
492
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : A(Object(r)).forEach(function(t) {
347
493
  Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));
348
494
  });
349
495
  }
350
496
  return e;
351
497
  }
352
- function fe(e, n, r) {
353
- return n = ge(n), n in e ? Object.defineProperty(e, n, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[n] = r, e;
498
+ function be(e, n, r) {
499
+ return n = xe(n), n in e ? Object.defineProperty(e, n, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[n] = r, e;
354
500
  }
355
- function ge(e) {
356
- var n = pe(e, "string");
501
+ function xe(e) {
502
+ var n = me(e, "string");
357
503
  return typeof n == "symbol" ? n : n + "";
358
504
  }
359
- function pe(e, n) {
505
+ function me(e, n) {
360
506
  if (typeof e != "object" || !e) return e;
361
507
  var r = e[Symbol.toPrimitive];
362
508
  if (r !== void 0) {
@@ -366,77 +512,77 @@ function pe(e, n) {
366
512
  }
367
513
  return (n === "string" ? String : Number)(e);
368
514
  }
369
- function G(e) {
370
- return e && e.map((n, r) => /* @__PURE__ */ h.createElement(n.tag, $({
515
+ function W(e) {
516
+ return e && e.map((n, r) => /* @__PURE__ */ h.createElement(n.tag, R({
371
517
  key: r
372
- }, n.attr), G(n.child)));
518
+ }, n.attr), W(n.child)));
373
519
  }
374
- function be(e) {
375
- return (n) => /* @__PURE__ */ h.createElement(xe, M({
376
- attr: $({}, e.attr)
377
- }, n), G(e.child));
520
+ function he(e) {
521
+ return (n) => /* @__PURE__ */ h.createElement(ye, M({
522
+ attr: R({}, e.attr)
523
+ }, n), W(e.child));
378
524
  }
379
- function xe(e) {
525
+ function ye(e) {
380
526
  var n = (r) => {
381
527
  var {
382
528
  attr: t,
383
529
  size: s,
384
- title: c
385
- } = e, a = de(e, ce), o = s || r.size || "1em", l;
530
+ title: u
531
+ } = e, i = fe(e, ge), o = s || r.size || "1em", l;
386
532
  return r.className && (l = r.className), e.className && (l = (l ? l + " " : "") + e.className), /* @__PURE__ */ h.createElement("svg", M({
387
533
  stroke: "currentColor",
388
534
  fill: "currentColor",
389
535
  strokeWidth: "0"
390
- }, r.attr, t, a, {
536
+ }, r.attr, t, i, {
391
537
  className: l,
392
- style: $($({
538
+ style: R(R({
393
539
  color: e.color || r.color
394
540
  }, r.style), e.style),
395
541
  height: o,
396
542
  width: o,
397
543
  xmlns: "http://www.w3.org/2000/svg"
398
- }), c && /* @__PURE__ */ h.createElement("title", null, c), e.children);
544
+ }), u && /* @__PURE__ */ h.createElement("title", null, u), e.children);
399
545
  };
400
- return A !== void 0 ? /* @__PURE__ */ h.createElement(A.Consumer, null, (r) => n(r)) : n(Z);
546
+ return D !== void 0 ? /* @__PURE__ */ h.createElement(D.Consumer, null, (r) => n(r)) : n(Z);
401
547
  }
402
- function me(e) {
403
- return be({ attr: { viewBox: "0 0 15 15", fill: "none" }, child: [{ tag: "path", attr: { fillRule: "evenodd", clipRule: "evenodd", d: "M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z", fill: "currentColor" }, child: [] }] })(e);
548
+ function we(e) {
549
+ return he({ attr: { viewBox: "0 0 15 15", fill: "none" }, child: [{ tag: "path", attr: { fillRule: "evenodd", clipRule: "evenodd", d: "M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z", fill: "currentColor" }, child: [] }] })(e);
404
550
  }
405
- const he = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
551
+ const ve = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
406
552
  const n = Math.random() * 16 | 0;
407
553
  return (e === "x" ? n : n & 3 | 8).toString(16);
408
- }), Le = () => {
409
- const [e, n] = w([]);
410
- z(() => {
411
- ae((t, s, c, a) => {
412
- const o = he();
413
- n((l) => [...l, { id: o, type: t, message: s, config: a }]), setTimeout(() => {
414
- n((l) => l.filter((d) => d.id !== o));
415
- }, c);
554
+ }), Me = () => {
555
+ const [e, n] = v([]);
556
+ k(() => {
557
+ de((t, s, u, i) => {
558
+ const o = ve();
559
+ n((l) => [...l, { id: o, type: t, message: s, config: i }]), setTimeout(() => {
560
+ n((l) => l.filter((c) => c.id !== o));
561
+ }, u);
416
562
  });
417
563
  }, []);
418
- const r = ie();
419
- return /* @__PURE__ */ i("div", { className: "fixed top-5 right-5 z-[9999] flex flex-col gap-2", children: e.map((t) => {
420
- var l, d, f, u, p, g, b, m, y, C, S, j, P;
421
- const s = ((l = t.config) == null ? void 0 : l.icon) || ((d = r.icons) == null ? void 0 : d[t.type]) || ye(t.type), c = ((f = t.config) == null ? void 0 : f.bgColor) || ((p = (u = r.colors) == null ? void 0 : u[t.type]) == null ? void 0 : p.bg) || "bg-white dark:bg-gray-800", a = ((g = t.config) == null ? void 0 : g.textColor) || ((m = (b = r.colors) == null ? void 0 : b[t.type]) == null ? void 0 : m.text) || "text-gray-700 dark:text-gray-300", o = ((y = t.config) == null ? void 0 : y.iconContainerClass) || "w-8 h-8 mr-3 text-xl flex items-center justify-center";
564
+ const r = ue();
565
+ return /* @__PURE__ */ d("div", { className: "fixed top-5 right-5 z-[9999] flex flex-col gap-2", children: e.map((t) => {
566
+ var l, c, a, g, f, p, b, m, y, C, S, j, L;
567
+ const s = ((l = t.config) == null ? void 0 : l.icon) || ((c = r.icons) == null ? void 0 : c[t.type]) || Ce(t.type), u = ((a = t.config) == null ? void 0 : a.bgColor) || ((f = (g = r.colors) == null ? void 0 : g[t.type]) == null ? void 0 : f.bg) || "bg-white dark:bg-gray-800", i = ((p = t.config) == null ? void 0 : p.textColor) || ((m = (b = r.colors) == null ? void 0 : b[t.type]) == null ? void 0 : m.text) || "text-gray-700 dark:text-gray-300", o = ((y = t.config) == null ? void 0 : y.iconContainerClass) || "w-8 h-8 mr-3 text-xl flex items-center justify-center";
422
568
  return /* @__PURE__ */ x(
423
569
  "div",
424
570
  {
425
- className: `flex items-center w-full max-w-xs p-4 text-sm rounded-lg shadow ${c} ${a}`,
571
+ className: `flex items-center w-full max-w-xs p-4 text-sm rounded-lg shadow ${u} ${i}`,
426
572
  children: [
427
- /* @__PURE__ */ i("div", { className: o, children: s }),
573
+ /* @__PURE__ */ d("div", { className: o, children: s }),
428
574
  /* @__PURE__ */ x("div", { className: "flex-1 me-3", children: [
429
- ((C = t.config) == null ? void 0 : C.title) && /* @__PURE__ */ i("div", { className: "font-semibold text-black", children: t.config.title }),
430
- ((S = t.config) == null ? void 0 : S.description) && /* @__PURE__ */ i("div", { className: "text-sm text-gray-500", children: t.config.description }),
431
- !((j = t.config) != null && j.title) && !((P = t.config) != null && P.description) && /* @__PURE__ */ i("div", { className: "text-sm", children: t.message })
575
+ ((C = t.config) == null ? void 0 : C.title) && /* @__PURE__ */ d("div", { className: "font-semibold text-black", children: t.config.title }),
576
+ ((S = t.config) == null ? void 0 : S.description) && /* @__PURE__ */ d("div", { className: "text-sm text-gray-500", children: t.config.description }),
577
+ !((j = t.config) != null && j.title) && !((L = t.config) != null && L.description) && /* @__PURE__ */ d("div", { className: "text-sm", children: t.message })
432
578
  ] }),
433
- /* @__PURE__ */ i(
579
+ /* @__PURE__ */ d(
434
580
  "button",
435
581
  {
436
- onClick: () => n((L) => L.filter((E) => E.id !== t.id)),
582
+ onClick: () => n((P) => P.filter((E) => E.id !== t.id)),
437
583
  className: "ml-auto text-gray-400 hover:text-gray-700 dark:text-gray-500 dark:hover:text-white",
438
584
  "aria-label": "Close",
439
- children: /* @__PURE__ */ i(me, { size: 18 })
585
+ children: /* @__PURE__ */ d(we, { size: 18 })
440
586
  }
441
587
  )
442
588
  ]
@@ -445,7 +591,7 @@ const he = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, functio
445
591
  );
446
592
  }) });
447
593
  };
448
- function ye(e) {
594
+ function Ce(e) {
449
595
  switch (e) {
450
596
  case "success":
451
597
  return "✅";
@@ -458,14 +604,16 @@ function ye(e) {
458
604
  }
459
605
  }
460
606
  export {
461
- Ce as Button,
462
- Oe as Dropdown,
607
+ Le as Badge,
608
+ ke as Button,
609
+ Se as Dropdown,
463
610
  re as Input,
464
- Ne as Modal,
611
+ Pe as Modal,
465
612
  F as ModalContext,
466
- Se as ModalProvider,
467
- Le as Toast,
468
- je as setToastDefaults,
469
- Pe as showToast,
470
- se as useModal
613
+ Ee as ModalProvider,
614
+ Me as Toast,
615
+ je as Tooltip,
616
+ $e as setToastDefaults,
617
+ ze as showToast,
618
+ ce as useModal
471
619
  };
@@ -1,5 +1,5 @@
1
- (function(u,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],o):(u=typeof globalThis<"u"?globalThis:u||self,o(u.TailwindUiKit={},u.jsxRuntime,u.React))})(this,function(u,o,s){"use strict";"use client";const I=s.forwardRef((e,n)=>{const{label:r,id:t,inputSize:i="md",shape:d="rounded",validate:c,onValidatedChange:l,className:a="",icon:f,iconPosition:b="left",floatingLabelStyle:g,onChange:x,isValid:p,isInvalid:h,feedback:m,feedbackType:y="invalid",...v}=e,[S,j]=s.useState("default"),P=C=>{const D=C.target.value,L=(c==null?void 0:c(D))??"default";j(L),l==null||l(C,L),x==null||x(C)},k={xs:"text-xs px-2 py-1",sm:"text-sm px-3 py-1.5",md:"text-sm px-3 py-3",lg:"text-lg px-5 py-3"},E={flat:"rounded-none",rounded:"rounded-md",pill:"rounded-full"},ue={filled:"rounded-t-lg px-2.5 pb-2.5 pt-5 bg-gray-50 border-b-2",outlined:"rounded-lg px-2.5 pb-2.5 pt-4 bg-transparent border",standard:"px-0 py-2.5 bg-transparent border-0 border-b-2"},fe={filled:"absolute duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:scale-100 peer-focus:scale-75 peer-focus:-translate-y-4 peer-focus:text-blue-600",outlined:"absolute duration-300 transform -translate-y-4 scale-75 top-2 z-10 origin-[0] bg-white px-2 peer-placeholder-shown:scale-100 peer-placeholder-shown:top-1/2 peer-placeholder-shown:-translate-y-1/2 peer-focus:top-2 peer-focus:scale-75 peer-focus:-translate-y-4 peer-focus:text-blue-600",standard:"absolute duration-300 transform -translate-y-6 scale-75 top-3 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6 peer-focus:text-blue-600"},ge=(C,D,L)=>{if(L)return"border-red-500 bg-red-50 text-red-900 placeholder-red-700 focus:ring-red-500 focus:border-red-500";if(D)return"border-green-500 bg-green-50 text-green-900 placeholder-green-700 focus:ring-green-500 focus:border-green-500";switch(C){case"error":return"border-red-500 bg-red-50 focus:ring-red-500";case"warning":return"border-yellow-500 bg-yellow-50 focus:ring-yellow-500";case"success":return"border-green-500 bg-green-50 focus:ring-green-500";default:return"border-gray-300 focus:ring-blue-500"}},be=k[i]||k.md,pe=E[d]||E.flat,xe=ge(S,p,h),he=b==="start"||b==="left"?"left-0 ps-3.5":"right-0 pe-3.5",me=f&&(b==="start"||b==="left")?"ps-10":f?"pe-10":"",$=t??`input-${(r==null?void 0:r.toLowerCase().replace(/\s+/g,"-"))||Math.random().toString(36).slice(2)}`,w=!!g;return o.jsxs("div",{className:`w-full relative ${w?"z-0":""}`,children:[!w&&r&&o.jsx("label",{htmlFor:$,className:`block mb-1 font-light text-sm ${p?"text-green-700 dark:text-green-500":h?"text-red-700 dark:text-red-500":"text-gray-700"}`,children:r}),o.jsxs("div",{className:"relative w-full",children:[f&&o.jsx("div",{className:`absolute inset-y-0 flex items-center ${he}`,children:o.jsx("span",{className:"text-gray-500",children:f})}),o.jsx("input",{...v,id:$,ref:n,placeholder:w?" ":v.placeholder,onChange:P,className:`border peer w-full block font-light appearance-none focus:outline-none focus:ring-0 transition
2
- ${w&&g?ue[g]:be}
3
- ${me} ${pe} ${xe} ${a}`}),w&&r&&g&&o.jsx("label",{htmlFor:$,className:`ms-1 ${fe[g]} ${a}`,children:r})]}),m&&o.jsx("p",{className:`mt-1 text-xs ${y==="invalid"?"text-red-600 dark:text-red-500":"text-green-600 dark:text-green-500"}`,children:m})]})});I.displayName="Input";const G={primary:"bg-blue-600 text-white hover:bg-blue-700",secondary:"bg-gray-600 text-white hover:bg-gray-700",success:"bg-green-600 text-white hover:bg-green-700",danger:"bg-red-600 text-white hover:bg-red-700",warning:"bg-yellow-500 text-white hover:bg-yellow-600",info:"bg-cyan-600 text-white hover:bg-cyan-700",dark:"bg-gray-900 text-white hover:bg-black",light:"bg-gray-100 text-black hover:bg-gray-200",link:"bg-transparent text-blue-600 hover:underline [&&]:p-0 [&&]:shadow-none","outline-primary":"border border-blue-600 text-blue-600 hover:bg-blue-50","outline-secondary":"border border-gray-600 text-gray-600 hover:bg-gray-50","outline-success":"border border-green-600 text-green-600 hover:bg-green-50","outline-danger":"border border-red-600 text-red-600 hover:bg-red-50","outline-warning":"border border-yellow-500 text-yellow-600 hover:bg-yellow-50","outline-info":"border border-cyan-600 text-cyan-600 hover:bg-cyan-50","outline-dark":"border border-gray-900 text-gray-900 hover:bg-gray-100","outline-light":"border border-gray-100 text-gray-500 hover:bg-gray-200"},H={xs:"px-3 py-2 text-xs",sm:"px-3 py-2 text-sm",md:"px-5 py-2.5 text-sm",lg:"px-5 py-3 text-base",xl:"px-6 py-3.5 text-base"},W={flat:"shadow-none",rounded:"rounded-md",pill:"rounded-full",circle:"rounded-full w-10 h-10 p-0 flex items-center justify-center"},q=({children:e,variant:n="primary",size:r="md",type:t="button",shape:i="rounded",className:d="",isLoading:c=!1,disabled:l=!1,...a})=>{const f=l||c,b=["inline-flex items-center justify-center font-normal transition duration-150 cursor-pointer",G[n],H[r],W[i],i==="flat"?"shadow-none":"shadow-sm",f?"opacity-50 cursor-not-allowed pointer-events-none":"",d].filter(Boolean).join(" ");return o.jsxs("button",{type:t,className:b,disabled:f,...a,children:[c&&o.jsxs("svg",{"aria-hidden":"true",role:"status",className:"inline w-4 h-4 me-3 text-gray-200 animate-spin dark:text-gray-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[o.jsx("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),o.jsx("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"#1C64F2"})]}),e]})},K=({label:e,children:n,position:r="right"})=>{const[t,i]=s.useState(!1),[d,c]=s.useState(!1),l=s.useRef(null),a=s.useRef(null),f=s.useMemo(()=>{switch(r){case"left":return"left-0";case"center":return"left-1/2 transform -translate-x-1/2";case"right":default:return"right-0"}},[r]),b=s.useCallback(p=>{const h=p.target;l.current&&!l.current.contains(h)&&a.current&&!a.current.contains(h)&&i(!1)},[]),g=s.useCallback(()=>{if(!a.current||!l.current)return;const p=a.current.getBoundingClientRect(),h=l.current.getBoundingClientRect(),m=window.innerHeight-p.bottom,y=p.top;c(m<h.height&&y>h.height)},[]);s.useEffect(()=>{if(t)return g(),window.addEventListener("resize",g),window.addEventListener("scroll",g,!0),()=>{window.removeEventListener("resize",g),window.removeEventListener("scroll",g,!0)}},[t,g]),s.useEffect(()=>(document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)),[b]);const x=s.useCallback(()=>i(p=>!p),[]);return o.jsxs("div",{className:"relative flex items-center",children:[o.jsx("button",{ref:a,onClick:x,children:e}),t&&o.jsx("div",{ref:l,className:`absolute z-10 bg-white rounded-sm shadow-md overflow-hidden
4
- ${d?"bottom-full mb-2":"top-full mt-2"}
5
- ${f}`,children:n})]})},M=s.createContext(null),_=()=>{const e=s.useContext(M);return e||(console.warn("⚠️ useModal() called outside of ModalProvider. Falling back to standalone modal usage."),null)};function U({id:e,title:n,children:r,standalone:t=!1,showFloatingClose:i=!1,containerClasses:d="",onClose:c}){const l=_(),a=l&&typeof l.openModal=="function",f=!t&&a,[b,g]=s.useState(!1),x=f?l.isOpen(e):b,p=()=>{f?l.closeModal(e):g(!1),c&&c()};return s.useEffect(()=>(x?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[x]),x?o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-[2px]",children:o.jsxs("div",{className:`bg-white rounded-lg shadow-lg w-full max-w-md p-3 transform transition-all duration-300 scale-100 ${d}`,children:[o.jsxs("div",{className:"flex justify-between items-center relative",children:[n&&o.jsx("h2",{className:"text-lg font-semibold",children:n}),i&&o.jsx("button",{onClick:()=>p(),className:"text-gray-500 hover:text-gray-700 absolute top-2 right-3","aria-label":"Close modal",children:"✕"})]}),o.jsx("div",{className:"text-sm text-gray-700",children:r})]})}):null}function J({children:e}){const[n,r]=s.useState({}),t=s.useCallback(c=>{r(l=>({...l,[c]:!0}))},[]),i=s.useCallback(c=>{r(l=>({...l,[c]:!1}))},[]),d=s.useCallback(c=>!!n[c],[n]);return o.jsx(M.Provider,{value:{openModal:t,closeModal:i,isOpen:d},children:e})}let T=null,z={};function Q(e){T=e}function V(e){z={...z,...e}}function X(){return z}function Y(e,n,r=3e3,t){T?T(e,n,r,t):console.warn("Toast system is not mounted")}var A={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},B=s.createContext&&s.createContext(A),R=["attr","size","title"];function ee(e,n){if(e==null)return{};var r=te(e,n),t,i;if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(e);for(i=0;i<d.length;i++)t=d[i],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}function te(e,n){if(e==null)return{};var r={};for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){if(n.indexOf(t)>=0)continue;r[t]=e[t]}return r}function O(){return O=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},O.apply(this,arguments)}function F(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,t)}return r}function N(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?F(Object(r),!0).forEach(function(t){re(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):F(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function re(e,n,r){return n=ne(n),n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function ne(e){var n=oe(e,"string");return typeof n=="symbol"?n:n+""}function oe(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var t=r.call(e,n);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function Z(e){return e&&e.map((n,r)=>s.createElement(n.tag,N({key:r},n.attr),Z(n.child)))}function se(e){return n=>s.createElement(le,O({attr:N({},e.attr)},n),Z(e.child))}function le(e){var n=r=>{var{attr:t,size:i,title:d}=e,c=ee(e,R),l=i||r.size||"1em",a;return r.className&&(a=r.className),e.className&&(a=(a?a+" ":"")+e.className),s.createElement("svg",O({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},r.attr,t,c,{className:a,style:N(N({color:e.color||r.color},r.style),e.style),height:l,width:l,xmlns:"http://www.w3.org/2000/svg"}),d&&s.createElement("title",null,d),e.children)};return B!==void 0?s.createElement(B.Consumer,null,r=>n(r)):n(A)}function ae(e){return se({attr:{viewBox:"0 0 15 15",fill:"none"},child:[{tag:"path",attr:{fillRule:"evenodd",clipRule:"evenodd",d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:"currentColor"},child:[]}]})(e)}const ie=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const n=Math.random()*16|0;return(e==="x"?n:n&3|8).toString(16)}),ce=()=>{const[e,n]=s.useState([]);s.useEffect(()=>{Q((t,i,d,c)=>{const l=ie();n(a=>[...a,{id:l,type:t,message:i,config:c}]),setTimeout(()=>{n(a=>a.filter(f=>f.id!==l))},d)})},[]);const r=X();return o.jsx("div",{className:"fixed top-5 right-5 z-[9999] flex flex-col gap-2",children:e.map(t=>{var a,f,b,g,x,p,h,m,y,v,S,j,P;const i=((a=t.config)==null?void 0:a.icon)||((f=r.icons)==null?void 0:f[t.type])||de(t.type),d=((b=t.config)==null?void 0:b.bgColor)||((x=(g=r.colors)==null?void 0:g[t.type])==null?void 0:x.bg)||"bg-white dark:bg-gray-800",c=((p=t.config)==null?void 0:p.textColor)||((m=(h=r.colors)==null?void 0:h[t.type])==null?void 0:m.text)||"text-gray-700 dark:text-gray-300",l=((y=t.config)==null?void 0:y.iconContainerClass)||"w-8 h-8 mr-3 text-xl flex items-center justify-center";return o.jsxs("div",{className:`flex items-center w-full max-w-xs p-4 text-sm rounded-lg shadow ${d} ${c}`,children:[o.jsx("div",{className:l,children:i}),o.jsxs("div",{className:"flex-1 me-3",children:[((v=t.config)==null?void 0:v.title)&&o.jsx("div",{className:"font-semibold text-black",children:t.config.title}),((S=t.config)==null?void 0:S.description)&&o.jsx("div",{className:"text-sm text-gray-500",children:t.config.description}),!((j=t.config)!=null&&j.title)&&!((P=t.config)!=null&&P.description)&&o.jsx("div",{className:"text-sm",children:t.message})]}),o.jsx("button",{onClick:()=>n(k=>k.filter(E=>E.id!==t.id)),className:"ml-auto text-gray-400 hover:text-gray-700 dark:text-gray-500 dark:hover:text-white","aria-label":"Close",children:o.jsx(ae,{size:18})})]},t.id)})})};function de(e){switch(e){case"success":return"✅";case"error":return"❌";case"warning":return"⚠️";case"info":return"ℹ️"}}u.Button=q,u.Dropdown=K,u.Input=I,u.Modal=U,u.ModalContext=M,u.ModalProvider=J,u.Toast=ce,u.setToastDefaults=V,u.showToast=Y,u.useModal=_,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
1
+ (function(b,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],o):(b=typeof globalThis<"u"?globalThis:b||self,o(b.TailwindUiKit={},b.jsxRuntime,b.React))})(this,function(b,o,l){"use strict";"use client";const B=l.forwardRef((e,n)=>{const{label:r,id:t,inputSize:a="md",shape:f="rounded",validate:d,onValidatedChange:s,className:i="",icon:u,iconPosition:c="left",floatingLabelStyle:g,onChange:p,isValid:x,isInvalid:h,feedback:y,feedbackType:m="invalid",...w}=e,[k,S]=l.useState("default"),j=C=>{const I=C.target.value,L=(d==null?void 0:d(I))??"default";S(L),s==null||s(C,L),p==null||p(C)},E={xs:"text-xs px-2 py-1",sm:"text-sm px-3 py-1.5",md:"text-sm px-3 py-3",lg:"text-lg px-5 py-3"},P={flat:"rounded-none",rounded:"rounded-md",pill:"rounded-full"},xe={filled:"rounded-t-lg px-2.5 pb-2.5 pt-5 bg-gray-50 border-b-2",outlined:"rounded-lg px-2.5 pb-2.5 pt-4 bg-transparent border",standard:"px-0 py-2.5 bg-transparent border-0 border-b-2"},he={filled:"absolute duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:scale-100 peer-focus:scale-75 peer-focus:-translate-y-4 peer-focus:text-blue-600",outlined:"absolute duration-300 transform -translate-y-4 scale-75 top-2 z-10 origin-[0] bg-white px-2 peer-placeholder-shown:scale-100 peer-placeholder-shown:top-1/2 peer-placeholder-shown:-translate-y-1/2 peer-focus:top-2 peer-focus:scale-75 peer-focus:-translate-y-4 peer-focus:text-blue-600",standard:"absolute duration-300 transform -translate-y-6 scale-75 top-3 origin-[0] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6 peer-focus:text-blue-600"},ye=(C,I,L)=>{if(L)return"border-red-500 bg-red-50 text-red-900 placeholder-red-700 focus:ring-red-500 focus:border-red-500";if(I)return"border-green-500 bg-green-50 text-green-900 placeholder-green-700 focus:ring-green-500 focus:border-green-500";switch(C){case"error":return"border-red-500 bg-red-50 focus:ring-red-500";case"warning":return"border-yellow-500 bg-yellow-50 focus:ring-yellow-500";case"success":return"border-green-500 bg-green-50 focus:ring-green-500";default:return"border-gray-300 focus:ring-blue-500"}},me=E[a]||E.md,we=P[f]||P.flat,ve=ye(k,x,h),Ce=c==="start"||c==="left"?"left-0 ps-3.5":"right-0 pe-3.5",Ne=u&&(c==="start"||c==="left")?"ps-10":u?"pe-10":"",z=t??`input-${(r==null?void 0:r.toLowerCase().replace(/\s+/g,"-"))||Math.random().toString(36).slice(2)}`,v=!!g;return o.jsxs("div",{className:`w-full relative ${v?"z-0":""}`,children:[!v&&r&&o.jsx("label",{htmlFor:z,className:`block mb-1 font-light text-sm ${x?"text-green-700 dark:text-green-500":h?"text-red-700 dark:text-red-500":"text-gray-700"}`,children:r}),o.jsxs("div",{className:"relative w-full",children:[u&&o.jsx("div",{className:`absolute inset-y-0 flex items-center ${Ce}`,children:o.jsx("span",{className:"text-gray-500",children:u})}),o.jsx("input",{...w,id:z,ref:n,placeholder:v?" ":w.placeholder,onChange:j,className:`border peer w-full block font-light appearance-none focus:outline-none focus:ring-0 transition
2
+ ${v&&g?xe[g]:me}
3
+ ${Ne} ${we} ${ve} ${i}`}),v&&r&&g&&o.jsx("label",{htmlFor:z,className:`ms-1 ${he[g]} ${i}`,children:r})]}),y&&o.jsx("p",{className:`mt-1 text-xs ${m==="invalid"?"text-red-600 dark:text-red-500":"text-green-600 dark:text-green-500"}`,children:y})]})});B.displayName="Input";const W={primary:"bg-blue-600 text-white hover:bg-blue-700",secondary:"bg-gray-600 text-white hover:bg-gray-700",success:"bg-green-600 text-white hover:bg-green-700",danger:"bg-red-600 text-white hover:bg-red-700",warning:"bg-yellow-500 text-white hover:bg-yellow-600",info:"bg-cyan-600 text-white hover:bg-cyan-700",dark:"bg-gray-900 text-white hover:bg-black",light:"bg-gray-100 text-black hover:bg-gray-200",link:"bg-transparent text-blue-600 hover:underline [&&]:p-0 [&&]:shadow-none","outline-primary":"border border-blue-600 text-blue-600 hover:bg-blue-50","outline-secondary":"border border-gray-600 text-gray-600 hover:bg-gray-50","outline-success":"border border-green-600 text-green-600 hover:bg-green-50","outline-danger":"border border-red-600 text-red-600 hover:bg-red-50","outline-warning":"border border-yellow-500 text-yellow-600 hover:bg-yellow-50","outline-info":"border border-cyan-600 text-cyan-600 hover:bg-cyan-50","outline-dark":"border border-gray-900 text-gray-900 hover:bg-gray-100","outline-light":"border border-gray-100 text-gray-500 hover:bg-gray-200"},G={xs:"px-3 py-2 text-xs",sm:"px-3 py-2 text-sm",md:"px-5 py-2.5 text-sm",lg:"px-5 py-3 text-base",xl:"px-6 py-3.5 text-base"},H={flat:"shadow-none",rounded:"rounded-md",pill:"rounded-full",circle:"rounded-full w-10 h-10 p-0 flex items-center justify-center"},q=({children:e,variant:n="primary",size:r="md",type:t="button",shape:a="rounded",className:f="",isLoading:d=!1,disabled:s=!1,...i})=>{const u=s||d,c=["inline-flex items-center justify-center font-normal transition duration-150 cursor-pointer",W[n],G[r],H[a],a==="flat"?"shadow-none":"shadow-sm",u?"opacity-50 cursor-not-allowed pointer-events-none":"",f].filter(Boolean).join(" ");return o.jsxs("button",{type:t,className:c,disabled:u,...i,children:[d&&o.jsxs("svg",{"aria-hidden":"true",role:"status",className:"inline w-4 h-4 me-3 text-gray-200 animate-spin dark:text-gray-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[o.jsx("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),o.jsx("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"#1C64F2"})]}),e]})},K=({label:e,children:n,position:r="right"})=>{const[t,a]=l.useState(!1),[f,d]=l.useState(!1),s=l.useRef(null),i=l.useRef(null),u=l.useMemo(()=>{switch(r){case"left":return"left-0";case"center":return"left-1/2 transform -translate-x-1/2";case"right":default:return"right-0"}},[r]),c=l.useCallback(x=>{const h=x.target;s.current&&!s.current.contains(h)&&i.current&&!i.current.contains(h)&&a(!1)},[]),g=l.useCallback(()=>{if(!i.current||!s.current)return;const x=i.current.getBoundingClientRect(),h=s.current.getBoundingClientRect(),y=window.innerHeight-x.bottom,m=x.top;d(y<h.height&&m>h.height)},[]);l.useEffect(()=>{if(t)return g(),window.addEventListener("resize",g),window.addEventListener("scroll",g,!0),()=>{window.removeEventListener("resize",g),window.removeEventListener("scroll",g,!0)}},[t,g]),l.useEffect(()=>(document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)),[c]);const p=l.useCallback(()=>a(x=>!x),[]);return o.jsxs("div",{className:"relative flex items-center",children:[o.jsx("button",{ref:i,onClick:p,children:e}),t&&o.jsx("div",{ref:s,className:`absolute z-10 bg-white rounded-sm shadow-md overflow-hidden
4
+ ${f?"bottom-full mb-2":"top-full mt-2"}
5
+ ${u}`,children:n})]})},U=({children:e,content:n,position:r="top",className:t="",tooltipClass:a="",tooltipStyle:f={}})=>{const d=l.useRef(null),s=l.useRef(null);l.useEffect(()=>{const u=d.current,c=s.current;if(!u||!c)return;const g=()=>{c.style.opacity="1",c.style.visibility="visible"},p=()=>{c.style.opacity="0",c.style.visibility="hidden"};return u.addEventListener("mouseenter",g),u.addEventListener("mouseleave",p),()=>{u.removeEventListener("mouseenter",g),u.removeEventListener("mouseleave",p)}},[]);const i=u=>{const c={position:"absolute",opacity:0,visibility:"hidden",transition:"opacity 0.2s ease",maxWidth:"240px",whiteSpace:"normal",wordBreak:"break-word",padding:"8px 12px",fontSize:"0.875rem",backgroundColor:"black",color:"white",borderRadius:"4px",boxShadow:"0px 4px 12px rgba(0, 0, 0, 0.15)",zIndex:9999,width:"max-content"};switch(u){case"top":return{...c,bottom:"100%",left:"50%",transform:"translateX(-50%)",marginBottom:"8px"};case"bottom":return{...c,top:"100%",left:"50%",transform:"translateX(-50%)",marginTop:"8px"};case"left":return{...c,right:"100%",top:"50%",transform:"translateY(-50%)",marginRight:"8px"};case"right":return{...c,left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:"8px"};default:return c}};return o.jsxs("div",{ref:d,className:`relative inline-block ${t}`,children:[e,o.jsx("div",{ref:s,role:"tooltip",className:a,style:{...i(r),...f},children:n})]})},X={primary:"bg-blue-500 text-white",secondary:"bg-gray-500 text-white",success:"bg-green-500 text-white",danger:"bg-red-500 text-white",warning:"bg-yellow-400 text-black",info:"bg-cyan-500 text-white",dark:"bg-black text-white",light:"bg-gray-100 text-gray-800",link:"bg-transparent text-blue-500 underline","outline-primary":"border border-blue-500 text-blue-500 bg-transparent","outline-secondary":"border border-gray-500 text-gray-500 bg-transparent","outline-success":"border border-green-500 text-green-500 bg-transparent","outline-danger":"border border-red-500 text-red-500 bg-transparent","outline-warning":"border border-yellow-400 text-yellow-500 bg-transparent","outline-info":"border border-cyan-500 text-cyan-500 bg-transparent","outline-dark":"border border-black text-black bg-transparent","outline-light":"border border-gray-100 text-gray-800 bg-transparent"},Y={xs:"text-xs px-2 py-0.5",sm:"text-sm px-2.5 py-0.5",md:"text-base px-3 py-1",lg:"text-lg px-3.5 py-1.5",xl:"text-xl px-4 py-2"},J={flat:"rounded-none",rounded:"rounded-sm",pill:"rounded-full",circle:"rounded-full p-2 w-8 h-8 justify-center"},Q=({label:e,variant:n="primary",size:r="sm",shape:t="rounded",icon:a,dismissible:f,onDismiss:d,className:s="",...i})=>{const u=!e&&!!a,c=`inline-flex items-center font-medium ${X[n]||""} ${Y[r]||""} ${J[t]||""} ${u?"justify-center p-2 w-8 h-8":""} `+s;return o.jsxs("span",{className:c.trim(),...i,children:[a&&o.jsx("span",{className:e?"mr-1":"",children:a}),e,f&&o.jsx("button",{type:"button",onClick:d,className:"ml-2 text-xs font-bold leading-none focus:outline-none",children:"×"})]})},T=l.createContext(null),D=()=>{const e=l.useContext(T);return e||(console.warn("⚠️ useModal() called outside of ModalProvider. Falling back to standalone modal usage."),null)};function V({id:e,title:n,children:r,standalone:t=!1,showFloatingClose:a=!1,containerClasses:f="",onClose:d}){const s=D(),i=s&&typeof s.openModal=="function",u=!t&&i,[c,g]=l.useState(!1),p=u?s.isOpen(e):c,x=()=>{u?s.closeModal(e):g(!1),d&&d()};return l.useEffect(()=>(p?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[p]),p?o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-[2px]",children:o.jsxs("div",{className:`bg-white rounded-lg shadow-lg w-full max-w-md p-3 transform transition-all duration-300 scale-100 ${f}`,children:[o.jsxs("div",{className:"flex justify-between items-center relative",children:[n&&o.jsx("h2",{className:"text-lg font-semibold",children:n}),a&&o.jsx("button",{onClick:()=>x(),className:"text-gray-500 hover:text-gray-700 absolute top-2 right-3","aria-label":"Close modal",children:"✕"})]}),o.jsx("div",{className:"text-sm text-gray-700",children:r})]})}):null}function R({children:e}){const[n,r]=l.useState({}),t=l.useCallback(d=>{r(s=>({...s,[d]:!0}))},[]),a=l.useCallback(d=>{r(s=>({...s,[d]:!1}))},[]),f=l.useCallback(d=>!!n[d],[n]);return o.jsx(T.Provider,{value:{openModal:t,closeModal:a,isOpen:f},children:e})}let $=null,M={};function ee(e){$=e}function te(e){M={...M,...e}}function re(){return M}function ne(e,n,r=3e3,t){$?$(e,n,r,t):console.warn("Toast system is not mounted")}var _={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},A=l.createContext&&l.createContext(_),oe=["attr","size","title"];function se(e,n){if(e==null)return{};var r=le(e,n),t,a;if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(e);for(a=0;a<f.length;a++)t=f[a],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}function le(e,n){if(e==null)return{};var r={};for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){if(n.indexOf(t)>=0)continue;r[t]=e[t]}return r}function N(){return N=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},N.apply(this,arguments)}function F(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,t)}return r}function O(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?F(Object(r),!0).forEach(function(t){ae(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):F(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ae(e,n,r){return n=ie(n),n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function ie(e){var n=ce(e,"string");return typeof n=="symbol"?n:n+""}function ce(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var t=r.call(e,n);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function Z(e){return e&&e.map((n,r)=>l.createElement(n.tag,O({key:r},n.attr),Z(n.child)))}function de(e){return n=>l.createElement(ue,N({attr:O({},e.attr)},n),Z(e.child))}function ue(e){var n=r=>{var{attr:t,size:a,title:f}=e,d=se(e,oe),s=a||r.size||"1em",i;return r.className&&(i=r.className),e.className&&(i=(i?i+" ":"")+e.className),l.createElement("svg",N({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},r.attr,t,d,{className:i,style:O(O({color:e.color||r.color},r.style),e.style),height:s,width:s,xmlns:"http://www.w3.org/2000/svg"}),f&&l.createElement("title",null,f),e.children)};return A!==void 0?l.createElement(A.Consumer,null,r=>n(r)):n(_)}function fe(e){return de({attr:{viewBox:"0 0 15 15",fill:"none"},child:[{tag:"path",attr:{fillRule:"evenodd",clipRule:"evenodd",d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:"currentColor"},child:[]}]})(e)}const ge=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const n=Math.random()*16|0;return(e==="x"?n:n&3|8).toString(16)}),be=()=>{const[e,n]=l.useState([]);l.useEffect(()=>{ee((t,a,f,d)=>{const s=ge();n(i=>[...i,{id:s,type:t,message:a,config:d}]),setTimeout(()=>{n(i=>i.filter(u=>u.id!==s))},f)})},[]);const r=re();return o.jsx("div",{className:"fixed top-5 right-5 z-[9999] flex flex-col gap-2",children:e.map(t=>{var i,u,c,g,p,x,h,y,m,w,k,S,j;const a=((i=t.config)==null?void 0:i.icon)||((u=r.icons)==null?void 0:u[t.type])||pe(t.type),f=((c=t.config)==null?void 0:c.bgColor)||((p=(g=r.colors)==null?void 0:g[t.type])==null?void 0:p.bg)||"bg-white dark:bg-gray-800",d=((x=t.config)==null?void 0:x.textColor)||((y=(h=r.colors)==null?void 0:h[t.type])==null?void 0:y.text)||"text-gray-700 dark:text-gray-300",s=((m=t.config)==null?void 0:m.iconContainerClass)||"w-8 h-8 mr-3 text-xl flex items-center justify-center";return o.jsxs("div",{className:`flex items-center w-full max-w-xs p-4 text-sm rounded-lg shadow ${f} ${d}`,children:[o.jsx("div",{className:s,children:a}),o.jsxs("div",{className:"flex-1 me-3",children:[((w=t.config)==null?void 0:w.title)&&o.jsx("div",{className:"font-semibold text-black",children:t.config.title}),((k=t.config)==null?void 0:k.description)&&o.jsx("div",{className:"text-sm text-gray-500",children:t.config.description}),!((S=t.config)!=null&&S.title)&&!((j=t.config)!=null&&j.description)&&o.jsx("div",{className:"text-sm",children:t.message})]}),o.jsx("button",{onClick:()=>n(E=>E.filter(P=>P.id!==t.id)),className:"ml-auto text-gray-400 hover:text-gray-700 dark:text-gray-500 dark:hover:text-white","aria-label":"Close",children:o.jsx(fe,{size:18})})]},t.id)})})};function pe(e){switch(e){case"success":return"✅";case"error":return"❌";case"warning":return"⚠️";case"info":return"ℹ️"}}b.Badge=Q,b.Button=q,b.Dropdown=K,b.Input=B,b.Modal=V,b.ModalContext=T,b.ModalProvider=R,b.Toast=be,b.Tooltip=U,b.setToastDefaults=te,b.showToast=ne,b.useModal=D,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
@@ -0,0 +1,12 @@
1
+ export type Variant = "primary" | "secondary" | "success" | "danger" | "warning" | "info" | "dark" | "light" | "link" | "outline-primary" | "outline-secondary" | "outline-success" | "outline-danger" | "outline-warning" | "outline-info" | "outline-dark" | "outline-light";
2
+ export type Size = "xs" | "sm" | "md" | "lg" | "xl";
3
+ export type Shape = "flat" | "rounded" | "pill" | "circle";
4
+ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
5
+ label?: string;
6
+ variant?: Variant;
7
+ size?: Size;
8
+ shape?: Shape;
9
+ icon?: React.ReactNode;
10
+ dismissible?: boolean;
11
+ onDismiss?: () => void;
12
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tailwind-ux-kit",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "main": "lib/tailwind-ux-kit.es.js",
5
5
  "module": "lib/tailwind-ux-kit.umd.js",
6
6
  "types": "lib/tailwind-ux-kit.es.d.ts",