mango-ui-kit 1.0.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 (125) hide show
  1. package/README.md +63 -0
  2. package/dist/components/accordion/accordion.d.ts +3 -0
  3. package/dist/components/accordion/accordion.stories.d.ts +8 -0
  4. package/dist/components/accordion/accordion.types.d.ts +13 -0
  5. package/dist/components/accordion/index.d.ts +2 -0
  6. package/dist/components/app-bar/app-bar.d.ts +3 -0
  7. package/dist/components/app-bar/app-bar.stories.d.ts +9 -0
  8. package/dist/components/app-bar/app-bar.types.d.ts +20 -0
  9. package/dist/components/app-bar/index.d.ts +2 -0
  10. package/dist/components/avatar/avatar.d.ts +3 -0
  11. package/dist/components/avatar/avatar.stories.d.ts +8 -0
  12. package/dist/components/avatar/avatar.styles.d.ts +3 -0
  13. package/dist/components/avatar/avatar.types.d.ts +8 -0
  14. package/dist/components/avatar/index.d.ts +3 -0
  15. package/dist/components/avatar-group/avatar-group.d.ts +3 -0
  16. package/dist/components/avatar-group/avatar-group.stories.d.ts +8 -0
  17. package/dist/components/avatar-group/avatar-group.types.d.ts +10 -0
  18. package/dist/components/avatar-group/index.d.ts +2 -0
  19. package/dist/components/badge/badge.d.ts +4 -0
  20. package/dist/components/badge/badge.stories.d.ts +9 -0
  21. package/dist/components/badge/badge.types.d.ts +7 -0
  22. package/dist/components/badge/index.d.ts +2 -0
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  24. package/dist/components/breadcrumbs/breadcrumbs.stories.d.ts +7 -0
  25. package/dist/components/breadcrumbs/breadcrumbs.types.d.ts +11 -0
  26. package/dist/components/breadcrumbs/index.d.ts +2 -0
  27. package/dist/components/button/button.d.ts +3 -0
  28. package/dist/components/button/button.stories.d.ts +9 -0
  29. package/dist/components/button/button.styles.d.ts +4 -0
  30. package/dist/components/button/button.test.d.ts +0 -0
  31. package/dist/components/button/button.types.d.ts +11 -0
  32. package/dist/components/button/index.d.ts +3 -0
  33. package/dist/components/calendar-date-picker/calendar-date-picker.d.ts +3 -0
  34. package/dist/components/calendar-date-picker/calendar-date-picker.stories.d.ts +7 -0
  35. package/dist/components/calendar-date-picker/calendar-date-picker.types.d.ts +6 -0
  36. package/dist/components/calendar-date-picker/index.d.ts +2 -0
  37. package/dist/components/card/card.d.ts +8 -0
  38. package/dist/components/card/index.d.ts +1 -0
  39. package/dist/components/confirmation-modal/confirmation-modal.d.ts +3 -0
  40. package/dist/components/confirmation-modal/confirmation-modal.stories.d.ts +7 -0
  41. package/dist/components/confirmation-modal/confirmation-modal.types.d.ts +11 -0
  42. package/dist/components/confirmation-modal/index.d.ts +2 -0
  43. package/dist/components/date-range-picker/date-range-picker.d.ts +3 -0
  44. package/dist/components/date-range-picker/date-range-picker.stories.d.ts +7 -0
  45. package/dist/components/date-range-picker/date-range-picker.types.d.ts +10 -0
  46. package/dist/components/date-range-picker/index.d.ts +2 -0
  47. package/dist/components/drawer/drawer.d.ts +3 -0
  48. package/dist/components/drawer/drawer.stories.d.ts +7 -0
  49. package/dist/components/drawer/drawer.types.d.ts +11 -0
  50. package/dist/components/drawer/index.d.ts +2 -0
  51. package/dist/components/dropdown/dropdown.d.ts +3 -0
  52. package/dist/components/dropdown/dropdown.stories.d.ts +9 -0
  53. package/dist/components/dropdown/dropdown.types.d.ts +22 -0
  54. package/dist/components/dropdown/index.d.ts +2 -0
  55. package/dist/components/file-dropzone/file-dropzone.d.ts +3 -0
  56. package/dist/components/file-dropzone/file-dropzone.stories.d.ts +8 -0
  57. package/dist/components/file-dropzone/file-dropzone.types.d.ts +7 -0
  58. package/dist/components/file-dropzone/index.d.ts +2 -0
  59. package/dist/components/input/index.d.ts +1 -0
  60. package/dist/components/input/input.d.ts +6 -0
  61. package/dist/components/input/input.stories.d.ts +9 -0
  62. package/dist/components/modal/index.d.ts +1 -0
  63. package/dist/components/modal/modal.d.ts +9 -0
  64. package/dist/components/multi-select/index.d.ts +2 -0
  65. package/dist/components/multi-select/multi-select.d.ts +3 -0
  66. package/dist/components/multi-select/multi-select.stories.d.ts +7 -0
  67. package/dist/components/multi-select/multi-select.types.d.ts +12 -0
  68. package/dist/components/progress-bar/index.d.ts +2 -0
  69. package/dist/components/progress-bar/progress-bar.d.ts +3 -0
  70. package/dist/components/progress-bar/progress-bar.stories.d.ts +9 -0
  71. package/dist/components/progress-bar/progress-bar.types.d.ts +9 -0
  72. package/dist/components/rating/index.d.ts +2 -0
  73. package/dist/components/rating/rating.d.ts +3 -0
  74. package/dist/components/rating/rating.stories.d.ts +9 -0
  75. package/dist/components/rating/rating.types.d.ts +10 -0
  76. package/dist/components/sidebar/index.d.ts +2 -0
  77. package/dist/components/sidebar/sidebar.d.ts +3 -0
  78. package/dist/components/sidebar/sidebar.stories.d.ts +7 -0
  79. package/dist/components/sidebar/sidebar.types.d.ts +21 -0
  80. package/dist/components/skeleton/index.d.ts +2 -0
  81. package/dist/components/skeleton/skeleton.d.ts +3 -0
  82. package/dist/components/skeleton/skeleton.stories.d.ts +11 -0
  83. package/dist/components/skeleton/skeleton.types.d.ts +11 -0
  84. package/dist/components/spinner/index.d.ts +2 -0
  85. package/dist/components/spinner/spinner.d.ts +3 -0
  86. package/dist/components/spinner/spinner.stories.d.ts +9 -0
  87. package/dist/components/spinner/spinner.types.d.ts +6 -0
  88. package/dist/components/stat-card/index.d.ts +2 -0
  89. package/dist/components/stat-card/stat-card.d.ts +3 -0
  90. package/dist/components/stat-card/stat-card.stories.d.ts +9 -0
  91. package/dist/components/stat-card/stat-card.types.d.ts +10 -0
  92. package/dist/components/table/index.d.ts +2 -0
  93. package/dist/components/table/table.d.ts +5 -0
  94. package/dist/components/table/table.stories.d.ts +8 -0
  95. package/dist/components/table/table.types.d.ts +14 -0
  96. package/dist/components/tabs/index.d.ts +2 -0
  97. package/dist/components/tabs/tabs.d.ts +3 -0
  98. package/dist/components/tabs/tabs.stories.d.ts +7 -0
  99. package/dist/components/tabs/tabs.types.d.ts +13 -0
  100. package/dist/components/theme-provider/index.d.ts +1 -0
  101. package/dist/components/theme-provider/theme-provider.d.ts +14 -0
  102. package/dist/components/time-picker/index.d.ts +2 -0
  103. package/dist/components/time-picker/time-picker.d.ts +3 -0
  104. package/dist/components/time-picker/time-picker.stories.d.ts +7 -0
  105. package/dist/components/time-picker/time-picker.types.d.ts +6 -0
  106. package/dist/components/toggle/index.d.ts +1 -0
  107. package/dist/components/toggle/toggle.d.ts +3 -0
  108. package/dist/components/toggle/toggle.stories.d.ts +10 -0
  109. package/dist/components/toggle/toggle.types.d.ts +8 -0
  110. package/dist/hooks/index.d.ts +2 -0
  111. package/dist/hooks/useDebounce.d.ts +1 -0
  112. package/dist/hooks/useToggle.d.ts +1 -0
  113. package/dist/index.d.ts +31 -0
  114. package/dist/mango-ui-kit.css +1 -0
  115. package/dist/mango-ui-kit.js +4793 -0
  116. package/dist/mango-ui-kit.umd.cjs +6 -0
  117. package/dist/theme/colors.d.ts +27 -0
  118. package/dist/theme/index.d.ts +3 -0
  119. package/dist/theme/spacing.d.ts +8 -0
  120. package/dist/theme/typography.d.ts +26 -0
  121. package/dist/utils/cn.d.ts +2 -0
  122. package/dist/utils/format.d.ts +12 -0
  123. package/dist/utils/index.d.ts +2 -0
  124. package/dist/vite.svg +1 -0
  125. package/package.json +83 -0
