componentables 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +272 -0
  2. package/dist/componentables.css +1 -0
  3. package/dist/components/Button.d.ts +27 -0
  4. package/dist/components/Button.d.ts.map +1 -0
  5. package/dist/components/Calendar.d.ts +27 -0
  6. package/dist/components/Calendar.d.ts.map +1 -0
  7. package/dist/components/Dropdown.d.ts +44 -0
  8. package/dist/components/Dropdown.d.ts.map +1 -0
  9. package/dist/components/ExpandableCard.d.ts +28 -0
  10. package/dist/components/ExpandableCard.d.ts.map +1 -0
  11. package/dist/components/Input.d.ts +63 -0
  12. package/dist/components/Input.d.ts.map +1 -0
  13. package/dist/components/Pagination.d.ts +31 -0
  14. package/dist/components/Pagination.d.ts.map +1 -0
  15. package/dist/components/SearchInput.d.ts +28 -0
  16. package/dist/components/SearchInput.d.ts.map +1 -0
  17. package/dist/components/Table.d.ts +49 -0
  18. package/dist/components/Table.d.ts.map +1 -0
  19. package/dist/components/Tabs.d.ts +47 -0
  20. package/dist/components/Tabs.d.ts.map +1 -0
  21. package/dist/components/Toggle.d.ts +29 -0
  22. package/dist/components/Toggle.d.ts.map +1 -0
  23. package/dist/components/index.d.ts +22 -0
  24. package/dist/components/index.d.ts.map +1 -0
  25. package/dist/context/ThemeProvider.d.ts +86 -0
  26. package/dist/context/ThemeProvider.d.ts.map +1 -0
  27. package/dist/context/index.d.ts +3 -0
  28. package/dist/context/index.d.ts.map +1 -0
  29. package/dist/index.cjs +2 -0
  30. package/dist/index.cjs.map +1 -0
  31. package/dist/index.d.ts +6 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +3744 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/lib/index.d.ts +2 -0
  36. package/dist/lib/index.d.ts.map +1 -0
  37. package/dist/lib/utils.d.ts +23 -0
  38. package/dist/lib/utils.d.ts.map +1 -0
  39. package/dist/vite.svg +1 -0
  40. package/package.json +66 -0