@@ -0,0 +1,4793 @@
1
+ import ue, { forwardRef as Ge, createElement as Ne, useState as L, useRef as re, useEffect as H, Fragment as ut, useContext as ht, createContext as pt, useCallback as ft } from "react";
2
+ import { createPortal as bt } from "react-dom";
3
+ var xe = { exports: {} }, ce = {};
4
+ var Me;
5
+ function gt() {
6
+ if (Me) return ce;
7
+ Me = 1;
8
+ var e = /* @__PURE__ */ Symbol.for("react.transitional.element"), s = /* @__PURE__ */ Symbol.for("react.fragment");
9
+ function r(n, a, o) {
10
+ var i = null;
11
+ if (o !== void 0 && (i = "" + o), a.key !== void 0 && (i = "" + a.key), "key" in a) {
12
+ o = {};
13
+ for (var c in a)
14
+ c !== "key" && (o[c] = a[c]);
15
+ } else o = a;
16
+ return a = o.ref, {
17
+ $$typeof: e,
18
+ type: n,
19
+ key: i,
20
+ ref: a !== void 0 ? a : null,
21
+ props: o
22
+ };
23
+ }
24
+ return ce.Fragment = s, ce.jsx = r, ce.jsxs = r, ce;
25
+ }
26
+ var de = {};
27
+ var Ae;
28
+ function xt() {
29
+ return Ae || (Ae = 1, process.env.NODE_ENV !== "production" && (function() {
30
+ function e(d) {
31
+ if (d == null) return null;
32
+ if (typeof d == "function")
33
+ return d.$$typeof === ae ? null : d.displayName || d.name || null;
34
+ if (typeof d == "string") return d;
35
+ switch (d) {
36
+ case h:
37
+ return "Fragment";
38
+ case z:
39
+ return "Profiler";
40
+ case m:
41
+ return "StrictMode";
42
+ case U:
43
+ return "Suspense";
44
+ case E:
45
+ return "SuspenseList";
46
+ case K:
47
+ return "Activity";
48
+ }
49
+ if (typeof d == "object")
50
+ switch (typeof d.tag == "number" && console.error(
51
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
52
+ ), d.$$typeof) {
53
+ case v:
54
+ return "Portal";
55
+ case P:
56
+ return d.displayName || "Context";
57
+ case R:
58
+ return (d._context.displayName || "Context") + ".Consumer";
59
+ case V:
60
+ var N = d.render;
61
+ return d = d.displayName, d || (d = N.displayName || N.name || "", d = d !== "" ? "ForwardRef(" + d + ")" : "ForwardRef"), d;
62
+ case p:
63
+ return N = d.displayName || null, N !== null ? N : e(d.type) || "Memo";
64
+ case A:
65
+ N = d._payload, d = d._init;
66
+ try {
67
+ return e(d(N));
68
+ } catch {
69
+ }
70
+ }
71
+ return null;
72
+ }
73
+ function s(d) {
74
+ return "" + d;
75
+ }
76
+ function r(d) {
77
+ try {
78
+ s(d);
79
+ var N = !1;
80
+ } catch {
81
+ N = !0;
82
+ }
83
+ if (N) {
84
+ N = console;
85
+ var M = N.error, D = typeof Symbol == "function" && Symbol.toStringTag && d[Symbol.toStringTag] || d.constructor.name || "Object";
86
+ return M.call(
87
+ N,
88
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
89
+ D
90
+ ), s(d);
91
+ }
92
+ }
93
+ function n(d) {
94
+ if (d === h) return "<>";
95
+ if (typeof d == "object" && d !== null && d.$$typeof === A)
96
+ return "<...>";
97
+ try {
98
+ var N = e(d);
99
+ return N ? "<" + N + ">" : "<...>";
100
+ } catch {
101
+ return "<...>";
102
+ }
103
+ }
104
+ function a() {
105
+ var d = W.A;
106
+ return d === null ? null : d.getOwner();
107
+ }
108
+ function o() {
109
+ return Error("react-stack-top-frame");
110
+ }
111
+ function i(d) {
112
+ if (ee.call(d, "key")) {
113
+ var N = Object.getOwnPropertyDescriptor(d, "key").get;
114
+ if (N && N.isReactWarning) return !1;
115
+ }
116
+ return d.key !== void 0;
117
+ }
118
+ function c(d, N) {
119
+ function M() {
120
+ G || (G = !0, console.error(
121
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
122
+ N
123
+ ));
124
+ }
125
+ M.isReactWarning = !0, Object.defineProperty(d, "key", {
126
+ get: M,
127
+ configurable: !0
128
+ });
129
+ }
130
+ function l() {
131
+ var d = e(this.type);
132
+ return B[d] || (B[d] = !0, console.error(
133
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
134
+ )), d = this.props.ref, d !== void 0 ? d : null;
135
+ }
136
+ function u(d, N, M, D, I, $) {
137
+ var T = M.ref;
138
+ return d = {
139
+ $$typeof: x,
140
+ type: d,
141
+ key: N,
142
+ props: M,
143
+ _owner: D
144
+ }, (T !== void 0 ? T : null) !== null ? Object.defineProperty(d, "ref", {
145
+ enumerable: !1,
146
+ get: l
147
+ }) : Object.defineProperty(d, "ref", { enumerable: !1, value: null }), d._store = {}, Object.defineProperty(d._store, "validated", {
148
+ configurable: !1,
149
+ enumerable: !1,
150
+ writable: !0,
151
+ value: 0
152
+ }), Object.defineProperty(d, "_debugInfo", {
153
+ configurable: !1,
154
+ enumerable: !1,
155
+ writable: !0,
156
+ value: null
157
+ }), Object.defineProperty(d, "_debugStack", {
158
+ configurable: !1,
159
+ enumerable: !1,
160
+ writable: !0,
161
+ value: I
162
+ }), Object.defineProperty(d, "_debugTask", {
163
+ configurable: !1,
164
+ enumerable: !1,
165
+ writable: !0,
166
+ value: $
167
+ }), Object.freeze && (Object.freeze(d.props), Object.freeze(d)), d;
168
+ }
169
+ function g(d, N, M, D, I, $) {
170
+ var T = N.children;
171
+ if (T !== void 0)
172
+ if (D)
173
+ if (te(T)) {
174
+ for (D = 0; D < T.length; D++)
175
+ w(T[D]);
176
+ Object.freeze && Object.freeze(T);
177
+ } else
178
+ console.error(
179
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
180
+ );
181
+ else w(T);
182
+ if (ee.call(N, "key")) {
183
+ T = e(d);
184
+ var q = Object.keys(N).filter(function(pe) {
185
+ return pe !== "key";
186
+ });
187
+ D = 0 < q.length ? "{key: someKey, " + q.join(": ..., ") + ": ...}" : "{key: someKey}", k[T + D] || (q = 0 < q.length ? "{" + q.join(": ..., ") + ": ...}" : "{}", console.error(
188
+ `A props object containing a "key" prop is being spread into JSX:
189
+ let props = %s;
190
+ <%s {...props} />
191
+ React keys must be passed directly to JSX without using spread:
192
+ let props = %s;
193
+ <%s key={someKey} {...props} />`,
194
+ D,
195
+ T,
196
+ q,
197
+ T
198
+ ), k[T + D] = !0);
199
+ }
200
+ if (T = null, M !== void 0 && (r(M), T = "" + M), i(N) && (r(N.key), T = "" + N.key), "key" in N) {
201
+ M = {};
202
+ for (var O in N)
203
+ O !== "key" && (M[O] = N[O]);
204
+ } else M = N;
205
+ return T && c(
206
+ M,
207
+ typeof d == "function" ? d.displayName || d.name || "Unknown" : d
208
+ ), u(
209
+ d,
210
+ T,
211
+ M,
212
+ a(),
213
+ I,
214
+ $
215
+ );
216
+ }
217
+ function w(d) {
218
+ j(d) ? d._store && (d._store.validated = 1) : typeof d == "object" && d !== null && d.$$typeof === A && (d._payload.status === "fulfilled" ? j(d._payload.value) && d._payload.value._store && (d._payload.value._store.validated = 1) : d._store && (d._store.validated = 1));
219
+ }
220
+ function j(d) {
221
+ return typeof d == "object" && d !== null && d.$$typeof === x;
222
+ }
223
+ var S = ue, x = /* @__PURE__ */ Symbol.for("react.transitional.element"), v = /* @__PURE__ */ Symbol.for("react.portal"), h = /* @__PURE__ */ Symbol.for("react.fragment"), m = /* @__PURE__ */ Symbol.for("react.strict_mode"), z = /* @__PURE__ */ Symbol.for("react.profiler"), R = /* @__PURE__ */ Symbol.for("react.consumer"), P = /* @__PURE__ */ Symbol.for("react.context"), V = /* @__PURE__ */ Symbol.for("react.forward_ref"), U = /* @__PURE__ */ Symbol.for("react.suspense"), E = /* @__PURE__ */ Symbol.for("react.suspense_list"), p = /* @__PURE__ */ Symbol.for("react.memo"), A = /* @__PURE__ */ Symbol.for("react.lazy"), K = /* @__PURE__ */ Symbol.for("react.activity"), ae = /* @__PURE__ */ Symbol.for("react.client.reference"), W = S.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ee = Object.prototype.hasOwnProperty, te = Array.isArray, Y = console.createTask ? console.createTask : function() {
224
+ return null;
225
+ };
226
+ S = {
227
+ react_stack_bottom_frame: function(d) {
228
+ return d();
229
+ }
230
+ };
231
+ var G, B = {}, oe = S.react_stack_bottom_frame.bind(
232
+ S,
233
+ o
234
+ )(), ie = Y(n(o)), k = {};
235
+ de.Fragment = h, de.jsx = function(d, N, M) {
236
+ var D = 1e4 > W.recentlyCreatedOwnerStacks++;
237
+ return g(
238
+ d,
239
+ N,
240
+ M,
241
+ !1,
242
+ D ? Error("react-stack-top-frame") : oe,
243
+ D ? Y(n(d)) : ie
244
+ );
245
+ }, de.jsxs = function(d, N, M) {
246
+ var D = 1e4 > W.recentlyCreatedOwnerStacks++;
247
+ return g(
248
+ d,
249
+ N,
250
+ M,
251
+ !0,
252
+ D ? Error("react-stack-top-frame") : oe,
253
+ D ? Y(n(d)) : ie
254
+ );
255
+ };
256
+ })()), de;
257
+ }
258
+ var Te;
259
+ function vt() {
260
+ return Te || (Te = 1, process.env.NODE_ENV === "production" ? xe.exports = gt() : xe.exports = xt()), xe.exports;
261
+ }
262
+ var t = vt();
263
+ function We(e) {
264
+ var s, r, n = "";
265
+ if (typeof e == "string" || typeof e == "number") n += e;
266
+ else if (typeof e == "object") if (Array.isArray(e)) {
267
+ var a = e.length;
268
+ for (s = 0; s < a; s++) e[s] && (r = We(e[s])) && (n && (n += " "), n += r);
269
+ } else for (r in e) e[r] && (n && (n += " "), n += r);
270
+ return n;
271
+ }
272
+ function Ye() {
273
+ for (var e, s, r = 0, n = "", a = arguments.length; r < a; r++) (e = arguments[r]) && (s = We(e)) && (n && (n += " "), n += s);
274
+ return n;
275
+ }
276
+ const yt = (e, s) => {
277
+ const r = new Array(e.length + s.length);
278
+ for (let n = 0; n < e.length; n++)
279
+ r[n] = e[n];
280
+ for (let n = 0; n < s.length; n++)
281
+ r[e.length + n] = s[n];
282
+ return r;
283
+ }, kt = (e, s) => ({
284
+ classGroupId: e,
285
+ validator: s
286
+ }), Be = (e = /* @__PURE__ */ new Map(), s = null, r) => ({
287
+ nextPart: e,
288
+ validators: s,
289
+ classGroupId: r
290
+ }), ke = "-", Re = [], wt = "arbitrary..", jt = (e) => {
291
+ const s = Ct(e), {
292
+ conflictingClassGroups: r,
293
+ conflictingClassGroupModifiers: n
294
+ } = e;
295
+ return {
296
+ getClassGroupId: (i) => {
297
+ if (i.startsWith("[") && i.endsWith("]"))
298
+ return Nt(i);
299
+ const c = i.split(ke), l = c[0] === "" && c.length > 1 ? 1 : 0;
300
+ return He(c, l, s);
301
+ },
302
+ getConflictingClassGroupIds: (i, c) => {
303
+ if (c) {
304
+ const l = n[i], u = r[i];
305
+ return l ? u ? yt(u, l) : l : u || Re;
306
+ }
307
+ return r[i] || Re;
308
+ }
309
+ };
310
+ }, He = (e, s, r) => {
311
+ if (e.length - s === 0)
312
+ return r.classGroupId;
313
+ const a = e[s], o = r.nextPart.get(a);
314
+ if (o) {
315
+ const u = He(e, s + 1, o);
316
+ if (u) return u;
317
+ }
318
+ const i = r.validators;
319
+ if (i === null)
320
+ return;
321
+ const c = s === 0 ? e.join(ke) : e.slice(s).join(ke), l = i.length;
322
+ for (let u = 0; u < l; u++) {
323
+ const g = i[u];
324
+ if (g.validator(c))
325
+ return g.classGroupId;
326
+ }
327
+ }, Nt = (e) => e.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
328
+ const s = e.slice(1, -1), r = s.indexOf(":"), n = s.slice(0, r);
329
+ return n ? wt + n : void 0;
330
+ })(), Ct = (e) => {
331
+ const {
332
+ theme: s,
333
+ classGroups: r
334
+ } = e;
335
+ return St(r, s);
336
+ }, St = (e, s) => {
337
+ const r = Be();
338
+ for (const n in e) {
339
+ const a = e[n];
340
+ Se(a, r, n, s);
341
+ }
342
+ return r;
343
+ }, Se = (e, s, r, n) => {
344
+ const a = e.length;
345
+ for (let o = 0; o < a; o++) {
346
+ const i = e[o];
347
+ zt(i, s, r, n);
348
+ }
349
+ }, zt = (e, s, r, n) => {
350
+ if (typeof e == "string") {
351
+ _t(e, s, r);
352
+ return;
353
+ }
354
+ if (typeof e == "function") {
355
+ Mt(e, s, r, n);
356
+ return;
357
+ }
358
+ At(e, s, r, n);
359
+ }, _t = (e, s, r) => {
360
+ const n = e === "" ? s : qe(s, e);
361
+ n.classGroupId = r;
362
+ }, Mt = (e, s, r, n) => {
363
+ if (Tt(e)) {
364
+ Se(e(n), s, r, n);
365
+ return;
366
+ }
367
+ s.validators === null && (s.validators = []), s.validators.push(kt(r, e));
368
+ }, At = (e, s, r, n) => {
369
+ const a = Object.entries(e), o = a.length;
370
+ for (let i = 0; i < o; i++) {
371
+ const [c, l] = a[i];
372
+ Se(l, qe(s, c), r, n);
373
+ }
374
+ }, qe = (e, s) => {
375
+ let r = e;
376
+ const n = s.split(ke), a = n.length;
377
+ for (let o = 0; o < a; o++) {
378
+ const i = n[o];
379
+ let c = r.nextPart.get(i);
380
+ c || (c = Be(), r.nextPart.set(i, c)), r = c;
381
+ }
382
+ return r;
383
+ }, Tt = (e) => "isThemeGetter" in e && e.isThemeGetter === !0, Rt = (e) => {
384
+ if (e < 1)
385
+ return {
386
+ get: () => {
387
+ },
388
+ set: () => {
389
+ }
390
+ };
391
+ let s = 0, r = /* @__PURE__ */ Object.create(null), n = /* @__PURE__ */ Object.create(null);
392
+ const a = (o, i) => {
393
+ r[o] = i, s++, s > e && (s = 0, n = r, r = /* @__PURE__ */ Object.create(null));
394
+ };
395
+ return {
396
+ get(o) {
397
+ let i = r[o];
398
+ if (i !== void 0)
399
+ return i;
400
+ if ((i = n[o]) !== void 0)
401
+ return a(o, i), i;
402
+ },
403
+ set(o, i) {
404
+ o in r ? r[o] = i : a(o, i);
405
+ }
406
+ };
407
+ }, Ce = "!", De = ":", Dt = [], Ee = (e, s, r, n, a) => ({
408
+ modifiers: e,
409
+ hasImportantModifier: s,
410
+ baseClassName: r,
411
+ maybePostfixModifierPosition: n,
412
+ isExternal: a
413
+ }), Et = (e) => {
414
+ const {
415
+ prefix: s,
416
+ experimentalParseClassName: r
417
+ } = e;
418
+ let n = (a) => {
419
+ const o = [];
420
+ let i = 0, c = 0, l = 0, u;
421
+ const g = a.length;
422
+ for (let v = 0; v < g; v++) {
423
+ const h = a[v];
424
+ if (i === 0 && c === 0) {
425
+ if (h === De) {
426
+ o.push(a.slice(l, v)), l = v + 1;
427
+ continue;
428
+ }
429
+ if (h === "/") {
430
+ u = v;
431
+ continue;
432
+ }
433
+ }
434
+ h === "[" ? i++ : h === "]" ? i-- : h === "(" ? c++ : h === ")" && c--;
435
+ }
436
+ const w = o.length === 0 ? a : a.slice(l);
437
+ let j = w, S = !1;
438
+ w.endsWith(Ce) ? (j = w.slice(0, -1), S = !0) : (
439
+ /**
440
+ * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
441
+ * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
442
+ */
443
+ w.startsWith(Ce) && (j = w.slice(1), S = !0)
444
+ );
445
+ const x = u && u > l ? u - l : void 0;
446
+ return Ee(o, S, j, x);
447
+ };
448
+ if (s) {
449
+ const a = s + De, o = n;
450
+ n = (i) => i.startsWith(a) ? o(i.slice(a.length)) : Ee(Dt, !1, i, void 0, !0);
451
+ }
452
+ if (r) {
453
+ const a = n;
454
+ n = (o) => r({
455
+ className: o,
456
+ parseClassName: a
457
+ });
458
+ }
459
+ return n;
460
+ }, Ot = (e) => {
461
+ const s = /* @__PURE__ */ new Map();
462
+ return e.orderSensitiveModifiers.forEach((r, n) => {
463
+ s.set(r, 1e6 + n);
464
+ }), (r) => {
465
+ const n = [];
466
+ let a = [];
467
+ for (let o = 0; o < r.length; o++) {
468
+ const i = r[o], c = i[0] === "[", l = s.has(i);
469
+ c || l ? (a.length > 0 && (a.sort(), n.push(...a), a = []), n.push(i)) : a.push(i);
470
+ }
471
+ return a.length > 0 && (a.sort(), n.push(...a)), n;
472
+ };
473
+ }, Pt = (e) => ({
474
+ cache: Rt(e.cacheSize),
475
+ parseClassName: Et(e),
476
+ sortModifiers: Ot(e),
477
+ ...jt(e)
478
+ }), It = /\s+/, Lt = (e, s) => {
479
+ const {
480
+ parseClassName: r,
481
+ getClassGroupId: n,
482
+ getConflictingClassGroupIds: a,
483
+ sortModifiers: o
484
+ } = s, i = [], c = e.trim().split(It);
485
+ let l = "";
486
+ for (let u = c.length - 1; u >= 0; u -= 1) {
487
+ const g = c[u], {
488
+ isExternal: w,
489
+ modifiers: j,
490
+ hasImportantModifier: S,
491
+ baseClassName: x,
492
+ maybePostfixModifierPosition: v
493
+ } = r(g);
494
+ if (w) {
495
+ l = g + (l.length > 0 ? " " + l : l);
496
+ continue;
497
+ }
498
+ let h = !!v, m = n(h ? x.substring(0, v) : x);
499
+ if (!m) {
500
+ if (!h) {
501
+ l = g + (l.length > 0 ? " " + l : l);
502
+ continue;
503
+ }
504
+ if (m = n(x), !m) {
505
+ l = g + (l.length > 0 ? " " + l : l);
506
+ continue;
507
+ }
508
+ h = !1;
509
+ }
510
+ const z = j.length === 0 ? "" : j.length === 1 ? j[0] : o(j).join(":"), R = S ? z + Ce : z, P = R + m;
511
+ if (i.indexOf(P) > -1)
512
+ continue;
513
+ i.push(P);
514
+ const V = a(m, h);
515
+ for (let U = 0; U < V.length; ++U) {
516
+ const E = V[U];
517
+ i.push(R + E);
518
+ }
519
+ l = g + (l.length > 0 ? " " + l : l);
520
+ }
521
+ return l;
522
+ }, $t = (...e) => {
523
+ let s = 0, r, n, a = "";
524
+ for (; s < e.length; )
525
+ (r = e[s++]) && (n = Je(r)) && (a && (a += " "), a += n);
526
+ return a;
527
+ }, Je = (e) => {
528
+ if (typeof e == "string")
529
+ return e;
530
+ let s, r = "";
531
+ for (let n = 0; n < e.length; n++)
532
+ e[n] && (s = Je(e[n])) && (r && (r += " "), r += s);
533
+ return r;
534
+ }, Ft = (e, ...s) => {
535
+ let r, n, a, o;
536
+ const i = (l) => {
537
+ const u = s.reduce((g, w) => w(g), e());
538
+ return r = Pt(u), n = r.cache.get, a = r.cache.set, o = c, c(l);
539
+ }, c = (l) => {
540
+ const u = n(l);
541
+ if (u)
542
+ return u;
543
+ const g = Lt(l, r);
544
+ return a(l, g), g;
545
+ };
546
+ return o = i, (...l) => o($t(...l));
547
+ }, Vt = [], F = (e) => {
548
+ const s = (r) => r[e] || Vt;
549
+ return s.isThemeGetter = !0, s;
550
+ }, Xe = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, Ze = /^\((?:(\w[\w-]*):)?(.+)\)$/i, Ut = /^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/, Gt = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Wt = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, Yt = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, Bt = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Ht = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, X = (e) => Ut.test(e), C = (e) => !!e && !Number.isNaN(Number(e)), Z = (e) => !!e && Number.isInteger(Number(e)), je = (e) => e.endsWith("%") && C(e.slice(0, -1)), J = (e) => Gt.test(e), Qe = () => !0, qt = (e) => (
551
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
552
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
553
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
554
+ Wt.test(e) && !Yt.test(e)
555
+ ), ze = () => !1, Jt = (e) => Bt.test(e), Xt = (e) => Ht.test(e), Zt = (e) => !f(e) && !b(e), Qt = (e) => Q(e, tt, ze), f = (e) => Xe.test(e), se = (e) => Q(e, st, qt), Oe = (e) => Q(e, os, C), Kt = (e) => Q(e, nt, Qe), es = (e) => Q(e, rt, ze), Pe = (e) => Q(e, Ke, ze), ts = (e) => Q(e, et, Xt), ve = (e) => Q(e, at, Jt), b = (e) => Ze.test(e), me = (e) => ne(e, st), ss = (e) => ne(e, rt), Ie = (e) => ne(e, Ke), rs = (e) => ne(e, tt), ns = (e) => ne(e, et), ye = (e) => ne(e, at, !0), as = (e) => ne(e, nt, !0), Q = (e, s, r) => {
556
+ const n = Xe.exec(e);
557
+ return n ? n[1] ? s(n[1]) : r(n[2]) : !1;
558
+ }, ne = (e, s, r = !1) => {
559
+ const n = Ze.exec(e);
560
+ return n ? n[1] ? s(n[1]) : r : !1;
561
+ }, Ke = (e) => e === "position" || e === "percentage", et = (e) => e === "image" || e === "url", tt = (e) => e === "length" || e === "size" || e === "bg-size", st = (e) => e === "length", os = (e) => e === "number", rt = (e) => e === "family-name", nt = (e) => e === "number" || e === "weight", at = (e) => e === "shadow", is = () => {
562
+ const e = F("color"), s = F("font"), r = F("text"), n = F("font-weight"), a = F("tracking"), o = F("leading"), i = F("breakpoint"), c = F("container"), l = F("spacing"), u = F("radius"), g = F("shadow"), w = F("inset-shadow"), j = F("text-shadow"), S = F("drop-shadow"), x = F("blur"), v = F("perspective"), h = F("aspect"), m = F("ease"), z = F("animate"), R = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], P = () => [
563
+ "center",
564
+ "top",
565
+ "bottom",
566
+ "left",
567
+ "right",
568
+ "top-left",
569
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
570
+ "left-top",
571
+ "top-right",
572
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
573
+ "right-top",
574
+ "bottom-right",
575
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
576
+ "right-bottom",
577
+ "bottom-left",
578
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
579
+ "left-bottom"
580
+ ], V = () => [...P(), b, f], U = () => ["auto", "hidden", "clip", "visible", "scroll"], E = () => ["auto", "contain", "none"], p = () => [b, f, l], A = () => [X, "full", "auto", ...p()], K = () => [Z, "none", "subgrid", b, f], ae = () => ["auto", {
581
+ span: ["full", Z, b, f]
582
+ }, Z, b, f], W = () => [Z, "auto", b, f], ee = () => ["auto", "min", "max", "fr", b, f], te = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], Y = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], G = () => ["auto", ...p()], B = () => [X, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...p()], oe = () => [X, "screen", "full", "dvw", "lvw", "svw", "min", "max", "fit", ...p()], ie = () => [X, "screen", "full", "lh", "dvh", "lvh", "svh", "min", "max", "fit", ...p()], k = () => [e, b, f], d = () => [...P(), Ie, Pe, {
583
+ position: [b, f]
584
+ }], N = () => ["no-repeat", {
585
+ repeat: ["", "x", "y", "space", "round"]
586
+ }], M = () => ["auto", "cover", "contain", rs, Qt, {
587
+ size: [b, f]
588
+ }], D = () => [je, me, se], I = () => [
589
+ // Deprecated since Tailwind CSS v4.0.0
590
+ "",
591
+ "none",
592
+ "full",
593
+ u,
594
+ b,
595
+ f
596
+ ], $ = () => ["", C, me, se], T = () => ["solid", "dashed", "dotted", "double"], q = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], O = () => [C, je, Ie, Pe], pe = () => [
597
+ // Deprecated since Tailwind CSS v4.0.0
598
+ "",
599
+ "none",
600
+ x,
601
+ b,
602
+ f
603
+ ], fe = () => ["none", C, b, f], be = () => ["none", C, b, f], we = () => [C, b, f], ge = () => [X, "full", ...p()];
604
+ return {
605
+ cacheSize: 500,
606
+ theme: {
607
+ animate: ["spin", "ping", "pulse", "bounce"],
608
+ aspect: ["video"],
609
+ blur: [J],
610
+ breakpoint: [J],
611
+ color: [Qe],
612
+ container: [J],
613
+ "drop-shadow": [J],
614
+ ease: ["in", "out", "in-out"],
615
+ font: [Zt],
616
+ "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
617
+ "inset-shadow": [J],
618
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
619
+ perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
620
+ radius: [J],
621
+ shadow: [J],
622
+ spacing: ["px", C],
623
+ text: [J],
624
+ "text-shadow": [J],
625
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
626
+ },
627
+ classGroups: {
628
+ // --------------
629
+ // --- Layout ---
630
+ // --------------
631
+ /**
632
+ * Aspect Ratio
633
+ * @see https://tailwindcss.com/docs/aspect-ratio
634
+ */
635
+ aspect: [{
636
+ aspect: ["auto", "square", X, f, b, h]
637
+ }],
638
+ /**
639
+ * Container
640
+ * @see https://tailwindcss.com/docs/container
641
+ * @deprecated since Tailwind CSS v4.0.0
642
+ */
643
+ container: ["container"],
644
+ /**
645
+ * Columns
646
+ * @see https://tailwindcss.com/docs/columns
647
+ */
648
+ columns: [{
649
+ columns: [C, f, b, c]
650
+ }],
651
+ /**
652
+ * Break After
653
+ * @see https://tailwindcss.com/docs/break-after
654
+ */
655
+ "break-after": [{
656
+ "break-after": R()
657
+ }],
658
+ /**
659
+ * Break Before
660
+ * @see https://tailwindcss.com/docs/break-before
661
+ */
662
+ "break-before": [{
663
+ "break-before": R()
664
+ }],
665
+ /**
666
+ * Break Inside
667
+ * @see https://tailwindcss.com/docs/break-inside
668
+ */
669
+ "break-inside": [{
670
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
671
+ }],
672
+ /**
673
+ * Box Decoration Break
674
+ * @see https://tailwindcss.com/docs/box-decoration-break
675
+ */
676
+ "box-decoration": [{
677
+ "box-decoration": ["slice", "clone"]
678
+ }],
679
+ /**
680
+ * Box Sizing
681
+ * @see https://tailwindcss.com/docs/box-sizing
682
+ */
683
+ box: [{
684
+ box: ["border", "content"]
685
+ }],
686
+ /**
687
+ * Display
688
+ * @see https://tailwindcss.com/docs/display
689
+ */
690
+ display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
691
+ /**
692
+ * Screen Reader Only
693
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
694
+ */
695
+ sr: ["sr-only", "not-sr-only"],
696
+ /**
697
+ * Floats
698
+ * @see https://tailwindcss.com/docs/float
699
+ */
700
+ float: [{
701
+ float: ["right", "left", "none", "start", "end"]
702
+ }],
703
+ /**
704
+ * Clear
705
+ * @see https://tailwindcss.com/docs/clear
706
+ */
707
+ clear: [{
708
+ clear: ["left", "right", "both", "none", "start", "end"]
709
+ }],
710
+ /**
711
+ * Isolation
712
+ * @see https://tailwindcss.com/docs/isolation
713
+ */
714
+ isolation: ["isolate", "isolation-auto"],
715
+ /**
716
+ * Object Fit
717
+ * @see https://tailwindcss.com/docs/object-fit
718
+ */
719
+ "object-fit": [{
720
+ object: ["contain", "cover", "fill", "none", "scale-down"]
721
+ }],
722
+ /**
723
+ * Object Position
724
+ * @see https://tailwindcss.com/docs/object-position
725
+ */
726
+ "object-position": [{
727
+ object: V()
728
+ }],
729
+ /**
730
+ * Overflow
731
+ * @see https://tailwindcss.com/docs/overflow
732
+ */
733
+ overflow: [{
734
+ overflow: U()
735
+ }],
736
+ /**
737
+ * Overflow X
738
+ * @see https://tailwindcss.com/docs/overflow
739
+ */
740
+ "overflow-x": [{
741
+ "overflow-x": U()
742
+ }],
743
+ /**
744
+ * Overflow Y
745
+ * @see https://tailwindcss.com/docs/overflow
746
+ */
747
+ "overflow-y": [{
748
+ "overflow-y": U()
749
+ }],
750
+ /**
751
+ * Overscroll Behavior
752
+ * @see https://tailwindcss.com/docs/overscroll-behavior
753
+ */
754
+ overscroll: [{
755
+ overscroll: E()
756
+ }],
757
+ /**
758
+ * Overscroll Behavior X
759
+ * @see https://tailwindcss.com/docs/overscroll-behavior
760
+ */
761
+ "overscroll-x": [{
762
+ "overscroll-x": E()
763
+ }],
764
+ /**
765
+ * Overscroll Behavior Y
766
+ * @see https://tailwindcss.com/docs/overscroll-behavior
767
+ */
768
+ "overscroll-y": [{
769
+ "overscroll-y": E()
770
+ }],
771
+ /**
772
+ * Position
773
+ * @see https://tailwindcss.com/docs/position
774
+ */
775
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
776
+ /**
777
+ * Inset
778
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
779
+ */
780
+ inset: [{
781
+ inset: A()
782
+ }],
783
+ /**
784
+ * Inset Inline
785
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
786
+ */
787
+ "inset-x": [{
788
+ "inset-x": A()
789
+ }],
790
+ /**
791
+ * Inset Block
792
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
793
+ */
794
+ "inset-y": [{
795
+ "inset-y": A()
796
+ }],
797
+ /**
798
+ * Inset Inline Start
799
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
800
+ * @todo class group will be renamed to `inset-s` in next major release
801
+ */
802
+ start: [{
803
+ "inset-s": A(),
804
+ /**
805
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.
806
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
807
+ */
808
+ start: A()
809
+ }],
810
+ /**
811
+ * Inset Inline End
812
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
813
+ * @todo class group will be renamed to `inset-e` in next major release
814
+ */
815
+ end: [{
816
+ "inset-e": A(),
817
+ /**
818
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.
819
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
820
+ */
821
+ end: A()
822
+ }],
823
+ /**
824
+ * Inset Block Start
825
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
826
+ */
827
+ "inset-bs": [{
828
+ "inset-bs": A()
829
+ }],
830
+ /**
831
+ * Inset Block End
832
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
833
+ */
834
+ "inset-be": [{
835
+ "inset-be": A()
836
+ }],
837
+ /**
838
+ * Top
839
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
840
+ */
841
+ top: [{
842
+ top: A()
843
+ }],
844
+ /**
845
+ * Right
846
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
847
+ */
848
+ right: [{
849
+ right: A()
850
+ }],
851
+ /**
852
+ * Bottom
853
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
854
+ */
855
+ bottom: [{
856
+ bottom: A()
857
+ }],
858
+ /**
859
+ * Left
860
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
861
+ */
862
+ left: [{
863
+ left: A()
864
+ }],
865
+ /**
866
+ * Visibility
867
+ * @see https://tailwindcss.com/docs/visibility
868
+ */
869
+ visibility: ["visible", "invisible", "collapse"],
870
+ /**
871
+ * Z-Index
872
+ * @see https://tailwindcss.com/docs/z-index
873
+ */
874
+ z: [{
875
+ z: [Z, "auto", b, f]
876
+ }],
877
+ // ------------------------
878
+ // --- Flexbox and Grid ---
879
+ // ------------------------
880
+ /**
881
+ * Flex Basis
882
+ * @see https://tailwindcss.com/docs/flex-basis
883
+ */
884
+ basis: [{
885
+ basis: [X, "full", "auto", c, ...p()]
886
+ }],
887
+ /**
888
+ * Flex Direction
889
+ * @see https://tailwindcss.com/docs/flex-direction
890
+ */
891
+ "flex-direction": [{
892
+ flex: ["row", "row-reverse", "col", "col-reverse"]
893
+ }],
894
+ /**
895
+ * Flex Wrap
896
+ * @see https://tailwindcss.com/docs/flex-wrap
897
+ */
898
+ "flex-wrap": [{
899
+ flex: ["nowrap", "wrap", "wrap-reverse"]
900
+ }],
901
+ /**
902
+ * Flex
903
+ * @see https://tailwindcss.com/docs/flex
904
+ */
905
+ flex: [{
906
+ flex: [C, X, "auto", "initial", "none", f]
907
+ }],
908
+ /**
909
+ * Flex Grow
910
+ * @see https://tailwindcss.com/docs/flex-grow
911
+ */
912
+ grow: [{
913
+ grow: ["", C, b, f]
914
+ }],
915
+ /**
916
+ * Flex Shrink
917
+ * @see https://tailwindcss.com/docs/flex-shrink
918
+ */
919
+ shrink: [{
920
+ shrink: ["", C, b, f]
921
+ }],
922
+ /**
923
+ * Order
924
+ * @see https://tailwindcss.com/docs/order
925
+ */
926
+ order: [{
927
+ order: [Z, "first", "last", "none", b, f]
928
+ }],
929
+ /**
930
+ * Grid Template Columns
931
+ * @see https://tailwindcss.com/docs/grid-template-columns
932
+ */
933
+ "grid-cols": [{
934
+ "grid-cols": K()
935
+ }],
936
+ /**
937
+ * Grid Column Start / End
938
+ * @see https://tailwindcss.com/docs/grid-column
939
+ */
940
+ "col-start-end": [{
941
+ col: ae()
942
+ }],
943
+ /**
944
+ * Grid Column Start
945
+ * @see https://tailwindcss.com/docs/grid-column
946
+ */
947
+ "col-start": [{
948
+ "col-start": W()
949
+ }],
950
+ /**
951
+ * Grid Column End
952
+ * @see https://tailwindcss.com/docs/grid-column
953
+ */
954
+ "col-end": [{
955
+ "col-end": W()
956
+ }],
957
+ /**
958
+ * Grid Template Rows
959
+ * @see https://tailwindcss.com/docs/grid-template-rows
960
+ */
961
+ "grid-rows": [{
962
+ "grid-rows": K()
963
+ }],
964
+ /**
965
+ * Grid Row Start / End
966
+ * @see https://tailwindcss.com/docs/grid-row
967
+ */
968
+ "row-start-end": [{
969
+ row: ae()
970
+ }],
971
+ /**
972
+ * Grid Row Start
973
+ * @see https://tailwindcss.com/docs/grid-row
974
+ */
975
+ "row-start": [{
976
+ "row-start": W()
977
+ }],
978
+ /**
979
+ * Grid Row End
980
+ * @see https://tailwindcss.com/docs/grid-row
981
+ */
982
+ "row-end": [{
983
+ "row-end": W()
984
+ }],
985
+ /**
986
+ * Grid Auto Flow
987
+ * @see https://tailwindcss.com/docs/grid-auto-flow
988
+ */
989
+ "grid-flow": [{
990
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
991
+ }],
992
+ /**
993
+ * Grid Auto Columns
994
+ * @see https://tailwindcss.com/docs/grid-auto-columns
995
+ */
996
+ "auto-cols": [{
997
+ "auto-cols": ee()
998
+ }],
999
+ /**
1000
+ * Grid Auto Rows
1001
+ * @see https://tailwindcss.com/docs/grid-auto-rows
1002
+ */
1003
+ "auto-rows": [{
1004
+ "auto-rows": ee()
1005
+ }],
1006
+ /**
1007
+ * Gap
1008
+ * @see https://tailwindcss.com/docs/gap
1009
+ */
1010
+ gap: [{
1011
+ gap: p()
1012
+ }],
1013
+ /**
1014
+ * Gap X
1015
+ * @see https://tailwindcss.com/docs/gap
1016
+ */
1017
+ "gap-x": [{
1018
+ "gap-x": p()
1019
+ }],
1020
+ /**
1021
+ * Gap Y
1022
+ * @see https://tailwindcss.com/docs/gap
1023
+ */
1024
+ "gap-y": [{
1025
+ "gap-y": p()
1026
+ }],
1027
+ /**
1028
+ * Justify Content
1029
+ * @see https://tailwindcss.com/docs/justify-content
1030
+ */
1031
+ "justify-content": [{
1032
+ justify: [...te(), "normal"]
1033
+ }],
1034
+ /**
1035
+ * Justify Items
1036
+ * @see https://tailwindcss.com/docs/justify-items
1037
+ */
1038
+ "justify-items": [{
1039
+ "justify-items": [...Y(), "normal"]
1040
+ }],
1041
+ /**
1042
+ * Justify Self
1043
+ * @see https://tailwindcss.com/docs/justify-self
1044
+ */
1045
+ "justify-self": [{
1046
+ "justify-self": ["auto", ...Y()]
1047
+ }],
1048
+ /**
1049
+ * Align Content
1050
+ * @see https://tailwindcss.com/docs/align-content
1051
+ */
1052
+ "align-content": [{
1053
+ content: ["normal", ...te()]
1054
+ }],
1055
+ /**
1056
+ * Align Items
1057
+ * @see https://tailwindcss.com/docs/align-items
1058
+ */
1059
+ "align-items": [{
1060
+ items: [...Y(), {
1061
+ baseline: ["", "last"]
1062
+ }]
1063
+ }],
1064
+ /**
1065
+ * Align Self
1066
+ * @see https://tailwindcss.com/docs/align-self
1067
+ */
1068
+ "align-self": [{
1069
+ self: ["auto", ...Y(), {
1070
+ baseline: ["", "last"]
1071
+ }]
1072
+ }],
1073
+ /**
1074
+ * Place Content
1075
+ * @see https://tailwindcss.com/docs/place-content
1076
+ */
1077
+ "place-content": [{
1078
+ "place-content": te()
1079
+ }],
1080
+ /**
1081
+ * Place Items
1082
+ * @see https://tailwindcss.com/docs/place-items
1083
+ */
1084
+ "place-items": [{
1085
+ "place-items": [...Y(), "baseline"]
1086
+ }],
1087
+ /**
1088
+ * Place Self
1089
+ * @see https://tailwindcss.com/docs/place-self
1090
+ */
1091
+ "place-self": [{
1092
+ "place-self": ["auto", ...Y()]
1093
+ }],
1094
+ // Spacing
1095
+ /**
1096
+ * Padding
1097
+ * @see https://tailwindcss.com/docs/padding
1098
+ */
1099
+ p: [{
1100
+ p: p()
1101
+ }],
1102
+ /**
1103
+ * Padding Inline
1104
+ * @see https://tailwindcss.com/docs/padding
1105
+ */
1106
+ px: [{
1107
+ px: p()
1108
+ }],
1109
+ /**
1110
+ * Padding Block
1111
+ * @see https://tailwindcss.com/docs/padding
1112
+ */
1113
+ py: [{
1114
+ py: p()
1115
+ }],
1116
+ /**
1117
+ * Padding Inline Start
1118
+ * @see https://tailwindcss.com/docs/padding
1119
+ */
1120
+ ps: [{
1121
+ ps: p()
1122
+ }],
1123
+ /**
1124
+ * Padding Inline End
1125
+ * @see https://tailwindcss.com/docs/padding
1126
+ */
1127
+ pe: [{
1128
+ pe: p()
1129
+ }],
1130
+ /**
1131
+ * Padding Block Start
1132
+ * @see https://tailwindcss.com/docs/padding
1133
+ */
1134
+ pbs: [{
1135
+ pbs: p()
1136
+ }],
1137
+ /**
1138
+ * Padding Block End
1139
+ * @see https://tailwindcss.com/docs/padding
1140
+ */
1141
+ pbe: [{
1142
+ pbe: p()
1143
+ }],
1144
+ /**
1145
+ * Padding Top
1146
+ * @see https://tailwindcss.com/docs/padding
1147
+ */
1148
+ pt: [{
1149
+ pt: p()
1150
+ }],
1151
+ /**
1152
+ * Padding Right
1153
+ * @see https://tailwindcss.com/docs/padding
1154
+ */
1155
+ pr: [{
1156
+ pr: p()
1157
+ }],
1158
+ /**
1159
+ * Padding Bottom
1160
+ * @see https://tailwindcss.com/docs/padding
1161
+ */
1162
+ pb: [{
1163
+ pb: p()
1164
+ }],
1165
+ /**
1166
+ * Padding Left
1167
+ * @see https://tailwindcss.com/docs/padding
1168
+ */
1169
+ pl: [{
1170
+ pl: p()
1171
+ }],
1172
+ /**
1173
+ * Margin
1174
+ * @see https://tailwindcss.com/docs/margin
1175
+ */
1176
+ m: [{
1177
+ m: G()
1178
+ }],
1179
+ /**
1180
+ * Margin Inline
1181
+ * @see https://tailwindcss.com/docs/margin
1182
+ */
1183
+ mx: [{
1184
+ mx: G()
1185
+ }],
1186
+ /**
1187
+ * Margin Block
1188
+ * @see https://tailwindcss.com/docs/margin
1189
+ */
1190
+ my: [{
1191
+ my: G()
1192
+ }],
1193
+ /**
1194
+ * Margin Inline Start
1195
+ * @see https://tailwindcss.com/docs/margin
1196
+ */
1197
+ ms: [{
1198
+ ms: G()
1199
+ }],
1200
+ /**
1201
+ * Margin Inline End
1202
+ * @see https://tailwindcss.com/docs/margin
1203
+ */
1204
+ me: [{
1205
+ me: G()
1206
+ }],
1207
+ /**
1208
+ * Margin Block Start
1209
+ * @see https://tailwindcss.com/docs/margin
1210
+ */
1211
+ mbs: [{
1212
+ mbs: G()
1213
+ }],
1214
+ /**
1215
+ * Margin Block End
1216
+ * @see https://tailwindcss.com/docs/margin
1217
+ */
1218
+ mbe: [{
1219
+ mbe: G()
1220
+ }],
1221
+ /**
1222
+ * Margin Top
1223
+ * @see https://tailwindcss.com/docs/margin
1224
+ */
1225
+ mt: [{
1226
+ mt: G()
1227
+ }],
1228
+ /**
1229
+ * Margin Right
1230
+ * @see https://tailwindcss.com/docs/margin
1231
+ */
1232
+ mr: [{
1233
+ mr: G()
1234
+ }],
1235
+ /**
1236
+ * Margin Bottom
1237
+ * @see https://tailwindcss.com/docs/margin
1238
+ */
1239
+ mb: [{
1240
+ mb: G()
1241
+ }],
1242
+ /**
1243
+ * Margin Left
1244
+ * @see https://tailwindcss.com/docs/margin
1245
+ */
1246
+ ml: [{
1247
+ ml: G()
1248
+ }],
1249
+ /**
1250
+ * Space Between X
1251
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1252
+ */
1253
+ "space-x": [{
1254
+ "space-x": p()
1255
+ }],
1256
+ /**
1257
+ * Space Between X Reverse
1258
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1259
+ */
1260
+ "space-x-reverse": ["space-x-reverse"],
1261
+ /**
1262
+ * Space Between Y
1263
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1264
+ */
1265
+ "space-y": [{
1266
+ "space-y": p()
1267
+ }],
1268
+ /**
1269
+ * Space Between Y Reverse
1270
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1271
+ */
1272
+ "space-y-reverse": ["space-y-reverse"],
1273
+ // --------------
1274
+ // --- Sizing ---
1275
+ // --------------
1276
+ /**
1277
+ * Size
1278
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
1279
+ */
1280
+ size: [{
1281
+ size: B()
1282
+ }],
1283
+ /**
1284
+ * Inline Size
1285
+ * @see https://tailwindcss.com/docs/width
1286
+ */
1287
+ "inline-size": [{
1288
+ inline: ["auto", ...oe()]
1289
+ }],
1290
+ /**
1291
+ * Min-Inline Size
1292
+ * @see https://tailwindcss.com/docs/min-width
1293
+ */
1294
+ "min-inline-size": [{
1295
+ "min-inline": ["auto", ...oe()]
1296
+ }],
1297
+ /**
1298
+ * Max-Inline Size
1299
+ * @see https://tailwindcss.com/docs/max-width
1300
+ */
1301
+ "max-inline-size": [{
1302
+ "max-inline": ["none", ...oe()]
1303
+ }],
1304
+ /**
1305
+ * Block Size
1306
+ * @see https://tailwindcss.com/docs/height
1307
+ */
1308
+ "block-size": [{
1309
+ block: ["auto", ...ie()]
1310
+ }],
1311
+ /**
1312
+ * Min-Block Size
1313
+ * @see https://tailwindcss.com/docs/min-height
1314
+ */
1315
+ "min-block-size": [{
1316
+ "min-block": ["auto", ...ie()]
1317
+ }],
1318
+ /**
1319
+ * Max-Block Size
1320
+ * @see https://tailwindcss.com/docs/max-height
1321
+ */
1322
+ "max-block-size": [{
1323
+ "max-block": ["none", ...ie()]
1324
+ }],
1325
+ /**
1326
+ * Width
1327
+ * @see https://tailwindcss.com/docs/width
1328
+ */
1329
+ w: [{
1330
+ w: [c, "screen", ...B()]
1331
+ }],
1332
+ /**
1333
+ * Min-Width
1334
+ * @see https://tailwindcss.com/docs/min-width
1335
+ */
1336
+ "min-w": [{
1337
+ "min-w": [
1338
+ c,
1339
+ "screen",
1340
+ /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1341
+ "none",
1342
+ ...B()
1343
+ ]
1344
+ }],
1345
+ /**
1346
+ * Max-Width
1347
+ * @see https://tailwindcss.com/docs/max-width
1348
+ */
1349
+ "max-w": [{
1350
+ "max-w": [
1351
+ c,
1352
+ "screen",
1353
+ "none",
1354
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1355
+ "prose",
1356
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1357
+ {
1358
+ screen: [i]
1359
+ },
1360
+ ...B()
1361
+ ]
1362
+ }],
1363
+ /**
1364
+ * Height
1365
+ * @see https://tailwindcss.com/docs/height
1366
+ */
1367
+ h: [{
1368
+ h: ["screen", "lh", ...B()]
1369
+ }],
1370
+ /**
1371
+ * Min-Height
1372
+ * @see https://tailwindcss.com/docs/min-height
1373
+ */
1374
+ "min-h": [{
1375
+ "min-h": ["screen", "lh", "none", ...B()]
1376
+ }],
1377
+ /**
1378
+ * Max-Height
1379
+ * @see https://tailwindcss.com/docs/max-height
1380
+ */
1381
+ "max-h": [{
1382
+ "max-h": ["screen", "lh", ...B()]
1383
+ }],
1384
+ // ------------------
1385
+ // --- Typography ---
1386
+ // ------------------
1387
+ /**
1388
+ * Font Size
1389
+ * @see https://tailwindcss.com/docs/font-size
1390
+ */
1391
+ "font-size": [{
1392
+ text: ["base", r, me, se]
1393
+ }],
1394
+ /**
1395
+ * Font Smoothing
1396
+ * @see https://tailwindcss.com/docs/font-smoothing
1397
+ */
1398
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
1399
+ /**
1400
+ * Font Style
1401
+ * @see https://tailwindcss.com/docs/font-style
1402
+ */
1403
+ "font-style": ["italic", "not-italic"],
1404
+ /**
1405
+ * Font Weight
1406
+ * @see https://tailwindcss.com/docs/font-weight
1407
+ */
1408
+ "font-weight": [{
1409
+ font: [n, as, Kt]
1410
+ }],
1411
+ /**
1412
+ * Font Stretch
1413
+ * @see https://tailwindcss.com/docs/font-stretch
1414
+ */
1415
+ "font-stretch": [{
1416
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", je, f]
1417
+ }],
1418
+ /**
1419
+ * Font Family
1420
+ * @see https://tailwindcss.com/docs/font-family
1421
+ */
1422
+ "font-family": [{
1423
+ font: [ss, es, s]
1424
+ }],
1425
+ /**
1426
+ * Font Feature Settings
1427
+ * @see https://tailwindcss.com/docs/font-feature-settings
1428
+ */
1429
+ "font-features": [{
1430
+ "font-features": [f]
1431
+ }],
1432
+ /**
1433
+ * Font Variant Numeric
1434
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1435
+ */
1436
+ "fvn-normal": ["normal-nums"],
1437
+ /**
1438
+ * Font Variant Numeric
1439
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1440
+ */
1441
+ "fvn-ordinal": ["ordinal"],
1442
+ /**
1443
+ * Font Variant Numeric
1444
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1445
+ */
1446
+ "fvn-slashed-zero": ["slashed-zero"],
1447
+ /**
1448
+ * Font Variant Numeric
1449
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1450
+ */
1451
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
1452
+ /**
1453
+ * Font Variant Numeric
1454
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1455
+ */
1456
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
1457
+ /**
1458
+ * Font Variant Numeric
1459
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1460
+ */
1461
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1462
+ /**
1463
+ * Letter Spacing
1464
+ * @see https://tailwindcss.com/docs/letter-spacing
1465
+ */
1466
+ tracking: [{
1467
+ tracking: [a, b, f]
1468
+ }],
1469
+ /**
1470
+ * Line Clamp
1471
+ * @see https://tailwindcss.com/docs/line-clamp
1472
+ */
1473
+ "line-clamp": [{
1474
+ "line-clamp": [C, "none", b, Oe]
1475
+ }],
1476
+ /**
1477
+ * Line Height
1478
+ * @see https://tailwindcss.com/docs/line-height
1479
+ */
1480
+ leading: [{
1481
+ leading: [
1482
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1483
+ o,
1484
+ ...p()
1485
+ ]
1486
+ }],
1487
+ /**
1488
+ * List Style Image
1489
+ * @see https://tailwindcss.com/docs/list-style-image
1490
+ */
1491
+ "list-image": [{
1492
+ "list-image": ["none", b, f]
1493
+ }],
1494
+ /**
1495
+ * List Style Position
1496
+ * @see https://tailwindcss.com/docs/list-style-position
1497
+ */
1498
+ "list-style-position": [{
1499
+ list: ["inside", "outside"]
1500
+ }],
1501
+ /**
1502
+ * List Style Type
1503
+ * @see https://tailwindcss.com/docs/list-style-type
1504
+ */
1505
+ "list-style-type": [{
1506
+ list: ["disc", "decimal", "none", b, f]
1507
+ }],
1508
+ /**
1509
+ * Text Alignment
1510
+ * @see https://tailwindcss.com/docs/text-align
1511
+ */
1512
+ "text-alignment": [{
1513
+ text: ["left", "center", "right", "justify", "start", "end"]
1514
+ }],
1515
+ /**
1516
+ * Placeholder Color
1517
+ * @deprecated since Tailwind CSS v3.0.0
1518
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
1519
+ */
1520
+ "placeholder-color": [{
1521
+ placeholder: k()
1522
+ }],
1523
+ /**
1524
+ * Text Color
1525
+ * @see https://tailwindcss.com/docs/text-color
1526
+ */
1527
+ "text-color": [{
1528
+ text: k()
1529
+ }],
1530
+ /**
1531
+ * Text Decoration
1532
+ * @see https://tailwindcss.com/docs/text-decoration
1533
+ */
1534
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1535
+ /**
1536
+ * Text Decoration Style
1537
+ * @see https://tailwindcss.com/docs/text-decoration-style
1538
+ */
1539
+ "text-decoration-style": [{
1540
+ decoration: [...T(), "wavy"]
1541
+ }],
1542
+ /**
1543
+ * Text Decoration Thickness
1544
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1545
+ */
1546
+ "text-decoration-thickness": [{
1547
+ decoration: [C, "from-font", "auto", b, se]
1548
+ }],
1549
+ /**
1550
+ * Text Decoration Color
1551
+ * @see https://tailwindcss.com/docs/text-decoration-color
1552
+ */
1553
+ "text-decoration-color": [{
1554
+ decoration: k()
1555
+ }],
1556
+ /**
1557
+ * Text Underline Offset
1558
+ * @see https://tailwindcss.com/docs/text-underline-offset
1559
+ */
1560
+ "underline-offset": [{
1561
+ "underline-offset": [C, "auto", b, f]
1562
+ }],
1563
+ /**
1564
+ * Text Transform
1565
+ * @see https://tailwindcss.com/docs/text-transform
1566
+ */
1567
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1568
+ /**
1569
+ * Text Overflow
1570
+ * @see https://tailwindcss.com/docs/text-overflow
1571
+ */
1572
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1573
+ /**
1574
+ * Text Wrap
1575
+ * @see https://tailwindcss.com/docs/text-wrap
1576
+ */
1577
+ "text-wrap": [{
1578
+ text: ["wrap", "nowrap", "balance", "pretty"]
1579
+ }],
1580
+ /**
1581
+ * Text Indent
1582
+ * @see https://tailwindcss.com/docs/text-indent
1583
+ */
1584
+ indent: [{
1585
+ indent: p()
1586
+ }],
1587
+ /**
1588
+ * Vertical Alignment
1589
+ * @see https://tailwindcss.com/docs/vertical-align
1590
+ */
1591
+ "vertical-align": [{
1592
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", b, f]
1593
+ }],
1594
+ /**
1595
+ * Whitespace
1596
+ * @see https://tailwindcss.com/docs/whitespace
1597
+ */
1598
+ whitespace: [{
1599
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1600
+ }],
1601
+ /**
1602
+ * Word Break
1603
+ * @see https://tailwindcss.com/docs/word-break
1604
+ */
1605
+ break: [{
1606
+ break: ["normal", "words", "all", "keep"]
1607
+ }],
1608
+ /**
1609
+ * Overflow Wrap
1610
+ * @see https://tailwindcss.com/docs/overflow-wrap
1611
+ */
1612
+ wrap: [{
1613
+ wrap: ["break-word", "anywhere", "normal"]
1614
+ }],
1615
+ /**
1616
+ * Hyphens
1617
+ * @see https://tailwindcss.com/docs/hyphens
1618
+ */
1619
+ hyphens: [{
1620
+ hyphens: ["none", "manual", "auto"]
1621
+ }],
1622
+ /**
1623
+ * Content
1624
+ * @see https://tailwindcss.com/docs/content
1625
+ */
1626
+ content: [{
1627
+ content: ["none", b, f]
1628
+ }],
1629
+ // -------------------
1630
+ // --- Backgrounds ---
1631
+ // -------------------
1632
+ /**
1633
+ * Background Attachment
1634
+ * @see https://tailwindcss.com/docs/background-attachment
1635
+ */
1636
+ "bg-attachment": [{
1637
+ bg: ["fixed", "local", "scroll"]
1638
+ }],
1639
+ /**
1640
+ * Background Clip
1641
+ * @see https://tailwindcss.com/docs/background-clip
1642
+ */
1643
+ "bg-clip": [{
1644
+ "bg-clip": ["border", "padding", "content", "text"]
1645
+ }],
1646
+ /**
1647
+ * Background Origin
1648
+ * @see https://tailwindcss.com/docs/background-origin
1649
+ */
1650
+ "bg-origin": [{
1651
+ "bg-origin": ["border", "padding", "content"]
1652
+ }],
1653
+ /**
1654
+ * Background Position
1655
+ * @see https://tailwindcss.com/docs/background-position
1656
+ */
1657
+ "bg-position": [{
1658
+ bg: d()
1659
+ }],
1660
+ /**
1661
+ * Background Repeat
1662
+ * @see https://tailwindcss.com/docs/background-repeat
1663
+ */
1664
+ "bg-repeat": [{
1665
+ bg: N()
1666
+ }],
1667
+ /**
1668
+ * Background Size
1669
+ * @see https://tailwindcss.com/docs/background-size
1670
+ */
1671
+ "bg-size": [{
1672
+ bg: M()
1673
+ }],
1674
+ /**
1675
+ * Background Image
1676
+ * @see https://tailwindcss.com/docs/background-image
1677
+ */
1678
+ "bg-image": [{
1679
+ bg: ["none", {
1680
+ linear: [{
1681
+ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1682
+ }, Z, b, f],
1683
+ radial: ["", b, f],
1684
+ conic: [Z, b, f]
1685
+ }, ns, ts]
1686
+ }],
1687
+ /**
1688
+ * Background Color
1689
+ * @see https://tailwindcss.com/docs/background-color
1690
+ */
1691
+ "bg-color": [{
1692
+ bg: k()
1693
+ }],
1694
+ /**
1695
+ * Gradient Color Stops From Position
1696
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1697
+ */
1698
+ "gradient-from-pos": [{
1699
+ from: D()
1700
+ }],
1701
+ /**
1702
+ * Gradient Color Stops Via Position
1703
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1704
+ */
1705
+ "gradient-via-pos": [{
1706
+ via: D()
1707
+ }],
1708
+ /**
1709
+ * Gradient Color Stops To Position
1710
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1711
+ */
1712
+ "gradient-to-pos": [{
1713
+ to: D()
1714
+ }],
1715
+ /**
1716
+ * Gradient Color Stops From
1717
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1718
+ */
1719
+ "gradient-from": [{
1720
+ from: k()
1721
+ }],
1722
+ /**
1723
+ * Gradient Color Stops Via
1724
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1725
+ */
1726
+ "gradient-via": [{
1727
+ via: k()
1728
+ }],
1729
+ /**
1730
+ * Gradient Color Stops To
1731
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1732
+ */
1733
+ "gradient-to": [{
1734
+ to: k()
1735
+ }],
1736
+ // ---------------
1737
+ // --- Borders ---
1738
+ // ---------------
1739
+ /**
1740
+ * Border Radius
1741
+ * @see https://tailwindcss.com/docs/border-radius
1742
+ */
1743
+ rounded: [{
1744
+ rounded: I()
1745
+ }],
1746
+ /**
1747
+ * Border Radius Start
1748
+ * @see https://tailwindcss.com/docs/border-radius
1749
+ */
1750
+ "rounded-s": [{
1751
+ "rounded-s": I()
1752
+ }],
1753
+ /**
1754
+ * Border Radius End
1755
+ * @see https://tailwindcss.com/docs/border-radius
1756
+ */
1757
+ "rounded-e": [{
1758
+ "rounded-e": I()
1759
+ }],
1760
+ /**
1761
+ * Border Radius Top
1762
+ * @see https://tailwindcss.com/docs/border-radius
1763
+ */
1764
+ "rounded-t": [{
1765
+ "rounded-t": I()
1766
+ }],
1767
+ /**
1768
+ * Border Radius Right
1769
+ * @see https://tailwindcss.com/docs/border-radius
1770
+ */
1771
+ "rounded-r": [{
1772
+ "rounded-r": I()
1773
+ }],
1774
+ /**
1775
+ * Border Radius Bottom
1776
+ * @see https://tailwindcss.com/docs/border-radius
1777
+ */
1778
+ "rounded-b": [{
1779
+ "rounded-b": I()
1780
+ }],
1781
+ /**
1782
+ * Border Radius Left
1783
+ * @see https://tailwindcss.com/docs/border-radius
1784
+ */
1785
+ "rounded-l": [{
1786
+ "rounded-l": I()
1787
+ }],
1788
+ /**
1789
+ * Border Radius Start Start
1790
+ * @see https://tailwindcss.com/docs/border-radius
1791
+ */
1792
+ "rounded-ss": [{
1793
+ "rounded-ss": I()
1794
+ }],
1795
+ /**
1796
+ * Border Radius Start End
1797
+ * @see https://tailwindcss.com/docs/border-radius
1798
+ */
1799
+ "rounded-se": [{
1800
+ "rounded-se": I()
1801
+ }],
1802
+ /**
1803
+ * Border Radius End End
1804
+ * @see https://tailwindcss.com/docs/border-radius
1805
+ */
1806
+ "rounded-ee": [{
1807
+ "rounded-ee": I()
1808
+ }],
1809
+ /**
1810
+ * Border Radius End Start
1811
+ * @see https://tailwindcss.com/docs/border-radius
1812
+ */
1813
+ "rounded-es": [{
1814
+ "rounded-es": I()
1815
+ }],
1816
+ /**
1817
+ * Border Radius Top Left
1818
+ * @see https://tailwindcss.com/docs/border-radius
1819
+ */
1820
+ "rounded-tl": [{
1821
+ "rounded-tl": I()
1822
+ }],
1823
+ /**
1824
+ * Border Radius Top Right
1825
+ * @see https://tailwindcss.com/docs/border-radius
1826
+ */
1827
+ "rounded-tr": [{
1828
+ "rounded-tr": I()
1829
+ }],
1830
+ /**
1831
+ * Border Radius Bottom Right
1832
+ * @see https://tailwindcss.com/docs/border-radius
1833
+ */
1834
+ "rounded-br": [{
1835
+ "rounded-br": I()
1836
+ }],
1837
+ /**
1838
+ * Border Radius Bottom Left
1839
+ * @see https://tailwindcss.com/docs/border-radius
1840
+ */
1841
+ "rounded-bl": [{
1842
+ "rounded-bl": I()
1843
+ }],
1844
+ /**
1845
+ * Border Width
1846
+ * @see https://tailwindcss.com/docs/border-width
1847
+ */
1848
+ "border-w": [{
1849
+ border: $()
1850
+ }],
1851
+ /**
1852
+ * Border Width Inline
1853
+ * @see https://tailwindcss.com/docs/border-width
1854
+ */
1855
+ "border-w-x": [{
1856
+ "border-x": $()
1857
+ }],
1858
+ /**
1859
+ * Border Width Block
1860
+ * @see https://tailwindcss.com/docs/border-width
1861
+ */
1862
+ "border-w-y": [{
1863
+ "border-y": $()
1864
+ }],
1865
+ /**
1866
+ * Border Width Inline Start
1867
+ * @see https://tailwindcss.com/docs/border-width
1868
+ */
1869
+ "border-w-s": [{
1870
+ "border-s": $()
1871
+ }],
1872
+ /**
1873
+ * Border Width Inline End
1874
+ * @see https://tailwindcss.com/docs/border-width
1875
+ */
1876
+ "border-w-e": [{
1877
+ "border-e": $()
1878
+ }],
1879
+ /**
1880
+ * Border Width Block Start
1881
+ * @see https://tailwindcss.com/docs/border-width
1882
+ */
1883
+ "border-w-bs": [{
1884
+ "border-bs": $()
1885
+ }],
1886
+ /**
1887
+ * Border Width Block End
1888
+ * @see https://tailwindcss.com/docs/border-width
1889
+ */
1890
+ "border-w-be": [{
1891
+ "border-be": $()
1892
+ }],
1893
+ /**
1894
+ * Border Width Top
1895
+ * @see https://tailwindcss.com/docs/border-width
1896
+ */
1897
+ "border-w-t": [{
1898
+ "border-t": $()
1899
+ }],
1900
+ /**
1901
+ * Border Width Right
1902
+ * @see https://tailwindcss.com/docs/border-width
1903
+ */
1904
+ "border-w-r": [{
1905
+ "border-r": $()
1906
+ }],
1907
+ /**
1908
+ * Border Width Bottom
1909
+ * @see https://tailwindcss.com/docs/border-width
1910
+ */
1911
+ "border-w-b": [{
1912
+ "border-b": $()
1913
+ }],
1914
+ /**
1915
+ * Border Width Left
1916
+ * @see https://tailwindcss.com/docs/border-width
1917
+ */
1918
+ "border-w-l": [{
1919
+ "border-l": $()
1920
+ }],
1921
+ /**
1922
+ * Divide Width X
1923
+ * @see https://tailwindcss.com/docs/border-width#between-children
1924
+ */
1925
+ "divide-x": [{
1926
+ "divide-x": $()
1927
+ }],
1928
+ /**
1929
+ * Divide Width X Reverse
1930
+ * @see https://tailwindcss.com/docs/border-width#between-children
1931
+ */
1932
+ "divide-x-reverse": ["divide-x-reverse"],
1933
+ /**
1934
+ * Divide Width Y
1935
+ * @see https://tailwindcss.com/docs/border-width#between-children
1936
+ */
1937
+ "divide-y": [{
1938
+ "divide-y": $()
1939
+ }],
1940
+ /**
1941
+ * Divide Width Y Reverse
1942
+ * @see https://tailwindcss.com/docs/border-width#between-children
1943
+ */
1944
+ "divide-y-reverse": ["divide-y-reverse"],
1945
+ /**
1946
+ * Border Style
1947
+ * @see https://tailwindcss.com/docs/border-style
1948
+ */
1949
+ "border-style": [{
1950
+ border: [...T(), "hidden", "none"]
1951
+ }],
1952
+ /**
1953
+ * Divide Style
1954
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
1955
+ */
1956
+ "divide-style": [{
1957
+ divide: [...T(), "hidden", "none"]
1958
+ }],
1959
+ /**
1960
+ * Border Color
1961
+ * @see https://tailwindcss.com/docs/border-color
1962
+ */
1963
+ "border-color": [{
1964
+ border: k()
1965
+ }],
1966
+ /**
1967
+ * Border Color Inline
1968
+ * @see https://tailwindcss.com/docs/border-color
1969
+ */
1970
+ "border-color-x": [{
1971
+ "border-x": k()
1972
+ }],
1973
+ /**
1974
+ * Border Color Block
1975
+ * @see https://tailwindcss.com/docs/border-color
1976
+ */
1977
+ "border-color-y": [{
1978
+ "border-y": k()
1979
+ }],
1980
+ /**
1981
+ * Border Color Inline Start
1982
+ * @see https://tailwindcss.com/docs/border-color
1983
+ */
1984
+ "border-color-s": [{
1985
+ "border-s": k()
1986
+ }],
1987
+ /**
1988
+ * Border Color Inline End
1989
+ * @see https://tailwindcss.com/docs/border-color
1990
+ */
1991
+ "border-color-e": [{
1992
+ "border-e": k()
1993
+ }],
1994
+ /**
1995
+ * Border Color Block Start
1996
+ * @see https://tailwindcss.com/docs/border-color
1997
+ */
1998
+ "border-color-bs": [{
1999
+ "border-bs": k()
2000
+ }],
2001
+ /**
2002
+ * Border Color Block End
2003
+ * @see https://tailwindcss.com/docs/border-color
2004
+ */
2005
+ "border-color-be": [{
2006
+ "border-be": k()
2007
+ }],
2008
+ /**
2009
+ * Border Color Top
2010
+ * @see https://tailwindcss.com/docs/border-color
2011
+ */
2012
+ "border-color-t": [{
2013
+ "border-t": k()
2014
+ }],
2015
+ /**
2016
+ * Border Color Right
2017
+ * @see https://tailwindcss.com/docs/border-color
2018
+ */
2019
+ "border-color-r": [{
2020
+ "border-r": k()
2021
+ }],
2022
+ /**
2023
+ * Border Color Bottom
2024
+ * @see https://tailwindcss.com/docs/border-color
2025
+ */
2026
+ "border-color-b": [{
2027
+ "border-b": k()
2028
+ }],
2029
+ /**
2030
+ * Border Color Left
2031
+ * @see https://tailwindcss.com/docs/border-color
2032
+ */
2033
+ "border-color-l": [{
2034
+ "border-l": k()
2035
+ }],
2036
+ /**
2037
+ * Divide Color
2038
+ * @see https://tailwindcss.com/docs/divide-color
2039
+ */
2040
+ "divide-color": [{
2041
+ divide: k()
2042
+ }],
2043
+ /**
2044
+ * Outline Style
2045
+ * @see https://tailwindcss.com/docs/outline-style
2046
+ */
2047
+ "outline-style": [{
2048
+ outline: [...T(), "none", "hidden"]
2049
+ }],
2050
+ /**
2051
+ * Outline Offset
2052
+ * @see https://tailwindcss.com/docs/outline-offset
2053
+ */
2054
+ "outline-offset": [{
2055
+ "outline-offset": [C, b, f]
2056
+ }],
2057
+ /**
2058
+ * Outline Width
2059
+ * @see https://tailwindcss.com/docs/outline-width
2060
+ */
2061
+ "outline-w": [{
2062
+ outline: ["", C, me, se]
2063
+ }],
2064
+ /**
2065
+ * Outline Color
2066
+ * @see https://tailwindcss.com/docs/outline-color
2067
+ */
2068
+ "outline-color": [{
2069
+ outline: k()
2070
+ }],
2071
+ // ---------------
2072
+ // --- Effects ---
2073
+ // ---------------
2074
+ /**
2075
+ * Box Shadow
2076
+ * @see https://tailwindcss.com/docs/box-shadow
2077
+ */
2078
+ shadow: [{
2079
+ shadow: [
2080
+ // Deprecated since Tailwind CSS v4.0.0
2081
+ "",
2082
+ "none",
2083
+ g,
2084
+ ye,
2085
+ ve
2086
+ ]
2087
+ }],
2088
+ /**
2089
+ * Box Shadow Color
2090
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
2091
+ */
2092
+ "shadow-color": [{
2093
+ shadow: k()
2094
+ }],
2095
+ /**
2096
+ * Inset Box Shadow
2097
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
2098
+ */
2099
+ "inset-shadow": [{
2100
+ "inset-shadow": ["none", w, ye, ve]
2101
+ }],
2102
+ /**
2103
+ * Inset Box Shadow Color
2104
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
2105
+ */
2106
+ "inset-shadow-color": [{
2107
+ "inset-shadow": k()
2108
+ }],
2109
+ /**
2110
+ * Ring Width
2111
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
2112
+ */
2113
+ "ring-w": [{
2114
+ ring: $()
2115
+ }],
2116
+ /**
2117
+ * Ring Width Inset
2118
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
2119
+ * @deprecated since Tailwind CSS v4.0.0
2120
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2121
+ */
2122
+ "ring-w-inset": ["ring-inset"],
2123
+ /**
2124
+ * Ring Color
2125
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
2126
+ */
2127
+ "ring-color": [{
2128
+ ring: k()
2129
+ }],
2130
+ /**
2131
+ * Ring Offset Width
2132
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
2133
+ * @deprecated since Tailwind CSS v4.0.0
2134
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2135
+ */
2136
+ "ring-offset-w": [{
2137
+ "ring-offset": [C, se]
2138
+ }],
2139
+ /**
2140
+ * Ring Offset Color
2141
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
2142
+ * @deprecated since Tailwind CSS v4.0.0
2143
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2144
+ */
2145
+ "ring-offset-color": [{
2146
+ "ring-offset": k()
2147
+ }],
2148
+ /**
2149
+ * Inset Ring Width
2150
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
2151
+ */
2152
+ "inset-ring-w": [{
2153
+ "inset-ring": $()
2154
+ }],
2155
+ /**
2156
+ * Inset Ring Color
2157
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
2158
+ */
2159
+ "inset-ring-color": [{
2160
+ "inset-ring": k()
2161
+ }],
2162
+ /**
2163
+ * Text Shadow
2164
+ * @see https://tailwindcss.com/docs/text-shadow
2165
+ */
2166
+ "text-shadow": [{
2167
+ "text-shadow": ["none", j, ye, ve]
2168
+ }],
2169
+ /**
2170
+ * Text Shadow Color
2171
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
2172
+ */
2173
+ "text-shadow-color": [{
2174
+ "text-shadow": k()
2175
+ }],
2176
+ /**
2177
+ * Opacity
2178
+ * @see https://tailwindcss.com/docs/opacity
2179
+ */
2180
+ opacity: [{
2181
+ opacity: [C, b, f]
2182
+ }],
2183
+ /**
2184
+ * Mix Blend Mode
2185
+ * @see https://tailwindcss.com/docs/mix-blend-mode
2186
+ */
2187
+ "mix-blend": [{
2188
+ "mix-blend": [...q(), "plus-darker", "plus-lighter"]
2189
+ }],
2190
+ /**
2191
+ * Background Blend Mode
2192
+ * @see https://tailwindcss.com/docs/background-blend-mode
2193
+ */
2194
+ "bg-blend": [{
2195
+ "bg-blend": q()
2196
+ }],
2197
+ /**
2198
+ * Mask Clip
2199
+ * @see https://tailwindcss.com/docs/mask-clip
2200
+ */
2201
+ "mask-clip": [{
2202
+ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
2203
+ }, "mask-no-clip"],
2204
+ /**
2205
+ * Mask Composite
2206
+ * @see https://tailwindcss.com/docs/mask-composite
2207
+ */
2208
+ "mask-composite": [{
2209
+ mask: ["add", "subtract", "intersect", "exclude"]
2210
+ }],
2211
+ /**
2212
+ * Mask Image
2213
+ * @see https://tailwindcss.com/docs/mask-image
2214
+ */
2215
+ "mask-image-linear-pos": [{
2216
+ "mask-linear": [C]
2217
+ }],
2218
+ "mask-image-linear-from-pos": [{
2219
+ "mask-linear-from": O()
2220
+ }],
2221
+ "mask-image-linear-to-pos": [{
2222
+ "mask-linear-to": O()
2223
+ }],
2224
+ "mask-image-linear-from-color": [{
2225
+ "mask-linear-from": k()
2226
+ }],
2227
+ "mask-image-linear-to-color": [{
2228
+ "mask-linear-to": k()
2229
+ }],
2230
+ "mask-image-t-from-pos": [{
2231
+ "mask-t-from": O()
2232
+ }],
2233
+ "mask-image-t-to-pos": [{
2234
+ "mask-t-to": O()
2235
+ }],
2236
+ "mask-image-t-from-color": [{
2237
+ "mask-t-from": k()
2238
+ }],
2239
+ "mask-image-t-to-color": [{
2240
+ "mask-t-to": k()
2241
+ }],
2242
+ "mask-image-r-from-pos": [{
2243
+ "mask-r-from": O()
2244
+ }],
2245
+ "mask-image-r-to-pos": [{
2246
+ "mask-r-to": O()
2247
+ }],
2248
+ "mask-image-r-from-color": [{
2249
+ "mask-r-from": k()
2250
+ }],
2251
+ "mask-image-r-to-color": [{
2252
+ "mask-r-to": k()
2253
+ }],
2254
+ "mask-image-b-from-pos": [{
2255
+ "mask-b-from": O()
2256
+ }],
2257
+ "mask-image-b-to-pos": [{
2258
+ "mask-b-to": O()
2259
+ }],
2260
+ "mask-image-b-from-color": [{
2261
+ "mask-b-from": k()
2262
+ }],
2263
+ "mask-image-b-to-color": [{
2264
+ "mask-b-to": k()
2265
+ }],
2266
+ "mask-image-l-from-pos": [{
2267
+ "mask-l-from": O()
2268
+ }],
2269
+ "mask-image-l-to-pos": [{
2270
+ "mask-l-to": O()
2271
+ }],
2272
+ "mask-image-l-from-color": [{
2273
+ "mask-l-from": k()
2274
+ }],
2275
+ "mask-image-l-to-color": [{
2276
+ "mask-l-to": k()
2277
+ }],
2278
+ "mask-image-x-from-pos": [{
2279
+ "mask-x-from": O()
2280
+ }],
2281
+ "mask-image-x-to-pos": [{
2282
+ "mask-x-to": O()
2283
+ }],
2284
+ "mask-image-x-from-color": [{
2285
+ "mask-x-from": k()
2286
+ }],
2287
+ "mask-image-x-to-color": [{
2288
+ "mask-x-to": k()
2289
+ }],
2290
+ "mask-image-y-from-pos": [{
2291
+ "mask-y-from": O()
2292
+ }],
2293
+ "mask-image-y-to-pos": [{
2294
+ "mask-y-to": O()
2295
+ }],
2296
+ "mask-image-y-from-color": [{
2297
+ "mask-y-from": k()
2298
+ }],
2299
+ "mask-image-y-to-color": [{
2300
+ "mask-y-to": k()
2301
+ }],
2302
+ "mask-image-radial": [{
2303
+ "mask-radial": [b, f]
2304
+ }],
2305
+ "mask-image-radial-from-pos": [{
2306
+ "mask-radial-from": O()
2307
+ }],
2308
+ "mask-image-radial-to-pos": [{
2309
+ "mask-radial-to": O()
2310
+ }],
2311
+ "mask-image-radial-from-color": [{
2312
+ "mask-radial-from": k()
2313
+ }],
2314
+ "mask-image-radial-to-color": [{
2315
+ "mask-radial-to": k()
2316
+ }],
2317
+ "mask-image-radial-shape": [{
2318
+ "mask-radial": ["circle", "ellipse"]
2319
+ }],
2320
+ "mask-image-radial-size": [{
2321
+ "mask-radial": [{
2322
+ closest: ["side", "corner"],
2323
+ farthest: ["side", "corner"]
2324
+ }]
2325
+ }],
2326
+ "mask-image-radial-pos": [{
2327
+ "mask-radial-at": P()
2328
+ }],
2329
+ "mask-image-conic-pos": [{
2330
+ "mask-conic": [C]
2331
+ }],
2332
+ "mask-image-conic-from-pos": [{
2333
+ "mask-conic-from": O()
2334
+ }],
2335
+ "mask-image-conic-to-pos": [{
2336
+ "mask-conic-to": O()
2337
+ }],
2338
+ "mask-image-conic-from-color": [{
2339
+ "mask-conic-from": k()
2340
+ }],
2341
+ "mask-image-conic-to-color": [{
2342
+ "mask-conic-to": k()
2343
+ }],
2344
+ /**
2345
+ * Mask Mode
2346
+ * @see https://tailwindcss.com/docs/mask-mode
2347
+ */
2348
+ "mask-mode": [{
2349
+ mask: ["alpha", "luminance", "match"]
2350
+ }],
2351
+ /**
2352
+ * Mask Origin
2353
+ * @see https://tailwindcss.com/docs/mask-origin
2354
+ */
2355
+ "mask-origin": [{
2356
+ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
2357
+ }],
2358
+ /**
2359
+ * Mask Position
2360
+ * @see https://tailwindcss.com/docs/mask-position
2361
+ */
2362
+ "mask-position": [{
2363
+ mask: d()
2364
+ }],
2365
+ /**
2366
+ * Mask Repeat
2367
+ * @see https://tailwindcss.com/docs/mask-repeat
2368
+ */
2369
+ "mask-repeat": [{
2370
+ mask: N()
2371
+ }],
2372
+ /**
2373
+ * Mask Size
2374
+ * @see https://tailwindcss.com/docs/mask-size
2375
+ */
2376
+ "mask-size": [{
2377
+ mask: M()
2378
+ }],
2379
+ /**
2380
+ * Mask Type
2381
+ * @see https://tailwindcss.com/docs/mask-type
2382
+ */
2383
+ "mask-type": [{
2384
+ "mask-type": ["alpha", "luminance"]
2385
+ }],
2386
+ /**
2387
+ * Mask Image
2388
+ * @see https://tailwindcss.com/docs/mask-image
2389
+ */
2390
+ "mask-image": [{
2391
+ mask: ["none", b, f]
2392
+ }],
2393
+ // ---------------
2394
+ // --- Filters ---
2395
+ // ---------------
2396
+ /**
2397
+ * Filter
2398
+ * @see https://tailwindcss.com/docs/filter
2399
+ */
2400
+ filter: [{
2401
+ filter: [
2402
+ // Deprecated since Tailwind CSS v3.0.0
2403
+ "",
2404
+ "none",
2405
+ b,
2406
+ f
2407
+ ]
2408
+ }],
2409
+ /**
2410
+ * Blur
2411
+ * @see https://tailwindcss.com/docs/blur
2412
+ */
2413
+ blur: [{
2414
+ blur: pe()
2415
+ }],
2416
+ /**
2417
+ * Brightness
2418
+ * @see https://tailwindcss.com/docs/brightness
2419
+ */
2420
+ brightness: [{
2421
+ brightness: [C, b, f]
2422
+ }],
2423
+ /**
2424
+ * Contrast
2425
+ * @see https://tailwindcss.com/docs/contrast
2426
+ */
2427
+ contrast: [{
2428
+ contrast: [C, b, f]
2429
+ }],
2430
+ /**
2431
+ * Drop Shadow
2432
+ * @see https://tailwindcss.com/docs/drop-shadow
2433
+ */
2434
+ "drop-shadow": [{
2435
+ "drop-shadow": [
2436
+ // Deprecated since Tailwind CSS v4.0.0
2437
+ "",
2438
+ "none",
2439
+ S,
2440
+ ye,
2441
+ ve
2442
+ ]
2443
+ }],
2444
+ /**
2445
+ * Drop Shadow Color
2446
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
2447
+ */
2448
+ "drop-shadow-color": [{
2449
+ "drop-shadow": k()
2450
+ }],
2451
+ /**
2452
+ * Grayscale
2453
+ * @see https://tailwindcss.com/docs/grayscale
2454
+ */
2455
+ grayscale: [{
2456
+ grayscale: ["", C, b, f]
2457
+ }],
2458
+ /**
2459
+ * Hue Rotate
2460
+ * @see https://tailwindcss.com/docs/hue-rotate
2461
+ */
2462
+ "hue-rotate": [{
2463
+ "hue-rotate": [C, b, f]
2464
+ }],
2465
+ /**
2466
+ * Invert
2467
+ * @see https://tailwindcss.com/docs/invert
2468
+ */
2469
+ invert: [{
2470
+ invert: ["", C, b, f]
2471
+ }],
2472
+ /**
2473
+ * Saturate
2474
+ * @see https://tailwindcss.com/docs/saturate
2475
+ */
2476
+ saturate: [{
2477
+ saturate: [C, b, f]
2478
+ }],
2479
+ /**
2480
+ * Sepia
2481
+ * @see https://tailwindcss.com/docs/sepia
2482
+ */
2483
+ sepia: [{
2484
+ sepia: ["", C, b, f]
2485
+ }],
2486
+ /**
2487
+ * Backdrop Filter
2488
+ * @see https://tailwindcss.com/docs/backdrop-filter
2489
+ */
2490
+ "backdrop-filter": [{
2491
+ "backdrop-filter": [
2492
+ // Deprecated since Tailwind CSS v3.0.0
2493
+ "",
2494
+ "none",
2495
+ b,
2496
+ f
2497
+ ]
2498
+ }],
2499
+ /**
2500
+ * Backdrop Blur
2501
+ * @see https://tailwindcss.com/docs/backdrop-blur
2502
+ */
2503
+ "backdrop-blur": [{
2504
+ "backdrop-blur": pe()
2505
+ }],
2506
+ /**
2507
+ * Backdrop Brightness
2508
+ * @see https://tailwindcss.com/docs/backdrop-brightness
2509
+ */
2510
+ "backdrop-brightness": [{
2511
+ "backdrop-brightness": [C, b, f]
2512
+ }],
2513
+ /**
2514
+ * Backdrop Contrast
2515
+ * @see https://tailwindcss.com/docs/backdrop-contrast
2516
+ */
2517
+ "backdrop-contrast": [{
2518
+ "backdrop-contrast": [C, b, f]
2519
+ }],
2520
+ /**
2521
+ * Backdrop Grayscale
2522
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
2523
+ */
2524
+ "backdrop-grayscale": [{
2525
+ "backdrop-grayscale": ["", C, b, f]
2526
+ }],
2527
+ /**
2528
+ * Backdrop Hue Rotate
2529
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2530
+ */
2531
+ "backdrop-hue-rotate": [{
2532
+ "backdrop-hue-rotate": [C, b, f]
2533
+ }],
2534
+ /**
2535
+ * Backdrop Invert
2536
+ * @see https://tailwindcss.com/docs/backdrop-invert
2537
+ */
2538
+ "backdrop-invert": [{
2539
+ "backdrop-invert": ["", C, b, f]
2540
+ }],
2541
+ /**
2542
+ * Backdrop Opacity
2543
+ * @see https://tailwindcss.com/docs/backdrop-opacity
2544
+ */
2545
+ "backdrop-opacity": [{
2546
+ "backdrop-opacity": [C, b, f]
2547
+ }],
2548
+ /**
2549
+ * Backdrop Saturate
2550
+ * @see https://tailwindcss.com/docs/backdrop-saturate
2551
+ */
2552
+ "backdrop-saturate": [{
2553
+ "backdrop-saturate": [C, b, f]
2554
+ }],
2555
+ /**
2556
+ * Backdrop Sepia
2557
+ * @see https://tailwindcss.com/docs/backdrop-sepia
2558
+ */
2559
+ "backdrop-sepia": [{
2560
+ "backdrop-sepia": ["", C, b, f]
2561
+ }],
2562
+ // --------------
2563
+ // --- Tables ---
2564
+ // --------------
2565
+ /**
2566
+ * Border Collapse
2567
+ * @see https://tailwindcss.com/docs/border-collapse
2568
+ */
2569
+ "border-collapse": [{
2570
+ border: ["collapse", "separate"]
2571
+ }],
2572
+ /**
2573
+ * Border Spacing
2574
+ * @see https://tailwindcss.com/docs/border-spacing
2575
+ */
2576
+ "border-spacing": [{
2577
+ "border-spacing": p()
2578
+ }],
2579
+ /**
2580
+ * Border Spacing X
2581
+ * @see https://tailwindcss.com/docs/border-spacing
2582
+ */
2583
+ "border-spacing-x": [{
2584
+ "border-spacing-x": p()
2585
+ }],
2586
+ /**
2587
+ * Border Spacing Y
2588
+ * @see https://tailwindcss.com/docs/border-spacing
2589
+ */
2590
+ "border-spacing-y": [{
2591
+ "border-spacing-y": p()
2592
+ }],
2593
+ /**
2594
+ * Table Layout
2595
+ * @see https://tailwindcss.com/docs/table-layout
2596
+ */
2597
+ "table-layout": [{
2598
+ table: ["auto", "fixed"]
2599
+ }],
2600
+ /**
2601
+ * Caption Side
2602
+ * @see https://tailwindcss.com/docs/caption-side
2603
+ */
2604
+ caption: [{
2605
+ caption: ["top", "bottom"]
2606
+ }],
2607
+ // ---------------------------------
2608
+ // --- Transitions and Animation ---
2609
+ // ---------------------------------
2610
+ /**
2611
+ * Transition Property
2612
+ * @see https://tailwindcss.com/docs/transition-property
2613
+ */
2614
+ transition: [{
2615
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", b, f]
2616
+ }],
2617
+ /**
2618
+ * Transition Behavior
2619
+ * @see https://tailwindcss.com/docs/transition-behavior
2620
+ */
2621
+ "transition-behavior": [{
2622
+ transition: ["normal", "discrete"]
2623
+ }],
2624
+ /**
2625
+ * Transition Duration
2626
+ * @see https://tailwindcss.com/docs/transition-duration
2627
+ */
2628
+ duration: [{
2629
+ duration: [C, "initial", b, f]
2630
+ }],
2631
+ /**
2632
+ * Transition Timing Function
2633
+ * @see https://tailwindcss.com/docs/transition-timing-function
2634
+ */
2635
+ ease: [{
2636
+ ease: ["linear", "initial", m, b, f]
2637
+ }],
2638
+ /**
2639
+ * Transition Delay
2640
+ * @see https://tailwindcss.com/docs/transition-delay
2641
+ */
2642
+ delay: [{
2643
+ delay: [C, b, f]
2644
+ }],
2645
+ /**
2646
+ * Animation
2647
+ * @see https://tailwindcss.com/docs/animation
2648
+ */
2649
+ animate: [{
2650
+ animate: ["none", z, b, f]
2651
+ }],
2652
+ // ------------------
2653
+ // --- Transforms ---
2654
+ // ------------------
2655
+ /**
2656
+ * Backface Visibility
2657
+ * @see https://tailwindcss.com/docs/backface-visibility
2658
+ */
2659
+ backface: [{
2660
+ backface: ["hidden", "visible"]
2661
+ }],
2662
+ /**
2663
+ * Perspective
2664
+ * @see https://tailwindcss.com/docs/perspective
2665
+ */
2666
+ perspective: [{
2667
+ perspective: [v, b, f]
2668
+ }],
2669
+ /**
2670
+ * Perspective Origin
2671
+ * @see https://tailwindcss.com/docs/perspective-origin
2672
+ */
2673
+ "perspective-origin": [{
2674
+ "perspective-origin": V()
2675
+ }],
2676
+ /**
2677
+ * Rotate
2678
+ * @see https://tailwindcss.com/docs/rotate
2679
+ */
2680
+ rotate: [{
2681
+ rotate: fe()
2682
+ }],
2683
+ /**
2684
+ * Rotate X
2685
+ * @see https://tailwindcss.com/docs/rotate
2686
+ */
2687
+ "rotate-x": [{
2688
+ "rotate-x": fe()
2689
+ }],
2690
+ /**
2691
+ * Rotate Y
2692
+ * @see https://tailwindcss.com/docs/rotate
2693
+ */
2694
+ "rotate-y": [{
2695
+ "rotate-y": fe()
2696
+ }],
2697
+ /**
2698
+ * Rotate Z
2699
+ * @see https://tailwindcss.com/docs/rotate
2700
+ */
2701
+ "rotate-z": [{
2702
+ "rotate-z": fe()
2703
+ }],
2704
+ /**
2705
+ * Scale
2706
+ * @see https://tailwindcss.com/docs/scale
2707
+ */
2708
+ scale: [{
2709
+ scale: be()
2710
+ }],
2711
+ /**
2712
+ * Scale X
2713
+ * @see https://tailwindcss.com/docs/scale
2714
+ */
2715
+ "scale-x": [{
2716
+ "scale-x": be()
2717
+ }],
2718
+ /**
2719
+ * Scale Y
2720
+ * @see https://tailwindcss.com/docs/scale
2721
+ */
2722
+ "scale-y": [{
2723
+ "scale-y": be()
2724
+ }],
2725
+ /**
2726
+ * Scale Z
2727
+ * @see https://tailwindcss.com/docs/scale
2728
+ */
2729
+ "scale-z": [{
2730
+ "scale-z": be()
2731
+ }],
2732
+ /**
2733
+ * Scale 3D
2734
+ * @see https://tailwindcss.com/docs/scale
2735
+ */
2736
+ "scale-3d": ["scale-3d"],
2737
+ /**
2738
+ * Skew
2739
+ * @see https://tailwindcss.com/docs/skew
2740
+ */
2741
+ skew: [{
2742
+ skew: we()
2743
+ }],
2744
+ /**
2745
+ * Skew X
2746
+ * @see https://tailwindcss.com/docs/skew
2747
+ */
2748
+ "skew-x": [{
2749
+ "skew-x": we()
2750
+ }],
2751
+ /**
2752
+ * Skew Y
2753
+ * @see https://tailwindcss.com/docs/skew
2754
+ */
2755
+ "skew-y": [{
2756
+ "skew-y": we()
2757
+ }],
2758
+ /**
2759
+ * Transform
2760
+ * @see https://tailwindcss.com/docs/transform
2761
+ */
2762
+ transform: [{
2763
+ transform: [b, f, "", "none", "gpu", "cpu"]
2764
+ }],
2765
+ /**
2766
+ * Transform Origin
2767
+ * @see https://tailwindcss.com/docs/transform-origin
2768
+ */
2769
+ "transform-origin": [{
2770
+ origin: V()
2771
+ }],
2772
+ /**
2773
+ * Transform Style
2774
+ * @see https://tailwindcss.com/docs/transform-style
2775
+ */
2776
+ "transform-style": [{
2777
+ transform: ["3d", "flat"]
2778
+ }],
2779
+ /**
2780
+ * Translate
2781
+ * @see https://tailwindcss.com/docs/translate
2782
+ */
2783
+ translate: [{
2784
+ translate: ge()
2785
+ }],
2786
+ /**
2787
+ * Translate X
2788
+ * @see https://tailwindcss.com/docs/translate
2789
+ */
2790
+ "translate-x": [{
2791
+ "translate-x": ge()
2792
+ }],
2793
+ /**
2794
+ * Translate Y
2795
+ * @see https://tailwindcss.com/docs/translate
2796
+ */
2797
+ "translate-y": [{
2798
+ "translate-y": ge()
2799
+ }],
2800
+ /**
2801
+ * Translate Z
2802
+ * @see https://tailwindcss.com/docs/translate
2803
+ */
2804
+ "translate-z": [{
2805
+ "translate-z": ge()
2806
+ }],
2807
+ /**
2808
+ * Translate None
2809
+ * @see https://tailwindcss.com/docs/translate
2810
+ */
2811
+ "translate-none": ["translate-none"],
2812
+ // ---------------------
2813
+ // --- Interactivity ---
2814
+ // ---------------------
2815
+ /**
2816
+ * Accent Color
2817
+ * @see https://tailwindcss.com/docs/accent-color
2818
+ */
2819
+ accent: [{
2820
+ accent: k()
2821
+ }],
2822
+ /**
2823
+ * Appearance
2824
+ * @see https://tailwindcss.com/docs/appearance
2825
+ */
2826
+ appearance: [{
2827
+ appearance: ["none", "auto"]
2828
+ }],
2829
+ /**
2830
+ * Caret Color
2831
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2832
+ */
2833
+ "caret-color": [{
2834
+ caret: k()
2835
+ }],
2836
+ /**
2837
+ * Color Scheme
2838
+ * @see https://tailwindcss.com/docs/color-scheme
2839
+ */
2840
+ "color-scheme": [{
2841
+ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
2842
+ }],
2843
+ /**
2844
+ * Cursor
2845
+ * @see https://tailwindcss.com/docs/cursor
2846
+ */
2847
+ cursor: [{
2848
+ cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", b, f]
2849
+ }],
2850
+ /**
2851
+ * Field Sizing
2852
+ * @see https://tailwindcss.com/docs/field-sizing
2853
+ */
2854
+ "field-sizing": [{
2855
+ "field-sizing": ["fixed", "content"]
2856
+ }],
2857
+ /**
2858
+ * Pointer Events
2859
+ * @see https://tailwindcss.com/docs/pointer-events
2860
+ */
2861
+ "pointer-events": [{
2862
+ "pointer-events": ["auto", "none"]
2863
+ }],
2864
+ /**
2865
+ * Resize
2866
+ * @see https://tailwindcss.com/docs/resize
2867
+ */
2868
+ resize: [{
2869
+ resize: ["none", "", "y", "x"]
2870
+ }],
2871
+ /**
2872
+ * Scroll Behavior
2873
+ * @see https://tailwindcss.com/docs/scroll-behavior
2874
+ */
2875
+ "scroll-behavior": [{
2876
+ scroll: ["auto", "smooth"]
2877
+ }],
2878
+ /**
2879
+ * Scroll Margin
2880
+ * @see https://tailwindcss.com/docs/scroll-margin
2881
+ */
2882
+ "scroll-m": [{
2883
+ "scroll-m": p()
2884
+ }],
2885
+ /**
2886
+ * Scroll Margin Inline
2887
+ * @see https://tailwindcss.com/docs/scroll-margin
2888
+ */
2889
+ "scroll-mx": [{
2890
+ "scroll-mx": p()
2891
+ }],
2892
+ /**
2893
+ * Scroll Margin Block
2894
+ * @see https://tailwindcss.com/docs/scroll-margin
2895
+ */
2896
+ "scroll-my": [{
2897
+ "scroll-my": p()
2898
+ }],
2899
+ /**
2900
+ * Scroll Margin Inline Start
2901
+ * @see https://tailwindcss.com/docs/scroll-margin
2902
+ */
2903
+ "scroll-ms": [{
2904
+ "scroll-ms": p()
2905
+ }],
2906
+ /**
2907
+ * Scroll Margin Inline End
2908
+ * @see https://tailwindcss.com/docs/scroll-margin
2909
+ */
2910
+ "scroll-me": [{
2911
+ "scroll-me": p()
2912
+ }],
2913
+ /**
2914
+ * Scroll Margin Block Start
2915
+ * @see https://tailwindcss.com/docs/scroll-margin
2916
+ */
2917
+ "scroll-mbs": [{
2918
+ "scroll-mbs": p()
2919
+ }],
2920
+ /**
2921
+ * Scroll Margin Block End
2922
+ * @see https://tailwindcss.com/docs/scroll-margin
2923
+ */
2924
+ "scroll-mbe": [{
2925
+ "scroll-mbe": p()
2926
+ }],
2927
+ /**
2928
+ * Scroll Margin Top
2929
+ * @see https://tailwindcss.com/docs/scroll-margin
2930
+ */
2931
+ "scroll-mt": [{
2932
+ "scroll-mt": p()
2933
+ }],
2934
+ /**
2935
+ * Scroll Margin Right
2936
+ * @see https://tailwindcss.com/docs/scroll-margin
2937
+ */
2938
+ "scroll-mr": [{
2939
+ "scroll-mr": p()
2940
+ }],
2941
+ /**
2942
+ * Scroll Margin Bottom
2943
+ * @see https://tailwindcss.com/docs/scroll-margin
2944
+ */
2945
+ "scroll-mb": [{
2946
+ "scroll-mb": p()
2947
+ }],
2948
+ /**
2949
+ * Scroll Margin Left
2950
+ * @see https://tailwindcss.com/docs/scroll-margin
2951
+ */
2952
+ "scroll-ml": [{
2953
+ "scroll-ml": p()
2954
+ }],
2955
+ /**
2956
+ * Scroll Padding
2957
+ * @see https://tailwindcss.com/docs/scroll-padding
2958
+ */
2959
+ "scroll-p": [{
2960
+ "scroll-p": p()
2961
+ }],
2962
+ /**
2963
+ * Scroll Padding Inline
2964
+ * @see https://tailwindcss.com/docs/scroll-padding
2965
+ */
2966
+ "scroll-px": [{
2967
+ "scroll-px": p()
2968
+ }],
2969
+ /**
2970
+ * Scroll Padding Block
2971
+ * @see https://tailwindcss.com/docs/scroll-padding
2972
+ */
2973
+ "scroll-py": [{
2974
+ "scroll-py": p()
2975
+ }],
2976
+ /**
2977
+ * Scroll Padding Inline Start
2978
+ * @see https://tailwindcss.com/docs/scroll-padding
2979
+ */
2980
+ "scroll-ps": [{
2981
+ "scroll-ps": p()
2982
+ }],
2983
+ /**
2984
+ * Scroll Padding Inline End
2985
+ * @see https://tailwindcss.com/docs/scroll-padding
2986
+ */
2987
+ "scroll-pe": [{
2988
+ "scroll-pe": p()
2989
+ }],
2990
+ /**
2991
+ * Scroll Padding Block Start
2992
+ * @see https://tailwindcss.com/docs/scroll-padding
2993
+ */
2994
+ "scroll-pbs": [{
2995
+ "scroll-pbs": p()
2996
+ }],
2997
+ /**
2998
+ * Scroll Padding Block End
2999
+ * @see https://tailwindcss.com/docs/scroll-padding
3000
+ */
3001
+ "scroll-pbe": [{
3002
+ "scroll-pbe": p()
3003
+ }],
3004
+ /**
3005
+ * Scroll Padding Top
3006
+ * @see https://tailwindcss.com/docs/scroll-padding
3007
+ */
3008
+ "scroll-pt": [{
3009
+ "scroll-pt": p()
3010
+ }],
3011
+ /**
3012
+ * Scroll Padding Right
3013
+ * @see https://tailwindcss.com/docs/scroll-padding
3014
+ */
3015
+ "scroll-pr": [{
3016
+ "scroll-pr": p()
3017
+ }],
3018
+ /**
3019
+ * Scroll Padding Bottom
3020
+ * @see https://tailwindcss.com/docs/scroll-padding
3021
+ */
3022
+ "scroll-pb": [{
3023
+ "scroll-pb": p()
3024
+ }],
3025
+ /**
3026
+ * Scroll Padding Left
3027
+ * @see https://tailwindcss.com/docs/scroll-padding
3028
+ */
3029
+ "scroll-pl": [{
3030
+ "scroll-pl": p()
3031
+ }],
3032
+ /**
3033
+ * Scroll Snap Align
3034
+ * @see https://tailwindcss.com/docs/scroll-snap-align
3035
+ */
3036
+ "snap-align": [{
3037
+ snap: ["start", "end", "center", "align-none"]
3038
+ }],
3039
+ /**
3040
+ * Scroll Snap Stop
3041
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
3042
+ */
3043
+ "snap-stop": [{
3044
+ snap: ["normal", "always"]
3045
+ }],
3046
+ /**
3047
+ * Scroll Snap Type
3048
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3049
+ */
3050
+ "snap-type": [{
3051
+ snap: ["none", "x", "y", "both"]
3052
+ }],
3053
+ /**
3054
+ * Scroll Snap Type Strictness
3055
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3056
+ */
3057
+ "snap-strictness": [{
3058
+ snap: ["mandatory", "proximity"]
3059
+ }],
3060
+ /**
3061
+ * Touch Action
3062
+ * @see https://tailwindcss.com/docs/touch-action
3063
+ */
3064
+ touch: [{
3065
+ touch: ["auto", "none", "manipulation"]
3066
+ }],
3067
+ /**
3068
+ * Touch Action X
3069
+ * @see https://tailwindcss.com/docs/touch-action
3070
+ */
3071
+ "touch-x": [{
3072
+ "touch-pan": ["x", "left", "right"]
3073
+ }],
3074
+ /**
3075
+ * Touch Action Y
3076
+ * @see https://tailwindcss.com/docs/touch-action
3077
+ */
3078
+ "touch-y": [{
3079
+ "touch-pan": ["y", "up", "down"]
3080
+ }],
3081
+ /**
3082
+ * Touch Action Pinch Zoom
3083
+ * @see https://tailwindcss.com/docs/touch-action
3084
+ */
3085
+ "touch-pz": ["touch-pinch-zoom"],
3086
+ /**
3087
+ * User Select
3088
+ * @see https://tailwindcss.com/docs/user-select
3089
+ */
3090
+ select: [{
3091
+ select: ["none", "text", "all", "auto"]
3092
+ }],
3093
+ /**
3094
+ * Will Change
3095
+ * @see https://tailwindcss.com/docs/will-change
3096
+ */
3097
+ "will-change": [{
3098
+ "will-change": ["auto", "scroll", "contents", "transform", b, f]
3099
+ }],
3100
+ // -----------
3101
+ // --- SVG ---
3102
+ // -----------
3103
+ /**
3104
+ * Fill
3105
+ * @see https://tailwindcss.com/docs/fill
3106
+ */
3107
+ fill: [{
3108
+ fill: ["none", ...k()]
3109
+ }],
3110
+ /**
3111
+ * Stroke Width
3112
+ * @see https://tailwindcss.com/docs/stroke-width
3113
+ */
3114
+ "stroke-w": [{
3115
+ stroke: [C, me, se, Oe]
3116
+ }],
3117
+ /**
3118
+ * Stroke
3119
+ * @see https://tailwindcss.com/docs/stroke
3120
+ */
3121
+ stroke: [{
3122
+ stroke: ["none", ...k()]
3123
+ }],
3124
+ // ---------------------
3125
+ // --- Accessibility ---
3126
+ // ---------------------
3127
+ /**
3128
+ * Forced Color Adjust
3129
+ * @see https://tailwindcss.com/docs/forced-color-adjust
3130
+ */
3131
+ "forced-color-adjust": [{
3132
+ "forced-color-adjust": ["auto", "none"]
3133
+ }]
3134
+ },
3135
+ conflictingClassGroups: {
3136
+ overflow: ["overflow-x", "overflow-y"],
3137
+ overscroll: ["overscroll-x", "overscroll-y"],
3138
+ inset: ["inset-x", "inset-y", "inset-bs", "inset-be", "start", "end", "top", "right", "bottom", "left"],
3139
+ "inset-x": ["right", "left"],
3140
+ "inset-y": ["top", "bottom"],
3141
+ flex: ["basis", "grow", "shrink"],
3142
+ gap: ["gap-x", "gap-y"],
3143
+ p: ["px", "py", "ps", "pe", "pbs", "pbe", "pt", "pr", "pb", "pl"],
3144
+ px: ["pr", "pl"],
3145
+ py: ["pt", "pb"],
3146
+ m: ["mx", "my", "ms", "me", "mbs", "mbe", "mt", "mr", "mb", "ml"],
3147
+ mx: ["mr", "ml"],
3148
+ my: ["mt", "mb"],
3149
+ size: ["w", "h"],
3150
+ "font-size": ["leading"],
3151
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
3152
+ "fvn-ordinal": ["fvn-normal"],
3153
+ "fvn-slashed-zero": ["fvn-normal"],
3154
+ "fvn-figure": ["fvn-normal"],
3155
+ "fvn-spacing": ["fvn-normal"],
3156
+ "fvn-fraction": ["fvn-normal"],
3157
+ "line-clamp": ["display", "overflow"],
3158
+ rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
3159
+ "rounded-s": ["rounded-ss", "rounded-es"],
3160
+ "rounded-e": ["rounded-se", "rounded-ee"],
3161
+ "rounded-t": ["rounded-tl", "rounded-tr"],
3162
+ "rounded-r": ["rounded-tr", "rounded-br"],
3163
+ "rounded-b": ["rounded-br", "rounded-bl"],
3164
+ "rounded-l": ["rounded-tl", "rounded-bl"],
3165
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
3166
+ "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-bs", "border-w-be", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
3167
+ "border-w-x": ["border-w-r", "border-w-l"],
3168
+ "border-w-y": ["border-w-t", "border-w-b"],
3169
+ "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-bs", "border-color-be", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
3170
+ "border-color-x": ["border-color-r", "border-color-l"],
3171
+ "border-color-y": ["border-color-t", "border-color-b"],
3172
+ translate: ["translate-x", "translate-y", "translate-none"],
3173
+ "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
3174
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mbs", "scroll-mbe", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
3175
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
3176
+ "scroll-my": ["scroll-mt", "scroll-mb"],
3177
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pbs", "scroll-pbe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
3178
+ "scroll-px": ["scroll-pr", "scroll-pl"],
3179
+ "scroll-py": ["scroll-pt", "scroll-pb"],
3180
+ touch: ["touch-x", "touch-y", "touch-pz"],
3181
+ "touch-x": ["touch"],
3182
+ "touch-y": ["touch"],
3183
+ "touch-pz": ["touch"]
3184
+ },
3185
+ conflictingClassGroupModifiers: {
3186
+ "font-size": ["leading"]
3187
+ },
3188
+ orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
3189
+ };
3190
+ }, ls = /* @__PURE__ */ Ft(is);
3191
+ function y(...e) {
3192
+ return ls(Ye(e));
3193
+ }
3194
+ const Le = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, $e = Ye, ot = (e, s) => (r) => {
3195
+ var n;
3196
+ if (s?.variants == null) return $e(e, r?.class, r?.className);
3197
+ const { variants: a, defaultVariants: o } = s, i = Object.keys(a).map((u) => {
3198
+ const g = r?.[u], w = o?.[u];
3199
+ if (g === null) return null;
3200
+ const j = Le(g) || Le(w);
3201
+ return a[u][j];
3202
+ }), c = r && Object.entries(r).reduce((u, g) => {
3203
+ let [w, j] = g;
3204
+ return j === void 0 || (u[w] = j), u;
3205
+ }, {}), l = s == null || (n = s.compoundVariants) === null || n === void 0 ? void 0 : n.reduce((u, g) => {
3206
+ let { class: w, className: j, ...S } = g;
3207
+ return Object.entries(S).every((x) => {
3208
+ let [v, h] = x;
3209
+ return Array.isArray(h) ? h.includes({
3210
+ ...o,
3211
+ ...c
3212
+ }[v]) : {
3213
+ ...o,
3214
+ ...c
3215
+ }[v] === h;
3216
+ }) ? [
3217
+ ...u,
3218
+ w,
3219
+ j
3220
+ ] : u;
3221
+ }, []);
3222
+ return $e(e, i, l, r?.class, r?.className);
3223
+ }, cs = ot(
3224
+ "inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mango-400 disabled:pointer-events-none disabled:opacity-50",
3225
+ {
3226
+ variants: {
3227
+ variant: {
3228
+ primary: "bg-mango-400 text-neutral-950 hover:bg-mango-500 shadow-sm",
3229
+ secondary: "bg-neutral-800 text-white hover:bg-neutral-700",
3230
+ outline: "border border-neutral-300 bg-transparent hover:bg-neutral-50",
3231
+ ghost: "hover:bg-neutral-100 text-neutral-700",
3232
+ danger: "bg-red-500 text-white hover:bg-red-600"
3233
+ },
3234
+ size: {
3235
+ sm: "h-8 px-3 text-xs",
3236
+ md: "h-10 px-4 text-sm",
3237
+ lg: "h-12 px-6 text-base"
3238
+ }
3239
+ },
3240
+ defaultVariants: {
3241
+ variant: "primary",
3242
+ size: "md"
3243
+ }
3244
+ }
3245
+ ), ds = ue.forwardRef(
3246
+ ({ className: e, variant: s, size: r, isLoading: n, leftIcon: a, rightIcon: o, children: i, disabled: c, ...l }, u) => /* @__PURE__ */ t.jsxs(
3247
+ "button",
3248
+ {
3249
+ ref: u,
3250
+ className: y(cs({ variant: s, size: r }), e),
3251
+ disabled: c || n,
3252
+ ...l,
3253
+ children: [
3254
+ n && /* @__PURE__ */ t.jsxs(
3255
+ "svg",
3256
+ {
3257
+ className: "mr-2 h-4 w-4 animate-spin",
3258
+ xmlns: "http://www.w3.org/2000/svg",
3259
+ fill: "none",
3260
+ viewBox: "0 0 24 24",
3261
+ children: [
3262
+ /* @__PURE__ */ t.jsx(
3263
+ "circle",
3264
+ {
3265
+ className: "opacity-25",
3266
+ cx: "12",
3267
+ cy: "12",
3268
+ r: "10",
3269
+ stroke: "currentColor",
3270
+ strokeWidth: "4"
3271
+ }
3272
+ ),
3273
+ /* @__PURE__ */ t.jsx(
3274
+ "path",
3275
+ {
3276
+ className: "opacity-75",
3277
+ fill: "currentColor",
3278
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
3279
+ }
3280
+ )
3281
+ ]
3282
+ }
3283
+ ),
3284
+ !n && a && /* @__PURE__ */ t.jsx("span", { className: "mr-2", children: a }),
3285
+ i,
3286
+ !n && o && /* @__PURE__ */ t.jsx("span", { className: "ml-2", children: o })
3287
+ ]
3288
+ }
3289
+ )
3290
+ );
3291
+ ds.displayName = "Button";
3292
+ const ms = ({
3293
+ children: e,
3294
+ variant: s = "primary",
3295
+ size: r = "md",
3296
+ pill: n = !1,
3297
+ icon: a,
3298
+ className: o = ""
3299
+ }) => /* @__PURE__ */ t.jsxs(
3300
+ "span",
3301
+ {
3302
+ className: y(
3303
+ "badge-root",
3304
+ `badge-${s}`,
3305
+ `badge-${r}`,
3306
+ n && "badge-pill",
3307
+ o
3308
+ ),
3309
+ children: [
3310
+ a && /* @__PURE__ */ t.jsx(a, { size: 14, className: "badge-icon" }),
3311
+ e
3312
+ ]
3313
+ }
3314
+ );
3315
+ ms.displayName = "Badge";
3316
+ const us = ot(
3317
+ "relative flex shrink-0 overflow-hidden rounded-full border border-neutral-700 bg-neutral-800",
3318
+ {
3319
+ variants: {
3320
+ size: {
3321
+ xs: "h-6 w-6 text-[0.6rem]",
3322
+ sm: "h-8 w-8 text-xs",
3323
+ md: "h-10 w-10 text-sm",
3324
+ lg: "h-12 w-12 text-base",
3325
+ xl: "h-16 w-16 text-lg"
3326
+ }
3327
+ },
3328
+ defaultVariants: {
3329
+ size: "md"
3330
+ }
3331
+ }
3332
+ ), hs = ({
3333
+ className: e,
3334
+ size: s,
3335
+ src: r,
3336
+ alt: n,
3337
+ fallback: a,
3338
+ ...o
3339
+ }) => {
3340
+ const [i, c] = ue.useState(!1);
3341
+ return /* @__PURE__ */ t.jsx(
3342
+ "div",
3343
+ {
3344
+ className: y(us({ size: s }), e),
3345
+ ...o,
3346
+ children: r && !i ? /* @__PURE__ */ t.jsx(
3347
+ "img",
3348
+ {
3349
+ src: r,
3350
+ alt: n,
3351
+ className: "aspect-square h-full w-full object-cover",
3352
+ onError: () => c(!0)
3353
+ }
3354
+ ) : /* @__PURE__ */ t.jsx("div", { className: "flex h-full w-full items-center justify-center bg-neutral-800 text-neutral-400 font-medium", children: a || (n ? n.substring(0, 2).toUpperCase() : "??") })
3355
+ }
3356
+ );
3357
+ };
3358
+ hs.displayName = "Avatar";
3359
+ const ps = ue.forwardRef(
3360
+ ({ className: e, label: s, error: r, ...n }, a) => /* @__PURE__ */ t.jsxs("div", { className: "w-full space-y-1.5", children: [
3361
+ s && /* @__PURE__ */ t.jsx("label", { className: "text-sm font-medium text-neutral-400", children: s }),
3362
+ /* @__PURE__ */ t.jsx(
3363
+ "input",
3364
+ {
3365
+ ref: a,
3366
+ className: y(
3367
+ "flex h-10 w-full rounded-md border border-neutral-700 bg-neutral-800 px-3 py-2 text-sm text-white placeholder:text-neutral-500 focus:outline-none focus:ring-2 focus:ring-mango-400 disabled:cursor-not-allowed disabled:opacity-50 transition-all",
3368
+ r && "border-red-500 focus:ring-red-500",
3369
+ e
3370
+ ),
3371
+ ...n
3372
+ }
3373
+ ),
3374
+ r && /* @__PURE__ */ t.jsx("p", { className: "text-xs text-red-500", children: r })
3375
+ ] })
3376
+ );
3377
+ ps.displayName = "Input";
3378
+ const Fr = ({ className: e, hoverable: s, children: r, ...n }) => /* @__PURE__ */ t.jsx(
3379
+ "div",
3380
+ {
3381
+ className: y(
3382
+ "rounded-xl border border-neutral-800 bg-neutral-900/50 p-6 text-white shadow-sm backdrop-blur-sm",
3383
+ s && "transition-all hover:border-mango-400/50 hover:bg-neutral-800/50 cursor-pointer",
3384
+ e
3385
+ ),
3386
+ ...n,
3387
+ children: r
3388
+ }
3389
+ ), Vr = ({ className: e, children: s, ...r }) => /* @__PURE__ */ t.jsx("div", { className: y("mb-4 flex flex-col space-y-1.5", e), ...r, children: s }), Ur = ({ className: e, children: s, ...r }) => /* @__PURE__ */ t.jsx("h3", { className: y("text-lg font-semibold leading-none tracking-tight", e), ...r, children: s }), Gr = ({ className: e, children: s, ...r }) => /* @__PURE__ */ t.jsx("div", { className: y("pt-0", e), ...r, children: s }), Wr = ({ isOpen: e, onClose: s, title: r, children: n, className: a }) => (ue.useEffect(() => (e ? document.body.style.overflow = "hidden" : document.body.style.overflow = "unset", () => {
3390
+ document.body.style.overflow = "unset";
3391
+ }), [e]), e ? /* @__PURE__ */ t.jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
3392
+ /* @__PURE__ */ t.jsx(
3393
+ "div",
3394
+ {
3395
+ className: "fixed inset-0 bg-black/80 backdrop-blur-sm transition-opacity",
3396
+ onClick: s
3397
+ }
3398
+ ),
3399
+ /* @__PURE__ */ t.jsxs("div", { className: y(
3400
+ "relative w-full max-w-lg rounded-2xl border border-neutral-800 bg-neutral-900 p-6 shadow-2xl animate-in fade-in zoom-in duration-200",
3401
+ a
3402
+ ), children: [
3403
+ /* @__PURE__ */ t.jsxs("div", { className: "mb-6 flex items-center justify-between", children: [
3404
+ r && /* @__PURE__ */ t.jsx("h2", { className: "text-xl font-bold text-white", children: r }),
3405
+ /* @__PURE__ */ t.jsx(
3406
+ "button",
3407
+ {
3408
+ onClick: s,
3409
+ className: "rounded-full p-1 text-neutral-400 hover:bg-neutral-800 hover:text-white transition-all",
3410
+ children: /* @__PURE__ */ t.jsx("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
3411
+ }
3412
+ )
3413
+ ] }),
3414
+ /* @__PURE__ */ t.jsx("div", { className: "text-neutral-300", children: n })
3415
+ ] })
3416
+ ] }) : null), fs = ({
3417
+ checked: e = !1,
3418
+ onChange: s,
3419
+ disabled: r = !1,
3420
+ label: n,
3421
+ size: a = "md",
3422
+ className: o = ""
3423
+ }) => /* @__PURE__ */ t.jsxs(
3424
+ "div",
3425
+ {
3426
+ className: y("toggle-container", `toggle-${a}`, o),
3427
+ onClick: () => !r && s?.(!e),
3428
+ children: [
3429
+ /* @__PURE__ */ t.jsx("div", { className: y("toggle-root", e && "checked", r && "disabled"), children: /* @__PURE__ */ t.jsx("div", { className: "toggle-thumb" }) }),
3430
+ n && /* @__PURE__ */ t.jsx("span", { className: "toggle-label", children: n })
3431
+ ]
3432
+ }
3433
+ );
3434
+ fs.displayName = "Toggle";
3435
+ const it = (...e) => e.filter((s, r, n) => !!s && s.trim() !== "" && n.indexOf(s) === r).join(" ").trim();
3436
+ const bs = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
3437
+ const gs = (e) => e.replace(
3438
+ /^([A-Z])|[\s-_]+(\w)/g,
3439
+ (s, r, n) => n ? n.toUpperCase() : r.toLowerCase()
3440
+ );
3441
+ const Fe = (e) => {
3442
+ const s = gs(e);
3443
+ return s.charAt(0).toUpperCase() + s.slice(1);
3444
+ };
3445
+ var xs = {
3446
+ xmlns: "http://www.w3.org/2000/svg",
3447
+ width: 24,
3448
+ height: 24,
3449
+ viewBox: "0 0 24 24",
3450
+ fill: "none",
3451
+ stroke: "currentColor",
3452
+ strokeWidth: 2,
3453
+ strokeLinecap: "round",
3454
+ strokeLinejoin: "round"
3455
+ };
3456
+ const vs = (e) => {
3457
+ for (const s in e)
3458
+ if (s.startsWith("aria-") || s === "role" || s === "title")
3459
+ return !0;
3460
+ return !1;
3461
+ };
3462
+ const ys = Ge(
3463
+ ({
3464
+ color: e = "currentColor",
3465
+ size: s = 24,
3466
+ strokeWidth: r = 2,
3467
+ absoluteStrokeWidth: n,
3468
+ className: a = "",
3469
+ children: o,
3470
+ iconNode: i,
3471
+ ...c
3472
+ }, l) => Ne(
3473
+ "svg",
3474
+ {
3475
+ ref: l,
3476
+ ...xs,
3477
+ width: s,
3478
+ height: s,
3479
+ stroke: e,
3480
+ strokeWidth: n ? Number(r) * 24 / Number(s) : r,
3481
+ className: it("lucide", a),
3482
+ ...!o && !vs(c) && { "aria-hidden": "true" },
3483
+ ...c
3484
+ },
3485
+ [
3486
+ ...i.map(([u, g]) => Ne(u, g)),
3487
+ ...Array.isArray(o) ? o : [o]
3488
+ ]
3489
+ )
3490
+ );
3491
+ const _ = (e, s) => {
3492
+ const r = Ge(
3493
+ ({ className: n, ...a }, o) => Ne(ys, {
3494
+ ref: o,
3495
+ iconNode: s,
3496
+ className: it(
3497
+ `lucide-${bs(Fe(e))}`,
3498
+ `lucide-${e}`,
3499
+ n
3500
+ ),
3501
+ ...a
3502
+ })
3503
+ );
3504
+ return r.displayName = Fe(e), r;
3505
+ };
3506
+ const ks = [
3507
+ ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
3508
+ [
3509
+ "path",
3510
+ {
3511
+ d: "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",
3512
+ key: "11g9vi"
3513
+ }
3514
+ ]
3515
+ ], ws = _("bell", ks);
3516
+ const js = [
3517
+ ["path", { d: "M8 2v4", key: "1cmpym" }],
3518
+ ["path", { d: "M16 2v4", key: "4m81vk" }],
3519
+ ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
3520
+ ["path", { d: "M3 10h18", key: "8toen8" }]
3521
+ ], lt = _("calendar", js);
3522
+ const Ns = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]], ct = _("check", Ns);
3523
+ const Cs = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]], le = _("chevron-down", Cs);
3524
+ const Ss = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]], dt = _("chevron-left", Ss);
3525
+ const zs = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]], _e = _("chevron-right", zs);
3526
+ const _s = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]], Ve = _("chevron-up", _s);
3527
+ const Ms = [
3528
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3529
+ ["path", { d: "m16 12-4-4-4 4", key: "177agl" }],
3530
+ ["path", { d: "M12 16V8", key: "1sbj14" }]
3531
+ ], As = _("circle-arrow-up", Ms);
3532
+ const Ts = [
3533
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3534
+ ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }]
3535
+ ], Rs = _("clock", Ts);
3536
+ const Ds = [
3537
+ [
3538
+ "path",
3539
+ {
3540
+ d: "M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",
3541
+ key: "1vdc57"
3542
+ }
3543
+ ],
3544
+ ["path", { d: "M5 21h14", key: "11awu3" }]
3545
+ ], Es = _("crown", Ds);
3546
+ const Os = [
3547
+ [
3548
+ "path",
3549
+ {
3550
+ d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
3551
+ key: "1oefj6"
3552
+ }
3553
+ ],
3554
+ ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
3555
+ ["path", { d: "M10 9H8", key: "b1mrlr" }],
3556
+ ["path", { d: "M16 13H8", key: "t4e002" }],
3557
+ ["path", { d: "M16 17H8", key: "z1uh3a" }]
3558
+ ], Ps = _("file-text", Os);
3559
+ const Is = [
3560
+ [
3561
+ "path",
3562
+ {
3563
+ d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
3564
+ key: "1oefj6"
3565
+ }
3566
+ ],
3567
+ ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }]
3568
+ ], Ls = _("file", Is);
3569
+ const $s = [
3570
+ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
3571
+ ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
3572
+ ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
3573
+ ], Fs = _("image", $s);
3574
+ const Vs = [
3575
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3576
+ ["path", { d: "M12 16v-4", key: "1dtifu" }],
3577
+ ["path", { d: "M12 8h.01", key: "e9boi3" }]
3578
+ ], Ue = _("info", Vs);
3579
+ const Us = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]], Gs = _("loader-circle", Us);
3580
+ const Ws = [
3581
+ ["path", { d: "m16 17 5-5-5-5", key: "1bji2h" }],
3582
+ ["path", { d: "M21 12H9", key: "dn1m92" }],
3583
+ ["path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", key: "1uf3rs" }]
3584
+ ], Ys = _("log-out", Ws);
3585
+ const Bs = [
3586
+ ["path", { d: "M4 5h16", key: "1tepv9" }],
3587
+ ["path", { d: "M4 12h16", key: "1lakjw" }],
3588
+ ["path", { d: "M4 19h16", key: "1djgab" }]
3589
+ ], Hs = _("menu", Bs);
3590
+ const qs = [
3591
+ [
3592
+ "path",
3593
+ {
3594
+ d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",
3595
+ key: "kfwtm"
3596
+ }
3597
+ ]
3598
+ ], Js = _("moon", qs);
3599
+ const Xs = [
3600
+ ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
3601
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
3602
+ ], Zs = _("search", Xs);
3603
+ const Qs = [
3604
+ [
3605
+ "path",
3606
+ {
3607
+ d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",
3608
+ key: "1i5ecw"
3609
+ }
3610
+ ],
3611
+ ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
3612
+ ], Ks = _("settings", Qs);
3613
+ const er = [
3614
+ [
3615
+ "path",
3616
+ {
3617
+ d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",
3618
+ key: "r04s7s"
3619
+ }
3620
+ ]
3621
+ ], tr = _("star", er);
3622
+ const sr = [
3623
+ ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
3624
+ ["path", { d: "M12 2v2", key: "tus03m" }],
3625
+ ["path", { d: "M12 20v2", key: "1lh1kg" }],
3626
+ ["path", { d: "m4.93 4.93 1.41 1.41", key: "149t6j" }],
3627
+ ["path", { d: "m17.66 17.66 1.41 1.41", key: "ptbguv" }],
3628
+ ["path", { d: "M2 12h2", key: "1t8f8n" }],
3629
+ ["path", { d: "M20 12h2", key: "1q8mjw" }],
3630
+ ["path", { d: "m6.34 17.66-1.41 1.41", key: "1m8zz5" }],
3631
+ ["path", { d: "m19.07 4.93-1.41 1.41", key: "1shlcs" }]
3632
+ ], rr = _("sun", sr);
3633
+ const nr = [
3634
+ ["path", { d: "M10 11v6", key: "nco0om" }],
3635
+ ["path", { d: "M14 11v6", key: "outv1u" }],
3636
+ ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", key: "miytrc" }],
3637
+ ["path", { d: "M3 6h18", key: "d0wm0j" }],
3638
+ ["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2", key: "e791ji" }]
3639
+ ], ar = _("trash-2", nr);
3640
+ const or = [
3641
+ ["path", { d: "M16 17h6v-6", key: "t6n2it" }],
3642
+ ["path", { d: "m22 17-8.5-8.5-5 5L2 7", key: "x473p" }]
3643
+ ], ir = _("trending-down", or);
3644
+ const lr = [
3645
+ ["path", { d: "M16 7h6v6", key: "box55l" }],
3646
+ ["path", { d: "m22 7-8.5 8.5-5-5L2 17", key: "1t1m79" }]
3647
+ ], cr = _("trending-up", lr);
3648
+ const dr = [
3649
+ [
3650
+ "path",
3651
+ {
3652
+ 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",
3653
+ key: "wmoenq"
3654
+ }
3655
+ ],
3656
+ ["path", { d: "M12 9v4", key: "juzpu7" }],
3657
+ ["path", { d: "M12 17h.01", key: "p32p05" }]
3658
+ ], mr = _("triangle-alert", dr);
3659
+ const ur = [
3660
+ ["path", { d: "M12 3v12", key: "1x0j5s" }],
3661
+ ["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
3662
+ ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
3663
+ ], hr = _("upload", ur);
3664
+ const pr = [
3665
+ ["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
3666
+ ["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
3667
+ ], fr = _("user", pr);
3668
+ const br = [
3669
+ ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
3670
+ ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
3671
+ ], he = _("x", br), gr = ({ title: e, content: s, isOpen: r, onClick: n, icon: a }) => /* @__PURE__ */ t.jsxs("div", { className: y("accordion-item", r && "open"), children: [
3672
+ /* @__PURE__ */ t.jsxs("div", { className: "accordion-trigger", onClick: n, children: [
3673
+ /* @__PURE__ */ t.jsxs("div", { className: "trigger-left", children: [
3674
+ a && /* @__PURE__ */ t.jsx(a, { size: 20, className: "accordion-icon" }),
3675
+ /* @__PURE__ */ t.jsx("span", { className: "accordion-title", children: e })
3676
+ ] }),
3677
+ /* @__PURE__ */ t.jsx(le, { size: 18, className: "accordion-arrow" })
3678
+ ] }),
3679
+ /* @__PURE__ */ t.jsx("div", { className: "accordion-content-wrapper", children: /* @__PURE__ */ t.jsx("div", { className: "accordion-content", children: s }) })
3680
+ ] }), xr = ({
3681
+ items: e = [],
3682
+ allowMultiple: s = !1,
3683
+ className: r,
3684
+ defaultOpen: n = [0]
3685
+ }) => {
3686
+ const [a, o] = L(n), i = (c) => {
3687
+ o(
3688
+ s ? (l) => l.includes(c) ? l.filter((u) => u !== c) : [...l, c] : (l) => l.includes(c) ? [] : [c]
3689
+ );
3690
+ };
3691
+ return /* @__PURE__ */ t.jsx("div", { className: y("accordion-container", r), children: e.map((c, l) => /* @__PURE__ */ t.jsx(
3692
+ gr,
3693
+ {
3694
+ ...c,
3695
+ isOpen: a.includes(l),
3696
+ onClick: () => i(l)
3697
+ },
3698
+ l
3699
+ )) });
3700
+ };
3701
+ xr.displayName = "Accordion";
3702
+ const vr = ({
3703
+ theme: e = "light",
3704
+ onToggleTheme: s,
3705
+ onToggleSidebar: r,
3706
+ user: n,
3707
+ onLogout: a,
3708
+ onUpgrade: o,
3709
+ subscriptionPlan: i,
3710
+ searchPlaceholder: c = "Search...",
3711
+ onSearch: l,
3712
+ notificationCount: u = 0,
3713
+ className: g
3714
+ }) => {
3715
+ const [w, j] = L(!1), S = re(null);
3716
+ H(() => {
3717
+ const v = (h) => {
3718
+ S.current && !S.current.contains(h.target) && j(!1);
3719
+ };
3720
+ return document.addEventListener("mousedown", v), () => document.removeEventListener("mousedown", v);
3721
+ }, []);
3722
+ const x = i?.toLowerCase() === "free";
3723
+ return /* @__PURE__ */ t.jsxs("header", { className: y("app-bar", g), children: [
3724
+ r && /* @__PURE__ */ t.jsx(
3725
+ "button",
3726
+ {
3727
+ className: "menu-toggle-btn",
3728
+ onClick: r,
3729
+ title: "Toggle Sidebar",
3730
+ children: /* @__PURE__ */ t.jsx(Hs, { size: 20 })
3731
+ }
3732
+ ),
3733
+ /* @__PURE__ */ t.jsx("div", { className: "search-container", children: /* @__PURE__ */ t.jsx(
3734
+ "input",
3735
+ {
3736
+ type: "text",
3737
+ placeholder: c,
3738
+ className: "search-input-full",
3739
+ onChange: (v) => l?.(v.target.value)
3740
+ }
3741
+ ) }),
3742
+ /* @__PURE__ */ t.jsxs("div", { className: "app-bar-actions", children: [
3743
+ i && /* @__PURE__ */ t.jsxs("div", { className: y("plan-badge", i.toLowerCase()), children: [
3744
+ /* @__PURE__ */ t.jsx(Es, { size: 14, className: "medal-icon" }),
3745
+ /* @__PURE__ */ t.jsxs("span", { children: [
3746
+ i,
3747
+ " Plan"
3748
+ ] })
3749
+ ] }),
3750
+ x && o && /* @__PURE__ */ t.jsxs("button", { className: "upgrade-btn", onClick: o, children: [
3751
+ /* @__PURE__ */ t.jsx(As, { size: 18 }),
3752
+ /* @__PURE__ */ t.jsx("span", { children: "Upgrade" })
3753
+ ] }),
3754
+ /* @__PURE__ */ t.jsx("div", { className: "divider" }),
3755
+ s && /* @__PURE__ */ t.jsx(
3756
+ "button",
3757
+ {
3758
+ className: "icon-btn",
3759
+ onClick: s,
3760
+ title: "Toggle Theme",
3761
+ children: e === "light" ? /* @__PURE__ */ t.jsx(Js, { size: 20 }) : /* @__PURE__ */ t.jsx(rr, { size: 20 })
3762
+ }
3763
+ ),
3764
+ /* @__PURE__ */ t.jsxs("button", { className: "icon-btn notification-btn", children: [
3765
+ /* @__PURE__ */ t.jsx(ws, { size: 20 }),
3766
+ u > 0 && /* @__PURE__ */ t.jsx("span", { className: "notification-dot" })
3767
+ ] }),
3768
+ /* @__PURE__ */ t.jsxs("div", { className: "user-profile", ref: S, children: [
3769
+ /* @__PURE__ */ t.jsxs(
3770
+ "div",
3771
+ {
3772
+ className: "user-profile-trigger",
3773
+ onClick: () => j(!w),
3774
+ children: [
3775
+ /* @__PURE__ */ t.jsx("div", { className: "user-avatar", children: n?.avatarUrl ? /* @__PURE__ */ t.jsx("img", { src: n.avatarUrl, alt: n.fullName || "User" }) : /* @__PURE__ */ t.jsx("div", { className: "w-full h-full flex items-center justify-center text-white font-bold text-sm", children: n?.fullName?.[0] ?? "U" }) }),
3776
+ /* @__PURE__ */ t.jsxs("div", { className: "user-details", children: [
3777
+ /* @__PURE__ */ t.jsx("span", { className: "user-name", children: n?.fullName || "User" }),
3778
+ /* @__PURE__ */ t.jsx(le, { size: 14, className: y("dropdown-icon", w && "rotated") })
3779
+ ] })
3780
+ ]
3781
+ }
3782
+ ),
3783
+ w && /* @__PURE__ */ t.jsxs("div", { className: "user-dropdown-menu", children: [
3784
+ /* @__PURE__ */ t.jsx("div", { className: "dropdown-header", children: /* @__PURE__ */ t.jsxs("div", { className: "dropdown-user-info", children: [
3785
+ /* @__PURE__ */ t.jsx("span", { className: "dropdown-name", children: n?.fullName || "User" }),
3786
+ /* @__PURE__ */ t.jsx("span", { className: "dropdown-email", children: n?.email || "user@example.com" })
3787
+ ] }) }),
3788
+ /* @__PURE__ */ t.jsx("div", { className: "dropdown-divider" }),
3789
+ /* @__PURE__ */ t.jsxs("button", { className: "dropdown-item", children: [
3790
+ /* @__PURE__ */ t.jsx(fr, { size: 16 }),
3791
+ /* @__PURE__ */ t.jsx("span", { children: "My Profile" })
3792
+ ] }),
3793
+ /* @__PURE__ */ t.jsxs("button", { className: "dropdown-item", children: [
3794
+ /* @__PURE__ */ t.jsx(Ks, { size: 16 }),
3795
+ /* @__PURE__ */ t.jsx("span", { children: "Settings" })
3796
+ ] }),
3797
+ /* @__PURE__ */ t.jsx("div", { className: "dropdown-divider" }),
3798
+ /* @__PURE__ */ t.jsxs("button", { className: "dropdown-item logout", onClick: () => {
3799
+ j(!1), a?.();
3800
+ }, children: [
3801
+ /* @__PURE__ */ t.jsx(Ys, { size: 16 }),
3802
+ /* @__PURE__ */ t.jsx("span", { children: "Logout" })
3803
+ ] })
3804
+ ] })
3805
+ ] })
3806
+ ] })
3807
+ ] });
3808
+ };
3809
+ vr.displayName = "AppBar";
3810
+ const yr = ({
3811
+ users: e = [],
3812
+ max: s = 3,
3813
+ size: r = 32,
3814
+ className: n
3815
+ }) => {
3816
+ const a = e.slice(0, s), o = e.length - s;
3817
+ return /* @__PURE__ */ t.jsxs(
3818
+ "div",
3819
+ {
3820
+ className: y("avatar-group", n),
3821
+ style: { height: r },
3822
+ children: [
3823
+ a.map((i, c) => /* @__PURE__ */ t.jsx(
3824
+ "div",
3825
+ {
3826
+ className: "avatar-item",
3827
+ style: {
3828
+ width: r,
3829
+ height: r,
3830
+ zIndex: a.length - c
3831
+ },
3832
+ title: i.name,
3833
+ children: i.image ? /* @__PURE__ */ t.jsx("img", { src: i.image, alt: i.name }) : /* @__PURE__ */ t.jsx("div", { className: "avatar-placeholder", children: i.name?.split(" ").map((l) => l[0]).join("").slice(0, 2) })
3834
+ },
3835
+ c
3836
+ )),
3837
+ o > 0 && /* @__PURE__ */ t.jsxs(
3838
+ "div",
3839
+ {
3840
+ className: "avatar-extra",
3841
+ style: {
3842
+ width: r,
3843
+ height: r,
3844
+ zIndex: 0
3845
+ },
3846
+ children: [
3847
+ "+",
3848
+ o
3849
+ ]
3850
+ }
3851
+ )
3852
+ ]
3853
+ }
3854
+ );
3855
+ };
3856
+ yr.displayName = "AvatarGroup";
3857
+ const kr = ({
3858
+ items: e = [],
3859
+ separator: s = /* @__PURE__ */ t.jsx(_e, { size: 14 }),
3860
+ className: r = ""
3861
+ }) => /* @__PURE__ */ t.jsx("nav", { className: y("breadcrumbs-container", r), "aria-label": "Breadcrumb", children: e.map((n, a) => {
3862
+ const o = a === e.length - 1, i = n.icon;
3863
+ return /* @__PURE__ */ t.jsxs(ut, { children: [
3864
+ /* @__PURE__ */ t.jsxs("div", { className: y("breadcrumb-item", o && "active"), children: [
3865
+ i && /* @__PURE__ */ t.jsx("span", { className: "breadcrumb-icon", children: /* @__PURE__ */ t.jsx(i, { size: 16 }) }),
3866
+ o || !n.href ? /* @__PURE__ */ t.jsx("span", { className: "breadcrumb-text", children: n.label }) : /* @__PURE__ */ t.jsx("a", { href: n.href, className: "breadcrumb-link", children: n.label })
3867
+ ] }),
3868
+ !o && /* @__PURE__ */ t.jsx("span", { className: "breadcrumb-separator", children: s })
3869
+ ] }, n.label);
3870
+ }) });
3871
+ kr.displayName = "Breadcrumbs";
3872
+ const wr = ({
3873
+ isOpen: e,
3874
+ onClose: s,
3875
+ title: r,
3876
+ subtitle: n,
3877
+ children: a,
3878
+ footer: o,
3879
+ width: i = "420px",
3880
+ className: c = ""
3881
+ }) => (H(() => {
3882
+ const l = (u) => {
3883
+ u.key === "Escape" && s();
3884
+ };
3885
+ return e && (window.addEventListener("keydown", l), document.body.style.overflow = "hidden"), () => {
3886
+ window.removeEventListener("keydown", l), document.body.style.overflow = "unset";
3887
+ };
3888
+ }, [e, s]), e ? bt(
3889
+ /* @__PURE__ */ t.jsx("div", { className: y("drawer-overlay", e && "active"), onClick: s, children: /* @__PURE__ */ t.jsxs(
3890
+ "div",
3891
+ {
3892
+ className: y("common-side-drawer", c, e && "open"),
3893
+ style: { "--drawer-width": i },
3894
+ onClick: (l) => l.stopPropagation(),
3895
+ children: [
3896
+ /* @__PURE__ */ t.jsxs("header", { className: "drawer-header", children: [
3897
+ /* @__PURE__ */ t.jsxs("div", { className: "header-text", children: [
3898
+ /* @__PURE__ */ t.jsx("h2", { children: r }),
3899
+ n && /* @__PURE__ */ t.jsx("p", { className: "subtitle", children: n })
3900
+ ] }),
3901
+ /* @__PURE__ */ t.jsx("button", { className: "close-btn", onClick: s, "aria-label": "Close", children: /* @__PURE__ */ t.jsx(he, { size: 24 }) })
3902
+ ] }),
3903
+ /* @__PURE__ */ t.jsx("div", { className: "drawer-body", children: a }),
3904
+ o && /* @__PURE__ */ t.jsx("footer", { className: "drawer-footer", children: o })
3905
+ ]
3906
+ }
3907
+ ) }),
3908
+ document.body
3909
+ ) : null);
3910
+ wr.displayName = "Drawer";
3911
+ const jr = ({
3912
+ options: e = [],
3913
+ value: s,
3914
+ onChange: r,
3915
+ placeholder: n = "Select option",
3916
+ label: a = "Select",
3917
+ icon: o,
3918
+ className: i = "",
3919
+ footer: c,
3920
+ searchable: l = !1,
3921
+ disabled: u = !1
3922
+ }) => {
3923
+ const [g, w] = L(!1), [j, S] = L(""), x = re(null), v = e.find((m) => m.id === s), h = e.filter((m) => {
3924
+ const z = m.name || "", R = m.details || "";
3925
+ return z.toLowerCase().includes(j.toLowerCase()) || R.toLowerCase().includes(j.toLowerCase());
3926
+ });
3927
+ return H(() => {
3928
+ g || S("");
3929
+ }, [g]), H(() => {
3930
+ const m = (z) => {
3931
+ x.current && !x.current.contains(z.target) && w(!1);
3932
+ };
3933
+ return document.addEventListener("mousedown", m), () => document.removeEventListener("mousedown", m);
3934
+ }, []), /* @__PURE__ */ t.jsxs("div", { className: y("app-dropdown", i, g && "is-open", u && "disabled"), ref: x, children: [
3935
+ /* @__PURE__ */ t.jsxs(
3936
+ "div",
3937
+ {
3938
+ className: y("app-dropdown-trigger", g && "active", u && "disabled"),
3939
+ onClick: () => !u && w(!g),
3940
+ children: [
3941
+ o && /* @__PURE__ */ t.jsx(o, { size: 18, className: "trigger-icon" }),
3942
+ /* @__PURE__ */ t.jsx("span", { className: "trigger-text", children: v ? v.name : n }),
3943
+ /* @__PURE__ */ t.jsx(le, { size: 14, className: y("arrow-icon", g && "rotated") })
3944
+ ]
3945
+ }
3946
+ ),
3947
+ g && /* @__PURE__ */ t.jsxs("div", { className: "app-dropdown-menu", children: [
3948
+ a && /* @__PURE__ */ t.jsx("div", { className: "menu-label", children: a }),
3949
+ l && /* @__PURE__ */ t.jsx(
3950
+ "input",
3951
+ {
3952
+ type: "text",
3953
+ className: "menu-search-input",
3954
+ placeholder: "Type to search...",
3955
+ value: j,
3956
+ onChange: (m) => S(m.target.value),
3957
+ autoFocus: !0,
3958
+ onClick: (m) => m.stopPropagation()
3959
+ }
3960
+ ),
3961
+ /* @__PURE__ */ t.jsx("div", { className: "menu-scroll", children: h.length > 0 ? h.map((m) => /* @__PURE__ */ t.jsxs(
3962
+ "div",
3963
+ {
3964
+ className: y("menu-option", m.id === s && "selected"),
3965
+ onClick: () => {
3966
+ r(m.id), w(!1);
3967
+ },
3968
+ children: [
3969
+ m.icon && /* @__PURE__ */ t.jsx("div", { className: "option-icon", children: m.icon }),
3970
+ /* @__PURE__ */ t.jsxs("div", { className: "option-content", children: [
3971
+ /* @__PURE__ */ t.jsx("span", { className: "option-name", children: m.name }),
3972
+ m.details && /* @__PURE__ */ t.jsx("span", { className: "option-details", children: m.details })
3973
+ ] }),
3974
+ m.id === s && /* @__PURE__ */ t.jsx(ct, { size: 14, className: "check-icon" })
3975
+ ]
3976
+ },
3977
+ m.id
3978
+ )) : /* @__PURE__ */ t.jsx("div", { className: "no-options-found", children: "No results found" }) }),
3979
+ c && /* @__PURE__ */ t.jsx("div", { className: "app-dropdown-footer", children: c })
3980
+ ] })
3981
+ ] });
3982
+ };
3983
+ jr.displayName = "Dropdown";
3984
+ const Nr = ({
3985
+ onFilesSelected: e,
3986
+ accept: s = "*",
3987
+ multiple: r = !0,
3988
+ label: n = "Upload Files",
3989
+ className: a = ""
3990
+ }) => {
3991
+ const [o, i] = L([]), [c, l] = L(!1), u = re(null), g = (m) => {
3992
+ m.preventDefault(), l(!0);
3993
+ }, w = () => {
3994
+ l(!1);
3995
+ }, j = (m) => {
3996
+ m.preventDefault(), l(!1);
3997
+ const z = Array.from(m.dataTransfer.files);
3998
+ x(z);
3999
+ }, S = (m) => {
4000
+ if (m.target.files) {
4001
+ const z = Array.from(m.target.files);
4002
+ x(z);
4003
+ }
4004
+ }, x = (m) => {
4005
+ const z = m.filter((P) => s === "*" ? !0 : s.split(",").some((V) => P.name.endsWith(V.trim()))), R = r ? [...o, ...z] : [z[0]].filter(Boolean);
4006
+ i(R), e && e(R);
4007
+ }, v = (m) => {
4008
+ const z = o.filter((R, P) => P !== m);
4009
+ i(z), e && e(z);
4010
+ }, h = (m) => m.startsWith("image/") ? /* @__PURE__ */ t.jsx(Fs, { size: 20 }) : m.includes("pdf") ? /* @__PURE__ */ t.jsx(Ps, { size: 20 }) : /* @__PURE__ */ t.jsx(Ls, { size: 20 });
4011
+ return /* @__PURE__ */ t.jsxs("div", { className: y("dropzone-container", a), children: [
4012
+ /* @__PURE__ */ t.jsxs(
4013
+ "div",
4014
+ {
4015
+ className: y("dropzone-area", c && "dragging"),
4016
+ onDragOver: g,
4017
+ onDragLeave: w,
4018
+ onDrop: j,
4019
+ onClick: () => u.current?.click(),
4020
+ children: [
4021
+ /* @__PURE__ */ t.jsx(
4022
+ "input",
4023
+ {
4024
+ type: "file",
4025
+ hidden: !0,
4026
+ ref: u,
4027
+ onChange: S,
4028
+ accept: s,
4029
+ multiple: r
4030
+ }
4031
+ ),
4032
+ /* @__PURE__ */ t.jsxs("div", { className: "dropzone-content", children: [
4033
+ /* @__PURE__ */ t.jsx("div", { className: "icon-circle", children: /* @__PURE__ */ t.jsx(hr, { size: 24 }) }),
4034
+ /* @__PURE__ */ t.jsx("h3", { children: n }),
4035
+ /* @__PURE__ */ t.jsx("p", { children: "Drag and drop or click to browse" }),
4036
+ /* @__PURE__ */ t.jsxs("span", { className: "file-hint", children: [
4037
+ "Supports: ",
4038
+ s === "*" ? "All files" : s
4039
+ ] })
4040
+ ] })
4041
+ ]
4042
+ }
4043
+ ),
4044
+ o.length > 0 && /* @__PURE__ */ t.jsx("div", { className: "files-list animate-fade-in", children: o.map((m, z) => /* @__PURE__ */ t.jsxs("div", { className: "file-item", children: [
4045
+ /* @__PURE__ */ t.jsxs("div", { className: "file-info", children: [
4046
+ /* @__PURE__ */ t.jsx("div", { className: "type-icon", children: h(m.type) }),
4047
+ /* @__PURE__ */ t.jsxs("div", { className: "text-info", children: [
4048
+ /* @__PURE__ */ t.jsx("span", { className: "file-name", children: m.name }),
4049
+ /* @__PURE__ */ t.jsxs("span", { className: "file-size", children: [
4050
+ (m.size / 1024 / 1024).toFixed(2),
4051
+ " MB"
4052
+ ] })
4053
+ ] })
4054
+ ] }),
4055
+ /* @__PURE__ */ t.jsx("button", { className: "remove-btn", onClick: (R) => {
4056
+ R.stopPropagation(), v(z);
4057
+ }, children: /* @__PURE__ */ t.jsx(he, { size: 16 }) })
4058
+ ] }, z)) })
4059
+ ] });
4060
+ };
4061
+ Nr.displayName = "FileDropzone";
4062
+ const Cr = ({
4063
+ options: e = [],
4064
+ value: s = [],
4065
+ onChange: r,
4066
+ label: n,
4067
+ placeholder: a = "Select options...",
4068
+ className: o = ""
4069
+ }) => {
4070
+ const [i, c] = L(!1), [l, u] = L(""), g = re(null), w = (x) => {
4071
+ const v = s || [], h = v.includes(x) ? v.filter((m) => m !== x) : [...v, x];
4072
+ r(h);
4073
+ }, j = (x, v) => {
4074
+ x.stopPropagation(), r((s || []).filter((h) => h !== v));
4075
+ };
4076
+ H(() => {
4077
+ const x = (v) => {
4078
+ g.current && !g.current.contains(v.target) && c(!1);
4079
+ };
4080
+ return document.addEventListener("mousedown", x), () => document.removeEventListener("mousedown", x);
4081
+ }, []);
4082
+ const S = e.filter(
4083
+ (x) => x.name.toLowerCase().includes(l.toLowerCase())
4084
+ );
4085
+ return /* @__PURE__ */ t.jsxs("div", { className: y("multi-select-root", o), ref: g, children: [
4086
+ n && /* @__PURE__ */ t.jsx("label", { className: "multi-select-label", children: n }),
4087
+ /* @__PURE__ */ t.jsxs(
4088
+ "div",
4089
+ {
4090
+ className: y("multi-select-trigger", i && "active"),
4091
+ onClick: () => c(!i),
4092
+ children: [
4093
+ /* @__PURE__ */ t.jsx("div", { className: "selected-chips", children: s.length > 0 ? s.map((x) => {
4094
+ const v = e.find((h) => h.id === x);
4095
+ return v ? /* @__PURE__ */ t.jsxs("div", { className: "chip", children: [
4096
+ /* @__PURE__ */ t.jsx("span", { children: v.name }),
4097
+ /* @__PURE__ */ t.jsx(he, { size: 12, onClick: (h) => j(h, x) })
4098
+ ] }, x) : null;
4099
+ }) : /* @__PURE__ */ t.jsx("span", { className: "placeholder", children: a }) }),
4100
+ /* @__PURE__ */ t.jsx(le, { size: 18, className: y("arrow", i && "open") })
4101
+ ]
4102
+ }
4103
+ ),
4104
+ i && /* @__PURE__ */ t.jsxs("div", { className: "multi-select-dropdown animate-scale-in", children: [
4105
+ /* @__PURE__ */ t.jsxs("div", { className: "search-box", children: [
4106
+ /* @__PURE__ */ t.jsx(Zs, { size: 16 }),
4107
+ /* @__PURE__ */ t.jsx(
4108
+ "input",
4109
+ {
4110
+ type: "text",
4111
+ placeholder: "Search...",
4112
+ value: l,
4113
+ onChange: (x) => u(x.target.value),
4114
+ onClick: (x) => x.stopPropagation(),
4115
+ autoFocus: !0
4116
+ }
4117
+ )
4118
+ ] }),
4119
+ /* @__PURE__ */ t.jsx("div", { className: "options-list", children: S.length > 0 ? S.map((x) => /* @__PURE__ */ t.jsxs(
4120
+ "div",
4121
+ {
4122
+ className: y("option-item", s.includes(x.id) && "selected"),
4123
+ onClick: () => w(x.id),
4124
+ children: [
4125
+ /* @__PURE__ */ t.jsx("div", { className: "checkbox", children: s.includes(x.id) && /* @__PURE__ */ t.jsx(ct, { size: 12 }) }),
4126
+ /* @__PURE__ */ t.jsx("span", { className: "option-name", children: x.name })
4127
+ ]
4128
+ },
4129
+ x.id
4130
+ )) : /* @__PURE__ */ t.jsx("div", { className: "no-options", children: "No results found" }) })
4131
+ ] })
4132
+ ] });
4133
+ };
4134
+ Cr.displayName = "MultiSelect";
4135
+ const Sr = ({
4136
+ progress: e = 0,
4137
+ label: s,
4138
+ showPercentage: r = !0,
4139
+ size: n = "md",
4140
+ color: a = "var(--primaryColor)",
4141
+ animated: o = !0,
4142
+ className: i = ""
4143
+ }) => {
4144
+ const c = Math.min(Math.max(e, 0), 100);
4145
+ return /* @__PURE__ */ t.jsxs("div", { className: y("progress-container", `progress-${n}`, i), children: [
4146
+ (s || r) && /* @__PURE__ */ t.jsxs("div", { className: "progress-header", children: [
4147
+ s && /* @__PURE__ */ t.jsx("span", { className: "progress-label", children: s }),
4148
+ r && /* @__PURE__ */ t.jsxs("span", { className: "progress-percentage", children: [
4149
+ Math.round(c),
4150
+ "%"
4151
+ ] })
4152
+ ] }),
4153
+ /* @__PURE__ */ t.jsx("div", { className: "progress-track", children: /* @__PURE__ */ t.jsx(
4154
+ "div",
4155
+ {
4156
+ className: y("progress-bar", o && "animated"),
4157
+ style: {
4158
+ width: `${c}%`,
4159
+ backgroundColor: a
4160
+ }
4161
+ }
4162
+ ) })
4163
+ ] });
4164
+ };
4165
+ Sr.displayName = "ProgressBar";
4166
+ const zr = ({
4167
+ value: e = 0,
4168
+ max: s = 5,
4169
+ onChange: r,
4170
+ readOnly: n = !1,
4171
+ size: a = 20,
4172
+ label: o,
4173
+ count: i,
4174
+ className: c = ""
4175
+ }) => {
4176
+ const [l, u] = L(null);
4177
+ return /* @__PURE__ */ t.jsxs("div", { className: y("rating-container", c), children: [
4178
+ /* @__PURE__ */ t.jsx("div", { className: "rating-stars", children: [...Array(s)].map((g, w) => {
4179
+ const j = w + 1, S = j <= (l ?? e);
4180
+ return /* @__PURE__ */ t.jsx(
4181
+ "button",
4182
+ {
4183
+ type: "button",
4184
+ className: y(
4185
+ "star-btn",
4186
+ S && "active",
4187
+ n && "readonly"
4188
+ ),
4189
+ onClick: () => !n && r?.(j),
4190
+ onMouseEnter: () => !n && u(j),
4191
+ onMouseLeave: () => !n && u(null),
4192
+ disabled: n,
4193
+ children: /* @__PURE__ */ t.jsx(
4194
+ tr,
4195
+ {
4196
+ size: a,
4197
+ fill: S ? "currentColor" : "none",
4198
+ strokeWidth: 2
4199
+ }
4200
+ )
4201
+ },
4202
+ w
4203
+ );
4204
+ }) }),
4205
+ (o || i !== void 0) && /* @__PURE__ */ t.jsxs("div", { className: "rating-info", children: [
4206
+ o && /* @__PURE__ */ t.jsx("span", { className: "rating-label", children: o }),
4207
+ i !== void 0 && /* @__PURE__ */ t.jsxs("span", { className: "rating-count", children: [
4208
+ "(",
4209
+ i,
4210
+ ")"
4211
+ ] })
4212
+ ] })
4213
+ ] });
4214
+ };
4215
+ zr.displayName = "Rating";
4216
+ const _r = ({
4217
+ sections: e = [],
4218
+ isOpen: s = !1,
4219
+ onClose: r,
4220
+ logo: n,
4221
+ footer: a,
4222
+ className: o
4223
+ }) => /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
4224
+ /* @__PURE__ */ t.jsx(
4225
+ "div",
4226
+ {
4227
+ className: y("sidebar-overlay", s && "show"),
4228
+ onClick: r
4229
+ }
4230
+ ),
4231
+ /* @__PURE__ */ t.jsxs("aside", { className: y("sidebar", s && "open", o), children: [
4232
+ /* @__PURE__ */ t.jsxs("div", { className: "sidebar-header", children: [
4233
+ /* @__PURE__ */ t.jsx("div", { className: "logo-container", children: n }),
4234
+ /* @__PURE__ */ t.jsx(
4235
+ "button",
4236
+ {
4237
+ className: "sidebar-close-btn",
4238
+ onClick: r,
4239
+ "aria-label": "Close Sidebar",
4240
+ children: /* @__PURE__ */ t.jsx(he, { size: 24 })
4241
+ }
4242
+ )
4243
+ ] }),
4244
+ /* @__PURE__ */ t.jsx("div", { className: "sidebar-scroll", children: e.map((i, c) => /* @__PURE__ */ t.jsxs("div", { className: "sidebar-section", children: [
4245
+ /* @__PURE__ */ t.jsx("h3", { className: "section-title", children: i.title }),
4246
+ /* @__PURE__ */ t.jsx("nav", { children: i.links.map((l, u) => /* @__PURE__ */ t.jsxs(
4247
+ "a",
4248
+ {
4249
+ href: l.path || "#",
4250
+ className: y("nav-item", l.active && "active"),
4251
+ onClick: (g) => {
4252
+ l.onClick && (g.preventDefault(), l.onClick()), r?.();
4253
+ },
4254
+ children: [
4255
+ /* @__PURE__ */ t.jsx("span", { className: "nav-icon", children: l.icon }),
4256
+ /* @__PURE__ */ t.jsx("span", { className: "nav-label", children: l.label }),
4257
+ l.badge && /* @__PURE__ */ t.jsx("span", { className: "nav-badge", children: l.badge })
4258
+ ]
4259
+ },
4260
+ u
4261
+ )) })
4262
+ ] }, c)) }),
4263
+ a && /* @__PURE__ */ t.jsx("div", { className: "sidebar-footer", children: a })
4264
+ ] })
4265
+ ] });
4266
+ _r.displayName = "Sidebar";
4267
+ const Mr = ({
4268
+ variant: e = "rectangular",
4269
+ width: s,
4270
+ height: r,
4271
+ className: n = "",
4272
+ animate: a = !0,
4273
+ shimmer: o = !0
4274
+ }) => /* @__PURE__ */ t.jsx(
4275
+ "div",
4276
+ {
4277
+ className: y(
4278
+ "skeleton-root",
4279
+ `skeleton-${e}`,
4280
+ a && "animate",
4281
+ n
4282
+ ),
4283
+ style: { width: s, height: r },
4284
+ children: o && /* @__PURE__ */ t.jsx("div", { className: "skeleton-shimmer" })
4285
+ }
4286
+ );
4287
+ Mr.displayName = "Skeleton";
4288
+ const Ar = ({
4289
+ size: e = 24,
4290
+ className: s = "",
4291
+ color: r
4292
+ }) => /* @__PURE__ */ t.jsx("div", { className: y("spinner-container", s), children: /* @__PURE__ */ t.jsx(
4293
+ Gs,
4294
+ {
4295
+ size: e,
4296
+ className: "spinner-icon",
4297
+ style: r ? { color: r } : void 0
4298
+ }
4299
+ ) });
4300
+ Ar.displayName = "Spinner";
4301
+ const Tr = ({
4302
+ label: e,
4303
+ value: s,
4304
+ icon: r,
4305
+ trend: n,
4306
+ trendLabel: a,
4307
+ variant: o = "primary",
4308
+ className: i = ""
4309
+ }) => {
4310
+ const c = n && n > 0;
4311
+ return /* @__PURE__ */ t.jsxs("div", { className: y("stat-card", `stat-${o}`, i), children: [
4312
+ /* @__PURE__ */ t.jsxs("div", { className: "stat-header", children: [
4313
+ /* @__PURE__ */ t.jsx("div", { className: "stat-info", children: /* @__PURE__ */ t.jsx("span", { className: "stat-label", children: e }) }),
4314
+ r && /* @__PURE__ */ t.jsx("div", { className: "icon-wrapper", children: /* @__PURE__ */ t.jsx(r, { size: 24 }) })
4315
+ ] }),
4316
+ /* @__PURE__ */ t.jsx("div", { className: "stat-main", children: /* @__PURE__ */ t.jsx("span", { className: "stat-value", children: s }) }),
4317
+ (n !== void 0 || a) && /* @__PURE__ */ t.jsxs("div", { className: "stat-footer", children: [
4318
+ n !== void 0 && /* @__PURE__ */ t.jsxs("div", { className: y("trend-badge", c ? "trend-up" : "trend-down"), children: [
4319
+ c ? /* @__PURE__ */ t.jsx(cr, { size: 14 }) : /* @__PURE__ */ t.jsx(ir, { size: 14 }),
4320
+ /* @__PURE__ */ t.jsxs("span", { children: [
4321
+ Math.abs(n),
4322
+ "%"
4323
+ ] })
4324
+ ] }),
4325
+ a && /* @__PURE__ */ t.jsx("span", { className: "trend-label", children: a })
4326
+ ] })
4327
+ ] });
4328
+ };
4329
+ Tr.displayName = "StatCard";
4330
+ function Rr({
4331
+ columns: e,
4332
+ data: s,
4333
+ className: r
4334
+ }) {
4335
+ return /* @__PURE__ */ t.jsx("div", { className: y("table-container", r), children: /* @__PURE__ */ t.jsxs("table", { className: "custom-table", children: [
4336
+ /* @__PURE__ */ t.jsx("thead", { children: /* @__PURE__ */ t.jsx("tr", { children: e.map((n, a) => /* @__PURE__ */ t.jsx("th", { style: { width: n.width }, children: n.header }, a)) }) }),
4337
+ /* @__PURE__ */ t.jsx("tbody", { children: s.map((n, a) => /* @__PURE__ */ t.jsx("tr", { children: e.map((o, i) => /* @__PURE__ */ t.jsx("td", { children: o.render ? o.render(n[o.accessor], n) : n[o.accessor] }, i)) }, a)) })
4338
+ ] }) });
4339
+ }
4340
+ Rr.displayName = "Table";
4341
+ const Dr = ({
4342
+ tabs: e = [],
4343
+ defaultTab: s,
4344
+ onChange: r,
4345
+ className: n = ""
4346
+ }) => {
4347
+ const [a, o] = L(s || e[0]?.id), i = (l) => {
4348
+ o(l), r?.(l);
4349
+ }, c = e.find((l) => l.id === a)?.content;
4350
+ return /* @__PURE__ */ t.jsxs("div", { className: y("tabs-container", n), children: [
4351
+ /* @__PURE__ */ t.jsx("div", { className: "tabs-list", role: "tablist", children: e.map((l) => {
4352
+ const u = l.icon, g = a === l.id;
4353
+ return /* @__PURE__ */ t.jsxs(
4354
+ "button",
4355
+ {
4356
+ role: "tab",
4357
+ "aria-selected": g,
4358
+ className: y("tab-trigger", g && "active"),
4359
+ onClick: () => i(l.id),
4360
+ children: [
4361
+ u && /* @__PURE__ */ t.jsx(u, { size: 16 }),
4362
+ /* @__PURE__ */ t.jsx("span", { children: l.label })
4363
+ ]
4364
+ },
4365
+ l.id
4366
+ );
4367
+ }) }),
4368
+ /* @__PURE__ */ t.jsx("div", { className: "tab-panel", role: "tabpanel", children: c })
4369
+ ] });
4370
+ };
4371
+ Dr.displayName = "Tabs";
4372
+ const Er = ({
4373
+ value: e,
4374
+ onChange: s,
4375
+ placeholder: r = "Select time",
4376
+ className: n = ""
4377
+ }) => {
4378
+ const [a, o] = L(!1), i = re(null), [c, l] = L(e ? e.split(":")[0] : "12"), [u, g] = L(e ? e.split(":")[1] : "00"), w = (x, v) => {
4379
+ const h = `${x.padStart(2, "0")}:${v.padStart(2, "0")}`;
4380
+ s(h);
4381
+ }, j = (x) => {
4382
+ let v = parseInt(c) + x;
4383
+ v > 23 && (v = 0), v < 0 && (v = 23);
4384
+ const h = v.toString().padStart(2, "0");
4385
+ l(h), w(h, u);
4386
+ }, S = (x) => {
4387
+ let v = parseInt(u) + x;
4388
+ v > 59 && (v = 0), v < 0 && (v = 59);
4389
+ const h = v.toString().padStart(2, "0");
4390
+ g(h), w(c, h);
4391
+ };
4392
+ return H(() => {
4393
+ const x = (v) => {
4394
+ i.current && !i.current.contains(v.target) && o(!1);
4395
+ };
4396
+ return document.addEventListener("mousedown", x), () => document.removeEventListener("mousedown", x);
4397
+ }, []), /* @__PURE__ */ t.jsxs("div", { className: y("time-picker-root", n), ref: i, children: [
4398
+ /* @__PURE__ */ t.jsxs(
4399
+ "div",
4400
+ {
4401
+ className: y("time-input-trigger", a && "active"),
4402
+ onClick: () => o(!a),
4403
+ children: [
4404
+ /* @__PURE__ */ t.jsx(Rs, { size: 16 }),
4405
+ /* @__PURE__ */ t.jsx("span", { children: e || r })
4406
+ ]
4407
+ }
4408
+ ),
4409
+ a && /* @__PURE__ */ t.jsxs("div", { className: "time-dropdown animate-scale-in", children: [
4410
+ /* @__PURE__ */ t.jsxs("div", { className: "time-selector-columns", children: [
4411
+ /* @__PURE__ */ t.jsxs("div", { className: "time-column", children: [
4412
+ /* @__PURE__ */ t.jsx("button", { onClick: () => j(1), children: /* @__PURE__ */ t.jsx(Ve, { size: 20 }) }),
4413
+ /* @__PURE__ */ t.jsx("div", { className: "time-value", children: c }),
4414
+ /* @__PURE__ */ t.jsx("button", { onClick: () => j(-1), children: /* @__PURE__ */ t.jsx(le, { size: 20 }) }),
4415
+ /* @__PURE__ */ t.jsx("span", { className: "time-label", children: "HOURS" })
4416
+ ] }),
4417
+ /* @__PURE__ */ t.jsx("div", { className: "time-separator", children: ":" }),
4418
+ /* @__PURE__ */ t.jsxs("div", { className: "time-column", children: [
4419
+ /* @__PURE__ */ t.jsx("button", { onClick: () => S(1), children: /* @__PURE__ */ t.jsx(Ve, { size: 20 }) }),
4420
+ /* @__PURE__ */ t.jsx("div", { className: "time-value", children: u }),
4421
+ /* @__PURE__ */ t.jsx("button", { onClick: () => S(-1), children: /* @__PURE__ */ t.jsx(le, { size: 20 }) }),
4422
+ /* @__PURE__ */ t.jsx("span", { className: "time-label", children: "MINS" })
4423
+ ] })
4424
+ ] }),
4425
+ /* @__PURE__ */ t.jsx("div", { className: "time-footer", children: /* @__PURE__ */ t.jsx("button", { className: "confirm-btn", onClick: () => o(!1), children: "Done" }) })
4426
+ ] })
4427
+ ] });
4428
+ };
4429
+ Er.displayName = "TimePicker";
4430
+ const Or = ({
4431
+ isOpen: e,
4432
+ onClose: s,
4433
+ onConfirm: r,
4434
+ title: n = "Confirm Action",
4435
+ message: a = "Are you sure you want to proceed?",
4436
+ confirmLabel: o = "Confirm",
4437
+ cancelLabel: i = "Cancel",
4438
+ type: c = "danger",
4439
+ className: l = ""
4440
+ }) => {
4441
+ if (!e) return null;
4442
+ const u = () => {
4443
+ switch (c) {
4444
+ case "danger":
4445
+ return /* @__PURE__ */ t.jsx(ar, { size: 24 });
4446
+ case "warning":
4447
+ return /* @__PURE__ */ t.jsx(mr, { size: 24 });
4448
+ case "primary":
4449
+ return /* @__PURE__ */ t.jsx(Ue, { size: 24 });
4450
+ default:
4451
+ return /* @__PURE__ */ t.jsx(Ue, { size: 24 });
4452
+ }
4453
+ };
4454
+ return /* @__PURE__ */ t.jsx("div", { className: "conf-modal-overlay", onClick: s, children: /* @__PURE__ */ t.jsxs(
4455
+ "div",
4456
+ {
4457
+ className: y("conf-modal-content animate-pop-in", l),
4458
+ onClick: (g) => g.stopPropagation(),
4459
+ children: [
4460
+ /* @__PURE__ */ t.jsxs("header", { className: "conf-modal-header", children: [
4461
+ /* @__PURE__ */ t.jsx("div", { className: y("icon-badge", c), children: u() }),
4462
+ /* @__PURE__ */ t.jsx("button", { className: "conf-close-btn", onClick: s, children: /* @__PURE__ */ t.jsx(he, { size: 20 }) })
4463
+ ] }),
4464
+ /* @__PURE__ */ t.jsxs("div", { className: "conf-modal-body", children: [
4465
+ /* @__PURE__ */ t.jsx("h3", { children: n }),
4466
+ /* @__PURE__ */ t.jsx("p", { children: a })
4467
+ ] }),
4468
+ /* @__PURE__ */ t.jsxs("footer", { className: "conf-modal-footer", children: [
4469
+ /* @__PURE__ */ t.jsx("button", { className: "conf-btn-secondary", onClick: s, children: i }),
4470
+ /* @__PURE__ */ t.jsx(
4471
+ "button",
4472
+ {
4473
+ className: y("conf-btn-primary", c),
4474
+ onClick: () => {
4475
+ r(), s();
4476
+ },
4477
+ children: o
4478
+ }
4479
+ )
4480
+ ] })
4481
+ ]
4482
+ }
4483
+ ) });
4484
+ };
4485
+ Or.displayName = "ConfirmationModal";
4486
+ const Pr = ({
4487
+ value: e,
4488
+ onChange: s,
4489
+ placeholder: r = "Select date",
4490
+ className: n = ""
4491
+ }) => {
4492
+ const [a, o] = L(!1), [i, c] = L(e ? new Date(e) : /* @__PURE__ */ new Date()), l = re(null), u = (h, m) => new Date(h, m + 1, 0).getDate(), g = (h, m) => new Date(h, m, 1).getDay(), w = (h) => h ? new Date(h).toISOString().split("T")[0] : "", j = (h) => {
4493
+ const m = new Date(i.getFullYear(), i.getMonth(), h);
4494
+ s(w(m)), o(!1);
4495
+ }, S = (h) => {
4496
+ c(new Date(i.getFullYear(), i.getMonth() + h, 1));
4497
+ };
4498
+ H(() => {
4499
+ const h = (m) => {
4500
+ l.current && !l.current.contains(m.target) && o(!1);
4501
+ };
4502
+ return document.addEventListener("mousedown", h), () => document.removeEventListener("mousedown", h);
4503
+ }, []);
4504
+ const x = () => {
4505
+ const h = i.getFullYear(), m = i.getMonth(), z = u(h, m), R = g(h, m), P = [];
4506
+ for (let E = 0; E < R; E++)
4507
+ P.push(/* @__PURE__ */ t.jsx("div", { className: "calendar-day empty" }, `empty-${E}`));
4508
+ const V = e ? new Date(e).getDate() : null, U = e && new Date(e).getMonth() === m && new Date(e).getFullYear() === h;
4509
+ for (let E = 1; E <= z; E++) {
4510
+ const p = U && V === E, A = (/* @__PURE__ */ new Date()).getDate() === E && (/* @__PURE__ */ new Date()).getMonth() === m && (/* @__PURE__ */ new Date()).getFullYear() === h;
4511
+ P.push(
4512
+ /* @__PURE__ */ t.jsx(
4513
+ "div",
4514
+ {
4515
+ className: y("calendar-day", p && "selected", A && "today"),
4516
+ onClick: () => j(E),
4517
+ children: E
4518
+ },
4519
+ E
4520
+ )
4521
+ );
4522
+ }
4523
+ return P;
4524
+ }, v = [
4525
+ "January",
4526
+ "February",
4527
+ "March",
4528
+ "April",
4529
+ "May",
4530
+ "June",
4531
+ "July",
4532
+ "August",
4533
+ "September",
4534
+ "October",
4535
+ "November",
4536
+ "December"
4537
+ ];
4538
+ return /* @__PURE__ */ t.jsxs("div", { className: y("calendar-date-picker", n), ref: l, children: [
4539
+ /* @__PURE__ */ t.jsxs("div", { className: y("date-input-trigger", a && "active"), onClick: () => o(!a), children: [
4540
+ /* @__PURE__ */ t.jsx(lt, { size: 16 }),
4541
+ /* @__PURE__ */ t.jsx("span", { children: e || r })
4542
+ ] }),
4543
+ a && /* @__PURE__ */ t.jsxs("div", { className: "calendar-dropdown animate-scale-in", children: [
4544
+ /* @__PURE__ */ t.jsxs("div", { className: "calendar-header", children: [
4545
+ /* @__PURE__ */ t.jsx("button", { type: "button", onClick: () => S(-1), children: /* @__PURE__ */ t.jsx(dt, { size: 16 }) }),
4546
+ /* @__PURE__ */ t.jsxs("span", { className: "current-month", children: [
4547
+ v[i.getMonth()],
4548
+ " ",
4549
+ i.getFullYear()
4550
+ ] }),
4551
+ /* @__PURE__ */ t.jsx("button", { type: "button", onClick: () => S(1), children: /* @__PURE__ */ t.jsx(_e, { size: 16 }) })
4552
+ ] }),
4553
+ /* @__PURE__ */ t.jsx("div", { className: "calendar-weekdays", children: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map((h) => /* @__PURE__ */ t.jsx("div", { className: "weekday", children: h }, h)) }),
4554
+ /* @__PURE__ */ t.jsx("div", { className: "calendar-grid", children: x() })
4555
+ ] })
4556
+ ] });
4557
+ };
4558
+ Pr.displayName = "CalendarDatePicker";
4559
+ const Ir = ({
4560
+ value: e,
4561
+ onChange: s,
4562
+ placeholder: r = "Select date range",
4563
+ className: n = ""
4564
+ }) => {
4565
+ const [a, o] = L(!1), [i, c] = L(/* @__PURE__ */ new Date()), l = re(null), u = (m, z) => new Date(m, z + 1, 0).getDate(), g = (m, z) => new Date(m, z, 1).getDay(), w = (m) => m ? m.toISOString().split("T")[0] : null, j = (m) => {
4566
+ const z = new Date(i.getFullYear(), i.getMonth(), m), R = w(z);
4567
+ if (!e.startDate || e.startDate && e.endDate)
4568
+ s({ startDate: R, endDate: null });
4569
+ else {
4570
+ const P = new Date(e.startDate);
4571
+ z < P ? s({ startDate: R, endDate: e.startDate }) : s({ ...e, endDate: R });
4572
+ }
4573
+ }, S = (m) => {
4574
+ c(new Date(i.getFullYear(), i.getMonth() + m, 1));
4575
+ }, x = () => {
4576
+ s({ startDate: null, endDate: null });
4577
+ };
4578
+ H(() => {
4579
+ const m = (z) => {
4580
+ l.current && !l.current.contains(z.target) && o(!1);
4581
+ };
4582
+ return document.addEventListener("mousedown", m), () => document.removeEventListener("mousedown", m);
4583
+ }, []);
4584
+ const v = () => {
4585
+ const m = i.getFullYear(), z = i.getMonth(), R = u(m, z), P = g(m, z), V = [];
4586
+ for (let p = 0; p < P; p++)
4587
+ V.push(/* @__PURE__ */ t.jsx("div", { className: "calendar-day empty" }, `empty-${p}`));
4588
+ const U = e.startDate ? new Date(e.startDate) : null, E = e.endDate ? new Date(e.endDate) : null;
4589
+ for (let p = 1; p <= R; p++) {
4590
+ const A = new Date(m, z, p), K = w(A), ae = e.startDate === K, W = e.endDate === K, ee = U && E && A > U && A < E, te = (/* @__PURE__ */ new Date()).toDateString() === A.toDateString();
4591
+ V.push(
4592
+ /* @__PURE__ */ t.jsx(
4593
+ "div",
4594
+ {
4595
+ className: y(
4596
+ "calendar-day",
4597
+ ae && "start",
4598
+ W && "end",
4599
+ ee && "in-range",
4600
+ te && "today"
4601
+ ),
4602
+ onClick: () => j(p),
4603
+ children: p
4604
+ },
4605
+ p
4606
+ )
4607
+ );
4608
+ }
4609
+ return V;
4610
+ }, h = [
4611
+ "January",
4612
+ "February",
4613
+ "March",
4614
+ "April",
4615
+ "May",
4616
+ "June",
4617
+ "July",
4618
+ "August",
4619
+ "September",
4620
+ "October",
4621
+ "November",
4622
+ "December"
4623
+ ];
4624
+ return /* @__PURE__ */ t.jsxs("div", { className: y("date-range-picker", n), ref: l, children: [
4625
+ /* @__PURE__ */ t.jsxs("div", { className: y("range-input-trigger", a && "active"), onClick: () => o(!a), children: [
4626
+ /* @__PURE__ */ t.jsx(lt, { size: 16 }),
4627
+ /* @__PURE__ */ t.jsxs("div", { className: "date-display", children: [
4628
+ /* @__PURE__ */ t.jsx("span", { children: e.startDate || r.split("-")[0] || "Start date" }),
4629
+ /* @__PURE__ */ t.jsx("span", { className: "separator", children: "-" }),
4630
+ /* @__PURE__ */ t.jsx("span", { children: e.endDate || r.split("-")[1] || "End date" })
4631
+ ] })
4632
+ ] }),
4633
+ a && /* @__PURE__ */ t.jsxs("div", { className: "calendar-dropdown", children: [
4634
+ /* @__PURE__ */ t.jsxs("div", { className: "calendar-header", children: [
4635
+ /* @__PURE__ */ t.jsx("button", { type: "button", onClick: () => S(-1), children: /* @__PURE__ */ t.jsx(dt, { size: 16 }) }),
4636
+ /* @__PURE__ */ t.jsxs("span", { className: "current-month", children: [
4637
+ h[i.getMonth()],
4638
+ " ",
4639
+ i.getFullYear()
4640
+ ] }),
4641
+ /* @__PURE__ */ t.jsx("button", { type: "button", onClick: () => S(1), children: /* @__PURE__ */ t.jsx(_e, { size: 16 }) })
4642
+ ] }),
4643
+ /* @__PURE__ */ t.jsx("div", { className: "calendar-weekdays", children: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map((m) => /* @__PURE__ */ t.jsx("div", { className: "weekday", children: m }, m)) }),
4644
+ /* @__PURE__ */ t.jsx("div", { className: "calendar-grid", children: v() }),
4645
+ /* @__PURE__ */ t.jsx("div", { className: "calendar-footer", children: /* @__PURE__ */ t.jsx("button", { type: "button", className: "clear-btn", onClick: x, children: "Clear Range" }) })
4646
+ ] })
4647
+ ] });
4648
+ };
4649
+ Ir.displayName = "DateRangePicker";
4650
+ const mt = pt({
4651
+ theme: "light",
4652
+ setTheme: () => {
4653
+ },
4654
+ toggleTheme: () => {
4655
+ }
4656
+ }), Yr = ({
4657
+ defaultTheme: e = "light",
4658
+ storageKey: s = "mango-ui-theme",
4659
+ children: r
4660
+ }) => {
4661
+ const [n, a] = L(() => {
4662
+ if (typeof window < "u") {
4663
+ const c = localStorage.getItem(s);
4664
+ if (c === "light" || c === "dark") return c;
4665
+ }
4666
+ return e;
4667
+ });
4668
+ H(() => {
4669
+ document.documentElement.setAttribute("data-theme", n), localStorage.setItem(s, n);
4670
+ }, [n, s]);
4671
+ const o = (c) => {
4672
+ a(c);
4673
+ }, i = () => {
4674
+ a((c) => c === "light" ? "dark" : "light");
4675
+ };
4676
+ return /* @__PURE__ */ t.jsx(mt.Provider, { value: { theme: n, setTheme: o, toggleTheme: i }, children: r });
4677
+ }, Br = () => ht(mt), Hr = (e = !1) => {
4678
+ const [s, r] = L(e), n = ft(() => r((a) => !a), []);
4679
+ return [s, n];
4680
+ };
4681
+ function qr(e, s) {
4682
+ const [r, n] = L(e);
4683
+ return H(() => {
4684
+ const a = setTimeout(() => n(e), s || 500);
4685
+ return () => {
4686
+ clearTimeout(a);
4687
+ };
4688
+ }, [e, s]), r;
4689
+ }
4690
+ const Jr = (e, s = "USD", r = "en-US") => new Intl.NumberFormat(r, {
4691
+ style: "currency",
4692
+ currency: s
4693
+ }).format(e), Xr = (e, s = {
4694
+ month: "short",
4695
+ day: "numeric",
4696
+ year: "numeric"
4697
+ }, r = "en-US") => {
4698
+ const n = typeof e == "string" || typeof e == "number" ? new Date(e) : e;
4699
+ return new Intl.DateTimeFormat(r, s).format(n);
4700
+ }, Zr = (e, s) => e.length <= s ? e : e.slice(0, s) + "...", Qr = {
4701
+ mango: {
4702
+ 50: "#fff9e6",
4703
+ 100: "#ffefbf",
4704
+ 200: "#ffe080",
4705
+ 300: "#ffd040",
4706
+ 400: "#ffc107",
4707
+ // Core Mango Yellow
4708
+ 500: "#ff9800",
4709
+ // Ripe Mango Orange
4710
+ 600: "#fb8c00",
4711
+ 700: "#f57c00",
4712
+ 800: "#ef6c00",
4713
+ 900: "#e65100"
4714
+ },
4715
+ neutral: {
4716
+ 50: "#f9fafb",
4717
+ 100: "#f3f4f6",
4718
+ 200: "#e5e7eb",
4719
+ 300: "#d1d5db",
4720
+ 400: "#9ca3af",
4721
+ 500: "#6b7280",
4722
+ 600: "#4b5563",
4723
+ 700: "#374151",
4724
+ 800: "#1f2937",
4725
+ 900: "#111827",
4726
+ 950: "#030712"
4727
+ }
4728
+ }, Kr = {
4729
+ xs: "0.25rem",
4730
+ sm: "0.5rem",
4731
+ md: "1rem",
4732
+ lg: "1.5rem",
4733
+ xl: "2rem",
4734
+ "2xl": "3rem"
4735
+ }, en = {
4736
+ fontFamily: {
4737
+ sans: ["Inter", "system-ui", "sans-serif"],
4738
+ mono: ["JetBrains Mono", "monospace"]
4739
+ },
4740
+ fontSize: {
4741
+ xs: ["0.75rem", { lineHeight: "1rem" }],
4742
+ sm: ["0.875rem", { lineHeight: "1.25rem" }],
4743
+ base: ["1rem", { lineHeight: "1.5rem" }],
4744
+ lg: ["1.125rem", { lineHeight: "1.75rem" }],
4745
+ xl: ["1.25rem", { lineHeight: "1.75rem" }],
4746
+ "2xl": ["1.5rem", { lineHeight: "2rem" }]
4747
+ }
4748
+ };
4749
+ export {
4750
+ xr as Accordion,
4751
+ vr as AppBar,
4752
+ hs as Avatar,
4753
+ yr as AvatarGroup,
4754
+ ms as Badge,
4755
+ kr as Breadcrumbs,
4756
+ ds as Button,
4757
+ Pr as CalendarDatePicker,
4758
+ Fr as Card,
4759
+ Gr as CardContent,
4760
+ Vr as CardHeader,
4761
+ Ur as CardTitle,
4762
+ Or as ConfirmationModal,
4763
+ Ir as DateRangePicker,
4764
+ wr as Drawer,
4765
+ jr as Dropdown,
4766
+ Nr as FileDropzone,
4767
+ ps as Input,
4768
+ Wr as Modal,
4769
+ Cr as MultiSelect,
4770
+ Sr as ProgressBar,
4771
+ zr as Rating,
4772
+ _r as Sidebar,
4773
+ Mr as Skeleton,
4774
+ Ar as Spinner,
4775
+ Tr as StatCard,
4776
+ Rr as Table,
4777
+ Dr as Tabs,
4778
+ Yr as ThemeProvider,
4779
+ Er as TimePicker,
4780
+ fs as Toggle,
4781
+ us as avatarStyles,
4782
+ cs as buttonStyles,
4783
+ y as cn,
4784
+ Qr as colors,
4785
+ Jr as formatCurrency,
4786
+ Xr as formatDate,
4787
+ Kr as spacing,
4788
+ Zr as truncateString,
4789
+ en as typography,
4790
+ qr as useDebounce,
4791
+ Br as useTheme,
4792
+ Hr as useToggle
4793
+ };