package/dist/index.js ADDED
@@ -0,0 +1,3744 @@
1
+ import E, { useMemo as Pe, useEffect as K, createContext as Se, useContext as De, useState as T, useCallback as he, useRef as ie } from "react";
2
+ import { jsxs as k, jsx as l } from "react/jsx-runtime";
3
+ function ye(e) {
4
+ var r, t, o = "";
5
+ if (typeof e == "string" || typeof e == "number") o += e;
6
+ else if (typeof e == "object") if (Array.isArray(e)) {
7
+ var n = e.length;
8
+ for (r = 0; r < n; r++) e[r] && (t = ye(e[r])) && (o && (o += " "), o += t);
9
+ } else for (t in e) e[t] && (o && (o += " "), o += t);
10
+ return o;
11
+ }
12
+ function Ae() {
13
+ for (var e, r, t = 0, o = "", n = arguments.length; t < n; t++) (e = arguments[t]) && (r = ye(e)) && (o && (o += " "), o += r);
14
+ return o;
15
+ }
16
+ const le = "-", je = (e) => {
17
+ const r = Ie(e), {
18
+ conflictingClassGroups: t,
19
+ conflictingClassGroupModifiers: o
20
+ } = e;
21
+ return {
22
+ getClassGroupId: (i) => {
23
+ const a = i.split(le);
24
+ return a[0] === "" && a.length !== 1 && a.shift(), xe(a, r) || Oe(i);
25
+ },
26
+ getConflictingClassGroupIds: (i, a) => {
27
+ const p = t[i] || [];
28
+ return a && o[i] ? [...p, ...o[i]] : p;
29
+ }
30
+ };
31
+ }, xe = (e, r) => {
32
+ if (e.length === 0)
33
+ return r.classGroupId;
34
+ const t = e[0], o = r.nextPart.get(t), n = o ? xe(e.slice(1), o) : void 0;
35
+ if (n)
36
+ return n;
37
+ if (r.validators.length === 0)
38
+ return;
39
+ const s = e.join(le);
40
+ return r.validators.find(({
41
+ validator: i
42
+ }) => i(s))?.classGroupId;
43
+ }, ce = /^\[(.+)\]$/, Oe = (e) => {
44
+ if (ce.test(e)) {
45
+ const r = ce.exec(e)[1], t = r?.substring(0, r.indexOf(":"));
46
+ if (t)
47
+ return "arbitrary.." + t;
48
+ }
49
+ }, Ie = (e) => {
50
+ const {
51
+ theme: r,
52
+ prefix: t
53
+ } = e, o = {
54
+ nextPart: /* @__PURE__ */ new Map(),
55
+ validators: []
56
+ };
57
+ return Te(Object.entries(e.classGroups), t).forEach(([s, i]) => {
58
+ ae(i, o, s, r);
59
+ }), o;
60
+ }, ae = (e, r, t, o) => {
61
+ e.forEach((n) => {
62
+ if (typeof n == "string") {
63
+ const s = n === "" ? r : de(r, n);
64
+ s.classGroupId = t;
65
+ return;
66
+ }
67
+ if (typeof n == "function") {
68
+ if (Ee(n)) {
69
+ ae(n(o), r, t, o);
70
+ return;
71
+ }
72
+ r.validators.push({
73
+ validator: n,
74
+ classGroupId: t
75
+ });
76
+ return;
77
+ }
78
+ Object.entries(n).forEach(([s, i]) => {
79
+ ae(i, de(r, s), t, o);
80
+ });
81
+ });
82
+ }, de = (e, r) => {
83
+ let t = e;
84
+ return r.split(le).forEach((o) => {
85
+ t.nextPart.has(o) || t.nextPart.set(o, {
86
+ nextPart: /* @__PURE__ */ new Map(),
87
+ validators: []
88
+ }), t = t.nextPart.get(o);
89
+ }), t;
90
+ }, Ee = (e) => e.isThemeGetter, Te = (e, r) => r ? e.map(([t, o]) => {
91
+ const n = o.map((s) => typeof s == "string" ? r + s : typeof s == "object" ? Object.fromEntries(Object.entries(s).map(([i, a]) => [r + i, a])) : s);
92
+ return [t, n];
93
+ }) : e, Re = (e) => {
94
+ if (e < 1)
95
+ return {
96
+ get: () => {
97
+ },
98
+ set: () => {
99
+ }
100
+ };
101
+ let r = 0, t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
102
+ const n = (s, i) => {
103
+ t.set(s, i), r++, r > e && (r = 0, o = t, t = /* @__PURE__ */ new Map());
104
+ };
105
+ return {
106
+ get(s) {
107
+ let i = t.get(s);
108
+ if (i !== void 0)
109
+ return i;
110
+ if ((i = o.get(s)) !== void 0)
111
+ return n(s, i), i;
112
+ },
113
+ set(s, i) {
114
+ t.has(s) ? t.set(s, i) : n(s, i);
115
+ }
116
+ };
117
+ }, ve = "!", Ve = (e) => {
118
+ const {
119
+ separator: r,
120
+ experimentalParseClassName: t
121
+ } = e, o = r.length === 1, n = r[0], s = r.length, i = (a) => {
122
+ const p = [];
123
+ let c = 0, b = 0, C;
124
+ for (let d = 0; d < a.length; d++) {
125
+ let y = a[d];
126
+ if (c === 0) {
127
+ if (y === n && (o || a.slice(d, d + s) === r)) {
128
+ p.push(a.slice(b, d)), b = d + s;
129
+ continue;
130
+ }
131
+ if (y === "/") {
132
+ C = d;
133
+ continue;
134
+ }
135
+ }
136
+ y === "[" ? c++ : y === "]" && c--;
137
+ }
138
+ const w = p.length === 0 ? a : a.substring(b), v = w.startsWith(ve), g = v ? w.substring(1) : w, m = C && C > b ? C - b : void 0;
139
+ return {
140
+ modifiers: p,
141
+ hasImportantModifier: v,
142
+ baseClassName: g,
143
+ maybePostfixModifierPosition: m
144
+ };
145
+ };
146
+ return t ? (a) => t({
147
+ className: a,
148
+ parseClassName: i
149
+ }) : i;
150
+ }, Ge = (e) => {
151
+ if (e.length <= 1)
152
+ return e;
153
+ const r = [];
154
+ let t = [];
155
+ return e.forEach((o) => {
156
+ o[0] === "[" ? (r.push(...t.sort(), o), t = []) : t.push(o);
157
+ }), r.push(...t.sort()), r;
158
+ }, Fe = (e) => ({
159
+ cache: Re(e.cacheSize),
160
+ parseClassName: Ve(e),
161
+ ...je(e)
162
+ }), Be = /\s+/, _e = (e, r) => {
163
+ const {
164
+ parseClassName: t,
165
+ getClassGroupId: o,
166
+ getConflictingClassGroupIds: n
167
+ } = r, s = [], i = e.trim().split(Be);
168
+ let a = "";
169
+ for (let p = i.length - 1; p >= 0; p -= 1) {
170
+ const c = i[p], {
171
+ modifiers: b,
172
+ hasImportantModifier: C,
173
+ baseClassName: w,
174
+ maybePostfixModifierPosition: v
175
+ } = t(c);
176
+ let g = !!v, m = o(g ? w.substring(0, v) : w);
177
+ if (!m) {
178
+ if (!g) {
179
+ a = c + (a.length > 0 ? " " + a : a);
180
+ continue;
181
+ }
182
+ if (m = o(w), !m) {
183
+ a = c + (a.length > 0 ? " " + a : a);
184
+ continue;
185
+ }
186
+ g = !1;
187
+ }
188
+ const d = Ge(b).join(":"), y = C ? d + ve : d, h = y + m;
189
+ if (s.includes(h))
190
+ continue;
191
+ s.push(h);
192
+ const S = n(m, g);
193
+ for (let M = 0; M < S.length; ++M) {
194
+ const j = S[M];
195
+ s.push(y + j);
196
+ }
197
+ a = c + (a.length > 0 ? " " + a : a);
198
+ }
199
+ return a;
200
+ };
201
+ function $e() {
202
+ let e = 0, r, t, o = "";
203
+ for (; e < arguments.length; )
204
+ (r = arguments[e++]) && (t = we(r)) && (o && (o += " "), o += t);
205
+ return o;
206
+ }
207
+ const we = (e) => {
208
+ if (typeof e == "string")
209
+ return e;
210
+ let r, t = "";
211
+ for (let o = 0; o < e.length; o++)
212
+ e[o] && (r = we(e[o])) && (t && (t += " "), t += r);
213
+ return t;
214
+ };
215
+ function We(e, ...r) {
216
+ let t, o, n, s = i;
217
+ function i(p) {
218
+ const c = r.reduce((b, C) => C(b), e());
219
+ return t = Fe(c), o = t.cache.get, n = t.cache.set, s = a, a(p);
220
+ }
221
+ function a(p) {
222
+ const c = o(p);
223
+ if (c)
224
+ return c;
225
+ const b = _e(p, t);
226
+ return n(p, b), b;
227
+ }
228
+ return function() {
229
+ return s($e.apply(null, arguments));
230
+ };
231
+ }
232
+ const D = (e) => {
233
+ const r = (t) => t[e] || [];
234
+ return r.isThemeGetter = !0, r;
235
+ }, ke = /^\[(?:([a-z-]+):)?(.+)\]$/i, Ue = /^\d+\/\d+$/, He = /* @__PURE__ */ new Set(["px", "full", "screen"]), Ye = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Ke = /\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$/, Je = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, Xe = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Ze = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, V = (e) => J(e) || He.has(e) || Ue.test(e), G = (e) => X(e, "length", sr), J = (e) => !!e && !Number.isNaN(Number(e)), ne = (e) => X(e, "number", J), q = (e) => !!e && Number.isInteger(Number(e)), qe = (e) => e.endsWith("%") && J(e.slice(0, -1)), x = (e) => ke.test(e), F = (e) => Ye.test(e), Qe = /* @__PURE__ */ new Set(["length", "size", "percentage"]), er = (e) => X(e, Qe, Ce), rr = (e) => X(e, "position", Ce), tr = /* @__PURE__ */ new Set(["image", "url"]), or = (e) => X(e, tr, lr), nr = (e) => X(e, "", ar), Q = () => !0, X = (e, r, t) => {
236
+ const o = ke.exec(e);
237
+ return o ? o[1] ? typeof r == "string" ? o[1] === r : r.has(o[1]) : t(o[2]) : !1;
238
+ }, sr = (e) => (
239
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
240
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
241
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
242
+ Ke.test(e) && !Je.test(e)
243
+ ), Ce = () => !1, ar = (e) => Xe.test(e), lr = (e) => Ze.test(e), ir = () => {
244
+ const e = D("colors"), r = D("spacing"), t = D("blur"), o = D("brightness"), n = D("borderColor"), s = D("borderRadius"), i = D("borderSpacing"), a = D("borderWidth"), p = D("contrast"), c = D("grayscale"), b = D("hueRotate"), C = D("invert"), w = D("gap"), v = D("gradientColorStops"), g = D("gradientColorStopPositions"), m = D("inset"), d = D("margin"), y = D("opacity"), h = D("padding"), S = D("saturate"), M = D("scale"), j = D("sepia"), N = D("skew"), z = D("space"), W = D("translate"), R = () => ["auto", "contain", "none"], _ = () => ["auto", "hidden", "clip", "visible", "scroll"], Z = () => ["auto", x, r], P = () => [x, r], U = () => ["", V, G], H = () => ["auto", J, x], ee = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], $ = () => ["solid", "dashed", "dotted", "double", "none"], re = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], f = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], L = () => ["", "0", x], O = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], I = () => [J, x];
245
+ return {
246
+ cacheSize: 500,
247
+ separator: ":",
248
+ theme: {
249
+ colors: [Q],
250
+ spacing: [V, G],
251
+ blur: ["none", "", F, x],
252
+ brightness: I(),
253
+ borderColor: [e],
254
+ borderRadius: ["none", "", "full", F, x],
255
+ borderSpacing: P(),
256
+ borderWidth: U(),
257
+ contrast: I(),
258
+ grayscale: L(),
259
+ hueRotate: I(),
260
+ invert: L(),
261
+ gap: P(),
262
+ gradientColorStops: [e],
263
+ gradientColorStopPositions: [qe, G],
264
+ inset: Z(),
265
+ margin: Z(),
266
+ opacity: I(),
267
+ padding: P(),
268
+ saturate: I(),
269
+ scale: I(),
270
+ sepia: L(),
271
+ skew: I(),
272
+ space: P(),
273
+ translate: P()
274
+ },
275
+ classGroups: {
276
+ // Layout
277
+ /**
278
+ * Aspect Ratio
279
+ * @see https://tailwindcss.com/docs/aspect-ratio
280
+ */
281
+ aspect: [{
282
+ aspect: ["auto", "square", "video", x]
283
+ }],
284
+ /**
285
+ * Container
286
+ * @see https://tailwindcss.com/docs/container
287
+ */
288
+ container: ["container"],
289
+ /**
290
+ * Columns
291
+ * @see https://tailwindcss.com/docs/columns
292
+ */
293
+ columns: [{
294
+ columns: [F]
295
+ }],
296
+ /**
297
+ * Break After
298
+ * @see https://tailwindcss.com/docs/break-after
299
+ */
300
+ "break-after": [{
301
+ "break-after": O()
302
+ }],
303
+ /**
304
+ * Break Before
305
+ * @see https://tailwindcss.com/docs/break-before
306
+ */
307
+ "break-before": [{
308
+ "break-before": O()
309
+ }],
310
+ /**
311
+ * Break Inside
312
+ * @see https://tailwindcss.com/docs/break-inside
313
+ */
314
+ "break-inside": [{
315
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
316
+ }],
317
+ /**
318
+ * Box Decoration Break
319
+ * @see https://tailwindcss.com/docs/box-decoration-break
320
+ */
321
+ "box-decoration": [{
322
+ "box-decoration": ["slice", "clone"]
323
+ }],
324
+ /**
325
+ * Box Sizing
326
+ * @see https://tailwindcss.com/docs/box-sizing
327
+ */
328
+ box: [{
329
+ box: ["border", "content"]
330
+ }],
331
+ /**
332
+ * Display
333
+ * @see https://tailwindcss.com/docs/display
334
+ */
335
+ 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"],
336
+ /**
337
+ * Floats
338
+ * @see https://tailwindcss.com/docs/float
339
+ */
340
+ float: [{
341
+ float: ["right", "left", "none", "start", "end"]
342
+ }],
343
+ /**
344
+ * Clear
345
+ * @see https://tailwindcss.com/docs/clear
346
+ */
347
+ clear: [{
348
+ clear: ["left", "right", "both", "none", "start", "end"]
349
+ }],
350
+ /**
351
+ * Isolation
352
+ * @see https://tailwindcss.com/docs/isolation
353
+ */
354
+ isolation: ["isolate", "isolation-auto"],
355
+ /**
356
+ * Object Fit
357
+ * @see https://tailwindcss.com/docs/object-fit
358
+ */
359
+ "object-fit": [{
360
+ object: ["contain", "cover", "fill", "none", "scale-down"]
361
+ }],
362
+ /**
363
+ * Object Position
364
+ * @see https://tailwindcss.com/docs/object-position
365
+ */
366
+ "object-position": [{
367
+ object: [...ee(), x]
368
+ }],
369
+ /**
370
+ * Overflow
371
+ * @see https://tailwindcss.com/docs/overflow
372
+ */
373
+ overflow: [{
374
+ overflow: _()
375
+ }],
376
+ /**
377
+ * Overflow X
378
+ * @see https://tailwindcss.com/docs/overflow
379
+ */
380
+ "overflow-x": [{
381
+ "overflow-x": _()
382
+ }],
383
+ /**
384
+ * Overflow Y
385
+ * @see https://tailwindcss.com/docs/overflow
386
+ */
387
+ "overflow-y": [{
388
+ "overflow-y": _()
389
+ }],
390
+ /**
391
+ * Overscroll Behavior
392
+ * @see https://tailwindcss.com/docs/overscroll-behavior
393
+ */
394
+ overscroll: [{
395
+ overscroll: R()
396
+ }],
397
+ /**
398
+ * Overscroll Behavior X
399
+ * @see https://tailwindcss.com/docs/overscroll-behavior
400
+ */
401
+ "overscroll-x": [{
402
+ "overscroll-x": R()
403
+ }],
404
+ /**
405
+ * Overscroll Behavior Y
406
+ * @see https://tailwindcss.com/docs/overscroll-behavior
407
+ */
408
+ "overscroll-y": [{
409
+ "overscroll-y": R()
410
+ }],
411
+ /**
412
+ * Position
413
+ * @see https://tailwindcss.com/docs/position
414
+ */
415
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
416
+ /**
417
+ * Top / Right / Bottom / Left
418
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
419
+ */
420
+ inset: [{
421
+ inset: [m]
422
+ }],
423
+ /**
424
+ * Right / Left
425
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
426
+ */
427
+ "inset-x": [{
428
+ "inset-x": [m]
429
+ }],
430
+ /**
431
+ * Top / Bottom
432
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
433
+ */
434
+ "inset-y": [{
435
+ "inset-y": [m]
436
+ }],
437
+ /**
438
+ * Start
439
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
440
+ */
441
+ start: [{
442
+ start: [m]
443
+ }],
444
+ /**
445
+ * End
446
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
447
+ */
448
+ end: [{
449
+ end: [m]
450
+ }],
451
+ /**
452
+ * Top
453
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
454
+ */
455
+ top: [{
456
+ top: [m]
457
+ }],
458
+ /**
459
+ * Right
460
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
461
+ */
462
+ right: [{
463
+ right: [m]
464
+ }],
465
+ /**
466
+ * Bottom
467
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
468
+ */
469
+ bottom: [{
470
+ bottom: [m]
471
+ }],
472
+ /**
473
+ * Left
474
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
475
+ */
476
+ left: [{
477
+ left: [m]
478
+ }],
479
+ /**
480
+ * Visibility
481
+ * @see https://tailwindcss.com/docs/visibility
482
+ */
483
+ visibility: ["visible", "invisible", "collapse"],
484
+ /**
485
+ * Z-Index
486
+ * @see https://tailwindcss.com/docs/z-index
487
+ */
488
+ z: [{
489
+ z: ["auto", q, x]
490
+ }],
491
+ // Flexbox and Grid
492
+ /**
493
+ * Flex Basis
494
+ * @see https://tailwindcss.com/docs/flex-basis
495
+ */
496
+ basis: [{
497
+ basis: Z()
498
+ }],
499
+ /**
500
+ * Flex Direction
501
+ * @see https://tailwindcss.com/docs/flex-direction
502
+ */
503
+ "flex-direction": [{
504
+ flex: ["row", "row-reverse", "col", "col-reverse"]
505
+ }],
506
+ /**
507
+ * Flex Wrap
508
+ * @see https://tailwindcss.com/docs/flex-wrap
509
+ */
510
+ "flex-wrap": [{
511
+ flex: ["wrap", "wrap-reverse", "nowrap"]
512
+ }],
513
+ /**
514
+ * Flex
515
+ * @see https://tailwindcss.com/docs/flex
516
+ */
517
+ flex: [{
518
+ flex: ["1", "auto", "initial", "none", x]
519
+ }],
520
+ /**
521
+ * Flex Grow
522
+ * @see https://tailwindcss.com/docs/flex-grow
523
+ */
524
+ grow: [{
525
+ grow: L()
526
+ }],
527
+ /**
528
+ * Flex Shrink
529
+ * @see https://tailwindcss.com/docs/flex-shrink
530
+ */
531
+ shrink: [{
532
+ shrink: L()
533
+ }],
534
+ /**
535
+ * Order
536
+ * @see https://tailwindcss.com/docs/order
537
+ */
538
+ order: [{
539
+ order: ["first", "last", "none", q, x]
540
+ }],
541
+ /**
542
+ * Grid Template Columns
543
+ * @see https://tailwindcss.com/docs/grid-template-columns
544
+ */
545
+ "grid-cols": [{
546
+ "grid-cols": [Q]
547
+ }],
548
+ /**
549
+ * Grid Column Start / End
550
+ * @see https://tailwindcss.com/docs/grid-column
551
+ */
552
+ "col-start-end": [{
553
+ col: ["auto", {
554
+ span: ["full", q, x]
555
+ }, x]
556
+ }],
557
+ /**
558
+ * Grid Column Start
559
+ * @see https://tailwindcss.com/docs/grid-column
560
+ */
561
+ "col-start": [{
562
+ "col-start": H()
563
+ }],
564
+ /**
565
+ * Grid Column End
566
+ * @see https://tailwindcss.com/docs/grid-column
567
+ */
568
+ "col-end": [{
569
+ "col-end": H()
570
+ }],
571
+ /**
572
+ * Grid Template Rows
573
+ * @see https://tailwindcss.com/docs/grid-template-rows
574
+ */
575
+ "grid-rows": [{
576
+ "grid-rows": [Q]
577
+ }],
578
+ /**
579
+ * Grid Row Start / End
580
+ * @see https://tailwindcss.com/docs/grid-row
581
+ */
582
+ "row-start-end": [{
583
+ row: ["auto", {
584
+ span: [q, x]
585
+ }, x]
586
+ }],
587
+ /**
588
+ * Grid Row Start
589
+ * @see https://tailwindcss.com/docs/grid-row
590
+ */
591
+ "row-start": [{
592
+ "row-start": H()
593
+ }],
594
+ /**
595
+ * Grid Row End
596
+ * @see https://tailwindcss.com/docs/grid-row
597
+ */
598
+ "row-end": [{
599
+ "row-end": H()
600
+ }],
601
+ /**
602
+ * Grid Auto Flow
603
+ * @see https://tailwindcss.com/docs/grid-auto-flow
604
+ */
605
+ "grid-flow": [{
606
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
607
+ }],
608
+ /**
609
+ * Grid Auto Columns
610
+ * @see https://tailwindcss.com/docs/grid-auto-columns
611
+ */
612
+ "auto-cols": [{
613
+ "auto-cols": ["auto", "min", "max", "fr", x]
614
+ }],
615
+ /**
616
+ * Grid Auto Rows
617
+ * @see https://tailwindcss.com/docs/grid-auto-rows
618
+ */
619
+ "auto-rows": [{
620
+ "auto-rows": ["auto", "min", "max", "fr", x]
621
+ }],
622
+ /**
623
+ * Gap
624
+ * @see https://tailwindcss.com/docs/gap
625
+ */
626
+ gap: [{
627
+ gap: [w]
628
+ }],
629
+ /**
630
+ * Gap X
631
+ * @see https://tailwindcss.com/docs/gap
632
+ */
633
+ "gap-x": [{
634
+ "gap-x": [w]
635
+ }],
636
+ /**
637
+ * Gap Y
638
+ * @see https://tailwindcss.com/docs/gap
639
+ */
640
+ "gap-y": [{
641
+ "gap-y": [w]
642
+ }],
643
+ /**
644
+ * Justify Content
645
+ * @see https://tailwindcss.com/docs/justify-content
646
+ */
647
+ "justify-content": [{
648
+ justify: ["normal", ...f()]
649
+ }],
650
+ /**
651
+ * Justify Items
652
+ * @see https://tailwindcss.com/docs/justify-items
653
+ */
654
+ "justify-items": [{
655
+ "justify-items": ["start", "end", "center", "stretch"]
656
+ }],
657
+ /**
658
+ * Justify Self
659
+ * @see https://tailwindcss.com/docs/justify-self
660
+ */
661
+ "justify-self": [{
662
+ "justify-self": ["auto", "start", "end", "center", "stretch"]
663
+ }],
664
+ /**
665
+ * Align Content
666
+ * @see https://tailwindcss.com/docs/align-content
667
+ */
668
+ "align-content": [{
669
+ content: ["normal", ...f(), "baseline"]
670
+ }],
671
+ /**
672
+ * Align Items
673
+ * @see https://tailwindcss.com/docs/align-items
674
+ */
675
+ "align-items": [{
676
+ items: ["start", "end", "center", "baseline", "stretch"]
677
+ }],
678
+ /**
679
+ * Align Self
680
+ * @see https://tailwindcss.com/docs/align-self
681
+ */
682
+ "align-self": [{
683
+ self: ["auto", "start", "end", "center", "stretch", "baseline"]
684
+ }],
685
+ /**
686
+ * Place Content
687
+ * @see https://tailwindcss.com/docs/place-content
688
+ */
689
+ "place-content": [{
690
+ "place-content": [...f(), "baseline"]
691
+ }],
692
+ /**
693
+ * Place Items
694
+ * @see https://tailwindcss.com/docs/place-items
695
+ */
696
+ "place-items": [{
697
+ "place-items": ["start", "end", "center", "baseline", "stretch"]
698
+ }],
699
+ /**
700
+ * Place Self
701
+ * @see https://tailwindcss.com/docs/place-self
702
+ */
703
+ "place-self": [{
704
+ "place-self": ["auto", "start", "end", "center", "stretch"]
705
+ }],
706
+ // Spacing
707
+ /**
708
+ * Padding
709
+ * @see https://tailwindcss.com/docs/padding
710
+ */
711
+ p: [{
712
+ p: [h]
713
+ }],
714
+ /**
715
+ * Padding X
716
+ * @see https://tailwindcss.com/docs/padding
717
+ */
718
+ px: [{
719
+ px: [h]
720
+ }],
721
+ /**
722
+ * Padding Y
723
+ * @see https://tailwindcss.com/docs/padding
724
+ */
725
+ py: [{
726
+ py: [h]
727
+ }],
728
+ /**
729
+ * Padding Start
730
+ * @see https://tailwindcss.com/docs/padding
731
+ */
732
+ ps: [{
733
+ ps: [h]
734
+ }],
735
+ /**
736
+ * Padding End
737
+ * @see https://tailwindcss.com/docs/padding
738
+ */
739
+ pe: [{
740
+ pe: [h]
741
+ }],
742
+ /**
743
+ * Padding Top
744
+ * @see https://tailwindcss.com/docs/padding
745
+ */
746
+ pt: [{
747
+ pt: [h]
748
+ }],
749
+ /**
750
+ * Padding Right
751
+ * @see https://tailwindcss.com/docs/padding
752
+ */
753
+ pr: [{
754
+ pr: [h]
755
+ }],
756
+ /**
757
+ * Padding Bottom
758
+ * @see https://tailwindcss.com/docs/padding
759
+ */
760
+ pb: [{
761
+ pb: [h]
762
+ }],
763
+ /**
764
+ * Padding Left
765
+ * @see https://tailwindcss.com/docs/padding
766
+ */
767
+ pl: [{
768
+ pl: [h]
769
+ }],
770
+ /**
771
+ * Margin
772
+ * @see https://tailwindcss.com/docs/margin
773
+ */
774
+ m: [{
775
+ m: [d]
776
+ }],
777
+ /**
778
+ * Margin X
779
+ * @see https://tailwindcss.com/docs/margin
780
+ */
781
+ mx: [{
782
+ mx: [d]
783
+ }],
784
+ /**
785
+ * Margin Y
786
+ * @see https://tailwindcss.com/docs/margin
787
+ */
788
+ my: [{
789
+ my: [d]
790
+ }],
791
+ /**
792
+ * Margin Start
793
+ * @see https://tailwindcss.com/docs/margin
794
+ */
795
+ ms: [{
796
+ ms: [d]
797
+ }],
798
+ /**
799
+ * Margin End
800
+ * @see https://tailwindcss.com/docs/margin
801
+ */
802
+ me: [{
803
+ me: [d]
804
+ }],
805
+ /**
806
+ * Margin Top
807
+ * @see https://tailwindcss.com/docs/margin
808
+ */
809
+ mt: [{
810
+ mt: [d]
811
+ }],
812
+ /**
813
+ * Margin Right
814
+ * @see https://tailwindcss.com/docs/margin
815
+ */
816
+ mr: [{
817
+ mr: [d]
818
+ }],
819
+ /**
820
+ * Margin Bottom
821
+ * @see https://tailwindcss.com/docs/margin
822
+ */
823
+ mb: [{
824
+ mb: [d]
825
+ }],
826
+ /**
827
+ * Margin Left
828
+ * @see https://tailwindcss.com/docs/margin
829
+ */
830
+ ml: [{
831
+ ml: [d]
832
+ }],
833
+ /**
834
+ * Space Between X
835
+ * @see https://tailwindcss.com/docs/space
836
+ */
837
+ "space-x": [{
838
+ "space-x": [z]
839
+ }],
840
+ /**
841
+ * Space Between X Reverse
842
+ * @see https://tailwindcss.com/docs/space
843
+ */
844
+ "space-x-reverse": ["space-x-reverse"],
845
+ /**
846
+ * Space Between Y
847
+ * @see https://tailwindcss.com/docs/space
848
+ */
849
+ "space-y": [{
850
+ "space-y": [z]
851
+ }],
852
+ /**
853
+ * Space Between Y Reverse
854
+ * @see https://tailwindcss.com/docs/space
855
+ */
856
+ "space-y-reverse": ["space-y-reverse"],
857
+ // Sizing
858
+ /**
859
+ * Width
860
+ * @see https://tailwindcss.com/docs/width
861
+ */
862
+ w: [{
863
+ w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", x, r]
864
+ }],
865
+ /**
866
+ * Min-Width
867
+ * @see https://tailwindcss.com/docs/min-width
868
+ */
869
+ "min-w": [{
870
+ "min-w": [x, r, "min", "max", "fit"]
871
+ }],
872
+ /**
873
+ * Max-Width
874
+ * @see https://tailwindcss.com/docs/max-width
875
+ */
876
+ "max-w": [{
877
+ "max-w": [x, r, "none", "full", "min", "max", "fit", "prose", {
878
+ screen: [F]
879
+ }, F]
880
+ }],
881
+ /**
882
+ * Height
883
+ * @see https://tailwindcss.com/docs/height
884
+ */
885
+ h: [{
886
+ h: [x, r, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
887
+ }],
888
+ /**
889
+ * Min-Height
890
+ * @see https://tailwindcss.com/docs/min-height
891
+ */
892
+ "min-h": [{
893
+ "min-h": [x, r, "min", "max", "fit", "svh", "lvh", "dvh"]
894
+ }],
895
+ /**
896
+ * Max-Height
897
+ * @see https://tailwindcss.com/docs/max-height
898
+ */
899
+ "max-h": [{
900
+ "max-h": [x, r, "min", "max", "fit", "svh", "lvh", "dvh"]
901
+ }],
902
+ /**
903
+ * Size
904
+ * @see https://tailwindcss.com/docs/size
905
+ */
906
+ size: [{
907
+ size: [x, r, "auto", "min", "max", "fit"]
908
+ }],
909
+ // Typography
910
+ /**
911
+ * Font Size
912
+ * @see https://tailwindcss.com/docs/font-size
913
+ */
914
+ "font-size": [{
915
+ text: ["base", F, G]
916
+ }],
917
+ /**
918
+ * Font Smoothing
919
+ * @see https://tailwindcss.com/docs/font-smoothing
920
+ */
921
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
922
+ /**
923
+ * Font Style
924
+ * @see https://tailwindcss.com/docs/font-style
925
+ */
926
+ "font-style": ["italic", "not-italic"],
927
+ /**
928
+ * Font Weight
929
+ * @see https://tailwindcss.com/docs/font-weight
930
+ */
931
+ "font-weight": [{
932
+ font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", ne]
933
+ }],
934
+ /**
935
+ * Font Family
936
+ * @see https://tailwindcss.com/docs/font-family
937
+ */
938
+ "font-family": [{
939
+ font: [Q]
940
+ }],
941
+ /**
942
+ * Font Variant Numeric
943
+ * @see https://tailwindcss.com/docs/font-variant-numeric
944
+ */
945
+ "fvn-normal": ["normal-nums"],
946
+ /**
947
+ * Font Variant Numeric
948
+ * @see https://tailwindcss.com/docs/font-variant-numeric
949
+ */
950
+ "fvn-ordinal": ["ordinal"],
951
+ /**
952
+ * Font Variant Numeric
953
+ * @see https://tailwindcss.com/docs/font-variant-numeric
954
+ */
955
+ "fvn-slashed-zero": ["slashed-zero"],
956
+ /**
957
+ * Font Variant Numeric
958
+ * @see https://tailwindcss.com/docs/font-variant-numeric
959
+ */
960
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
961
+ /**
962
+ * Font Variant Numeric
963
+ * @see https://tailwindcss.com/docs/font-variant-numeric
964
+ */
965
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
966
+ /**
967
+ * Font Variant Numeric
968
+ * @see https://tailwindcss.com/docs/font-variant-numeric
969
+ */
970
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
971
+ /**
972
+ * Letter Spacing
973
+ * @see https://tailwindcss.com/docs/letter-spacing
974
+ */
975
+ tracking: [{
976
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", x]
977
+ }],
978
+ /**
979
+ * Line Clamp
980
+ * @see https://tailwindcss.com/docs/line-clamp
981
+ */
982
+ "line-clamp": [{
983
+ "line-clamp": ["none", J, ne]
984
+ }],
985
+ /**
986
+ * Line Height
987
+ * @see https://tailwindcss.com/docs/line-height
988
+ */
989
+ leading: [{
990
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose", V, x]
991
+ }],
992
+ /**
993
+ * List Style Image
994
+ * @see https://tailwindcss.com/docs/list-style-image
995
+ */
996
+ "list-image": [{
997
+ "list-image": ["none", x]
998
+ }],
999
+ /**
1000
+ * List Style Type
1001
+ * @see https://tailwindcss.com/docs/list-style-type
1002
+ */
1003
+ "list-style-type": [{
1004
+ list: ["none", "disc", "decimal", x]
1005
+ }],
1006
+ /**
1007
+ * List Style Position
1008
+ * @see https://tailwindcss.com/docs/list-style-position
1009
+ */
1010
+ "list-style-position": [{
1011
+ list: ["inside", "outside"]
1012
+ }],
1013
+ /**
1014
+ * Placeholder Color
1015
+ * @deprecated since Tailwind CSS v3.0.0
1016
+ * @see https://tailwindcss.com/docs/placeholder-color
1017
+ */
1018
+ "placeholder-color": [{
1019
+ placeholder: [e]
1020
+ }],
1021
+ /**
1022
+ * Placeholder Opacity
1023
+ * @see https://tailwindcss.com/docs/placeholder-opacity
1024
+ */
1025
+ "placeholder-opacity": [{
1026
+ "placeholder-opacity": [y]
1027
+ }],
1028
+ /**
1029
+ * Text Alignment
1030
+ * @see https://tailwindcss.com/docs/text-align
1031
+ */
1032
+ "text-alignment": [{
1033
+ text: ["left", "center", "right", "justify", "start", "end"]
1034
+ }],
1035
+ /**
1036
+ * Text Color
1037
+ * @see https://tailwindcss.com/docs/text-color
1038
+ */
1039
+ "text-color": [{
1040
+ text: [e]
1041
+ }],
1042
+ /**
1043
+ * Text Opacity
1044
+ * @see https://tailwindcss.com/docs/text-opacity
1045
+ */
1046
+ "text-opacity": [{
1047
+ "text-opacity": [y]
1048
+ }],
1049
+ /**
1050
+ * Text Decoration
1051
+ * @see https://tailwindcss.com/docs/text-decoration
1052
+ */
1053
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1054
+ /**
1055
+ * Text Decoration Style
1056
+ * @see https://tailwindcss.com/docs/text-decoration-style
1057
+ */
1058
+ "text-decoration-style": [{
1059
+ decoration: [...$(), "wavy"]
1060
+ }],
1061
+ /**
1062
+ * Text Decoration Thickness
1063
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1064
+ */
1065
+ "text-decoration-thickness": [{
1066
+ decoration: ["auto", "from-font", V, G]
1067
+ }],
1068
+ /**
1069
+ * Text Underline Offset
1070
+ * @see https://tailwindcss.com/docs/text-underline-offset
1071
+ */
1072
+ "underline-offset": [{
1073
+ "underline-offset": ["auto", V, x]
1074
+ }],
1075
+ /**
1076
+ * Text Decoration Color
1077
+ * @see https://tailwindcss.com/docs/text-decoration-color
1078
+ */
1079
+ "text-decoration-color": [{
1080
+ decoration: [e]
1081
+ }],
1082
+ /**
1083
+ * Text Transform
1084
+ * @see https://tailwindcss.com/docs/text-transform
1085
+ */
1086
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1087
+ /**
1088
+ * Text Overflow
1089
+ * @see https://tailwindcss.com/docs/text-overflow
1090
+ */
1091
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1092
+ /**
1093
+ * Text Wrap
1094
+ * @see https://tailwindcss.com/docs/text-wrap
1095
+ */
1096
+ "text-wrap": [{
1097
+ text: ["wrap", "nowrap", "balance", "pretty"]
1098
+ }],
1099
+ /**
1100
+ * Text Indent
1101
+ * @see https://tailwindcss.com/docs/text-indent
1102
+ */
1103
+ indent: [{
1104
+ indent: P()
1105
+ }],
1106
+ /**
1107
+ * Vertical Alignment
1108
+ * @see https://tailwindcss.com/docs/vertical-align
1109
+ */
1110
+ "vertical-align": [{
1111
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", x]
1112
+ }],
1113
+ /**
1114
+ * Whitespace
1115
+ * @see https://tailwindcss.com/docs/whitespace
1116
+ */
1117
+ whitespace: [{
1118
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1119
+ }],
1120
+ /**
1121
+ * Word Break
1122
+ * @see https://tailwindcss.com/docs/word-break
1123
+ */
1124
+ break: [{
1125
+ break: ["normal", "words", "all", "keep"]
1126
+ }],
1127
+ /**
1128
+ * Hyphens
1129
+ * @see https://tailwindcss.com/docs/hyphens
1130
+ */
1131
+ hyphens: [{
1132
+ hyphens: ["none", "manual", "auto"]
1133
+ }],
1134
+ /**
1135
+ * Content
1136
+ * @see https://tailwindcss.com/docs/content
1137
+ */
1138
+ content: [{
1139
+ content: ["none", x]
1140
+ }],
1141
+ // Backgrounds
1142
+ /**
1143
+ * Background Attachment
1144
+ * @see https://tailwindcss.com/docs/background-attachment
1145
+ */
1146
+ "bg-attachment": [{
1147
+ bg: ["fixed", "local", "scroll"]
1148
+ }],
1149
+ /**
1150
+ * Background Clip
1151
+ * @see https://tailwindcss.com/docs/background-clip
1152
+ */
1153
+ "bg-clip": [{
1154
+ "bg-clip": ["border", "padding", "content", "text"]
1155
+ }],
1156
+ /**
1157
+ * Background Opacity
1158
+ * @deprecated since Tailwind CSS v3.0.0
1159
+ * @see https://tailwindcss.com/docs/background-opacity
1160
+ */
1161
+ "bg-opacity": [{
1162
+ "bg-opacity": [y]
1163
+ }],
1164
+ /**
1165
+ * Background Origin
1166
+ * @see https://tailwindcss.com/docs/background-origin
1167
+ */
1168
+ "bg-origin": [{
1169
+ "bg-origin": ["border", "padding", "content"]
1170
+ }],
1171
+ /**
1172
+ * Background Position
1173
+ * @see https://tailwindcss.com/docs/background-position
1174
+ */
1175
+ "bg-position": [{
1176
+ bg: [...ee(), rr]
1177
+ }],
1178
+ /**
1179
+ * Background Repeat
1180
+ * @see https://tailwindcss.com/docs/background-repeat
1181
+ */
1182
+ "bg-repeat": [{
1183
+ bg: ["no-repeat", {
1184
+ repeat: ["", "x", "y", "round", "space"]
1185
+ }]
1186
+ }],
1187
+ /**
1188
+ * Background Size
1189
+ * @see https://tailwindcss.com/docs/background-size
1190
+ */
1191
+ "bg-size": [{
1192
+ bg: ["auto", "cover", "contain", er]
1193
+ }],
1194
+ /**
1195
+ * Background Image
1196
+ * @see https://tailwindcss.com/docs/background-image
1197
+ */
1198
+ "bg-image": [{
1199
+ bg: ["none", {
1200
+ "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1201
+ }, or]
1202
+ }],
1203
+ /**
1204
+ * Background Color
1205
+ * @see https://tailwindcss.com/docs/background-color
1206
+ */
1207
+ "bg-color": [{
1208
+ bg: [e]
1209
+ }],
1210
+ /**
1211
+ * Gradient Color Stops From Position
1212
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1213
+ */
1214
+ "gradient-from-pos": [{
1215
+ from: [g]
1216
+ }],
1217
+ /**
1218
+ * Gradient Color Stops Via Position
1219
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1220
+ */
1221
+ "gradient-via-pos": [{
1222
+ via: [g]
1223
+ }],
1224
+ /**
1225
+ * Gradient Color Stops To Position
1226
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1227
+ */
1228
+ "gradient-to-pos": [{
1229
+ to: [g]
1230
+ }],
1231
+ /**
1232
+ * Gradient Color Stops From
1233
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1234
+ */
1235
+ "gradient-from": [{
1236
+ from: [v]
1237
+ }],
1238
+ /**
1239
+ * Gradient Color Stops Via
1240
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1241
+ */
1242
+ "gradient-via": [{
1243
+ via: [v]
1244
+ }],
1245
+ /**
1246
+ * Gradient Color Stops To
1247
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1248
+ */
1249
+ "gradient-to": [{
1250
+ to: [v]
1251
+ }],
1252
+ // Borders
1253
+ /**
1254
+ * Border Radius
1255
+ * @see https://tailwindcss.com/docs/border-radius
1256
+ */
1257
+ rounded: [{
1258
+ rounded: [s]
1259
+ }],
1260
+ /**
1261
+ * Border Radius Start
1262
+ * @see https://tailwindcss.com/docs/border-radius
1263
+ */
1264
+ "rounded-s": [{
1265
+ "rounded-s": [s]
1266
+ }],
1267
+ /**
1268
+ * Border Radius End
1269
+ * @see https://tailwindcss.com/docs/border-radius
1270
+ */
1271
+ "rounded-e": [{
1272
+ "rounded-e": [s]
1273
+ }],
1274
+ /**
1275
+ * Border Radius Top
1276
+ * @see https://tailwindcss.com/docs/border-radius
1277
+ */
1278
+ "rounded-t": [{
1279
+ "rounded-t": [s]
1280
+ }],
1281
+ /**
1282
+ * Border Radius Right
1283
+ * @see https://tailwindcss.com/docs/border-radius
1284
+ */
1285
+ "rounded-r": [{
1286
+ "rounded-r": [s]
1287
+ }],
1288
+ /**
1289
+ * Border Radius Bottom
1290
+ * @see https://tailwindcss.com/docs/border-radius
1291
+ */
1292
+ "rounded-b": [{
1293
+ "rounded-b": [s]
1294
+ }],
1295
+ /**
1296
+ * Border Radius Left
1297
+ * @see https://tailwindcss.com/docs/border-radius
1298
+ */
1299
+ "rounded-l": [{
1300
+ "rounded-l": [s]
1301
+ }],
1302
+ /**
1303
+ * Border Radius Start Start
1304
+ * @see https://tailwindcss.com/docs/border-radius
1305
+ */
1306
+ "rounded-ss": [{
1307
+ "rounded-ss": [s]
1308
+ }],
1309
+ /**
1310
+ * Border Radius Start End
1311
+ * @see https://tailwindcss.com/docs/border-radius
1312
+ */
1313
+ "rounded-se": [{
1314
+ "rounded-se": [s]
1315
+ }],
1316
+ /**
1317
+ * Border Radius End End
1318
+ * @see https://tailwindcss.com/docs/border-radius
1319
+ */
1320
+ "rounded-ee": [{
1321
+ "rounded-ee": [s]
1322
+ }],
1323
+ /**
1324
+ * Border Radius End Start
1325
+ * @see https://tailwindcss.com/docs/border-radius
1326
+ */
1327
+ "rounded-es": [{
1328
+ "rounded-es": [s]
1329
+ }],
1330
+ /**
1331
+ * Border Radius Top Left
1332
+ * @see https://tailwindcss.com/docs/border-radius
1333
+ */
1334
+ "rounded-tl": [{
1335
+ "rounded-tl": [s]
1336
+ }],
1337
+ /**
1338
+ * Border Radius Top Right
1339
+ * @see https://tailwindcss.com/docs/border-radius
1340
+ */
1341
+ "rounded-tr": [{
1342
+ "rounded-tr": [s]
1343
+ }],
1344
+ /**
1345
+ * Border Radius Bottom Right
1346
+ * @see https://tailwindcss.com/docs/border-radius
1347
+ */
1348
+ "rounded-br": [{
1349
+ "rounded-br": [s]
1350
+ }],
1351
+ /**
1352
+ * Border Radius Bottom Left
1353
+ * @see https://tailwindcss.com/docs/border-radius
1354
+ */
1355
+ "rounded-bl": [{
1356
+ "rounded-bl": [s]
1357
+ }],
1358
+ /**
1359
+ * Border Width
1360
+ * @see https://tailwindcss.com/docs/border-width
1361
+ */
1362
+ "border-w": [{
1363
+ border: [a]
1364
+ }],
1365
+ /**
1366
+ * Border Width X
1367
+ * @see https://tailwindcss.com/docs/border-width
1368
+ */
1369
+ "border-w-x": [{
1370
+ "border-x": [a]
1371
+ }],
1372
+ /**
1373
+ * Border Width Y
1374
+ * @see https://tailwindcss.com/docs/border-width
1375
+ */
1376
+ "border-w-y": [{
1377
+ "border-y": [a]
1378
+ }],
1379
+ /**
1380
+ * Border Width Start
1381
+ * @see https://tailwindcss.com/docs/border-width
1382
+ */
1383
+ "border-w-s": [{
1384
+ "border-s": [a]
1385
+ }],
1386
+ /**
1387
+ * Border Width End
1388
+ * @see https://tailwindcss.com/docs/border-width
1389
+ */
1390
+ "border-w-e": [{
1391
+ "border-e": [a]
1392
+ }],
1393
+ /**
1394
+ * Border Width Top
1395
+ * @see https://tailwindcss.com/docs/border-width
1396
+ */
1397
+ "border-w-t": [{
1398
+ "border-t": [a]
1399
+ }],
1400
+ /**
1401
+ * Border Width Right
1402
+ * @see https://tailwindcss.com/docs/border-width
1403
+ */
1404
+ "border-w-r": [{
1405
+ "border-r": [a]
1406
+ }],
1407
+ /**
1408
+ * Border Width Bottom
1409
+ * @see https://tailwindcss.com/docs/border-width
1410
+ */
1411
+ "border-w-b": [{
1412
+ "border-b": [a]
1413
+ }],
1414
+ /**
1415
+ * Border Width Left
1416
+ * @see https://tailwindcss.com/docs/border-width
1417
+ */
1418
+ "border-w-l": [{
1419
+ "border-l": [a]
1420
+ }],
1421
+ /**
1422
+ * Border Opacity
1423
+ * @see https://tailwindcss.com/docs/border-opacity
1424
+ */
1425
+ "border-opacity": [{
1426
+ "border-opacity": [y]
1427
+ }],
1428
+ /**
1429
+ * Border Style
1430
+ * @see https://tailwindcss.com/docs/border-style
1431
+ */
1432
+ "border-style": [{
1433
+ border: [...$(), "hidden"]
1434
+ }],
1435
+ /**
1436
+ * Divide Width X
1437
+ * @see https://tailwindcss.com/docs/divide-width
1438
+ */
1439
+ "divide-x": [{
1440
+ "divide-x": [a]
1441
+ }],
1442
+ /**
1443
+ * Divide Width X Reverse
1444
+ * @see https://tailwindcss.com/docs/divide-width
1445
+ */
1446
+ "divide-x-reverse": ["divide-x-reverse"],
1447
+ /**
1448
+ * Divide Width Y
1449
+ * @see https://tailwindcss.com/docs/divide-width
1450
+ */
1451
+ "divide-y": [{
1452
+ "divide-y": [a]
1453
+ }],
1454
+ /**
1455
+ * Divide Width Y Reverse
1456
+ * @see https://tailwindcss.com/docs/divide-width
1457
+ */
1458
+ "divide-y-reverse": ["divide-y-reverse"],
1459
+ /**
1460
+ * Divide Opacity
1461
+ * @see https://tailwindcss.com/docs/divide-opacity
1462
+ */
1463
+ "divide-opacity": [{
1464
+ "divide-opacity": [y]
1465
+ }],
1466
+ /**
1467
+ * Divide Style
1468
+ * @see https://tailwindcss.com/docs/divide-style
1469
+ */
1470
+ "divide-style": [{
1471
+ divide: $()
1472
+ }],
1473
+ /**
1474
+ * Border Color
1475
+ * @see https://tailwindcss.com/docs/border-color
1476
+ */
1477
+ "border-color": [{
1478
+ border: [n]
1479
+ }],
1480
+ /**
1481
+ * Border Color X
1482
+ * @see https://tailwindcss.com/docs/border-color
1483
+ */
1484
+ "border-color-x": [{
1485
+ "border-x": [n]
1486
+ }],
1487
+ /**
1488
+ * Border Color Y
1489
+ * @see https://tailwindcss.com/docs/border-color
1490
+ */
1491
+ "border-color-y": [{
1492
+ "border-y": [n]
1493
+ }],
1494
+ /**
1495
+ * Border Color S
1496
+ * @see https://tailwindcss.com/docs/border-color
1497
+ */
1498
+ "border-color-s": [{
1499
+ "border-s": [n]
1500
+ }],
1501
+ /**
1502
+ * Border Color E
1503
+ * @see https://tailwindcss.com/docs/border-color
1504
+ */
1505
+ "border-color-e": [{
1506
+ "border-e": [n]
1507
+ }],
1508
+ /**
1509
+ * Border Color Top
1510
+ * @see https://tailwindcss.com/docs/border-color
1511
+ */
1512
+ "border-color-t": [{
1513
+ "border-t": [n]
1514
+ }],
1515
+ /**
1516
+ * Border Color Right
1517
+ * @see https://tailwindcss.com/docs/border-color
1518
+ */
1519
+ "border-color-r": [{
1520
+ "border-r": [n]
1521
+ }],
1522
+ /**
1523
+ * Border Color Bottom
1524
+ * @see https://tailwindcss.com/docs/border-color
1525
+ */
1526
+ "border-color-b": [{
1527
+ "border-b": [n]
1528
+ }],
1529
+ /**
1530
+ * Border Color Left
1531
+ * @see https://tailwindcss.com/docs/border-color
1532
+ */
1533
+ "border-color-l": [{
1534
+ "border-l": [n]
1535
+ }],
1536
+ /**
1537
+ * Divide Color
1538
+ * @see https://tailwindcss.com/docs/divide-color
1539
+ */
1540
+ "divide-color": [{
1541
+ divide: [n]
1542
+ }],
1543
+ /**
1544
+ * Outline Style
1545
+ * @see https://tailwindcss.com/docs/outline-style
1546
+ */
1547
+ "outline-style": [{
1548
+ outline: ["", ...$()]
1549
+ }],
1550
+ /**
1551
+ * Outline Offset
1552
+ * @see https://tailwindcss.com/docs/outline-offset
1553
+ */
1554
+ "outline-offset": [{
1555
+ "outline-offset": [V, x]
1556
+ }],
1557
+ /**
1558
+ * Outline Width
1559
+ * @see https://tailwindcss.com/docs/outline-width
1560
+ */
1561
+ "outline-w": [{
1562
+ outline: [V, G]
1563
+ }],
1564
+ /**
1565
+ * Outline Color
1566
+ * @see https://tailwindcss.com/docs/outline-color
1567
+ */
1568
+ "outline-color": [{
1569
+ outline: [e]
1570
+ }],
1571
+ /**
1572
+ * Ring Width
1573
+ * @see https://tailwindcss.com/docs/ring-width
1574
+ */
1575
+ "ring-w": [{
1576
+ ring: U()
1577
+ }],
1578
+ /**
1579
+ * Ring Width Inset
1580
+ * @see https://tailwindcss.com/docs/ring-width
1581
+ */
1582
+ "ring-w-inset": ["ring-inset"],
1583
+ /**
1584
+ * Ring Color
1585
+ * @see https://tailwindcss.com/docs/ring-color
1586
+ */
1587
+ "ring-color": [{
1588
+ ring: [e]
1589
+ }],
1590
+ /**
1591
+ * Ring Opacity
1592
+ * @see https://tailwindcss.com/docs/ring-opacity
1593
+ */
1594
+ "ring-opacity": [{
1595
+ "ring-opacity": [y]
1596
+ }],
1597
+ /**
1598
+ * Ring Offset Width
1599
+ * @see https://tailwindcss.com/docs/ring-offset-width
1600
+ */
1601
+ "ring-offset-w": [{
1602
+ "ring-offset": [V, G]
1603
+ }],
1604
+ /**
1605
+ * Ring Offset Color
1606
+ * @see https://tailwindcss.com/docs/ring-offset-color
1607
+ */
1608
+ "ring-offset-color": [{
1609
+ "ring-offset": [e]
1610
+ }],
1611
+ // Effects
1612
+ /**
1613
+ * Box Shadow
1614
+ * @see https://tailwindcss.com/docs/box-shadow
1615
+ */
1616
+ shadow: [{
1617
+ shadow: ["", "inner", "none", F, nr]
1618
+ }],
1619
+ /**
1620
+ * Box Shadow Color
1621
+ * @see https://tailwindcss.com/docs/box-shadow-color
1622
+ */
1623
+ "shadow-color": [{
1624
+ shadow: [Q]
1625
+ }],
1626
+ /**
1627
+ * Opacity
1628
+ * @see https://tailwindcss.com/docs/opacity
1629
+ */
1630
+ opacity: [{
1631
+ opacity: [y]
1632
+ }],
1633
+ /**
1634
+ * Mix Blend Mode
1635
+ * @see https://tailwindcss.com/docs/mix-blend-mode
1636
+ */
1637
+ "mix-blend": [{
1638
+ "mix-blend": [...re(), "plus-lighter", "plus-darker"]
1639
+ }],
1640
+ /**
1641
+ * Background Blend Mode
1642
+ * @see https://tailwindcss.com/docs/background-blend-mode
1643
+ */
1644
+ "bg-blend": [{
1645
+ "bg-blend": re()
1646
+ }],
1647
+ // Filters
1648
+ /**
1649
+ * Filter
1650
+ * @deprecated since Tailwind CSS v3.0.0
1651
+ * @see https://tailwindcss.com/docs/filter
1652
+ */
1653
+ filter: [{
1654
+ filter: ["", "none"]
1655
+ }],
1656
+ /**
1657
+ * Blur
1658
+ * @see https://tailwindcss.com/docs/blur
1659
+ */
1660
+ blur: [{
1661
+ blur: [t]
1662
+ }],
1663
+ /**
1664
+ * Brightness
1665
+ * @see https://tailwindcss.com/docs/brightness
1666
+ */
1667
+ brightness: [{
1668
+ brightness: [o]
1669
+ }],
1670
+ /**
1671
+ * Contrast
1672
+ * @see https://tailwindcss.com/docs/contrast
1673
+ */
1674
+ contrast: [{
1675
+ contrast: [p]
1676
+ }],
1677
+ /**
1678
+ * Drop Shadow
1679
+ * @see https://tailwindcss.com/docs/drop-shadow
1680
+ */
1681
+ "drop-shadow": [{
1682
+ "drop-shadow": ["", "none", F, x]
1683
+ }],
1684
+ /**
1685
+ * Grayscale
1686
+ * @see https://tailwindcss.com/docs/grayscale
1687
+ */
1688
+ grayscale: [{
1689
+ grayscale: [c]
1690
+ }],
1691
+ /**
1692
+ * Hue Rotate
1693
+ * @see https://tailwindcss.com/docs/hue-rotate
1694
+ */
1695
+ "hue-rotate": [{
1696
+ "hue-rotate": [b]
1697
+ }],
1698
+ /**
1699
+ * Invert
1700
+ * @see https://tailwindcss.com/docs/invert
1701
+ */
1702
+ invert: [{
1703
+ invert: [C]
1704
+ }],
1705
+ /**
1706
+ * Saturate
1707
+ * @see https://tailwindcss.com/docs/saturate
1708
+ */
1709
+ saturate: [{
1710
+ saturate: [S]
1711
+ }],
1712
+ /**
1713
+ * Sepia
1714
+ * @see https://tailwindcss.com/docs/sepia
1715
+ */
1716
+ sepia: [{
1717
+ sepia: [j]
1718
+ }],
1719
+ /**
1720
+ * Backdrop Filter
1721
+ * @deprecated since Tailwind CSS v3.0.0
1722
+ * @see https://tailwindcss.com/docs/backdrop-filter
1723
+ */
1724
+ "backdrop-filter": [{
1725
+ "backdrop-filter": ["", "none"]
1726
+ }],
1727
+ /**
1728
+ * Backdrop Blur
1729
+ * @see https://tailwindcss.com/docs/backdrop-blur
1730
+ */
1731
+ "backdrop-blur": [{
1732
+ "backdrop-blur": [t]
1733
+ }],
1734
+ /**
1735
+ * Backdrop Brightness
1736
+ * @see https://tailwindcss.com/docs/backdrop-brightness
1737
+ */
1738
+ "backdrop-brightness": [{
1739
+ "backdrop-brightness": [o]
1740
+ }],
1741
+ /**
1742
+ * Backdrop Contrast
1743
+ * @see https://tailwindcss.com/docs/backdrop-contrast
1744
+ */
1745
+ "backdrop-contrast": [{
1746
+ "backdrop-contrast": [p]
1747
+ }],
1748
+ /**
1749
+ * Backdrop Grayscale
1750
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
1751
+ */
1752
+ "backdrop-grayscale": [{
1753
+ "backdrop-grayscale": [c]
1754
+ }],
1755
+ /**
1756
+ * Backdrop Hue Rotate
1757
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
1758
+ */
1759
+ "backdrop-hue-rotate": [{
1760
+ "backdrop-hue-rotate": [b]
1761
+ }],
1762
+ /**
1763
+ * Backdrop Invert
1764
+ * @see https://tailwindcss.com/docs/backdrop-invert
1765
+ */
1766
+ "backdrop-invert": [{
1767
+ "backdrop-invert": [C]
1768
+ }],
1769
+ /**
1770
+ * Backdrop Opacity
1771
+ * @see https://tailwindcss.com/docs/backdrop-opacity
1772
+ */
1773
+ "backdrop-opacity": [{
1774
+ "backdrop-opacity": [y]
1775
+ }],
1776
+ /**
1777
+ * Backdrop Saturate
1778
+ * @see https://tailwindcss.com/docs/backdrop-saturate
1779
+ */
1780
+ "backdrop-saturate": [{
1781
+ "backdrop-saturate": [S]
1782
+ }],
1783
+ /**
1784
+ * Backdrop Sepia
1785
+ * @see https://tailwindcss.com/docs/backdrop-sepia
1786
+ */
1787
+ "backdrop-sepia": [{
1788
+ "backdrop-sepia": [j]
1789
+ }],
1790
+ // Tables
1791
+ /**
1792
+ * Border Collapse
1793
+ * @see https://tailwindcss.com/docs/border-collapse
1794
+ */
1795
+ "border-collapse": [{
1796
+ border: ["collapse", "separate"]
1797
+ }],
1798
+ /**
1799
+ * Border Spacing
1800
+ * @see https://tailwindcss.com/docs/border-spacing
1801
+ */
1802
+ "border-spacing": [{
1803
+ "border-spacing": [i]
1804
+ }],
1805
+ /**
1806
+ * Border Spacing X
1807
+ * @see https://tailwindcss.com/docs/border-spacing
1808
+ */
1809
+ "border-spacing-x": [{
1810
+ "border-spacing-x": [i]
1811
+ }],
1812
+ /**
1813
+ * Border Spacing Y
1814
+ * @see https://tailwindcss.com/docs/border-spacing
1815
+ */
1816
+ "border-spacing-y": [{
1817
+ "border-spacing-y": [i]
1818
+ }],
1819
+ /**
1820
+ * Table Layout
1821
+ * @see https://tailwindcss.com/docs/table-layout
1822
+ */
1823
+ "table-layout": [{
1824
+ table: ["auto", "fixed"]
1825
+ }],
1826
+ /**
1827
+ * Caption Side
1828
+ * @see https://tailwindcss.com/docs/caption-side
1829
+ */
1830
+ caption: [{
1831
+ caption: ["top", "bottom"]
1832
+ }],
1833
+ // Transitions and Animation
1834
+ /**
1835
+ * Tranisition Property
1836
+ * @see https://tailwindcss.com/docs/transition-property
1837
+ */
1838
+ transition: [{
1839
+ transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", x]
1840
+ }],
1841
+ /**
1842
+ * Transition Duration
1843
+ * @see https://tailwindcss.com/docs/transition-duration
1844
+ */
1845
+ duration: [{
1846
+ duration: I()
1847
+ }],
1848
+ /**
1849
+ * Transition Timing Function
1850
+ * @see https://tailwindcss.com/docs/transition-timing-function
1851
+ */
1852
+ ease: [{
1853
+ ease: ["linear", "in", "out", "in-out", x]
1854
+ }],
1855
+ /**
1856
+ * Transition Delay
1857
+ * @see https://tailwindcss.com/docs/transition-delay
1858
+ */
1859
+ delay: [{
1860
+ delay: I()
1861
+ }],
1862
+ /**
1863
+ * Animation
1864
+ * @see https://tailwindcss.com/docs/animation
1865
+ */
1866
+ animate: [{
1867
+ animate: ["none", "spin", "ping", "pulse", "bounce", x]
1868
+ }],
1869
+ // Transforms
1870
+ /**
1871
+ * Transform
1872
+ * @see https://tailwindcss.com/docs/transform
1873
+ */
1874
+ transform: [{
1875
+ transform: ["", "gpu", "none"]
1876
+ }],
1877
+ /**
1878
+ * Scale
1879
+ * @see https://tailwindcss.com/docs/scale
1880
+ */
1881
+ scale: [{
1882
+ scale: [M]
1883
+ }],
1884
+ /**
1885
+ * Scale X
1886
+ * @see https://tailwindcss.com/docs/scale
1887
+ */
1888
+ "scale-x": [{
1889
+ "scale-x": [M]
1890
+ }],
1891
+ /**
1892
+ * Scale Y
1893
+ * @see https://tailwindcss.com/docs/scale
1894
+ */
1895
+ "scale-y": [{
1896
+ "scale-y": [M]
1897
+ }],
1898
+ /**
1899
+ * Rotate
1900
+ * @see https://tailwindcss.com/docs/rotate
1901
+ */
1902
+ rotate: [{
1903
+ rotate: [q, x]
1904
+ }],
1905
+ /**
1906
+ * Translate X
1907
+ * @see https://tailwindcss.com/docs/translate
1908
+ */
1909
+ "translate-x": [{
1910
+ "translate-x": [W]
1911
+ }],
1912
+ /**
1913
+ * Translate Y
1914
+ * @see https://tailwindcss.com/docs/translate
1915
+ */
1916
+ "translate-y": [{
1917
+ "translate-y": [W]
1918
+ }],
1919
+ /**
1920
+ * Skew X
1921
+ * @see https://tailwindcss.com/docs/skew
1922
+ */
1923
+ "skew-x": [{
1924
+ "skew-x": [N]
1925
+ }],
1926
+ /**
1927
+ * Skew Y
1928
+ * @see https://tailwindcss.com/docs/skew
1929
+ */
1930
+ "skew-y": [{
1931
+ "skew-y": [N]
1932
+ }],
1933
+ /**
1934
+ * Transform Origin
1935
+ * @see https://tailwindcss.com/docs/transform-origin
1936
+ */
1937
+ "transform-origin": [{
1938
+ origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", x]
1939
+ }],
1940
+ // Interactivity
1941
+ /**
1942
+ * Accent Color
1943
+ * @see https://tailwindcss.com/docs/accent-color
1944
+ */
1945
+ accent: [{
1946
+ accent: ["auto", e]
1947
+ }],
1948
+ /**
1949
+ * Appearance
1950
+ * @see https://tailwindcss.com/docs/appearance
1951
+ */
1952
+ appearance: [{
1953
+ appearance: ["none", "auto"]
1954
+ }],
1955
+ /**
1956
+ * Cursor
1957
+ * @see https://tailwindcss.com/docs/cursor
1958
+ */
1959
+ cursor: [{
1960
+ 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", x]
1961
+ }],
1962
+ /**
1963
+ * Caret Color
1964
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
1965
+ */
1966
+ "caret-color": [{
1967
+ caret: [e]
1968
+ }],
1969
+ /**
1970
+ * Pointer Events
1971
+ * @see https://tailwindcss.com/docs/pointer-events
1972
+ */
1973
+ "pointer-events": [{
1974
+ "pointer-events": ["none", "auto"]
1975
+ }],
1976
+ /**
1977
+ * Resize
1978
+ * @see https://tailwindcss.com/docs/resize
1979
+ */
1980
+ resize: [{
1981
+ resize: ["none", "y", "x", ""]
1982
+ }],
1983
+ /**
1984
+ * Scroll Behavior
1985
+ * @see https://tailwindcss.com/docs/scroll-behavior
1986
+ */
1987
+ "scroll-behavior": [{
1988
+ scroll: ["auto", "smooth"]
1989
+ }],
1990
+ /**
1991
+ * Scroll Margin
1992
+ * @see https://tailwindcss.com/docs/scroll-margin
1993
+ */
1994
+ "scroll-m": [{
1995
+ "scroll-m": P()
1996
+ }],
1997
+ /**
1998
+ * Scroll Margin X
1999
+ * @see https://tailwindcss.com/docs/scroll-margin
2000
+ */
2001
+ "scroll-mx": [{
2002
+ "scroll-mx": P()
2003
+ }],
2004
+ /**
2005
+ * Scroll Margin Y
2006
+ * @see https://tailwindcss.com/docs/scroll-margin
2007
+ */
2008
+ "scroll-my": [{
2009
+ "scroll-my": P()
2010
+ }],
2011
+ /**
2012
+ * Scroll Margin Start
2013
+ * @see https://tailwindcss.com/docs/scroll-margin
2014
+ */
2015
+ "scroll-ms": [{
2016
+ "scroll-ms": P()
2017
+ }],
2018
+ /**
2019
+ * Scroll Margin End
2020
+ * @see https://tailwindcss.com/docs/scroll-margin
2021
+ */
2022
+ "scroll-me": [{
2023
+ "scroll-me": P()
2024
+ }],
2025
+ /**
2026
+ * Scroll Margin Top
2027
+ * @see https://tailwindcss.com/docs/scroll-margin
2028
+ */
2029
+ "scroll-mt": [{
2030
+ "scroll-mt": P()
2031
+ }],
2032
+ /**
2033
+ * Scroll Margin Right
2034
+ * @see https://tailwindcss.com/docs/scroll-margin
2035
+ */
2036
+ "scroll-mr": [{
2037
+ "scroll-mr": P()
2038
+ }],
2039
+ /**
2040
+ * Scroll Margin Bottom
2041
+ * @see https://tailwindcss.com/docs/scroll-margin
2042
+ */
2043
+ "scroll-mb": [{
2044
+ "scroll-mb": P()
2045
+ }],
2046
+ /**
2047
+ * Scroll Margin Left
2048
+ * @see https://tailwindcss.com/docs/scroll-margin
2049
+ */
2050
+ "scroll-ml": [{
2051
+ "scroll-ml": P()
2052
+ }],
2053
+ /**
2054
+ * Scroll Padding
2055
+ * @see https://tailwindcss.com/docs/scroll-padding
2056
+ */
2057
+ "scroll-p": [{
2058
+ "scroll-p": P()
2059
+ }],
2060
+ /**
2061
+ * Scroll Padding X
2062
+ * @see https://tailwindcss.com/docs/scroll-padding
2063
+ */
2064
+ "scroll-px": [{
2065
+ "scroll-px": P()
2066
+ }],
2067
+ /**
2068
+ * Scroll Padding Y
2069
+ * @see https://tailwindcss.com/docs/scroll-padding
2070
+ */
2071
+ "scroll-py": [{
2072
+ "scroll-py": P()
2073
+ }],
2074
+ /**
2075
+ * Scroll Padding Start
2076
+ * @see https://tailwindcss.com/docs/scroll-padding
2077
+ */
2078
+ "scroll-ps": [{
2079
+ "scroll-ps": P()
2080
+ }],
2081
+ /**
2082
+ * Scroll Padding End
2083
+ * @see https://tailwindcss.com/docs/scroll-padding
2084
+ */
2085
+ "scroll-pe": [{
2086
+ "scroll-pe": P()
2087
+ }],
2088
+ /**
2089
+ * Scroll Padding Top
2090
+ * @see https://tailwindcss.com/docs/scroll-padding
2091
+ */
2092
+ "scroll-pt": [{
2093
+ "scroll-pt": P()
2094
+ }],
2095
+ /**
2096
+ * Scroll Padding Right
2097
+ * @see https://tailwindcss.com/docs/scroll-padding
2098
+ */
2099
+ "scroll-pr": [{
2100
+ "scroll-pr": P()
2101
+ }],
2102
+ /**
2103
+ * Scroll Padding Bottom
2104
+ * @see https://tailwindcss.com/docs/scroll-padding
2105
+ */
2106
+ "scroll-pb": [{
2107
+ "scroll-pb": P()
2108
+ }],
2109
+ /**
2110
+ * Scroll Padding Left
2111
+ * @see https://tailwindcss.com/docs/scroll-padding
2112
+ */
2113
+ "scroll-pl": [{
2114
+ "scroll-pl": P()
2115
+ }],
2116
+ /**
2117
+ * Scroll Snap Align
2118
+ * @see https://tailwindcss.com/docs/scroll-snap-align
2119
+ */
2120
+ "snap-align": [{
2121
+ snap: ["start", "end", "center", "align-none"]
2122
+ }],
2123
+ /**
2124
+ * Scroll Snap Stop
2125
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
2126
+ */
2127
+ "snap-stop": [{
2128
+ snap: ["normal", "always"]
2129
+ }],
2130
+ /**
2131
+ * Scroll Snap Type
2132
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2133
+ */
2134
+ "snap-type": [{
2135
+ snap: ["none", "x", "y", "both"]
2136
+ }],
2137
+ /**
2138
+ * Scroll Snap Type Strictness
2139
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2140
+ */
2141
+ "snap-strictness": [{
2142
+ snap: ["mandatory", "proximity"]
2143
+ }],
2144
+ /**
2145
+ * Touch Action
2146
+ * @see https://tailwindcss.com/docs/touch-action
2147
+ */
2148
+ touch: [{
2149
+ touch: ["auto", "none", "manipulation"]
2150
+ }],
2151
+ /**
2152
+ * Touch Action X
2153
+ * @see https://tailwindcss.com/docs/touch-action
2154
+ */
2155
+ "touch-x": [{
2156
+ "touch-pan": ["x", "left", "right"]
2157
+ }],
2158
+ /**
2159
+ * Touch Action Y
2160
+ * @see https://tailwindcss.com/docs/touch-action
2161
+ */
2162
+ "touch-y": [{
2163
+ "touch-pan": ["y", "up", "down"]
2164
+ }],
2165
+ /**
2166
+ * Touch Action Pinch Zoom
2167
+ * @see https://tailwindcss.com/docs/touch-action
2168
+ */
2169
+ "touch-pz": ["touch-pinch-zoom"],
2170
+ /**
2171
+ * User Select
2172
+ * @see https://tailwindcss.com/docs/user-select
2173
+ */
2174
+ select: [{
2175
+ select: ["none", "text", "all", "auto"]
2176
+ }],
2177
+ /**
2178
+ * Will Change
2179
+ * @see https://tailwindcss.com/docs/will-change
2180
+ */
2181
+ "will-change": [{
2182
+ "will-change": ["auto", "scroll", "contents", "transform", x]
2183
+ }],
2184
+ // SVG
2185
+ /**
2186
+ * Fill
2187
+ * @see https://tailwindcss.com/docs/fill
2188
+ */
2189
+ fill: [{
2190
+ fill: [e, "none"]
2191
+ }],
2192
+ /**
2193
+ * Stroke Width
2194
+ * @see https://tailwindcss.com/docs/stroke-width
2195
+ */
2196
+ "stroke-w": [{
2197
+ stroke: [V, G, ne]
2198
+ }],
2199
+ /**
2200
+ * Stroke
2201
+ * @see https://tailwindcss.com/docs/stroke
2202
+ */
2203
+ stroke: [{
2204
+ stroke: [e, "none"]
2205
+ }],
2206
+ // Accessibility
2207
+ /**
2208
+ * Screen Readers
2209
+ * @see https://tailwindcss.com/docs/screen-readers
2210
+ */
2211
+ sr: ["sr-only", "not-sr-only"],
2212
+ /**
2213
+ * Forced Color Adjust
2214
+ * @see https://tailwindcss.com/docs/forced-color-adjust
2215
+ */
2216
+ "forced-color-adjust": [{
2217
+ "forced-color-adjust": ["auto", "none"]
2218
+ }]
2219
+ },
2220
+ conflictingClassGroups: {
2221
+ overflow: ["overflow-x", "overflow-y"],
2222
+ overscroll: ["overscroll-x", "overscroll-y"],
2223
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2224
+ "inset-x": ["right", "left"],
2225
+ "inset-y": ["top", "bottom"],
2226
+ flex: ["basis", "grow", "shrink"],
2227
+ gap: ["gap-x", "gap-y"],
2228
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2229
+ px: ["pr", "pl"],
2230
+ py: ["pt", "pb"],
2231
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2232
+ mx: ["mr", "ml"],
2233
+ my: ["mt", "mb"],
2234
+ size: ["w", "h"],
2235
+ "font-size": ["leading"],
2236
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2237
+ "fvn-ordinal": ["fvn-normal"],
2238
+ "fvn-slashed-zero": ["fvn-normal"],
2239
+ "fvn-figure": ["fvn-normal"],
2240
+ "fvn-spacing": ["fvn-normal"],
2241
+ "fvn-fraction": ["fvn-normal"],
2242
+ "line-clamp": ["display", "overflow"],
2243
+ 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"],
2244
+ "rounded-s": ["rounded-ss", "rounded-es"],
2245
+ "rounded-e": ["rounded-se", "rounded-ee"],
2246
+ "rounded-t": ["rounded-tl", "rounded-tr"],
2247
+ "rounded-r": ["rounded-tr", "rounded-br"],
2248
+ "rounded-b": ["rounded-br", "rounded-bl"],
2249
+ "rounded-l": ["rounded-tl", "rounded-bl"],
2250
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
2251
+ "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2252
+ "border-w-x": ["border-w-r", "border-w-l"],
2253
+ "border-w-y": ["border-w-t", "border-w-b"],
2254
+ "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2255
+ "border-color-x": ["border-color-r", "border-color-l"],
2256
+ "border-color-y": ["border-color-t", "border-color-b"],
2257
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2258
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
2259
+ "scroll-my": ["scroll-mt", "scroll-mb"],
2260
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2261
+ "scroll-px": ["scroll-pr", "scroll-pl"],
2262
+ "scroll-py": ["scroll-pt", "scroll-pb"],
2263
+ touch: ["touch-x", "touch-y", "touch-pz"],
2264
+ "touch-x": ["touch"],
2265
+ "touch-y": ["touch"],
2266
+ "touch-pz": ["touch"]
2267
+ },
2268
+ conflictingClassGroupModifiers: {
2269
+ "font-size": ["leading"]
2270
+ }
2271
+ };
2272
+ }, cr = /* @__PURE__ */ We(ir);
2273
+ function u(...e) {
2274
+ return cr(Ae(e));
2275
+ }
2276
+ function dr(e) {
2277
+ const r = parseInt(e.slice(1, 3), 16) / 255, t = parseInt(e.slice(3, 5), 16) / 255, o = parseInt(e.slice(5, 7), 16) / 255, n = Math.max(r, t, o), s = Math.min(r, t, o);
2278
+ let i = 0, a = 0;
2279
+ const p = (n + s) / 2;
2280
+ if (n !== s) {
2281
+ const c = n - s;
2282
+ switch (a = p > 0.5 ? c / (2 - n - s) : c / (n + s), n) {
2283
+ case r:
2284
+ i = ((t - o) / c + (t < o ? 6 : 0)) / 6;
2285
+ break;
2286
+ case t:
2287
+ i = ((o - r) / c + 2) / 6;
2288
+ break;
2289
+ case o:
2290
+ i = ((r - t) / c + 4) / 6;
2291
+ break;
2292
+ }
2293
+ }
2294
+ return [i * 360, a * 100, p * 100];
2295
+ }
2296
+ function ue(e, r, t) {
2297
+ t /= 100;
2298
+ const o = r * Math.min(t, 1 - t) / 100, n = (s) => {
2299
+ const i = (s + e / 30) % 12, a = t - o * Math.max(Math.min(i - 3, 9 - i, 1), -1);
2300
+ return Math.round(255 * a).toString(16).padStart(2, "0");
2301
+ };
2302
+ return `#${n(0)}${n(8)}${n(4)}`;
2303
+ }
2304
+ function se(e) {
2305
+ const [r, t, o] = dr(e);
2306
+ return {
2307
+ base: e,
2308
+ light: ue(r, Math.max(0, t - 10), Math.min(100, o + 15)),
2309
+ dark: ue(r, Math.min(100, t + 10), Math.max(0, o - 15))
2310
+ };
2311
+ }
2312
+ const A = {
2313
+ colors: {
2314
+ primary: "#6366f1",
2315
+ primaryLight: "#818cf8",
2316
+ primaryDark: "#4f46e5",
2317
+ secondary: "#8b5cf6",
2318
+ secondaryLight: "#a78bfa",
2319
+ secondaryDark: "#7c3aed",
2320
+ danger: "#ef4444",
2321
+ dangerLight: "#f87171",
2322
+ dangerDark: "#dc2626",
2323
+ text: "#1f2937",
2324
+ textMuted: "#6b7280",
2325
+ textLight: "#9ca3af",
2326
+ border: "#e5e7eb",
2327
+ borderDark: "#d1d5db",
2328
+ background: "#ffffff",
2329
+ backgroundDark: "#f9fafb",
2330
+ backgroundLight: "#f3f4f6",
2331
+ disabled: "#e5e7eb",
2332
+ light: "#f9fafb",
2333
+ active: "#4338ca"
2334
+ }
2335
+ }, Ne = Se(A);
2336
+ function Or() {
2337
+ return De(Ne);
2338
+ }
2339
+ function ur(e) {
2340
+ const r = document.documentElement;
2341
+ r.style.setProperty("--componentables-primary", e.colors.primary), r.style.setProperty(
2342
+ "--componentables-primary-light",
2343
+ e.colors.primaryLight
2344
+ ), r.style.setProperty(
2345
+ "--componentables-primary-dark",
2346
+ e.colors.primaryDark
2347
+ ), r.style.setProperty("--componentables-secondary", e.colors.secondary), r.style.setProperty(
2348
+ "--componentables-secondary-light",
2349
+ e.colors.secondaryLight
2350
+ ), r.style.setProperty(
2351
+ "--componentables-secondary-dark",
2352
+ e.colors.secondaryDark
2353
+ ), r.style.setProperty("--componentables-danger", e.colors.danger), r.style.setProperty(
2354
+ "--componentables-danger-light",
2355
+ e.colors.dangerLight
2356
+ ), r.style.setProperty(
2357
+ "--componentables-danger-dark",
2358
+ e.colors.dangerDark
2359
+ ), r.style.setProperty("--componentables-text", e.colors.text), r.style.setProperty("--componentables-text-muted", e.colors.textMuted), r.style.setProperty("--componentables-text-light", e.colors.textLight), r.style.setProperty("--componentables-border", e.colors.border), r.style.setProperty(
2360
+ "--componentables-border-dark",
2361
+ e.colors.borderDark
2362
+ ), r.style.setProperty(
2363
+ "--componentables-background",
2364
+ e.colors.background
2365
+ ), r.style.setProperty(
2366
+ "--componentables-background-dark",
2367
+ e.colors.backgroundDark
2368
+ ), r.style.setProperty(
2369
+ "--componentables-background-light",
2370
+ e.colors.backgroundLight
2371
+ ), r.style.setProperty("--componentables-disabled", e.colors.disabled), r.style.setProperty("--componentables-light", e.colors.light), r.style.setProperty("--componentables-active", e.colors.active);
2372
+ }
2373
+ function Ir({
2374
+ children: e,
2375
+ theme: r
2376
+ }) {
2377
+ const t = Pe(() => {
2378
+ const o = r?.colors || {}, n = o.primary ? se(o.primary) : null, s = o.secondary ? se(o.secondary) : null, i = o.danger ? se(o.danger) : null;
2379
+ return {
2380
+ colors: {
2381
+ primary: o.primary || A.colors.primary,
2382
+ primaryLight: n?.light || A.colors.primaryLight,
2383
+ primaryDark: n?.dark || A.colors.primaryDark,
2384
+ secondary: o.secondary || A.colors.secondary,
2385
+ secondaryLight: s?.light || A.colors.secondaryLight,
2386
+ secondaryDark: s?.dark || A.colors.secondaryDark,
2387
+ danger: o.danger || A.colors.danger,
2388
+ dangerLight: i?.light || A.colors.dangerLight,
2389
+ dangerDark: i?.dark || A.colors.dangerDark,
2390
+ text: o.text || A.colors.text,
2391
+ textMuted: o.textMuted || A.colors.textMuted,
2392
+ textLight: o.textLight || A.colors.textLight,
2393
+ border: o.border || A.colors.border,
2394
+ borderDark: o.borderDark || A.colors.borderDark,
2395
+ background: o.background || A.colors.background,
2396
+ backgroundDark: o.backgroundDark || A.colors.backgroundDark,
2397
+ backgroundLight: o.backgroundLight || A.colors.backgroundLight,
2398
+ disabled: o.disabled || A.colors.disabled,
2399
+ light: o.light || A.colors.light,
2400
+ active: o.active || A.colors.active
2401
+ }
2402
+ };
2403
+ }, [r]);
2404
+ return K(() => {
2405
+ ur(t);
2406
+ }, [t]), E.createElement(Ne.Provider, { value: t }, e);
2407
+ }
2408
+ const pr = {
2409
+ primary: "bg-primary text-white border-primary hover:bg-primary-dark hover:border-primary-dark active:bg-active",
2410
+ secondary: "bg-secondary text-white border-secondary hover:bg-secondary-dark hover:border-secondary-dark",
2411
+ outline: "bg-transparent text-primary border-primary hover:bg-primary hover:text-white",
2412
+ ghost: "bg-transparent text-primary border-transparent hover:bg-primary hover:text-white hover:border-primary",
2413
+ light: "bg-light text-text border-border hover:bg-background-light",
2414
+ danger: "bg-transparent text-danger border-danger hover:text-white hover:bg-danger hover:border-danger active:bg-danger-dark"
2415
+ }, br = {
2416
+ sm: "px-3 py-1.5 text-sm",
2417
+ md: "px-4 py-2 text-base",
2418
+ lg: "px-6 py-3 text-lg",
2419
+ xl: "px-8 py-4 text-xl"
2420
+ };
2421
+ function pe({
2422
+ children: e,
2423
+ onClick: r,
2424
+ disabled: t = !1,
2425
+ type: o = "button",
2426
+ variant: n = "primary",
2427
+ size: s = "md",
2428
+ fullWidth: i = !1,
2429
+ loading: a = !1,
2430
+ className: p = "",
2431
+ ...c
2432
+ }) {
2433
+ return /* @__PURE__ */ k(
2434
+ "button",
2435
+ {
2436
+ type: o,
2437
+ onClick: t || a ? void 0 : r,
2438
+ disabled: t || a,
2439
+ className: u(
2440
+ "inline-flex shadow-md hover:shadow-lg cursor-pointer items-center justify-center font-medium rounded-lg border transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-opacity-50",
2441
+ t || a ? "bg-disabled text-text-muted border-disabled cursor-not-allowed hover:bg-disabled hover:border-disabled hover:text-text-muted" : pr[n],
2442
+ br[s],
2443
+ i && "w-full",
2444
+ a && "cursor-wait opacity-75",
2445
+ p
2446
+ ),
2447
+ ...c,
2448
+ children: [
2449
+ a && /* @__PURE__ */ k(
2450
+ "svg",
2451
+ {
2452
+ className: "w-4 h-4 mr-2 animate-spin",
2453
+ fill: "none",
2454
+ viewBox: "0 0 24 24",
2455
+ children: [
2456
+ /* @__PURE__ */ l(
2457
+ "circle",
2458
+ {
2459
+ className: "opacity-25",
2460
+ cx: "12",
2461
+ cy: "12",
2462
+ r: "10",
2463
+ stroke: "currentColor",
2464
+ strokeWidth: "4"
2465
+ }
2466
+ ),
2467
+ /* @__PURE__ */ l(
2468
+ "path",
2469
+ {
2470
+ className: "opacity-75",
2471
+ fill: "currentColor",
2472
+ 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"
2473
+ }
2474
+ )
2475
+ ]
2476
+ }
2477
+ ),
2478
+ e
2479
+ ]
2480
+ }
2481
+ );
2482
+ }
2483
+ function Er({
2484
+ id: e,
2485
+ name: r,
2486
+ type: t = "text",
2487
+ value: o,
2488
+ onChange: n,
2489
+ placeholder: s,
2490
+ label: i,
2491
+ error: a,
2492
+ disabled: p = !1,
2493
+ required: c = !1,
2494
+ colorScheme: b = "secondary",
2495
+ className: C = "",
2496
+ ...w
2497
+ }) {
2498
+ const v = () => {
2499
+ const m = "w-full p-4 border-2 rounded-lg text-base bg-background transition-all duration-300 focus:outline-none focus:ring-1 disabled:bg-light disabled:text-text-muted disabled:cursor-not-allowed placeholder:text-text-muted";
2500
+ if (a)
2501
+ return u(
2502
+ m,
2503
+ "border-danger focus:border-danger focus:shadow-danger-light"
2504
+ );
2505
+ switch (b) {
2506
+ case "primary":
2507
+ return u(
2508
+ m,
2509
+ "text-primary border-primary focus:border-primary"
2510
+ );
2511
+ case "secondary":
2512
+ default:
2513
+ return u(
2514
+ m,
2515
+ "text-secondary border-secondary focus:border-secondary"
2516
+ );
2517
+ }
2518
+ }, g = () => b === "primary" ? "text-primary" : "text-secondary";
2519
+ return /* @__PURE__ */ k("div", { className: u("mb-6", C), children: [
2520
+ i && /* @__PURE__ */ k(
2521
+ "label",
2522
+ {
2523
+ htmlFor: e,
2524
+ className: u("block mb-2 text-sm font-medium", g()),
2525
+ children: [
2526
+ i,
2527
+ c && /* @__PURE__ */ l("span", { className: "text-danger ml-1", children: "*" })
2528
+ ]
2529
+ }
2530
+ ),
2531
+ /* @__PURE__ */ l(
2532
+ "input",
2533
+ {
2534
+ id: e,
2535
+ name: r,
2536
+ type: t,
2537
+ value: o,
2538
+ onChange: n,
2539
+ placeholder: s,
2540
+ disabled: p,
2541
+ required: c,
2542
+ className: v(),
2543
+ ...w
2544
+ }
2545
+ ),
2546
+ a && /* @__PURE__ */ l("span", { className: "block mt-1 text-xs text-danger font-medium", children: a })
2547
+ ] });
2548
+ }
2549
+ function Tr({
2550
+ id: e,
2551
+ name: r,
2552
+ value: t,
2553
+ onChange: o,
2554
+ placeholder: n,
2555
+ label: s,
2556
+ error: i,
2557
+ disabled: a = !1,
2558
+ required: p = !1,
2559
+ colorScheme: c = "secondary",
2560
+ className: b = "",
2561
+ rows: C = 4,
2562
+ ...w
2563
+ }) {
2564
+ const v = () => {
2565
+ const m = "w-full p-4 border-2 rounded-lg text-base bg-background transition-all duration-300 focus:outline-none focus:ring-1 disabled:bg-light disabled:text-text-muted disabled:cursor-not-allowed placeholder:text-text-muted resize-none";
2566
+ if (i)
2567
+ return u(
2568
+ m,
2569
+ "border-danger focus:border-danger focus:shadow-danger-light"
2570
+ );
2571
+ switch (c) {
2572
+ case "primary":
2573
+ return u(
2574
+ m,
2575
+ "text-primary border-primary focus:border-primary"
2576
+ );
2577
+ case "secondary":
2578
+ default:
2579
+ return u(
2580
+ m,
2581
+ "text-secondary border-secondary focus:border-secondary"
2582
+ );
2583
+ }
2584
+ }, g = () => c === "primary" ? "text-primary" : "text-secondary";
2585
+ return /* @__PURE__ */ k("div", { className: u("mb-6", b), children: [
2586
+ s && /* @__PURE__ */ k(
2587
+ "label",
2588
+ {
2589
+ htmlFor: e,
2590
+ className: u("block mb-2 text-sm font-medium", g()),
2591
+ children: [
2592
+ s,
2593
+ p && /* @__PURE__ */ l("span", { className: "text-danger ml-1", children: "*" })
2594
+ ]
2595
+ }
2596
+ ),
2597
+ /* @__PURE__ */ l(
2598
+ "textarea",
2599
+ {
2600
+ id: e,
2601
+ name: r,
2602
+ value: t,
2603
+ onChange: o,
2604
+ placeholder: n,
2605
+ disabled: a,
2606
+ required: p,
2607
+ rows: C,
2608
+ className: v(),
2609
+ ...w
2610
+ }
2611
+ ),
2612
+ i && /* @__PURE__ */ l("span", { className: "block mt-1 text-xs text-danger font-medium", children: i })
2613
+ ] });
2614
+ }
2615
+ function Rr({
2616
+ id: e,
2617
+ name: r,
2618
+ checked: t = !1,
2619
+ onChange: o,
2620
+ disabled: n = !1,
2621
+ label: s,
2622
+ colorScheme: i = "secondary",
2623
+ size: a = "md",
2624
+ className: p = "",
2625
+ ...c
2626
+ }) {
2627
+ const [b, C] = T(t), w = (h) => {
2628
+ const S = h.target.checked;
2629
+ C(S), o?.(S);
2630
+ }, v = () => ({
2631
+ primary: {
2632
+ bg: "bg-primary",
2633
+ border: "border-primary",
2634
+ text: "text-primary"
2635
+ },
2636
+ secondary: {
2637
+ bg: "bg-secondary",
2638
+ border: "border-secondary",
2639
+ text: "text-secondary"
2640
+ }
2641
+ })[i], g = () => {
2642
+ switch (a) {
2643
+ case "sm":
2644
+ return "w-10 h-6";
2645
+ case "lg":
2646
+ return "w-16 h-8";
2647
+ case "md":
2648
+ default:
2649
+ return "w-13 h-7";
2650
+ }
2651
+ }, m = () => {
2652
+ switch (a) {
2653
+ case "sm":
2654
+ return "w-5 h-5";
2655
+ case "lg":
2656
+ return "w-7 h-7";
2657
+ case "md":
2658
+ default:
2659
+ return "w-6 h-6";
2660
+ }
2661
+ }, d = () => {
2662
+ if (!b) return "translate-x-0";
2663
+ switch (a) {
2664
+ case "sm":
2665
+ return "translate-x-5";
2666
+ case "lg":
2667
+ return "translate-x-8";
2668
+ case "md":
2669
+ default:
2670
+ return "translate-x-6";
2671
+ }
2672
+ }, y = v();
2673
+ return /* @__PURE__ */ k("div", { className: u("flex items-center gap-3", p), children: [
2674
+ /* @__PURE__ */ k("div", { className: "relative", children: [
2675
+ /* @__PURE__ */ l(
2676
+ "input",
2677
+ {
2678
+ type: "checkbox",
2679
+ id: e,
2680
+ name: r,
2681
+ checked: b,
2682
+ onChange: w,
2683
+ disabled: n,
2684
+ className: "sr-only",
2685
+ ...c
2686
+ }
2687
+ ),
2688
+ /* @__PURE__ */ l(
2689
+ "label",
2690
+ {
2691
+ htmlFor: e,
2692
+ className: u(
2693
+ "block cursor-pointer transition-all duration-300 rounded-full border-2",
2694
+ g(),
2695
+ b ? u(y.bg, y.border) : "bg-gray-200 border-gray-300",
2696
+ n ? "opacity-50 cursor-not-allowed" : "hover:shadow-md"
2697
+ ),
2698
+ children: /* @__PURE__ */ l(
2699
+ "span",
2700
+ {
2701
+ className: u(
2702
+ "absolute top-0.5 left-0.5 inline-block rounded-full bg-white transition-all duration-300 shadow-sm",
2703
+ m(),
2704
+ d()
2705
+ )
2706
+ }
2707
+ )
2708
+ }
2709
+ )
2710
+ ] }),
2711
+ s && /* @__PURE__ */ l(
2712
+ "label",
2713
+ {
2714
+ htmlFor: e,
2715
+ className: u(
2716
+ "text-sm font-medium cursor-pointer select-none",
2717
+ y.text,
2718
+ n && "opacity-50 cursor-not-allowed"
2719
+ ),
2720
+ children: s
2721
+ }
2722
+ )
2723
+ ] });
2724
+ }
2725
+ var Me = {
2726
+ color: void 0,
2727
+ size: void 0,
2728
+ className: void 0,
2729
+ style: void 0,
2730
+ attr: void 0
2731
+ }, be = E.createContext && /* @__PURE__ */ E.createContext(Me), mr = ["attr", "size", "title"];
2732
+ function gr(e, r) {
2733
+ if (e == null) return {};
2734
+ var t = fr(e, r), o, n;
2735
+ if (Object.getOwnPropertySymbols) {
2736
+ var s = Object.getOwnPropertySymbols(e);
2737
+ for (n = 0; n < s.length; n++)
2738
+ o = s[n], !(r.indexOf(o) >= 0) && Object.prototype.propertyIsEnumerable.call(e, o) && (t[o] = e[o]);
2739
+ }
2740
+ return t;
2741
+ }
2742
+ function fr(e, r) {
2743
+ if (e == null) return {};
2744
+ var t = {};
2745
+ for (var o in e)
2746
+ if (Object.prototype.hasOwnProperty.call(e, o)) {
2747
+ if (r.indexOf(o) >= 0) continue;
2748
+ t[o] = e[o];
2749
+ }
2750
+ return t;
2751
+ }
2752
+ function te() {
2753
+ return te = Object.assign ? Object.assign.bind() : function(e) {
2754
+ for (var r = 1; r < arguments.length; r++) {
2755
+ var t = arguments[r];
2756
+ for (var o in t)
2757
+ Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
2758
+ }
2759
+ return e;
2760
+ }, te.apply(this, arguments);
2761
+ }
2762
+ function me(e, r) {
2763
+ var t = Object.keys(e);
2764
+ if (Object.getOwnPropertySymbols) {
2765
+ var o = Object.getOwnPropertySymbols(e);
2766
+ r && (o = o.filter(function(n) {
2767
+ return Object.getOwnPropertyDescriptor(e, n).enumerable;
2768
+ })), t.push.apply(t, o);
2769
+ }
2770
+ return t;
2771
+ }
2772
+ function oe(e) {
2773
+ for (var r = 1; r < arguments.length; r++) {
2774
+ var t = arguments[r] != null ? arguments[r] : {};
2775
+ r % 2 ? me(Object(t), !0).forEach(function(o) {
2776
+ hr(e, o, t[o]);
2777
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : me(Object(t)).forEach(function(o) {
2778
+ Object.defineProperty(e, o, Object.getOwnPropertyDescriptor(t, o));
2779
+ });
2780
+ }
2781
+ return e;
2782
+ }
2783
+ function hr(e, r, t) {
2784
+ return r = yr(r), r in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e;
2785
+ }
2786
+ function yr(e) {
2787
+ var r = xr(e, "string");
2788
+ return typeof r == "symbol" ? r : r + "";
2789
+ }
2790
+ function xr(e, r) {
2791
+ if (typeof e != "object" || !e) return e;
2792
+ var t = e[Symbol.toPrimitive];
2793
+ if (t !== void 0) {
2794
+ var o = t.call(e, r);
2795
+ if (typeof o != "object") return o;
2796
+ throw new TypeError("@@toPrimitive must return a primitive value.");
2797
+ }
2798
+ return (r === "string" ? String : Number)(e);
2799
+ }
2800
+ function ze(e) {
2801
+ return e && e.map((r, t) => /* @__PURE__ */ E.createElement(r.tag, oe({
2802
+ key: t
2803
+ }, r.attr), ze(r.child)));
2804
+ }
2805
+ function B(e) {
2806
+ return (r) => /* @__PURE__ */ E.createElement(vr, te({
2807
+ attr: oe({}, e.attr)
2808
+ }, r), ze(e.child));
2809
+ }
2810
+ function vr(e) {
2811
+ var r = (t) => {
2812
+ var {
2813
+ attr: o,
2814
+ size: n,
2815
+ title: s
2816
+ } = e, i = gr(e, mr), a = n || t.size || "1em", p;
2817
+ return t.className && (p = t.className), e.className && (p = (p ? p + " " : "") + e.className), /* @__PURE__ */ E.createElement("svg", te({
2818
+ stroke: "currentColor",
2819
+ fill: "currentColor",
2820
+ strokeWidth: "0"
2821
+ }, t.attr, o, i, {
2822
+ className: p,
2823
+ style: oe(oe({
2824
+ color: e.color || t.color
2825
+ }, t.style), e.style),
2826
+ height: a,
2827
+ width: a,
2828
+ xmlns: "http://www.w3.org/2000/svg"
2829
+ }), s && /* @__PURE__ */ E.createElement("title", null, s), e.children);
2830
+ };
2831
+ return be !== void 0 ? /* @__PURE__ */ E.createElement(be.Consumer, null, (t) => r(t)) : r(Me);
2832
+ }
2833
+ function wr(e) {
2834
+ return B({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "circle", attr: { cx: "11", cy: "11", r: "8" }, child: [] }, { tag: "line", attr: { x1: "21", y1: "21", x2: "16.65", y2: "16.65" }, child: [] }] })(e);
2835
+ }
2836
+ function kr(e, r) {
2837
+ const [t, o] = T(e);
2838
+ return K(() => {
2839
+ const n = setTimeout(() => {
2840
+ o(e);
2841
+ }, r);
2842
+ return () => {
2843
+ clearTimeout(n);
2844
+ };
2845
+ }, [e, r]), t;
2846
+ }
2847
+ function Vr({
2848
+ value: e,
2849
+ onChange: r,
2850
+ placeholder: t = "Search...",
2851
+ disabled: o = !1,
2852
+ colorScheme: n = "secondary",
2853
+ label: s,
2854
+ className: i = "",
2855
+ debounceDelay: a = 500,
2856
+ ...p
2857
+ }) {
2858
+ const [c, b] = T(e || ""), C = kr(c, a), w = he(r, [r]);
2859
+ K(() => {
2860
+ w(C);
2861
+ }, [C, w]);
2862
+ const v = () => {
2863
+ const d = "w-full px-4 py-4 pl-10 border-2 rounded-lg text-base bg-background transition-all duration-300 focus:outline-none focus:ring-1 disabled:bg-light disabled:text-text-muted disabled:cursor-not-allowed placeholder:text-text-muted";
2864
+ switch (n) {
2865
+ case "primary":
2866
+ return u(
2867
+ d,
2868
+ "text-primary border-primary focus:border-primary"
2869
+ );
2870
+ case "secondary":
2871
+ default:
2872
+ return u(
2873
+ d,
2874
+ "text-secondary border-secondary focus:border-secondary"
2875
+ );
2876
+ }
2877
+ }, g = () => n === "primary" ? "text-primary" : "text-secondary", m = () => n === "primary" ? "text-primary" : "text-secondary";
2878
+ return /* @__PURE__ */ k("div", { className: u("mb-0", i), children: [
2879
+ s && /* @__PURE__ */ l(
2880
+ "label",
2881
+ {
2882
+ className: u("block mb-2 text-sm font-medium", m()),
2883
+ children: s
2884
+ }
2885
+ ),
2886
+ /* @__PURE__ */ k("div", { className: "relative w-full", children: [
2887
+ /* @__PURE__ */ l(
2888
+ wr,
2889
+ {
2890
+ className: u(
2891
+ "absolute left-3 top-1/2 -translate-y-1/2 text-base pointer-events-none",
2892
+ g()
2893
+ )
2894
+ }
2895
+ ),
2896
+ /* @__PURE__ */ l(
2897
+ "input",
2898
+ {
2899
+ type: "text",
2900
+ value: c,
2901
+ onChange: (d) => b(d.target.value),
2902
+ placeholder: t,
2903
+ disabled: o,
2904
+ className: v(),
2905
+ ...p
2906
+ }
2907
+ )
2908
+ ] })
2909
+ ] });
2910
+ }
2911
+ function Cr(e) {
2912
+ return B({ attr: { viewBox: "0 0 448 512" }, child: [{ tag: "path", attr: { d: "M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z" }, child: [] }] })(e);
2913
+ }
2914
+ function Nr(e) {
2915
+ return B({ attr: { viewBox: "0 0 448 512" }, child: [{ tag: "path", attr: { d: "M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z" }, child: [] }] })(e);
2916
+ }
2917
+ function Gr({
2918
+ labelPage: e = "Page",
2919
+ labelOf: r = "of",
2920
+ setPagination: t,
2921
+ totalPages: o,
2922
+ currentPage: n,
2923
+ showLabel: s = !0,
2924
+ className: i = "",
2925
+ isLoading: a = !1,
2926
+ fetchPage: p
2927
+ }) {
2928
+ const c = parseInt(String(n)) === 1 || parseInt(String(o)) === 0 || a, b = parseInt(String(n)) === parseInt(String(o)) || parseInt(String(o)) === 0 || a, C = () => {
2929
+ a || (p ? p(n - 1) : t && t((v) => ({
2930
+ ...v,
2931
+ page: v.page - 1
2932
+ })));
2933
+ }, w = () => {
2934
+ a || (p ? p(n + 1) : t && t((v) => ({
2935
+ ...v,
2936
+ page: v.page + 1
2937
+ })));
2938
+ };
2939
+ return /* @__PURE__ */ k("div", { className: u("flex justify-center items-center mt-8", i), children: [
2940
+ /* @__PURE__ */ l(
2941
+ pe,
2942
+ {
2943
+ disabled: c,
2944
+ onClick: C,
2945
+ variant: "secondary",
2946
+ children: /* @__PURE__ */ l(Cr, { size: 14 })
2947
+ }
2948
+ ),
2949
+ /* @__PURE__ */ l("h5", { className: "font-bold mx-2.5 text-text", children: `${s ? e : ""} ${n}${s ? ` ${r} ` : " / "}${o}` }),
2950
+ /* @__PURE__ */ l(
2951
+ pe,
2952
+ {
2953
+ disabled: b,
2954
+ onClick: w,
2955
+ variant: "primary",
2956
+ children: /* @__PURE__ */ l(Nr, { size: 14 })
2957
+ }
2958
+ )
2959
+ ] });
2960
+ }
2961
+ function Le(e) {
2962
+ return B({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { fill: "none", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "48", d: "m112 184 144 144 144-144" }, child: [] }] })(e);
2963
+ }
2964
+ function Mr(e) {
2965
+ return B({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "m289.94 256 95-95A24 24 0 0 0 351 127l-95 95-95-95a24 24 0 0 0-34 34l95 95-95 95a24 24 0 1 0 34 34l95-95 95 95a24 24 0 0 0 34-34z" }, child: [] }] })(e);
2966
+ }
2967
+ function zr(e) {
2968
+ return B({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "M456.69 421.39 362.6 327.3a173.81 173.81 0 0 0 34.84-104.58C397.44 126.38 319.06 48 222.72 48S48 126.38 48 222.72s78.38 174.72 174.72 174.72A173.81 173.81 0 0 0 327.3 362.6l94.09 94.09a25 25 0 0 0 35.3-35.3zM97.92 222.72a124.8 124.8 0 1 1 124.8 124.8 124.95 124.95 0 0 1-124.8-124.8z" }, child: [] }] })(e);
2969
+ }
2970
+ function Fr({
2971
+ title: e,
2972
+ subtitle: r,
2973
+ children: t,
2974
+ defaultExpanded: o = !1,
2975
+ expanded: n,
2976
+ onToggle: s,
2977
+ className: i = "",
2978
+ colorScheme: a = "primary",
2979
+ icon: p,
2980
+ disabled: c = !1,
2981
+ headerExtra: b
2982
+ }) {
2983
+ const [C, w] = T(o), v = n !== void 0 ? n : C, g = () => {
2984
+ if (c) return;
2985
+ const h = !v;
2986
+ n === void 0 && w(h), s?.(h);
2987
+ }, m = () => a === "primary" ? "border-primary" : "border-secondary", d = () => a === "primary" ? "text-primary" : "text-secondary", y = () => a === "primary" ? "hover:bg-primary/5" : "hover:bg-secondary/5";
2988
+ return /* @__PURE__ */ k(
2989
+ "div",
2990
+ {
2991
+ className: u(
2992
+ "w-full rounded-lg border-2 bg-background transition-all duration-300",
2993
+ m(),
2994
+ v && "shadow-lg",
2995
+ i
2996
+ ),
2997
+ children: [
2998
+ /* @__PURE__ */ k(
2999
+ "button",
3000
+ {
3001
+ type: "button",
3002
+ onClick: g,
3003
+ disabled: c,
3004
+ className: u(
3005
+ "w-full flex cursor-pointer items-center justify-between p-4 text-left transition-all duration-300 rounded-lg",
3006
+ !c && y(),
3007
+ c && "opacity-50"
3008
+ ),
3009
+ "aria-expanded": v,
3010
+ children: [
3011
+ /* @__PURE__ */ k("div", { className: "flex items-center gap-3 flex-1 min-w-0", children: [
3012
+ p && /* @__PURE__ */ l("div", { className: u("shrink-0", d()), children: p }),
3013
+ /* @__PURE__ */ k("div", { className: "flex-1 min-w-0", children: [
3014
+ /* @__PURE__ */ l(
3015
+ "h3",
3016
+ {
3017
+ className: u("text-base font-medium truncate", d()),
3018
+ children: e
3019
+ }
3020
+ ),
3021
+ r && /* @__PURE__ */ l("p", { className: "text-sm text-text-muted truncate mt-0.5", children: r })
3022
+ ] })
3023
+ ] }),
3024
+ /* @__PURE__ */ k("div", { className: "flex items-center gap-3 shrink-0", children: [
3025
+ b && /* @__PURE__ */ l("div", { onClick: (h) => h.stopPropagation(), children: b }),
3026
+ /* @__PURE__ */ l(
3027
+ "div",
3028
+ {
3029
+ className: u(
3030
+ "h-5 w-5 transition-transform duration-300",
3031
+ d(),
3032
+ v && "rotate-180"
3033
+ ),
3034
+ children: /* @__PURE__ */ l(Le, { className: "h-5 w-5" })
3035
+ }
3036
+ )
3037
+ ] })
3038
+ ]
3039
+ }
3040
+ ),
3041
+ /* @__PURE__ */ l(
3042
+ "div",
3043
+ {
3044
+ className: u(
3045
+ "overflow-hidden transition-all duration-300 ease-in-out",
3046
+ v ? "max-h-[2000px] opacity-100" : "max-h-0 opacity-0"
3047
+ ),
3048
+ children: /* @__PURE__ */ l("div", { className: u("p-4 pt-0 border-t-0", m()), children: /* @__PURE__ */ l("div", { className: "border-t border-border pt-4", children: t }) })
3049
+ }
3050
+ )
3051
+ ]
3052
+ }
3053
+ );
3054
+ }
3055
+ function Br({ children: e, className: r = "" }) {
3056
+ return /* @__PURE__ */ l("div", { className: u("py-4", r), children: e });
3057
+ }
3058
+ function _r({
3059
+ options: e,
3060
+ value: r,
3061
+ onChange: t,
3062
+ children: o,
3063
+ className: n = "",
3064
+ colorScheme: s = "primary",
3065
+ variant: i = "underline"
3066
+ }) {
3067
+ const [a, p] = T(
3068
+ r ?? e[0]?.value ?? ""
3069
+ ), c = r !== void 0 ? r : a, b = (g) => {
3070
+ r === void 0 && p(g), t?.(g);
3071
+ }, C = (g, m) => {
3072
+ const d = c === g, y = "px-4 py-3 cursor-pointer text-sm font-medium transition-all duration-300 focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed";
3073
+ if (m)
3074
+ return u(y, "text-text-muted");
3075
+ switch (i) {
3076
+ case "filled":
3077
+ return u(
3078
+ y,
3079
+ "rounded-lg",
3080
+ d ? s === "primary" ? "bg-primary text-white" : "bg-secondary text-white" : "text-text-muted hover:bg-background-light"
3081
+ );
3082
+ case "pills":
3083
+ return u(
3084
+ y,
3085
+ "rounded-full",
3086
+ d ? s === "primary" ? "bg-primary/10 text-primary border-2 border-primary" : "bg-secondary/10 text-secondary border-2 border-secondary" : "text-text-muted hover:bg-background-light border-2 border-transparent"
3087
+ );
3088
+ case "underline":
3089
+ default:
3090
+ return u(
3091
+ y,
3092
+ "border-b-2",
3093
+ d ? s === "primary" ? "border-primary text-primary" : "border-secondary text-secondary" : "border-transparent text-text-muted hover:text-text hover:border-border"
3094
+ );
3095
+ }
3096
+ }, w = () => {
3097
+ switch (i) {
3098
+ case "filled":
3099
+ return "flex gap-1 p-1 bg-background-light rounded-lg";
3100
+ case "pills":
3101
+ return "flex gap-2 flex-wrap";
3102
+ case "underline":
3103
+ default:
3104
+ return "flex border-b-2 border-border";
3105
+ }
3106
+ }, v = E.Children.toArray(o).find((g) => E.isValidElement(g) ? g.props.value === c : !1);
3107
+ return /* @__PURE__ */ k("div", { className: u("w-full", n), children: [
3108
+ /* @__PURE__ */ l("div", { className: w(), role: "tablist", children: e.map((g) => /* @__PURE__ */ l(
3109
+ "button",
3110
+ {
3111
+ type: "button",
3112
+ role: "tab",
3113
+ "aria-selected": c === g.value,
3114
+ "aria-controls": `tabpanel-${g.value}`,
3115
+ disabled: g.disabled,
3116
+ onClick: () => !g.disabled && b(g.value),
3117
+ className: C(g.value, g.disabled),
3118
+ children: g.label
3119
+ },
3120
+ g.value
3121
+ )) }),
3122
+ /* @__PURE__ */ l("div", { role: "tabpanel", id: `tabpanel-${c}`, children: v })
3123
+ ] });
3124
+ }
3125
+ function ge(e) {
3126
+ return B({ attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { fill: "none", d: "M0 0h24v24H0z" }, child: [] }, { tag: "path", attr: { d: "M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z" }, child: [] }] })(e);
3127
+ }
3128
+ function fe(e) {
3129
+ return B({ attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { fill: "none", d: "M0 0h24v24H0z" }, child: [] }, { tag: "path", attr: { d: "M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" }, child: [] }] })(e);
3130
+ }
3131
+ const Lr = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], Pr = [
3132
+ "January",
3133
+ "February",
3134
+ "March",
3135
+ "April",
3136
+ "May",
3137
+ "June",
3138
+ "July",
3139
+ "August",
3140
+ "September",
3141
+ "October",
3142
+ "November",
3143
+ "December"
3144
+ ];
3145
+ function Sr(e) {
3146
+ return new Date(e.getFullYear(), e.getMonth() + 1, 0).getDate();
3147
+ }
3148
+ function Dr(e) {
3149
+ const r = new Date(e.getFullYear(), e.getMonth(), 1).getDay();
3150
+ return r === 0 ? 6 : r - 1;
3151
+ }
3152
+ function $r({
3153
+ value: e,
3154
+ onChange: r,
3155
+ disabled: t = !1,
3156
+ className: o = "",
3157
+ colorScheme: n = "secondary",
3158
+ locale: s = "en-US",
3159
+ dayNames: i = Lr,
3160
+ monthNames: a = Pr,
3161
+ ...p
3162
+ }) {
3163
+ const [c, b] = T(e || /* @__PURE__ */ new Date()), C = Sr(c), w = Dr(c), v = [];
3164
+ for (let N = 0; N < w; N++)
3165
+ v.push(null);
3166
+ for (let N = 1; N <= C; N++) {
3167
+ const z = new Date(
3168
+ c.getFullYear(),
3169
+ c.getMonth(),
3170
+ N,
3171
+ 12,
3172
+ 0,
3173
+ 0
3174
+ );
3175
+ v.push(z);
3176
+ }
3177
+ const g = () => {
3178
+ b(
3179
+ new Date(
3180
+ c.getFullYear(),
3181
+ c.getMonth() - 1,
3182
+ 1,
3183
+ 12,
3184
+ 0,
3185
+ 0
3186
+ )
3187
+ );
3188
+ }, m = () => {
3189
+ b(
3190
+ new Date(
3191
+ c.getFullYear(),
3192
+ c.getMonth() + 1,
3193
+ 1,
3194
+ 12,
3195
+ 0,
3196
+ 0
3197
+ )
3198
+ );
3199
+ }, d = () => {
3200
+ b(
3201
+ new Date(
3202
+ c.getFullYear() - 1,
3203
+ c.getMonth(),
3204
+ 1,
3205
+ 12,
3206
+ 0,
3207
+ 0
3208
+ )
3209
+ );
3210
+ }, y = () => {
3211
+ b(
3212
+ new Date(
3213
+ c.getFullYear() + 1,
3214
+ c.getMonth(),
3215
+ 1,
3216
+ 12,
3217
+ 0,
3218
+ 0
3219
+ )
3220
+ );
3221
+ }, h = (N) => {
3222
+ if (N && !t) {
3223
+ const z = new Date(
3224
+ N.getFullYear(),
3225
+ N.getMonth(),
3226
+ N.getDate(),
3227
+ 12,
3228
+ 0,
3229
+ 0
3230
+ );
3231
+ b(z), r?.(z);
3232
+ }
3233
+ }, M = (() => {
3234
+ switch (n) {
3235
+ case "primary":
3236
+ return {
3237
+ header: "text-primary",
3238
+ selected: "bg-primary text-white",
3239
+ hover: "hover:bg-primary/10",
3240
+ button: "text-primary border-primary hover:bg-primary/20"
3241
+ };
3242
+ case "secondary":
3243
+ default:
3244
+ return {
3245
+ header: "text-secondary",
3246
+ selected: "bg-secondary text-white",
3247
+ hover: "hover:bg-secondary/10",
3248
+ button: "text-secondary border-secondary hover:bg-secondary/20"
3249
+ };
3250
+ }
3251
+ })(), j = (N) => N && e ? N.toDateString() === e.toDateString() : !1;
3252
+ return /* @__PURE__ */ k(
3253
+ "div",
3254
+ {
3255
+ className: u(
3256
+ "w-full max-w-sm bg-background border-2 border-border rounded-lg p-6 shadow-md",
3257
+ o
3258
+ ),
3259
+ ...p,
3260
+ children: [
3261
+ /* @__PURE__ */ k("div", { className: "mb-6", children: [
3262
+ /* @__PURE__ */ k(
3263
+ "div",
3264
+ {
3265
+ className: u(
3266
+ "flex items-center justify-between mb-4",
3267
+ M.header
3268
+ ),
3269
+ children: [
3270
+ /* @__PURE__ */ l(
3271
+ "button",
3272
+ {
3273
+ type: "button",
3274
+ onClick: d,
3275
+ disabled: t,
3276
+ className: u(
3277
+ "p-2 rounded-lg border transition-all duration-300",
3278
+ M.button,
3279
+ t && "opacity-50 cursor-not-allowed"
3280
+ ),
3281
+ children: /* @__PURE__ */ l(ge, { size: 18 })
3282
+ }
3283
+ ),
3284
+ /* @__PURE__ */ l("h2", { className: "font-semibold text-lg", children: c.getFullYear() }),
3285
+ /* @__PURE__ */ l(
3286
+ "button",
3287
+ {
3288
+ type: "button",
3289
+ onClick: y,
3290
+ disabled: t,
3291
+ className: u(
3292
+ "p-2 rounded-lg border transition-all duration-300",
3293
+ M.button,
3294
+ t && "opacity-50 cursor-not-allowed"
3295
+ ),
3296
+ children: /* @__PURE__ */ l(fe, { size: 18 })
3297
+ }
3298
+ )
3299
+ ]
3300
+ }
3301
+ ),
3302
+ /* @__PURE__ */ k("div", { className: u("flex items-center justify-between", M.header), children: [
3303
+ /* @__PURE__ */ l(
3304
+ "button",
3305
+ {
3306
+ type: "button",
3307
+ onClick: g,
3308
+ disabled: t,
3309
+ className: u(
3310
+ "p-2 rounded-lg border transition-all duration-300",
3311
+ M.button,
3312
+ t && "opacity-50 cursor-not-allowed"
3313
+ ),
3314
+ children: /* @__PURE__ */ l(ge, { size: 18 })
3315
+ }
3316
+ ),
3317
+ /* @__PURE__ */ l("h2", { className: "font-semibold text-lg", children: a[c.getMonth()] }),
3318
+ /* @__PURE__ */ l(
3319
+ "button",
3320
+ {
3321
+ type: "button",
3322
+ onClick: m,
3323
+ disabled: t,
3324
+ className: u(
3325
+ "p-2 rounded-lg border transition-all duration-300",
3326
+ M.button,
3327
+ t && "opacity-50 cursor-not-allowed"
3328
+ ),
3329
+ children: /* @__PURE__ */ l(fe, { size: 18 })
3330
+ }
3331
+ )
3332
+ ] })
3333
+ ] }),
3334
+ /* @__PURE__ */ l("div", { className: "grid grid-cols-7 gap-2 mb-4", children: i.map((N) => /* @__PURE__ */ l(
3335
+ "div",
3336
+ {
3337
+ className: u(
3338
+ "text-center text-sm font-medium py-2",
3339
+ M.header
3340
+ ),
3341
+ children: N
3342
+ },
3343
+ N
3344
+ )) }),
3345
+ /* @__PURE__ */ l("div", { className: "grid grid-cols-7 gap-2", children: v.map((N, z) => /* @__PURE__ */ l(
3346
+ "button",
3347
+ {
3348
+ type: "button",
3349
+ onClick: () => h(N),
3350
+ disabled: !N || t,
3351
+ className: u(
3352
+ "p-2 rounded-lg text-sm font-medium transition-all duration-300",
3353
+ N ? u(
3354
+ "cursor-pointer",
3355
+ M.hover,
3356
+ j(N) ? M.selected : "text-text border border-transparent hover:border-border",
3357
+ t && "opacity-50 cursor-not-allowed"
3358
+ ) : "cursor-default"
3359
+ ),
3360
+ children: N ? N.getDate() : ""
3361
+ },
3362
+ z
3363
+ )) }),
3364
+ e && /* @__PURE__ */ l(
3365
+ "div",
3366
+ {
3367
+ className: u(
3368
+ "mt-6 p-3 rounded-lg bg-background-dark border border-border text-center text-sm font-medium",
3369
+ M.header
3370
+ ),
3371
+ children: e.toLocaleDateString(s, {
3372
+ year: "numeric",
3373
+ month: "long",
3374
+ day: "numeric"
3375
+ })
3376
+ }
3377
+ )
3378
+ ]
3379
+ }
3380
+ );
3381
+ }
3382
+ function Wr({
3383
+ headers: e,
3384
+ data: r,
3385
+ loading: t,
3386
+ loadingText: o = "Loading...",
3387
+ actions: n,
3388
+ actionsHeader: s = "Actions",
3389
+ onRowClick: i,
3390
+ className: a = "",
3391
+ rowClassName: p = "",
3392
+ cellClassName: c = "",
3393
+ headerClassName: b = "",
3394
+ emptyText: C = "No data available",
3395
+ showCount: w = !0,
3396
+ countText: v = (m) => `Showing ${m} record${m !== 1 ? "s" : ""}`,
3397
+ keyExtractor: g = (m, d) => m._id || m.id || d
3398
+ }) {
3399
+ if (t)
3400
+ return /* @__PURE__ */ l("div", { className: "flex justify-center items-center min-h-[400px]", children: /* @__PURE__ */ l("div", { className: "text-lg text-text-light", children: o }) });
3401
+ if (r.length === 0)
3402
+ return /* @__PURE__ */ l("div", { className: "flex justify-center items-center min-h-[200px]", children: /* @__PURE__ */ l("div", { className: "text-lg text-text-muted", children: C }) });
3403
+ const m = (d, y) => {
3404
+ const h = y.toLowerCase().replace(/\s+/g, "_");
3405
+ let S = d[h];
3406
+ if (S === void 0) {
3407
+ const M = [
3408
+ h.replace(/_/g, ""),
3409
+ y.toLowerCase().replace(/\s+/g, ""),
3410
+ h.replace(/_([a-z])/g, (j, N) => N.toUpperCase())
3411
+ ];
3412
+ for (const j of M)
3413
+ if (d[j] !== void 0) {
3414
+ S = d[j];
3415
+ break;
3416
+ }
3417
+ }
3418
+ if (S === void 0) {
3419
+ const M = y.toLowerCase().split(" "), j = Object.keys(d).find(
3420
+ (N) => M.some((z) => N.toLowerCase().includes(z))
3421
+ );
3422
+ j && (S = d[j]);
3423
+ }
3424
+ return S != null ? String(S) : "N/A";
3425
+ };
3426
+ return /* @__PURE__ */ k("div", { className: u("overflow-x-auto", a), children: [
3427
+ /* @__PURE__ */ k("table", { className: "w-full border-collapse", children: [
3428
+ /* @__PURE__ */ l("thead", { children: /* @__PURE__ */ k("tr", { className: "border-b-2 border-border", children: [
3429
+ e.map((d, y) => /* @__PURE__ */ l(
3430
+ "th",
3431
+ {
3432
+ className: u(
3433
+ "text-left py-3 px-4 font-semibold text-text",
3434
+ b
3435
+ ),
3436
+ children: d
3437
+ },
3438
+ y
3439
+ )),
3440
+ n && /* @__PURE__ */ l(
3441
+ "th",
3442
+ {
3443
+ className: u(
3444
+ "text-center py-3 px-4 font-semibold text-text",
3445
+ b
3446
+ ),
3447
+ children: s
3448
+ }
3449
+ )
3450
+ ] }) }),
3451
+ /* @__PURE__ */ l("tbody", { children: r.map((d, y) => /* @__PURE__ */ k(
3452
+ "tr",
3453
+ {
3454
+ className: u(
3455
+ "border-b border-border-dark hover:bg-background-light transition-colors",
3456
+ i && "cursor-pointer",
3457
+ p
3458
+ ),
3459
+ onClick: () => i?.(d),
3460
+ children: [
3461
+ e.map((h, S) => /* @__PURE__ */ l("td", { className: u("py-4 px-4", c), children: /* @__PURE__ */ l("div", { className: "text-text-light", children: m(d, h) }) }, S)),
3462
+ n && /* @__PURE__ */ l("td", { className: u("py-4 px-4", c), children: /* @__PURE__ */ l("div", { className: "flex gap-2 justify-center", children: n.map((h, S) => {
3463
+ const M = h.component || "button";
3464
+ return /* @__PURE__ */ k(
3465
+ M,
3466
+ {
3467
+ onClick: (j) => {
3468
+ j.stopPropagation(), h.onClick?.(d);
3469
+ },
3470
+ className: h.className || "",
3471
+ ...h.props || {},
3472
+ children: [
3473
+ h.icon && /* @__PURE__ */ l("span", { className: "inline-block", children: E.createElement(h.icon) }),
3474
+ h.label && h.label
3475
+ ]
3476
+ },
3477
+ S
3478
+ );
3479
+ }) }) })
3480
+ ]
3481
+ },
3482
+ g(d, y)
3483
+ )) })
3484
+ ] }),
3485
+ w && r.length > 0 && /* @__PURE__ */ l("div", { className: "mt-6 text-center text-text-light text-sm", children: v(r.length) })
3486
+ ] });
3487
+ }
3488
+ function Ur({
3489
+ label: e,
3490
+ options: r,
3491
+ value: t = "",
3492
+ onChange: o,
3493
+ multiple: n = !1,
3494
+ className: s = "",
3495
+ searchable: i = !1,
3496
+ onSearchInputCustom: a,
3497
+ placeholder: p = "Select...",
3498
+ disabled: c = !1,
3499
+ error: b,
3500
+ required: C = !1,
3501
+ colorScheme: w = "primary",
3502
+ noResultsText: v = "No results found",
3503
+ searchPlaceholder: g = "Search...",
3504
+ ...m
3505
+ }) {
3506
+ const [d, y] = T(!1), [h, S] = T(""), [M, j] = T({
3507
+ top: 0,
3508
+ left: 0,
3509
+ openUpward: !1
3510
+ }), N = Array.isArray(t) ? t : t ? [t] : [], [z, W] = T(
3511
+ N.map((f) => r.find((L) => L.value === f)).filter(Boolean)
3512
+ ), R = ie(null), _ = ie(null), Z = () => {
3513
+ const f = "w-full p-4 border-2 rounded-lg text-base bg-background transition-all duration-300 focus:outline-none focus:ring-1 disabled:bg-light disabled:text-text-muted disabled:cursor-not-allowed";
3514
+ if (b)
3515
+ return u(f, "border-danger focus:border-danger");
3516
+ switch (w) {
3517
+ case "primary":
3518
+ return u(
3519
+ f,
3520
+ "text-primary border-primary focus:border-primary"
3521
+ );
3522
+ case "secondary":
3523
+ default:
3524
+ return u(
3525
+ f,
3526
+ "text-secondary border-secondary focus:border-secondary"
3527
+ );
3528
+ }
3529
+ }, P = () => w === "primary" ? "text-primary" : "text-secondary";
3530
+ K(() => {
3531
+ const L = (Array.isArray(t) ? t : t !== "" && t !== null && t !== void 0 ? [t] : []).map((O) => r.find((I) => I.value === O)).filter(Boolean);
3532
+ W(L);
3533
+ }, [t, r]), K(() => {
3534
+ d && i && _.current && _.current.focus();
3535
+ }, [d, i]);
3536
+ const U = he(() => {
3537
+ if (!R.current) return;
3538
+ const f = R.current.getBoundingClientRect(), L = window.innerHeight, O = 250, Y = L - f.bottom < O && f.top > O;
3539
+ j({
3540
+ top: Y ? f.top : f.bottom,
3541
+ left: f.left,
3542
+ width: f.width,
3543
+ openUpward: Y
3544
+ });
3545
+ }, []);
3546
+ K(() => {
3547
+ function f(O) {
3548
+ R.current && !R.current.contains(O.target) && y(!1);
3549
+ }
3550
+ function L() {
3551
+ d && U();
3552
+ }
3553
+ return document.addEventListener("mousedown", f), window.addEventListener("scroll", L, !0), window.addEventListener("resize", L), () => {
3554
+ document.removeEventListener("mousedown", f), window.removeEventListener("scroll", L, !0), window.removeEventListener("resize", L);
3555
+ };
3556
+ }, [d, U]);
3557
+ const H = (f) => {
3558
+ const L = r.find((I) => I.value === f);
3559
+ if (!L) return;
3560
+ let O;
3561
+ n ? (O = z.some((Y) => Y.value === f) ? z.filter((Y) => Y.value !== f) : [...z, L], W(O), o(O)) : (O = [L], W(O), o(L), y(!1), S(""));
3562
+ }, ee = (f) => {
3563
+ S(f), a?.(f);
3564
+ }, $ = i ? r.filter(
3565
+ (f) => f.label.toLowerCase().includes(h.toLowerCase())
3566
+ ) : r, re = () => z.length === 0 ? p : n ? z.length === 1 ? z[0].label : `${z.length} selected` : z[0]?.label || p;
3567
+ return /* @__PURE__ */ k("div", { className: u("mb-6", s), children: [
3568
+ e && /* @__PURE__ */ k(
3569
+ "label",
3570
+ {
3571
+ className: u("block mb-2 text-sm font-medium", P()),
3572
+ children: [
3573
+ e,
3574
+ C && /* @__PURE__ */ l("span", { className: "text-danger ml-1", children: "*" })
3575
+ ]
3576
+ }
3577
+ ),
3578
+ /* @__PURE__ */ k("div", { ref: R, className: "relative w-full", children: [
3579
+ /* @__PURE__ */ k(
3580
+ "button",
3581
+ {
3582
+ type: "button",
3583
+ onClick: (f) => {
3584
+ f.preventDefault(), f.stopPropagation(), d || U(), y(!d);
3585
+ },
3586
+ className: u(
3587
+ Z(),
3588
+ "inline-flex items-center justify-between cursor-pointer h-auto min-h-14",
3589
+ c && "cursor-not-allowed",
3590
+ d && "ring-1"
3591
+ ),
3592
+ disabled: c,
3593
+ ...m,
3594
+ children: [
3595
+ /* @__PURE__ */ k("div", { className: "flex items-center gap-2 flex-1", children: [
3596
+ z.length > 0 && z[0].hex && /* @__PURE__ */ l(
3597
+ "div",
3598
+ {
3599
+ className: "h-4 w-4 rounded border border-border",
3600
+ style: { backgroundColor: z[0].hex }
3601
+ }
3602
+ ),
3603
+ /* @__PURE__ */ l(
3604
+ "span",
3605
+ {
3606
+ className: z.length > 0 ? "" : "text-text-muted",
3607
+ children: re()
3608
+ }
3609
+ )
3610
+ ] }),
3611
+ /* @__PURE__ */ l(
3612
+ "div",
3613
+ {
3614
+ className: u(
3615
+ "h-5 w-5 transition-transform duration-200",
3616
+ d && "rotate-180"
3617
+ ),
3618
+ children: /* @__PURE__ */ l(Le, { className: "h-5 w-5" })
3619
+ }
3620
+ )
3621
+ ]
3622
+ }
3623
+ ),
3624
+ d && /* @__PURE__ */ k(
3625
+ "div",
3626
+ {
3627
+ className: u(
3628
+ "fixed z-[9999] rounded-lg border-2 bg-background shadow-xl",
3629
+ b ? "border-danger" : w === "primary" ? "border-primary" : "border-secondary"
3630
+ ),
3631
+ style: {
3632
+ top: `${M.top + (M.openUpward ? 0 : 8)}px`,
3633
+ left: `${M.left}px`,
3634
+ width: `${M.width}px`,
3635
+ transform: M.openUpward ? "translateY(-100%)" : "none"
3636
+ },
3637
+ children: [
3638
+ i && /* @__PURE__ */ l("div", { className: "border-b border-border p-3", children: /* @__PURE__ */ k("div", { className: "relative", children: [
3639
+ /* @__PURE__ */ l(zr, { className: "absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 transform text-text-muted" }),
3640
+ /* @__PURE__ */ l(
3641
+ "input",
3642
+ {
3643
+ ref: _,
3644
+ type: "text",
3645
+ value: h,
3646
+ onChange: (f) => ee(f.target.value),
3647
+ placeholder: g,
3648
+ className: u(
3649
+ "w-full rounded-lg border-2 py-2 pr-10 pl-10 text-sm transition-all duration-300 focus:outline-none focus:ring-1",
3650
+ w === "primary" ? "border-primary text-primary" : "border-secondary text-secondary"
3651
+ )
3652
+ }
3653
+ ),
3654
+ h && /* @__PURE__ */ l(
3655
+ "button",
3656
+ {
3657
+ type: "button",
3658
+ onClick: () => S(""),
3659
+ className: "absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2 transform text-text-muted hover:text-text",
3660
+ children: /* @__PURE__ */ l(Mr, { className: "h-4 w-4" })
3661
+ }
3662
+ )
3663
+ ] }) }),
3664
+ /* @__PURE__ */ k("div", { className: "max-h-60 overflow-y-auto py-1", children: [
3665
+ $.map((f) => /* @__PURE__ */ l(
3666
+ "button",
3667
+ {
3668
+ type: "button",
3669
+ onClick: () => H(f.value ?? ""),
3670
+ className: u(
3671
+ "w-full px-4 py-3 text-left text-sm transition-colors",
3672
+ z.some((L) => L.value === f.value) ? w === "primary" ? "bg-primary/10 text-primary font-medium" : "bg-secondary/10 text-secondary font-medium" : "text-text hover:bg-background-light"
3673
+ ),
3674
+ children: /* @__PURE__ */ k("div", { className: "flex items-center gap-3", children: [
3675
+ n && /* @__PURE__ */ l(
3676
+ "div",
3677
+ {
3678
+ className: u(
3679
+ "flex h-4 w-4 items-center justify-center rounded border-2 transition-colors",
3680
+ z.some((L) => L.value === f.value) ? w === "primary" ? "border-primary bg-primary" : "border-secondary bg-secondary" : "border-border"
3681
+ ),
3682
+ children: z.some(
3683
+ (L) => L.value === f.value
3684
+ ) && /* @__PURE__ */ l(
3685
+ "svg",
3686
+ {
3687
+ className: "h-3 w-3 text-white",
3688
+ fill: "currentColor",
3689
+ viewBox: "0 0 20 20",
3690
+ children: /* @__PURE__ */ l(
3691
+ "path",
3692
+ {
3693
+ fillRule: "evenodd",
3694
+ d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
3695
+ clipRule: "evenodd"
3696
+ }
3697
+ )
3698
+ }
3699
+ )
3700
+ }
3701
+ ),
3702
+ f.hex && /* @__PURE__ */ l(
3703
+ "div",
3704
+ {
3705
+ className: "h-4 w-4 rounded border border-border",
3706
+ style: { backgroundColor: f.hex }
3707
+ }
3708
+ ),
3709
+ /* @__PURE__ */ l("span", { children: f.label })
3710
+ ] })
3711
+ },
3712
+ f.value
3713
+ )),
3714
+ $.length === 0 && h && r.length > 0 && /* @__PURE__ */ l("div", { className: "px-4 py-3", children: /* @__PURE__ */ l("span", { className: "text-sm text-text-muted", children: v }) })
3715
+ ] })
3716
+ ]
3717
+ }
3718
+ )
3719
+ ] }),
3720
+ b && /* @__PURE__ */ l("span", { className: "block mt-1 text-xs text-danger font-medium", children: b })
3721
+ ] });
3722
+ }
3723
+ export {
3724
+ pe as Button,
3725
+ $r as Calendar,
3726
+ Ur as Dropdown,
3727
+ Fr as ExpandableCard,
3728
+ Er as Input,
3729
+ Tr as InputArea,
3730
+ Gr as Pagination,
3731
+ Vr as SearchInput,
3732
+ Br as TabPanel,
3733
+ Wr as Table,
3734
+ _r as Tabs,
3735
+ Ir as ThemeProvider,
3736
+ Rr as Toggle,
3737
+ u as cn,
3738
+ A as defaultTheme,
3739
+ se as generateColorVariants,
3740
+ dr as hexToHsl,
3741
+ ue as hslToHex,
3742
+ Or as useTheme
3743
+ };
3744
+ //# sourceMappingURL=index.js.map