@rayan.boussouda/ui-kit 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.
package/dist/index.mjs ADDED
@@ -0,0 +1,2995 @@
1
+ import { jsxs as y, jsx as l } from "react/jsx-runtime";
2
+ import { forwardRef as W, useState as fe } from "react";
3
+ const kt = {
4
+ brand: {
5
+ 50: "oklch(0.97 0.01 260)",
6
+ 100: "oklch(0.93 0.04 260)",
7
+ 200: "oklch(0.87 0.07 260)",
8
+ 300: "oklch(0.78 0.12 260)",
9
+ 400: "oklch(0.68 0.18 260)",
10
+ 500: "oklch(0.58 0.22 260)",
11
+ 600: "oklch(0.49 0.23 260)",
12
+ 700: "oklch(0.41 0.21 260)",
13
+ 800: "oklch(0.33 0.17 260)",
14
+ 900: "oklch(0.25 0.12 260)"
15
+ },
16
+ neutral: {
17
+ 50: "oklch(0.985 0 0)",
18
+ 100: "oklch(0.96 0 0)",
19
+ 200: "oklch(0.92 0 0)",
20
+ 300: "oklch(0.87 0 0)",
21
+ 400: "oklch(0.72 0 0)",
22
+ 500: "oklch(0.56 0 0)",
23
+ 600: "oklch(0.44 0 0)",
24
+ 700: "oklch(0.36 0 0)",
25
+ 800: "oklch(0.27 0 0)",
26
+ 900: "oklch(0.20 0 0)",
27
+ 950: "oklch(0.13 0 0)"
28
+ },
29
+ destructive: {
30
+ 50: "oklch(0.97 0.01 27)",
31
+ 500: "oklch(0.63 0.24 27)",
32
+ 600: "oklch(0.52 0.24 27)",
33
+ 700: "oklch(0.43 0.22 27)"
34
+ },
35
+ success: {
36
+ 500: "oklch(0.65 0.19 145)",
37
+ 600: "oklch(0.55 0.19 145)"
38
+ },
39
+ warning: {
40
+ 400: "oklch(0.84 0.18 75)",
41
+ 500: "oklch(0.78 0.17 75)"
42
+ }
43
+ }, Nt = {
44
+ 0: "0px",
45
+ 0.5: "0.125rem",
46
+ 1: "0.25rem",
47
+ 1.5: "0.375rem",
48
+ 2: "0.5rem",
49
+ 2.5: "0.625rem",
50
+ 3: "0.75rem",
51
+ 3.5: "0.875rem",
52
+ 4: "1rem",
53
+ 5: "1.25rem",
54
+ 6: "1.5rem",
55
+ 7: "1.75rem",
56
+ 8: "2rem",
57
+ 9: "2.25rem",
58
+ 10: "2.5rem",
59
+ 12: "3rem",
60
+ 14: "3.5rem",
61
+ 16: "4rem",
62
+ 20: "5rem",
63
+ 24: "6rem",
64
+ 32: "8rem",
65
+ 40: "10rem",
66
+ 48: "12rem",
67
+ 64: "16rem"
68
+ }, Ct = {
69
+ fontFamily: {
70
+ sans: 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
71
+ mono: 'ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", monospace'
72
+ },
73
+ fontSize: {
74
+ xs: { size: "0.75rem", lineHeight: "1rem" },
75
+ sm: { size: "0.875rem", lineHeight: "1.25rem" },
76
+ base: { size: "1rem", lineHeight: "1.5rem" },
77
+ lg: { size: "1.125rem", lineHeight: "1.75rem" },
78
+ xl: { size: "1.25rem", lineHeight: "1.75rem" },
79
+ "2xl": { size: "1.5rem", lineHeight: "2rem" },
80
+ "3xl": { size: "1.875rem", lineHeight: "2.25rem" },
81
+ "4xl": { size: "2.25rem", lineHeight: "2.5rem" }
82
+ },
83
+ fontWeight: {
84
+ normal: "400",
85
+ medium: "500",
86
+ semibold: "600",
87
+ bold: "700"
88
+ }
89
+ }, zt = {
90
+ none: "0px",
91
+ sm: "0.25rem",
92
+ md: "0.375rem",
93
+ lg: "0.5rem",
94
+ xl: "0.75rem",
95
+ "2xl": "1rem",
96
+ "3xl": "1.5rem",
97
+ full: "9999px"
98
+ }, Mt = {
99
+ none: "none",
100
+ sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
101
+ md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
102
+ lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
103
+ xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)",
104
+ "2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)"
105
+ };
106
+ function le(e) {
107
+ var t, r, o = "";
108
+ if (typeof e == "string" || typeof e == "number") o += e;
109
+ else if (typeof e == "object") if (Array.isArray(e)) {
110
+ var s = e.length;
111
+ for (t = 0; t < s; t++) e[t] && (r = le(e[t])) && (o && (o += " "), o += r);
112
+ } else for (r in e) e[r] && (o && (o += " "), o += r);
113
+ return o;
114
+ }
115
+ function ae() {
116
+ for (var e, t, r = 0, o = "", s = arguments.length; r < s; r++) (e = arguments[r]) && (t = le(e)) && (o && (o += " "), o += t);
117
+ return o;
118
+ }
119
+ const re = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, oe = ae, q = (e, t) => (r) => {
120
+ var o;
121
+ if ((t == null ? void 0 : t.variants) == null) return oe(e, r == null ? void 0 : r.class, r == null ? void 0 : r.className);
122
+ const { variants: s, defaultVariants: n } = t, i = Object.keys(s).map((u) => {
123
+ const p = r == null ? void 0 : r[u], h = n == null ? void 0 : n[u];
124
+ if (p === null) return null;
125
+ const x = re(p) || re(h);
126
+ return s[u][x];
127
+ }), a = r && Object.entries(r).reduce((u, p) => {
128
+ let [h, x] = p;
129
+ return x === void 0 || (u[h] = x), u;
130
+ }, {}), d = t == null || (o = t.compoundVariants) === null || o === void 0 ? void 0 : o.reduce((u, p) => {
131
+ let { class: h, className: x, ...C } = p;
132
+ return Object.entries(C).every((k) => {
133
+ let [v, m] = k;
134
+ return Array.isArray(m) ? m.includes({
135
+ ...n,
136
+ ...a
137
+ }[v]) : {
138
+ ...n,
139
+ ...a
140
+ }[v] === m;
141
+ }) ? [
142
+ ...u,
143
+ h,
144
+ x
145
+ ] : u;
146
+ }, []);
147
+ return oe(e, i, d, r == null ? void 0 : r.class, r == null ? void 0 : r.className);
148
+ }, K = "-", xe = (e) => {
149
+ const t = ye(e), {
150
+ conflictingClassGroups: r,
151
+ conflictingClassGroupModifiers: o
152
+ } = e;
153
+ return {
154
+ getClassGroupId: (i) => {
155
+ const a = i.split(K);
156
+ return a[0] === "" && a.length !== 1 && a.shift(), ie(a, t) || ve(i);
157
+ },
158
+ getConflictingClassGroupIds: (i, a) => {
159
+ const d = r[i] || [];
160
+ return a && o[i] ? [...d, ...o[i]] : d;
161
+ }
162
+ };
163
+ }, ie = (e, t) => {
164
+ var i;
165
+ if (e.length === 0)
166
+ return t.classGroupId;
167
+ const r = e[0], o = t.nextPart.get(r), s = o ? ie(e.slice(1), o) : void 0;
168
+ if (s)
169
+ return s;
170
+ if (t.validators.length === 0)
171
+ return;
172
+ const n = e.join(K);
173
+ return (i = t.validators.find(({
174
+ validator: a
175
+ }) => a(n))) == null ? void 0 : i.classGroupId;
176
+ }, ne = /^\[(.+)\]$/, ve = (e) => {
177
+ if (ne.test(e)) {
178
+ const t = ne.exec(e)[1], r = t == null ? void 0 : t.substring(0, t.indexOf(":"));
179
+ if (r)
180
+ return "arbitrary.." + r;
181
+ }
182
+ }, ye = (e) => {
183
+ const {
184
+ theme: t,
185
+ prefix: r
186
+ } = e, o = {
187
+ nextPart: /* @__PURE__ */ new Map(),
188
+ validators: []
189
+ };
190
+ return ke(Object.entries(e.classGroups), r).forEach(([n, i]) => {
191
+ U(i, o, n, t);
192
+ }), o;
193
+ }, U = (e, t, r, o) => {
194
+ e.forEach((s) => {
195
+ if (typeof s == "string") {
196
+ const n = s === "" ? t : se(t, s);
197
+ n.classGroupId = r;
198
+ return;
199
+ }
200
+ if (typeof s == "function") {
201
+ if (we(s)) {
202
+ U(s(o), t, r, o);
203
+ return;
204
+ }
205
+ t.validators.push({
206
+ validator: s,
207
+ classGroupId: r
208
+ });
209
+ return;
210
+ }
211
+ Object.entries(s).forEach(([n, i]) => {
212
+ U(i, se(t, n), r, o);
213
+ });
214
+ });
215
+ }, se = (e, t) => {
216
+ let r = e;
217
+ return t.split(K).forEach((o) => {
218
+ r.nextPart.has(o) || r.nextPart.set(o, {
219
+ nextPart: /* @__PURE__ */ new Map(),
220
+ validators: []
221
+ }), r = r.nextPart.get(o);
222
+ }), r;
223
+ }, we = (e) => e.isThemeGetter, ke = (e, t) => t ? e.map(([r, o]) => {
224
+ const s = o.map((n) => typeof n == "string" ? t + n : typeof n == "object" ? Object.fromEntries(Object.entries(n).map(([i, a]) => [t + i, a])) : n);
225
+ return [r, s];
226
+ }) : e, Ne = (e) => {
227
+ if (e < 1)
228
+ return {
229
+ get: () => {
230
+ },
231
+ set: () => {
232
+ }
233
+ };
234
+ let t = 0, r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
235
+ const s = (n, i) => {
236
+ r.set(n, i), t++, t > e && (t = 0, o = r, r = /* @__PURE__ */ new Map());
237
+ };
238
+ return {
239
+ get(n) {
240
+ let i = r.get(n);
241
+ if (i !== void 0)
242
+ return i;
243
+ if ((i = o.get(n)) !== void 0)
244
+ return s(n, i), i;
245
+ },
246
+ set(n, i) {
247
+ r.has(n) ? r.set(n, i) : s(n, i);
248
+ }
249
+ };
250
+ }, ce = "!", Ce = (e) => {
251
+ const {
252
+ separator: t,
253
+ experimentalParseClassName: r
254
+ } = e, o = t.length === 1, s = t[0], n = t.length, i = (a) => {
255
+ const d = [];
256
+ let u = 0, p = 0, h;
257
+ for (let m = 0; m < a.length; m++) {
258
+ let w = a[m];
259
+ if (u === 0) {
260
+ if (w === s && (o || a.slice(m, m + n) === t)) {
261
+ d.push(a.slice(p, m)), p = m + n;
262
+ continue;
263
+ }
264
+ if (w === "/") {
265
+ h = m;
266
+ continue;
267
+ }
268
+ }
269
+ w === "[" ? u++ : w === "]" && u--;
270
+ }
271
+ const x = d.length === 0 ? a : a.substring(p), C = x.startsWith(ce), k = C ? x.substring(1) : x, v = h && h > p ? h - p : void 0;
272
+ return {
273
+ modifiers: d,
274
+ hasImportantModifier: C,
275
+ baseClassName: k,
276
+ maybePostfixModifierPosition: v
277
+ };
278
+ };
279
+ return r ? (a) => r({
280
+ className: a,
281
+ parseClassName: i
282
+ }) : i;
283
+ }, ze = (e) => {
284
+ if (e.length <= 1)
285
+ return e;
286
+ const t = [];
287
+ let r = [];
288
+ return e.forEach((o) => {
289
+ o[0] === "[" ? (t.push(...r.sort(), o), r = []) : r.push(o);
290
+ }), t.push(...r.sort()), t;
291
+ }, Me = (e) => ({
292
+ cache: Ne(e.cacheSize),
293
+ parseClassName: Ce(e),
294
+ ...xe(e)
295
+ }), Se = /\s+/, Ae = (e, t) => {
296
+ const {
297
+ parseClassName: r,
298
+ getClassGroupId: o,
299
+ getConflictingClassGroupIds: s
300
+ } = t, n = [], i = e.trim().split(Se);
301
+ let a = "";
302
+ for (let d = i.length - 1; d >= 0; d -= 1) {
303
+ const u = i[d], {
304
+ modifiers: p,
305
+ hasImportantModifier: h,
306
+ baseClassName: x,
307
+ maybePostfixModifierPosition: C
308
+ } = r(u);
309
+ let k = !!C, v = o(k ? x.substring(0, C) : x);
310
+ if (!v) {
311
+ if (!k) {
312
+ a = u + (a.length > 0 ? " " + a : a);
313
+ continue;
314
+ }
315
+ if (v = o(x), !v) {
316
+ a = u + (a.length > 0 ? " " + a : a);
317
+ continue;
318
+ }
319
+ k = !1;
320
+ }
321
+ const m = ze(p).join(":"), w = h ? m + ce : m, N = w + v;
322
+ if (n.includes(N))
323
+ continue;
324
+ n.push(N);
325
+ const I = s(v, k);
326
+ for (let j = 0; j < I.length; ++j) {
327
+ const T = I[j];
328
+ n.push(w + T);
329
+ }
330
+ a = u + (a.length > 0 ? " " + a : a);
331
+ }
332
+ return a;
333
+ };
334
+ function je() {
335
+ let e = 0, t, r, o = "";
336
+ for (; e < arguments.length; )
337
+ (t = arguments[e++]) && (r = de(t)) && (o && (o += " "), o += r);
338
+ return o;
339
+ }
340
+ const de = (e) => {
341
+ if (typeof e == "string")
342
+ return e;
343
+ let t, r = "";
344
+ for (let o = 0; o < e.length; o++)
345
+ e[o] && (t = de(e[o])) && (r && (r += " "), r += t);
346
+ return r;
347
+ };
348
+ function Re(e, ...t) {
349
+ let r, o, s, n = i;
350
+ function i(d) {
351
+ const u = t.reduce((p, h) => h(p), e());
352
+ return r = Me(u), o = r.cache.get, s = r.cache.set, n = a, a(d);
353
+ }
354
+ function a(d) {
355
+ const u = o(d);
356
+ if (u)
357
+ return u;
358
+ const p = Ae(d, r);
359
+ return s(d, p), p;
360
+ }
361
+ return function() {
362
+ return n(je.apply(null, arguments));
363
+ };
364
+ }
365
+ const b = (e) => {
366
+ const t = (r) => r[e] || [];
367
+ return t.isThemeGetter = !0, t;
368
+ }, ue = /^\[(?:([a-z-]+):)?(.+)\]$/i, Ge = /^\d+\/\d+$/, Ie = /* @__PURE__ */ new Set(["px", "full", "screen"]), Le = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Pe = /\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$/, Ve = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, Te = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Be = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, M = (e) => R(e) || Ie.has(e) || Ge.test(e), S = (e) => G(e, "length", Ue), R = (e) => !!e && !Number.isNaN(Number(e)), _ = (e) => G(e, "number", R), P = (e) => !!e && Number.isInteger(Number(e)), Ee = (e) => e.endsWith("%") && R(e.slice(0, -1)), c = (e) => ue.test(e), A = (e) => Le.test(e), We = /* @__PURE__ */ new Set(["length", "size", "percentage"]), $e = (e) => G(e, We, pe), Fe = (e) => G(e, "position", pe), He = /* @__PURE__ */ new Set(["image", "url"]), Oe = (e) => G(e, He, Ke), _e = (e) => G(e, "", qe), V = () => !0, G = (e, t, r) => {
369
+ const o = ue.exec(e);
370
+ return o ? o[1] ? typeof t == "string" ? o[1] === t : t.has(o[1]) : r(o[2]) : !1;
371
+ }, Ue = (e) => (
372
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
373
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
374
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
375
+ Pe.test(e) && !Ve.test(e)
376
+ ), pe = () => !1, qe = (e) => Te.test(e), Ke = (e) => Be.test(e), Je = () => {
377
+ const e = b("colors"), t = b("spacing"), r = b("blur"), o = b("brightness"), s = b("borderColor"), n = b("borderRadius"), i = b("borderSpacing"), a = b("borderWidth"), d = b("contrast"), u = b("grayscale"), p = b("hueRotate"), h = b("invert"), x = b("gap"), C = b("gradientColorStops"), k = b("gradientColorStopPositions"), v = b("inset"), m = b("margin"), w = b("opacity"), N = b("padding"), I = b("saturate"), j = b("scale"), T = b("sepia"), X = b("skew"), Z = b("space"), Q = b("translate"), $ = () => ["auto", "contain", "none"], F = () => ["auto", "hidden", "clip", "visible", "scroll"], H = () => ["auto", c, t], g = () => [c, t], Y = () => ["", M, S], B = () => ["auto", R, c], D = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], E = () => ["solid", "dashed", "dotted", "double", "none"], ee = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], O = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], L = () => ["", "0", c], te = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], z = () => [R, c];
378
+ return {
379
+ cacheSize: 500,
380
+ separator: ":",
381
+ theme: {
382
+ colors: [V],
383
+ spacing: [M, S],
384
+ blur: ["none", "", A, c],
385
+ brightness: z(),
386
+ borderColor: [e],
387
+ borderRadius: ["none", "", "full", A, c],
388
+ borderSpacing: g(),
389
+ borderWidth: Y(),
390
+ contrast: z(),
391
+ grayscale: L(),
392
+ hueRotate: z(),
393
+ invert: L(),
394
+ gap: g(),
395
+ gradientColorStops: [e],
396
+ gradientColorStopPositions: [Ee, S],
397
+ inset: H(),
398
+ margin: H(),
399
+ opacity: z(),
400
+ padding: g(),
401
+ saturate: z(),
402
+ scale: z(),
403
+ sepia: L(),
404
+ skew: z(),
405
+ space: g(),
406
+ translate: g()
407
+ },
408
+ classGroups: {
409
+ // Layout
410
+ /**
411
+ * Aspect Ratio
412
+ * @see https://tailwindcss.com/docs/aspect-ratio
413
+ */
414
+ aspect: [{
415
+ aspect: ["auto", "square", "video", c]
416
+ }],
417
+ /**
418
+ * Container
419
+ * @see https://tailwindcss.com/docs/container
420
+ */
421
+ container: ["container"],
422
+ /**
423
+ * Columns
424
+ * @see https://tailwindcss.com/docs/columns
425
+ */
426
+ columns: [{
427
+ columns: [A]
428
+ }],
429
+ /**
430
+ * Break After
431
+ * @see https://tailwindcss.com/docs/break-after
432
+ */
433
+ "break-after": [{
434
+ "break-after": te()
435
+ }],
436
+ /**
437
+ * Break Before
438
+ * @see https://tailwindcss.com/docs/break-before
439
+ */
440
+ "break-before": [{
441
+ "break-before": te()
442
+ }],
443
+ /**
444
+ * Break Inside
445
+ * @see https://tailwindcss.com/docs/break-inside
446
+ */
447
+ "break-inside": [{
448
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
449
+ }],
450
+ /**
451
+ * Box Decoration Break
452
+ * @see https://tailwindcss.com/docs/box-decoration-break
453
+ */
454
+ "box-decoration": [{
455
+ "box-decoration": ["slice", "clone"]
456
+ }],
457
+ /**
458
+ * Box Sizing
459
+ * @see https://tailwindcss.com/docs/box-sizing
460
+ */
461
+ box: [{
462
+ box: ["border", "content"]
463
+ }],
464
+ /**
465
+ * Display
466
+ * @see https://tailwindcss.com/docs/display
467
+ */
468
+ 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"],
469
+ /**
470
+ * Floats
471
+ * @see https://tailwindcss.com/docs/float
472
+ */
473
+ float: [{
474
+ float: ["right", "left", "none", "start", "end"]
475
+ }],
476
+ /**
477
+ * Clear
478
+ * @see https://tailwindcss.com/docs/clear
479
+ */
480
+ clear: [{
481
+ clear: ["left", "right", "both", "none", "start", "end"]
482
+ }],
483
+ /**
484
+ * Isolation
485
+ * @see https://tailwindcss.com/docs/isolation
486
+ */
487
+ isolation: ["isolate", "isolation-auto"],
488
+ /**
489
+ * Object Fit
490
+ * @see https://tailwindcss.com/docs/object-fit
491
+ */
492
+ "object-fit": [{
493
+ object: ["contain", "cover", "fill", "none", "scale-down"]
494
+ }],
495
+ /**
496
+ * Object Position
497
+ * @see https://tailwindcss.com/docs/object-position
498
+ */
499
+ "object-position": [{
500
+ object: [...D(), c]
501
+ }],
502
+ /**
503
+ * Overflow
504
+ * @see https://tailwindcss.com/docs/overflow
505
+ */
506
+ overflow: [{
507
+ overflow: F()
508
+ }],
509
+ /**
510
+ * Overflow X
511
+ * @see https://tailwindcss.com/docs/overflow
512
+ */
513
+ "overflow-x": [{
514
+ "overflow-x": F()
515
+ }],
516
+ /**
517
+ * Overflow Y
518
+ * @see https://tailwindcss.com/docs/overflow
519
+ */
520
+ "overflow-y": [{
521
+ "overflow-y": F()
522
+ }],
523
+ /**
524
+ * Overscroll Behavior
525
+ * @see https://tailwindcss.com/docs/overscroll-behavior
526
+ */
527
+ overscroll: [{
528
+ overscroll: $()
529
+ }],
530
+ /**
531
+ * Overscroll Behavior X
532
+ * @see https://tailwindcss.com/docs/overscroll-behavior
533
+ */
534
+ "overscroll-x": [{
535
+ "overscroll-x": $()
536
+ }],
537
+ /**
538
+ * Overscroll Behavior Y
539
+ * @see https://tailwindcss.com/docs/overscroll-behavior
540
+ */
541
+ "overscroll-y": [{
542
+ "overscroll-y": $()
543
+ }],
544
+ /**
545
+ * Position
546
+ * @see https://tailwindcss.com/docs/position
547
+ */
548
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
549
+ /**
550
+ * Top / Right / Bottom / Left
551
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
552
+ */
553
+ inset: [{
554
+ inset: [v]
555
+ }],
556
+ /**
557
+ * Right / Left
558
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
559
+ */
560
+ "inset-x": [{
561
+ "inset-x": [v]
562
+ }],
563
+ /**
564
+ * Top / Bottom
565
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
566
+ */
567
+ "inset-y": [{
568
+ "inset-y": [v]
569
+ }],
570
+ /**
571
+ * Start
572
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
573
+ */
574
+ start: [{
575
+ start: [v]
576
+ }],
577
+ /**
578
+ * End
579
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
580
+ */
581
+ end: [{
582
+ end: [v]
583
+ }],
584
+ /**
585
+ * Top
586
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
587
+ */
588
+ top: [{
589
+ top: [v]
590
+ }],
591
+ /**
592
+ * Right
593
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
594
+ */
595
+ right: [{
596
+ right: [v]
597
+ }],
598
+ /**
599
+ * Bottom
600
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
601
+ */
602
+ bottom: [{
603
+ bottom: [v]
604
+ }],
605
+ /**
606
+ * Left
607
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
608
+ */
609
+ left: [{
610
+ left: [v]
611
+ }],
612
+ /**
613
+ * Visibility
614
+ * @see https://tailwindcss.com/docs/visibility
615
+ */
616
+ visibility: ["visible", "invisible", "collapse"],
617
+ /**
618
+ * Z-Index
619
+ * @see https://tailwindcss.com/docs/z-index
620
+ */
621
+ z: [{
622
+ z: ["auto", P, c]
623
+ }],
624
+ // Flexbox and Grid
625
+ /**
626
+ * Flex Basis
627
+ * @see https://tailwindcss.com/docs/flex-basis
628
+ */
629
+ basis: [{
630
+ basis: H()
631
+ }],
632
+ /**
633
+ * Flex Direction
634
+ * @see https://tailwindcss.com/docs/flex-direction
635
+ */
636
+ "flex-direction": [{
637
+ flex: ["row", "row-reverse", "col", "col-reverse"]
638
+ }],
639
+ /**
640
+ * Flex Wrap
641
+ * @see https://tailwindcss.com/docs/flex-wrap
642
+ */
643
+ "flex-wrap": [{
644
+ flex: ["wrap", "wrap-reverse", "nowrap"]
645
+ }],
646
+ /**
647
+ * Flex
648
+ * @see https://tailwindcss.com/docs/flex
649
+ */
650
+ flex: [{
651
+ flex: ["1", "auto", "initial", "none", c]
652
+ }],
653
+ /**
654
+ * Flex Grow
655
+ * @see https://tailwindcss.com/docs/flex-grow
656
+ */
657
+ grow: [{
658
+ grow: L()
659
+ }],
660
+ /**
661
+ * Flex Shrink
662
+ * @see https://tailwindcss.com/docs/flex-shrink
663
+ */
664
+ shrink: [{
665
+ shrink: L()
666
+ }],
667
+ /**
668
+ * Order
669
+ * @see https://tailwindcss.com/docs/order
670
+ */
671
+ order: [{
672
+ order: ["first", "last", "none", P, c]
673
+ }],
674
+ /**
675
+ * Grid Template Columns
676
+ * @see https://tailwindcss.com/docs/grid-template-columns
677
+ */
678
+ "grid-cols": [{
679
+ "grid-cols": [V]
680
+ }],
681
+ /**
682
+ * Grid Column Start / End
683
+ * @see https://tailwindcss.com/docs/grid-column
684
+ */
685
+ "col-start-end": [{
686
+ col: ["auto", {
687
+ span: ["full", P, c]
688
+ }, c]
689
+ }],
690
+ /**
691
+ * Grid Column Start
692
+ * @see https://tailwindcss.com/docs/grid-column
693
+ */
694
+ "col-start": [{
695
+ "col-start": B()
696
+ }],
697
+ /**
698
+ * Grid Column End
699
+ * @see https://tailwindcss.com/docs/grid-column
700
+ */
701
+ "col-end": [{
702
+ "col-end": B()
703
+ }],
704
+ /**
705
+ * Grid Template Rows
706
+ * @see https://tailwindcss.com/docs/grid-template-rows
707
+ */
708
+ "grid-rows": [{
709
+ "grid-rows": [V]
710
+ }],
711
+ /**
712
+ * Grid Row Start / End
713
+ * @see https://tailwindcss.com/docs/grid-row
714
+ */
715
+ "row-start-end": [{
716
+ row: ["auto", {
717
+ span: [P, c]
718
+ }, c]
719
+ }],
720
+ /**
721
+ * Grid Row Start
722
+ * @see https://tailwindcss.com/docs/grid-row
723
+ */
724
+ "row-start": [{
725
+ "row-start": B()
726
+ }],
727
+ /**
728
+ * Grid Row End
729
+ * @see https://tailwindcss.com/docs/grid-row
730
+ */
731
+ "row-end": [{
732
+ "row-end": B()
733
+ }],
734
+ /**
735
+ * Grid Auto Flow
736
+ * @see https://tailwindcss.com/docs/grid-auto-flow
737
+ */
738
+ "grid-flow": [{
739
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
740
+ }],
741
+ /**
742
+ * Grid Auto Columns
743
+ * @see https://tailwindcss.com/docs/grid-auto-columns
744
+ */
745
+ "auto-cols": [{
746
+ "auto-cols": ["auto", "min", "max", "fr", c]
747
+ }],
748
+ /**
749
+ * Grid Auto Rows
750
+ * @see https://tailwindcss.com/docs/grid-auto-rows
751
+ */
752
+ "auto-rows": [{
753
+ "auto-rows": ["auto", "min", "max", "fr", c]
754
+ }],
755
+ /**
756
+ * Gap
757
+ * @see https://tailwindcss.com/docs/gap
758
+ */
759
+ gap: [{
760
+ gap: [x]
761
+ }],
762
+ /**
763
+ * Gap X
764
+ * @see https://tailwindcss.com/docs/gap
765
+ */
766
+ "gap-x": [{
767
+ "gap-x": [x]
768
+ }],
769
+ /**
770
+ * Gap Y
771
+ * @see https://tailwindcss.com/docs/gap
772
+ */
773
+ "gap-y": [{
774
+ "gap-y": [x]
775
+ }],
776
+ /**
777
+ * Justify Content
778
+ * @see https://tailwindcss.com/docs/justify-content
779
+ */
780
+ "justify-content": [{
781
+ justify: ["normal", ...O()]
782
+ }],
783
+ /**
784
+ * Justify Items
785
+ * @see https://tailwindcss.com/docs/justify-items
786
+ */
787
+ "justify-items": [{
788
+ "justify-items": ["start", "end", "center", "stretch"]
789
+ }],
790
+ /**
791
+ * Justify Self
792
+ * @see https://tailwindcss.com/docs/justify-self
793
+ */
794
+ "justify-self": [{
795
+ "justify-self": ["auto", "start", "end", "center", "stretch"]
796
+ }],
797
+ /**
798
+ * Align Content
799
+ * @see https://tailwindcss.com/docs/align-content
800
+ */
801
+ "align-content": [{
802
+ content: ["normal", ...O(), "baseline"]
803
+ }],
804
+ /**
805
+ * Align Items
806
+ * @see https://tailwindcss.com/docs/align-items
807
+ */
808
+ "align-items": [{
809
+ items: ["start", "end", "center", "baseline", "stretch"]
810
+ }],
811
+ /**
812
+ * Align Self
813
+ * @see https://tailwindcss.com/docs/align-self
814
+ */
815
+ "align-self": [{
816
+ self: ["auto", "start", "end", "center", "stretch", "baseline"]
817
+ }],
818
+ /**
819
+ * Place Content
820
+ * @see https://tailwindcss.com/docs/place-content
821
+ */
822
+ "place-content": [{
823
+ "place-content": [...O(), "baseline"]
824
+ }],
825
+ /**
826
+ * Place Items
827
+ * @see https://tailwindcss.com/docs/place-items
828
+ */
829
+ "place-items": [{
830
+ "place-items": ["start", "end", "center", "baseline", "stretch"]
831
+ }],
832
+ /**
833
+ * Place Self
834
+ * @see https://tailwindcss.com/docs/place-self
835
+ */
836
+ "place-self": [{
837
+ "place-self": ["auto", "start", "end", "center", "stretch"]
838
+ }],
839
+ // Spacing
840
+ /**
841
+ * Padding
842
+ * @see https://tailwindcss.com/docs/padding
843
+ */
844
+ p: [{
845
+ p: [N]
846
+ }],
847
+ /**
848
+ * Padding X
849
+ * @see https://tailwindcss.com/docs/padding
850
+ */
851
+ px: [{
852
+ px: [N]
853
+ }],
854
+ /**
855
+ * Padding Y
856
+ * @see https://tailwindcss.com/docs/padding
857
+ */
858
+ py: [{
859
+ py: [N]
860
+ }],
861
+ /**
862
+ * Padding Start
863
+ * @see https://tailwindcss.com/docs/padding
864
+ */
865
+ ps: [{
866
+ ps: [N]
867
+ }],
868
+ /**
869
+ * Padding End
870
+ * @see https://tailwindcss.com/docs/padding
871
+ */
872
+ pe: [{
873
+ pe: [N]
874
+ }],
875
+ /**
876
+ * Padding Top
877
+ * @see https://tailwindcss.com/docs/padding
878
+ */
879
+ pt: [{
880
+ pt: [N]
881
+ }],
882
+ /**
883
+ * Padding Right
884
+ * @see https://tailwindcss.com/docs/padding
885
+ */
886
+ pr: [{
887
+ pr: [N]
888
+ }],
889
+ /**
890
+ * Padding Bottom
891
+ * @see https://tailwindcss.com/docs/padding
892
+ */
893
+ pb: [{
894
+ pb: [N]
895
+ }],
896
+ /**
897
+ * Padding Left
898
+ * @see https://tailwindcss.com/docs/padding
899
+ */
900
+ pl: [{
901
+ pl: [N]
902
+ }],
903
+ /**
904
+ * Margin
905
+ * @see https://tailwindcss.com/docs/margin
906
+ */
907
+ m: [{
908
+ m: [m]
909
+ }],
910
+ /**
911
+ * Margin X
912
+ * @see https://tailwindcss.com/docs/margin
913
+ */
914
+ mx: [{
915
+ mx: [m]
916
+ }],
917
+ /**
918
+ * Margin Y
919
+ * @see https://tailwindcss.com/docs/margin
920
+ */
921
+ my: [{
922
+ my: [m]
923
+ }],
924
+ /**
925
+ * Margin Start
926
+ * @see https://tailwindcss.com/docs/margin
927
+ */
928
+ ms: [{
929
+ ms: [m]
930
+ }],
931
+ /**
932
+ * Margin End
933
+ * @see https://tailwindcss.com/docs/margin
934
+ */
935
+ me: [{
936
+ me: [m]
937
+ }],
938
+ /**
939
+ * Margin Top
940
+ * @see https://tailwindcss.com/docs/margin
941
+ */
942
+ mt: [{
943
+ mt: [m]
944
+ }],
945
+ /**
946
+ * Margin Right
947
+ * @see https://tailwindcss.com/docs/margin
948
+ */
949
+ mr: [{
950
+ mr: [m]
951
+ }],
952
+ /**
953
+ * Margin Bottom
954
+ * @see https://tailwindcss.com/docs/margin
955
+ */
956
+ mb: [{
957
+ mb: [m]
958
+ }],
959
+ /**
960
+ * Margin Left
961
+ * @see https://tailwindcss.com/docs/margin
962
+ */
963
+ ml: [{
964
+ ml: [m]
965
+ }],
966
+ /**
967
+ * Space Between X
968
+ * @see https://tailwindcss.com/docs/space
969
+ */
970
+ "space-x": [{
971
+ "space-x": [Z]
972
+ }],
973
+ /**
974
+ * Space Between X Reverse
975
+ * @see https://tailwindcss.com/docs/space
976
+ */
977
+ "space-x-reverse": ["space-x-reverse"],
978
+ /**
979
+ * Space Between Y
980
+ * @see https://tailwindcss.com/docs/space
981
+ */
982
+ "space-y": [{
983
+ "space-y": [Z]
984
+ }],
985
+ /**
986
+ * Space Between Y Reverse
987
+ * @see https://tailwindcss.com/docs/space
988
+ */
989
+ "space-y-reverse": ["space-y-reverse"],
990
+ // Sizing
991
+ /**
992
+ * Width
993
+ * @see https://tailwindcss.com/docs/width
994
+ */
995
+ w: [{
996
+ w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", c, t]
997
+ }],
998
+ /**
999
+ * Min-Width
1000
+ * @see https://tailwindcss.com/docs/min-width
1001
+ */
1002
+ "min-w": [{
1003
+ "min-w": [c, t, "min", "max", "fit"]
1004
+ }],
1005
+ /**
1006
+ * Max-Width
1007
+ * @see https://tailwindcss.com/docs/max-width
1008
+ */
1009
+ "max-w": [{
1010
+ "max-w": [c, t, "none", "full", "min", "max", "fit", "prose", {
1011
+ screen: [A]
1012
+ }, A]
1013
+ }],
1014
+ /**
1015
+ * Height
1016
+ * @see https://tailwindcss.com/docs/height
1017
+ */
1018
+ h: [{
1019
+ h: [c, t, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
1020
+ }],
1021
+ /**
1022
+ * Min-Height
1023
+ * @see https://tailwindcss.com/docs/min-height
1024
+ */
1025
+ "min-h": [{
1026
+ "min-h": [c, t, "min", "max", "fit", "svh", "lvh", "dvh"]
1027
+ }],
1028
+ /**
1029
+ * Max-Height
1030
+ * @see https://tailwindcss.com/docs/max-height
1031
+ */
1032
+ "max-h": [{
1033
+ "max-h": [c, t, "min", "max", "fit", "svh", "lvh", "dvh"]
1034
+ }],
1035
+ /**
1036
+ * Size
1037
+ * @see https://tailwindcss.com/docs/size
1038
+ */
1039
+ size: [{
1040
+ size: [c, t, "auto", "min", "max", "fit"]
1041
+ }],
1042
+ // Typography
1043
+ /**
1044
+ * Font Size
1045
+ * @see https://tailwindcss.com/docs/font-size
1046
+ */
1047
+ "font-size": [{
1048
+ text: ["base", A, S]
1049
+ }],
1050
+ /**
1051
+ * Font Smoothing
1052
+ * @see https://tailwindcss.com/docs/font-smoothing
1053
+ */
1054
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
1055
+ /**
1056
+ * Font Style
1057
+ * @see https://tailwindcss.com/docs/font-style
1058
+ */
1059
+ "font-style": ["italic", "not-italic"],
1060
+ /**
1061
+ * Font Weight
1062
+ * @see https://tailwindcss.com/docs/font-weight
1063
+ */
1064
+ "font-weight": [{
1065
+ font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", _]
1066
+ }],
1067
+ /**
1068
+ * Font Family
1069
+ * @see https://tailwindcss.com/docs/font-family
1070
+ */
1071
+ "font-family": [{
1072
+ font: [V]
1073
+ }],
1074
+ /**
1075
+ * Font Variant Numeric
1076
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1077
+ */
1078
+ "fvn-normal": ["normal-nums"],
1079
+ /**
1080
+ * Font Variant Numeric
1081
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1082
+ */
1083
+ "fvn-ordinal": ["ordinal"],
1084
+ /**
1085
+ * Font Variant Numeric
1086
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1087
+ */
1088
+ "fvn-slashed-zero": ["slashed-zero"],
1089
+ /**
1090
+ * Font Variant Numeric
1091
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1092
+ */
1093
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
1094
+ /**
1095
+ * Font Variant Numeric
1096
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1097
+ */
1098
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
1099
+ /**
1100
+ * Font Variant Numeric
1101
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1102
+ */
1103
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1104
+ /**
1105
+ * Letter Spacing
1106
+ * @see https://tailwindcss.com/docs/letter-spacing
1107
+ */
1108
+ tracking: [{
1109
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", c]
1110
+ }],
1111
+ /**
1112
+ * Line Clamp
1113
+ * @see https://tailwindcss.com/docs/line-clamp
1114
+ */
1115
+ "line-clamp": [{
1116
+ "line-clamp": ["none", R, _]
1117
+ }],
1118
+ /**
1119
+ * Line Height
1120
+ * @see https://tailwindcss.com/docs/line-height
1121
+ */
1122
+ leading: [{
1123
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose", M, c]
1124
+ }],
1125
+ /**
1126
+ * List Style Image
1127
+ * @see https://tailwindcss.com/docs/list-style-image
1128
+ */
1129
+ "list-image": [{
1130
+ "list-image": ["none", c]
1131
+ }],
1132
+ /**
1133
+ * List Style Type
1134
+ * @see https://tailwindcss.com/docs/list-style-type
1135
+ */
1136
+ "list-style-type": [{
1137
+ list: ["none", "disc", "decimal", c]
1138
+ }],
1139
+ /**
1140
+ * List Style Position
1141
+ * @see https://tailwindcss.com/docs/list-style-position
1142
+ */
1143
+ "list-style-position": [{
1144
+ list: ["inside", "outside"]
1145
+ }],
1146
+ /**
1147
+ * Placeholder Color
1148
+ * @deprecated since Tailwind CSS v3.0.0
1149
+ * @see https://tailwindcss.com/docs/placeholder-color
1150
+ */
1151
+ "placeholder-color": [{
1152
+ placeholder: [e]
1153
+ }],
1154
+ /**
1155
+ * Placeholder Opacity
1156
+ * @see https://tailwindcss.com/docs/placeholder-opacity
1157
+ */
1158
+ "placeholder-opacity": [{
1159
+ "placeholder-opacity": [w]
1160
+ }],
1161
+ /**
1162
+ * Text Alignment
1163
+ * @see https://tailwindcss.com/docs/text-align
1164
+ */
1165
+ "text-alignment": [{
1166
+ text: ["left", "center", "right", "justify", "start", "end"]
1167
+ }],
1168
+ /**
1169
+ * Text Color
1170
+ * @see https://tailwindcss.com/docs/text-color
1171
+ */
1172
+ "text-color": [{
1173
+ text: [e]
1174
+ }],
1175
+ /**
1176
+ * Text Opacity
1177
+ * @see https://tailwindcss.com/docs/text-opacity
1178
+ */
1179
+ "text-opacity": [{
1180
+ "text-opacity": [w]
1181
+ }],
1182
+ /**
1183
+ * Text Decoration
1184
+ * @see https://tailwindcss.com/docs/text-decoration
1185
+ */
1186
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1187
+ /**
1188
+ * Text Decoration Style
1189
+ * @see https://tailwindcss.com/docs/text-decoration-style
1190
+ */
1191
+ "text-decoration-style": [{
1192
+ decoration: [...E(), "wavy"]
1193
+ }],
1194
+ /**
1195
+ * Text Decoration Thickness
1196
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1197
+ */
1198
+ "text-decoration-thickness": [{
1199
+ decoration: ["auto", "from-font", M, S]
1200
+ }],
1201
+ /**
1202
+ * Text Underline Offset
1203
+ * @see https://tailwindcss.com/docs/text-underline-offset
1204
+ */
1205
+ "underline-offset": [{
1206
+ "underline-offset": ["auto", M, c]
1207
+ }],
1208
+ /**
1209
+ * Text Decoration Color
1210
+ * @see https://tailwindcss.com/docs/text-decoration-color
1211
+ */
1212
+ "text-decoration-color": [{
1213
+ decoration: [e]
1214
+ }],
1215
+ /**
1216
+ * Text Transform
1217
+ * @see https://tailwindcss.com/docs/text-transform
1218
+ */
1219
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1220
+ /**
1221
+ * Text Overflow
1222
+ * @see https://tailwindcss.com/docs/text-overflow
1223
+ */
1224
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1225
+ /**
1226
+ * Text Wrap
1227
+ * @see https://tailwindcss.com/docs/text-wrap
1228
+ */
1229
+ "text-wrap": [{
1230
+ text: ["wrap", "nowrap", "balance", "pretty"]
1231
+ }],
1232
+ /**
1233
+ * Text Indent
1234
+ * @see https://tailwindcss.com/docs/text-indent
1235
+ */
1236
+ indent: [{
1237
+ indent: g()
1238
+ }],
1239
+ /**
1240
+ * Vertical Alignment
1241
+ * @see https://tailwindcss.com/docs/vertical-align
1242
+ */
1243
+ "vertical-align": [{
1244
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", c]
1245
+ }],
1246
+ /**
1247
+ * Whitespace
1248
+ * @see https://tailwindcss.com/docs/whitespace
1249
+ */
1250
+ whitespace: [{
1251
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1252
+ }],
1253
+ /**
1254
+ * Word Break
1255
+ * @see https://tailwindcss.com/docs/word-break
1256
+ */
1257
+ break: [{
1258
+ break: ["normal", "words", "all", "keep"]
1259
+ }],
1260
+ /**
1261
+ * Hyphens
1262
+ * @see https://tailwindcss.com/docs/hyphens
1263
+ */
1264
+ hyphens: [{
1265
+ hyphens: ["none", "manual", "auto"]
1266
+ }],
1267
+ /**
1268
+ * Content
1269
+ * @see https://tailwindcss.com/docs/content
1270
+ */
1271
+ content: [{
1272
+ content: ["none", c]
1273
+ }],
1274
+ // Backgrounds
1275
+ /**
1276
+ * Background Attachment
1277
+ * @see https://tailwindcss.com/docs/background-attachment
1278
+ */
1279
+ "bg-attachment": [{
1280
+ bg: ["fixed", "local", "scroll"]
1281
+ }],
1282
+ /**
1283
+ * Background Clip
1284
+ * @see https://tailwindcss.com/docs/background-clip
1285
+ */
1286
+ "bg-clip": [{
1287
+ "bg-clip": ["border", "padding", "content", "text"]
1288
+ }],
1289
+ /**
1290
+ * Background Opacity
1291
+ * @deprecated since Tailwind CSS v3.0.0
1292
+ * @see https://tailwindcss.com/docs/background-opacity
1293
+ */
1294
+ "bg-opacity": [{
1295
+ "bg-opacity": [w]
1296
+ }],
1297
+ /**
1298
+ * Background Origin
1299
+ * @see https://tailwindcss.com/docs/background-origin
1300
+ */
1301
+ "bg-origin": [{
1302
+ "bg-origin": ["border", "padding", "content"]
1303
+ }],
1304
+ /**
1305
+ * Background Position
1306
+ * @see https://tailwindcss.com/docs/background-position
1307
+ */
1308
+ "bg-position": [{
1309
+ bg: [...D(), Fe]
1310
+ }],
1311
+ /**
1312
+ * Background Repeat
1313
+ * @see https://tailwindcss.com/docs/background-repeat
1314
+ */
1315
+ "bg-repeat": [{
1316
+ bg: ["no-repeat", {
1317
+ repeat: ["", "x", "y", "round", "space"]
1318
+ }]
1319
+ }],
1320
+ /**
1321
+ * Background Size
1322
+ * @see https://tailwindcss.com/docs/background-size
1323
+ */
1324
+ "bg-size": [{
1325
+ bg: ["auto", "cover", "contain", $e]
1326
+ }],
1327
+ /**
1328
+ * Background Image
1329
+ * @see https://tailwindcss.com/docs/background-image
1330
+ */
1331
+ "bg-image": [{
1332
+ bg: ["none", {
1333
+ "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1334
+ }, Oe]
1335
+ }],
1336
+ /**
1337
+ * Background Color
1338
+ * @see https://tailwindcss.com/docs/background-color
1339
+ */
1340
+ "bg-color": [{
1341
+ bg: [e]
1342
+ }],
1343
+ /**
1344
+ * Gradient Color Stops From Position
1345
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1346
+ */
1347
+ "gradient-from-pos": [{
1348
+ from: [k]
1349
+ }],
1350
+ /**
1351
+ * Gradient Color Stops Via Position
1352
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1353
+ */
1354
+ "gradient-via-pos": [{
1355
+ via: [k]
1356
+ }],
1357
+ /**
1358
+ * Gradient Color Stops To Position
1359
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1360
+ */
1361
+ "gradient-to-pos": [{
1362
+ to: [k]
1363
+ }],
1364
+ /**
1365
+ * Gradient Color Stops From
1366
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1367
+ */
1368
+ "gradient-from": [{
1369
+ from: [C]
1370
+ }],
1371
+ /**
1372
+ * Gradient Color Stops Via
1373
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1374
+ */
1375
+ "gradient-via": [{
1376
+ via: [C]
1377
+ }],
1378
+ /**
1379
+ * Gradient Color Stops To
1380
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1381
+ */
1382
+ "gradient-to": [{
1383
+ to: [C]
1384
+ }],
1385
+ // Borders
1386
+ /**
1387
+ * Border Radius
1388
+ * @see https://tailwindcss.com/docs/border-radius
1389
+ */
1390
+ rounded: [{
1391
+ rounded: [n]
1392
+ }],
1393
+ /**
1394
+ * Border Radius Start
1395
+ * @see https://tailwindcss.com/docs/border-radius
1396
+ */
1397
+ "rounded-s": [{
1398
+ "rounded-s": [n]
1399
+ }],
1400
+ /**
1401
+ * Border Radius End
1402
+ * @see https://tailwindcss.com/docs/border-radius
1403
+ */
1404
+ "rounded-e": [{
1405
+ "rounded-e": [n]
1406
+ }],
1407
+ /**
1408
+ * Border Radius Top
1409
+ * @see https://tailwindcss.com/docs/border-radius
1410
+ */
1411
+ "rounded-t": [{
1412
+ "rounded-t": [n]
1413
+ }],
1414
+ /**
1415
+ * Border Radius Right
1416
+ * @see https://tailwindcss.com/docs/border-radius
1417
+ */
1418
+ "rounded-r": [{
1419
+ "rounded-r": [n]
1420
+ }],
1421
+ /**
1422
+ * Border Radius Bottom
1423
+ * @see https://tailwindcss.com/docs/border-radius
1424
+ */
1425
+ "rounded-b": [{
1426
+ "rounded-b": [n]
1427
+ }],
1428
+ /**
1429
+ * Border Radius Left
1430
+ * @see https://tailwindcss.com/docs/border-radius
1431
+ */
1432
+ "rounded-l": [{
1433
+ "rounded-l": [n]
1434
+ }],
1435
+ /**
1436
+ * Border Radius Start Start
1437
+ * @see https://tailwindcss.com/docs/border-radius
1438
+ */
1439
+ "rounded-ss": [{
1440
+ "rounded-ss": [n]
1441
+ }],
1442
+ /**
1443
+ * Border Radius Start End
1444
+ * @see https://tailwindcss.com/docs/border-radius
1445
+ */
1446
+ "rounded-se": [{
1447
+ "rounded-se": [n]
1448
+ }],
1449
+ /**
1450
+ * Border Radius End End
1451
+ * @see https://tailwindcss.com/docs/border-radius
1452
+ */
1453
+ "rounded-ee": [{
1454
+ "rounded-ee": [n]
1455
+ }],
1456
+ /**
1457
+ * Border Radius End Start
1458
+ * @see https://tailwindcss.com/docs/border-radius
1459
+ */
1460
+ "rounded-es": [{
1461
+ "rounded-es": [n]
1462
+ }],
1463
+ /**
1464
+ * Border Radius Top Left
1465
+ * @see https://tailwindcss.com/docs/border-radius
1466
+ */
1467
+ "rounded-tl": [{
1468
+ "rounded-tl": [n]
1469
+ }],
1470
+ /**
1471
+ * Border Radius Top Right
1472
+ * @see https://tailwindcss.com/docs/border-radius
1473
+ */
1474
+ "rounded-tr": [{
1475
+ "rounded-tr": [n]
1476
+ }],
1477
+ /**
1478
+ * Border Radius Bottom Right
1479
+ * @see https://tailwindcss.com/docs/border-radius
1480
+ */
1481
+ "rounded-br": [{
1482
+ "rounded-br": [n]
1483
+ }],
1484
+ /**
1485
+ * Border Radius Bottom Left
1486
+ * @see https://tailwindcss.com/docs/border-radius
1487
+ */
1488
+ "rounded-bl": [{
1489
+ "rounded-bl": [n]
1490
+ }],
1491
+ /**
1492
+ * Border Width
1493
+ * @see https://tailwindcss.com/docs/border-width
1494
+ */
1495
+ "border-w": [{
1496
+ border: [a]
1497
+ }],
1498
+ /**
1499
+ * Border Width X
1500
+ * @see https://tailwindcss.com/docs/border-width
1501
+ */
1502
+ "border-w-x": [{
1503
+ "border-x": [a]
1504
+ }],
1505
+ /**
1506
+ * Border Width Y
1507
+ * @see https://tailwindcss.com/docs/border-width
1508
+ */
1509
+ "border-w-y": [{
1510
+ "border-y": [a]
1511
+ }],
1512
+ /**
1513
+ * Border Width Start
1514
+ * @see https://tailwindcss.com/docs/border-width
1515
+ */
1516
+ "border-w-s": [{
1517
+ "border-s": [a]
1518
+ }],
1519
+ /**
1520
+ * Border Width End
1521
+ * @see https://tailwindcss.com/docs/border-width
1522
+ */
1523
+ "border-w-e": [{
1524
+ "border-e": [a]
1525
+ }],
1526
+ /**
1527
+ * Border Width Top
1528
+ * @see https://tailwindcss.com/docs/border-width
1529
+ */
1530
+ "border-w-t": [{
1531
+ "border-t": [a]
1532
+ }],
1533
+ /**
1534
+ * Border Width Right
1535
+ * @see https://tailwindcss.com/docs/border-width
1536
+ */
1537
+ "border-w-r": [{
1538
+ "border-r": [a]
1539
+ }],
1540
+ /**
1541
+ * Border Width Bottom
1542
+ * @see https://tailwindcss.com/docs/border-width
1543
+ */
1544
+ "border-w-b": [{
1545
+ "border-b": [a]
1546
+ }],
1547
+ /**
1548
+ * Border Width Left
1549
+ * @see https://tailwindcss.com/docs/border-width
1550
+ */
1551
+ "border-w-l": [{
1552
+ "border-l": [a]
1553
+ }],
1554
+ /**
1555
+ * Border Opacity
1556
+ * @see https://tailwindcss.com/docs/border-opacity
1557
+ */
1558
+ "border-opacity": [{
1559
+ "border-opacity": [w]
1560
+ }],
1561
+ /**
1562
+ * Border Style
1563
+ * @see https://tailwindcss.com/docs/border-style
1564
+ */
1565
+ "border-style": [{
1566
+ border: [...E(), "hidden"]
1567
+ }],
1568
+ /**
1569
+ * Divide Width X
1570
+ * @see https://tailwindcss.com/docs/divide-width
1571
+ */
1572
+ "divide-x": [{
1573
+ "divide-x": [a]
1574
+ }],
1575
+ /**
1576
+ * Divide Width X Reverse
1577
+ * @see https://tailwindcss.com/docs/divide-width
1578
+ */
1579
+ "divide-x-reverse": ["divide-x-reverse"],
1580
+ /**
1581
+ * Divide Width Y
1582
+ * @see https://tailwindcss.com/docs/divide-width
1583
+ */
1584
+ "divide-y": [{
1585
+ "divide-y": [a]
1586
+ }],
1587
+ /**
1588
+ * Divide Width Y Reverse
1589
+ * @see https://tailwindcss.com/docs/divide-width
1590
+ */
1591
+ "divide-y-reverse": ["divide-y-reverse"],
1592
+ /**
1593
+ * Divide Opacity
1594
+ * @see https://tailwindcss.com/docs/divide-opacity
1595
+ */
1596
+ "divide-opacity": [{
1597
+ "divide-opacity": [w]
1598
+ }],
1599
+ /**
1600
+ * Divide Style
1601
+ * @see https://tailwindcss.com/docs/divide-style
1602
+ */
1603
+ "divide-style": [{
1604
+ divide: E()
1605
+ }],
1606
+ /**
1607
+ * Border Color
1608
+ * @see https://tailwindcss.com/docs/border-color
1609
+ */
1610
+ "border-color": [{
1611
+ border: [s]
1612
+ }],
1613
+ /**
1614
+ * Border Color X
1615
+ * @see https://tailwindcss.com/docs/border-color
1616
+ */
1617
+ "border-color-x": [{
1618
+ "border-x": [s]
1619
+ }],
1620
+ /**
1621
+ * Border Color Y
1622
+ * @see https://tailwindcss.com/docs/border-color
1623
+ */
1624
+ "border-color-y": [{
1625
+ "border-y": [s]
1626
+ }],
1627
+ /**
1628
+ * Border Color S
1629
+ * @see https://tailwindcss.com/docs/border-color
1630
+ */
1631
+ "border-color-s": [{
1632
+ "border-s": [s]
1633
+ }],
1634
+ /**
1635
+ * Border Color E
1636
+ * @see https://tailwindcss.com/docs/border-color
1637
+ */
1638
+ "border-color-e": [{
1639
+ "border-e": [s]
1640
+ }],
1641
+ /**
1642
+ * Border Color Top
1643
+ * @see https://tailwindcss.com/docs/border-color
1644
+ */
1645
+ "border-color-t": [{
1646
+ "border-t": [s]
1647
+ }],
1648
+ /**
1649
+ * Border Color Right
1650
+ * @see https://tailwindcss.com/docs/border-color
1651
+ */
1652
+ "border-color-r": [{
1653
+ "border-r": [s]
1654
+ }],
1655
+ /**
1656
+ * Border Color Bottom
1657
+ * @see https://tailwindcss.com/docs/border-color
1658
+ */
1659
+ "border-color-b": [{
1660
+ "border-b": [s]
1661
+ }],
1662
+ /**
1663
+ * Border Color Left
1664
+ * @see https://tailwindcss.com/docs/border-color
1665
+ */
1666
+ "border-color-l": [{
1667
+ "border-l": [s]
1668
+ }],
1669
+ /**
1670
+ * Divide Color
1671
+ * @see https://tailwindcss.com/docs/divide-color
1672
+ */
1673
+ "divide-color": [{
1674
+ divide: [s]
1675
+ }],
1676
+ /**
1677
+ * Outline Style
1678
+ * @see https://tailwindcss.com/docs/outline-style
1679
+ */
1680
+ "outline-style": [{
1681
+ outline: ["", ...E()]
1682
+ }],
1683
+ /**
1684
+ * Outline Offset
1685
+ * @see https://tailwindcss.com/docs/outline-offset
1686
+ */
1687
+ "outline-offset": [{
1688
+ "outline-offset": [M, c]
1689
+ }],
1690
+ /**
1691
+ * Outline Width
1692
+ * @see https://tailwindcss.com/docs/outline-width
1693
+ */
1694
+ "outline-w": [{
1695
+ outline: [M, S]
1696
+ }],
1697
+ /**
1698
+ * Outline Color
1699
+ * @see https://tailwindcss.com/docs/outline-color
1700
+ */
1701
+ "outline-color": [{
1702
+ outline: [e]
1703
+ }],
1704
+ /**
1705
+ * Ring Width
1706
+ * @see https://tailwindcss.com/docs/ring-width
1707
+ */
1708
+ "ring-w": [{
1709
+ ring: Y()
1710
+ }],
1711
+ /**
1712
+ * Ring Width Inset
1713
+ * @see https://tailwindcss.com/docs/ring-width
1714
+ */
1715
+ "ring-w-inset": ["ring-inset"],
1716
+ /**
1717
+ * Ring Color
1718
+ * @see https://tailwindcss.com/docs/ring-color
1719
+ */
1720
+ "ring-color": [{
1721
+ ring: [e]
1722
+ }],
1723
+ /**
1724
+ * Ring Opacity
1725
+ * @see https://tailwindcss.com/docs/ring-opacity
1726
+ */
1727
+ "ring-opacity": [{
1728
+ "ring-opacity": [w]
1729
+ }],
1730
+ /**
1731
+ * Ring Offset Width
1732
+ * @see https://tailwindcss.com/docs/ring-offset-width
1733
+ */
1734
+ "ring-offset-w": [{
1735
+ "ring-offset": [M, S]
1736
+ }],
1737
+ /**
1738
+ * Ring Offset Color
1739
+ * @see https://tailwindcss.com/docs/ring-offset-color
1740
+ */
1741
+ "ring-offset-color": [{
1742
+ "ring-offset": [e]
1743
+ }],
1744
+ // Effects
1745
+ /**
1746
+ * Box Shadow
1747
+ * @see https://tailwindcss.com/docs/box-shadow
1748
+ */
1749
+ shadow: [{
1750
+ shadow: ["", "inner", "none", A, _e]
1751
+ }],
1752
+ /**
1753
+ * Box Shadow Color
1754
+ * @see https://tailwindcss.com/docs/box-shadow-color
1755
+ */
1756
+ "shadow-color": [{
1757
+ shadow: [V]
1758
+ }],
1759
+ /**
1760
+ * Opacity
1761
+ * @see https://tailwindcss.com/docs/opacity
1762
+ */
1763
+ opacity: [{
1764
+ opacity: [w]
1765
+ }],
1766
+ /**
1767
+ * Mix Blend Mode
1768
+ * @see https://tailwindcss.com/docs/mix-blend-mode
1769
+ */
1770
+ "mix-blend": [{
1771
+ "mix-blend": [...ee(), "plus-lighter", "plus-darker"]
1772
+ }],
1773
+ /**
1774
+ * Background Blend Mode
1775
+ * @see https://tailwindcss.com/docs/background-blend-mode
1776
+ */
1777
+ "bg-blend": [{
1778
+ "bg-blend": ee()
1779
+ }],
1780
+ // Filters
1781
+ /**
1782
+ * Filter
1783
+ * @deprecated since Tailwind CSS v3.0.0
1784
+ * @see https://tailwindcss.com/docs/filter
1785
+ */
1786
+ filter: [{
1787
+ filter: ["", "none"]
1788
+ }],
1789
+ /**
1790
+ * Blur
1791
+ * @see https://tailwindcss.com/docs/blur
1792
+ */
1793
+ blur: [{
1794
+ blur: [r]
1795
+ }],
1796
+ /**
1797
+ * Brightness
1798
+ * @see https://tailwindcss.com/docs/brightness
1799
+ */
1800
+ brightness: [{
1801
+ brightness: [o]
1802
+ }],
1803
+ /**
1804
+ * Contrast
1805
+ * @see https://tailwindcss.com/docs/contrast
1806
+ */
1807
+ contrast: [{
1808
+ contrast: [d]
1809
+ }],
1810
+ /**
1811
+ * Drop Shadow
1812
+ * @see https://tailwindcss.com/docs/drop-shadow
1813
+ */
1814
+ "drop-shadow": [{
1815
+ "drop-shadow": ["", "none", A, c]
1816
+ }],
1817
+ /**
1818
+ * Grayscale
1819
+ * @see https://tailwindcss.com/docs/grayscale
1820
+ */
1821
+ grayscale: [{
1822
+ grayscale: [u]
1823
+ }],
1824
+ /**
1825
+ * Hue Rotate
1826
+ * @see https://tailwindcss.com/docs/hue-rotate
1827
+ */
1828
+ "hue-rotate": [{
1829
+ "hue-rotate": [p]
1830
+ }],
1831
+ /**
1832
+ * Invert
1833
+ * @see https://tailwindcss.com/docs/invert
1834
+ */
1835
+ invert: [{
1836
+ invert: [h]
1837
+ }],
1838
+ /**
1839
+ * Saturate
1840
+ * @see https://tailwindcss.com/docs/saturate
1841
+ */
1842
+ saturate: [{
1843
+ saturate: [I]
1844
+ }],
1845
+ /**
1846
+ * Sepia
1847
+ * @see https://tailwindcss.com/docs/sepia
1848
+ */
1849
+ sepia: [{
1850
+ sepia: [T]
1851
+ }],
1852
+ /**
1853
+ * Backdrop Filter
1854
+ * @deprecated since Tailwind CSS v3.0.0
1855
+ * @see https://tailwindcss.com/docs/backdrop-filter
1856
+ */
1857
+ "backdrop-filter": [{
1858
+ "backdrop-filter": ["", "none"]
1859
+ }],
1860
+ /**
1861
+ * Backdrop Blur
1862
+ * @see https://tailwindcss.com/docs/backdrop-blur
1863
+ */
1864
+ "backdrop-blur": [{
1865
+ "backdrop-blur": [r]
1866
+ }],
1867
+ /**
1868
+ * Backdrop Brightness
1869
+ * @see https://tailwindcss.com/docs/backdrop-brightness
1870
+ */
1871
+ "backdrop-brightness": [{
1872
+ "backdrop-brightness": [o]
1873
+ }],
1874
+ /**
1875
+ * Backdrop Contrast
1876
+ * @see https://tailwindcss.com/docs/backdrop-contrast
1877
+ */
1878
+ "backdrop-contrast": [{
1879
+ "backdrop-contrast": [d]
1880
+ }],
1881
+ /**
1882
+ * Backdrop Grayscale
1883
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
1884
+ */
1885
+ "backdrop-grayscale": [{
1886
+ "backdrop-grayscale": [u]
1887
+ }],
1888
+ /**
1889
+ * Backdrop Hue Rotate
1890
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
1891
+ */
1892
+ "backdrop-hue-rotate": [{
1893
+ "backdrop-hue-rotate": [p]
1894
+ }],
1895
+ /**
1896
+ * Backdrop Invert
1897
+ * @see https://tailwindcss.com/docs/backdrop-invert
1898
+ */
1899
+ "backdrop-invert": [{
1900
+ "backdrop-invert": [h]
1901
+ }],
1902
+ /**
1903
+ * Backdrop Opacity
1904
+ * @see https://tailwindcss.com/docs/backdrop-opacity
1905
+ */
1906
+ "backdrop-opacity": [{
1907
+ "backdrop-opacity": [w]
1908
+ }],
1909
+ /**
1910
+ * Backdrop Saturate
1911
+ * @see https://tailwindcss.com/docs/backdrop-saturate
1912
+ */
1913
+ "backdrop-saturate": [{
1914
+ "backdrop-saturate": [I]
1915
+ }],
1916
+ /**
1917
+ * Backdrop Sepia
1918
+ * @see https://tailwindcss.com/docs/backdrop-sepia
1919
+ */
1920
+ "backdrop-sepia": [{
1921
+ "backdrop-sepia": [T]
1922
+ }],
1923
+ // Tables
1924
+ /**
1925
+ * Border Collapse
1926
+ * @see https://tailwindcss.com/docs/border-collapse
1927
+ */
1928
+ "border-collapse": [{
1929
+ border: ["collapse", "separate"]
1930
+ }],
1931
+ /**
1932
+ * Border Spacing
1933
+ * @see https://tailwindcss.com/docs/border-spacing
1934
+ */
1935
+ "border-spacing": [{
1936
+ "border-spacing": [i]
1937
+ }],
1938
+ /**
1939
+ * Border Spacing X
1940
+ * @see https://tailwindcss.com/docs/border-spacing
1941
+ */
1942
+ "border-spacing-x": [{
1943
+ "border-spacing-x": [i]
1944
+ }],
1945
+ /**
1946
+ * Border Spacing Y
1947
+ * @see https://tailwindcss.com/docs/border-spacing
1948
+ */
1949
+ "border-spacing-y": [{
1950
+ "border-spacing-y": [i]
1951
+ }],
1952
+ /**
1953
+ * Table Layout
1954
+ * @see https://tailwindcss.com/docs/table-layout
1955
+ */
1956
+ "table-layout": [{
1957
+ table: ["auto", "fixed"]
1958
+ }],
1959
+ /**
1960
+ * Caption Side
1961
+ * @see https://tailwindcss.com/docs/caption-side
1962
+ */
1963
+ caption: [{
1964
+ caption: ["top", "bottom"]
1965
+ }],
1966
+ // Transitions and Animation
1967
+ /**
1968
+ * Tranisition Property
1969
+ * @see https://tailwindcss.com/docs/transition-property
1970
+ */
1971
+ transition: [{
1972
+ transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", c]
1973
+ }],
1974
+ /**
1975
+ * Transition Duration
1976
+ * @see https://tailwindcss.com/docs/transition-duration
1977
+ */
1978
+ duration: [{
1979
+ duration: z()
1980
+ }],
1981
+ /**
1982
+ * Transition Timing Function
1983
+ * @see https://tailwindcss.com/docs/transition-timing-function
1984
+ */
1985
+ ease: [{
1986
+ ease: ["linear", "in", "out", "in-out", c]
1987
+ }],
1988
+ /**
1989
+ * Transition Delay
1990
+ * @see https://tailwindcss.com/docs/transition-delay
1991
+ */
1992
+ delay: [{
1993
+ delay: z()
1994
+ }],
1995
+ /**
1996
+ * Animation
1997
+ * @see https://tailwindcss.com/docs/animation
1998
+ */
1999
+ animate: [{
2000
+ animate: ["none", "spin", "ping", "pulse", "bounce", c]
2001
+ }],
2002
+ // Transforms
2003
+ /**
2004
+ * Transform
2005
+ * @see https://tailwindcss.com/docs/transform
2006
+ */
2007
+ transform: [{
2008
+ transform: ["", "gpu", "none"]
2009
+ }],
2010
+ /**
2011
+ * Scale
2012
+ * @see https://tailwindcss.com/docs/scale
2013
+ */
2014
+ scale: [{
2015
+ scale: [j]
2016
+ }],
2017
+ /**
2018
+ * Scale X
2019
+ * @see https://tailwindcss.com/docs/scale
2020
+ */
2021
+ "scale-x": [{
2022
+ "scale-x": [j]
2023
+ }],
2024
+ /**
2025
+ * Scale Y
2026
+ * @see https://tailwindcss.com/docs/scale
2027
+ */
2028
+ "scale-y": [{
2029
+ "scale-y": [j]
2030
+ }],
2031
+ /**
2032
+ * Rotate
2033
+ * @see https://tailwindcss.com/docs/rotate
2034
+ */
2035
+ rotate: [{
2036
+ rotate: [P, c]
2037
+ }],
2038
+ /**
2039
+ * Translate X
2040
+ * @see https://tailwindcss.com/docs/translate
2041
+ */
2042
+ "translate-x": [{
2043
+ "translate-x": [Q]
2044
+ }],
2045
+ /**
2046
+ * Translate Y
2047
+ * @see https://tailwindcss.com/docs/translate
2048
+ */
2049
+ "translate-y": [{
2050
+ "translate-y": [Q]
2051
+ }],
2052
+ /**
2053
+ * Skew X
2054
+ * @see https://tailwindcss.com/docs/skew
2055
+ */
2056
+ "skew-x": [{
2057
+ "skew-x": [X]
2058
+ }],
2059
+ /**
2060
+ * Skew Y
2061
+ * @see https://tailwindcss.com/docs/skew
2062
+ */
2063
+ "skew-y": [{
2064
+ "skew-y": [X]
2065
+ }],
2066
+ /**
2067
+ * Transform Origin
2068
+ * @see https://tailwindcss.com/docs/transform-origin
2069
+ */
2070
+ "transform-origin": [{
2071
+ origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", c]
2072
+ }],
2073
+ // Interactivity
2074
+ /**
2075
+ * Accent Color
2076
+ * @see https://tailwindcss.com/docs/accent-color
2077
+ */
2078
+ accent: [{
2079
+ accent: ["auto", e]
2080
+ }],
2081
+ /**
2082
+ * Appearance
2083
+ * @see https://tailwindcss.com/docs/appearance
2084
+ */
2085
+ appearance: [{
2086
+ appearance: ["none", "auto"]
2087
+ }],
2088
+ /**
2089
+ * Cursor
2090
+ * @see https://tailwindcss.com/docs/cursor
2091
+ */
2092
+ cursor: [{
2093
+ 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", c]
2094
+ }],
2095
+ /**
2096
+ * Caret Color
2097
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2098
+ */
2099
+ "caret-color": [{
2100
+ caret: [e]
2101
+ }],
2102
+ /**
2103
+ * Pointer Events
2104
+ * @see https://tailwindcss.com/docs/pointer-events
2105
+ */
2106
+ "pointer-events": [{
2107
+ "pointer-events": ["none", "auto"]
2108
+ }],
2109
+ /**
2110
+ * Resize
2111
+ * @see https://tailwindcss.com/docs/resize
2112
+ */
2113
+ resize: [{
2114
+ resize: ["none", "y", "x", ""]
2115
+ }],
2116
+ /**
2117
+ * Scroll Behavior
2118
+ * @see https://tailwindcss.com/docs/scroll-behavior
2119
+ */
2120
+ "scroll-behavior": [{
2121
+ scroll: ["auto", "smooth"]
2122
+ }],
2123
+ /**
2124
+ * Scroll Margin
2125
+ * @see https://tailwindcss.com/docs/scroll-margin
2126
+ */
2127
+ "scroll-m": [{
2128
+ "scroll-m": g()
2129
+ }],
2130
+ /**
2131
+ * Scroll Margin X
2132
+ * @see https://tailwindcss.com/docs/scroll-margin
2133
+ */
2134
+ "scroll-mx": [{
2135
+ "scroll-mx": g()
2136
+ }],
2137
+ /**
2138
+ * Scroll Margin Y
2139
+ * @see https://tailwindcss.com/docs/scroll-margin
2140
+ */
2141
+ "scroll-my": [{
2142
+ "scroll-my": g()
2143
+ }],
2144
+ /**
2145
+ * Scroll Margin Start
2146
+ * @see https://tailwindcss.com/docs/scroll-margin
2147
+ */
2148
+ "scroll-ms": [{
2149
+ "scroll-ms": g()
2150
+ }],
2151
+ /**
2152
+ * Scroll Margin End
2153
+ * @see https://tailwindcss.com/docs/scroll-margin
2154
+ */
2155
+ "scroll-me": [{
2156
+ "scroll-me": g()
2157
+ }],
2158
+ /**
2159
+ * Scroll Margin Top
2160
+ * @see https://tailwindcss.com/docs/scroll-margin
2161
+ */
2162
+ "scroll-mt": [{
2163
+ "scroll-mt": g()
2164
+ }],
2165
+ /**
2166
+ * Scroll Margin Right
2167
+ * @see https://tailwindcss.com/docs/scroll-margin
2168
+ */
2169
+ "scroll-mr": [{
2170
+ "scroll-mr": g()
2171
+ }],
2172
+ /**
2173
+ * Scroll Margin Bottom
2174
+ * @see https://tailwindcss.com/docs/scroll-margin
2175
+ */
2176
+ "scroll-mb": [{
2177
+ "scroll-mb": g()
2178
+ }],
2179
+ /**
2180
+ * Scroll Margin Left
2181
+ * @see https://tailwindcss.com/docs/scroll-margin
2182
+ */
2183
+ "scroll-ml": [{
2184
+ "scroll-ml": g()
2185
+ }],
2186
+ /**
2187
+ * Scroll Padding
2188
+ * @see https://tailwindcss.com/docs/scroll-padding
2189
+ */
2190
+ "scroll-p": [{
2191
+ "scroll-p": g()
2192
+ }],
2193
+ /**
2194
+ * Scroll Padding X
2195
+ * @see https://tailwindcss.com/docs/scroll-padding
2196
+ */
2197
+ "scroll-px": [{
2198
+ "scroll-px": g()
2199
+ }],
2200
+ /**
2201
+ * Scroll Padding Y
2202
+ * @see https://tailwindcss.com/docs/scroll-padding
2203
+ */
2204
+ "scroll-py": [{
2205
+ "scroll-py": g()
2206
+ }],
2207
+ /**
2208
+ * Scroll Padding Start
2209
+ * @see https://tailwindcss.com/docs/scroll-padding
2210
+ */
2211
+ "scroll-ps": [{
2212
+ "scroll-ps": g()
2213
+ }],
2214
+ /**
2215
+ * Scroll Padding End
2216
+ * @see https://tailwindcss.com/docs/scroll-padding
2217
+ */
2218
+ "scroll-pe": [{
2219
+ "scroll-pe": g()
2220
+ }],
2221
+ /**
2222
+ * Scroll Padding Top
2223
+ * @see https://tailwindcss.com/docs/scroll-padding
2224
+ */
2225
+ "scroll-pt": [{
2226
+ "scroll-pt": g()
2227
+ }],
2228
+ /**
2229
+ * Scroll Padding Right
2230
+ * @see https://tailwindcss.com/docs/scroll-padding
2231
+ */
2232
+ "scroll-pr": [{
2233
+ "scroll-pr": g()
2234
+ }],
2235
+ /**
2236
+ * Scroll Padding Bottom
2237
+ * @see https://tailwindcss.com/docs/scroll-padding
2238
+ */
2239
+ "scroll-pb": [{
2240
+ "scroll-pb": g()
2241
+ }],
2242
+ /**
2243
+ * Scroll Padding Left
2244
+ * @see https://tailwindcss.com/docs/scroll-padding
2245
+ */
2246
+ "scroll-pl": [{
2247
+ "scroll-pl": g()
2248
+ }],
2249
+ /**
2250
+ * Scroll Snap Align
2251
+ * @see https://tailwindcss.com/docs/scroll-snap-align
2252
+ */
2253
+ "snap-align": [{
2254
+ snap: ["start", "end", "center", "align-none"]
2255
+ }],
2256
+ /**
2257
+ * Scroll Snap Stop
2258
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
2259
+ */
2260
+ "snap-stop": [{
2261
+ snap: ["normal", "always"]
2262
+ }],
2263
+ /**
2264
+ * Scroll Snap Type
2265
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2266
+ */
2267
+ "snap-type": [{
2268
+ snap: ["none", "x", "y", "both"]
2269
+ }],
2270
+ /**
2271
+ * Scroll Snap Type Strictness
2272
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2273
+ */
2274
+ "snap-strictness": [{
2275
+ snap: ["mandatory", "proximity"]
2276
+ }],
2277
+ /**
2278
+ * Touch Action
2279
+ * @see https://tailwindcss.com/docs/touch-action
2280
+ */
2281
+ touch: [{
2282
+ touch: ["auto", "none", "manipulation"]
2283
+ }],
2284
+ /**
2285
+ * Touch Action X
2286
+ * @see https://tailwindcss.com/docs/touch-action
2287
+ */
2288
+ "touch-x": [{
2289
+ "touch-pan": ["x", "left", "right"]
2290
+ }],
2291
+ /**
2292
+ * Touch Action Y
2293
+ * @see https://tailwindcss.com/docs/touch-action
2294
+ */
2295
+ "touch-y": [{
2296
+ "touch-pan": ["y", "up", "down"]
2297
+ }],
2298
+ /**
2299
+ * Touch Action Pinch Zoom
2300
+ * @see https://tailwindcss.com/docs/touch-action
2301
+ */
2302
+ "touch-pz": ["touch-pinch-zoom"],
2303
+ /**
2304
+ * User Select
2305
+ * @see https://tailwindcss.com/docs/user-select
2306
+ */
2307
+ select: [{
2308
+ select: ["none", "text", "all", "auto"]
2309
+ }],
2310
+ /**
2311
+ * Will Change
2312
+ * @see https://tailwindcss.com/docs/will-change
2313
+ */
2314
+ "will-change": [{
2315
+ "will-change": ["auto", "scroll", "contents", "transform", c]
2316
+ }],
2317
+ // SVG
2318
+ /**
2319
+ * Fill
2320
+ * @see https://tailwindcss.com/docs/fill
2321
+ */
2322
+ fill: [{
2323
+ fill: [e, "none"]
2324
+ }],
2325
+ /**
2326
+ * Stroke Width
2327
+ * @see https://tailwindcss.com/docs/stroke-width
2328
+ */
2329
+ "stroke-w": [{
2330
+ stroke: [M, S, _]
2331
+ }],
2332
+ /**
2333
+ * Stroke
2334
+ * @see https://tailwindcss.com/docs/stroke
2335
+ */
2336
+ stroke: [{
2337
+ stroke: [e, "none"]
2338
+ }],
2339
+ // Accessibility
2340
+ /**
2341
+ * Screen Readers
2342
+ * @see https://tailwindcss.com/docs/screen-readers
2343
+ */
2344
+ sr: ["sr-only", "not-sr-only"],
2345
+ /**
2346
+ * Forced Color Adjust
2347
+ * @see https://tailwindcss.com/docs/forced-color-adjust
2348
+ */
2349
+ "forced-color-adjust": [{
2350
+ "forced-color-adjust": ["auto", "none"]
2351
+ }]
2352
+ },
2353
+ conflictingClassGroups: {
2354
+ overflow: ["overflow-x", "overflow-y"],
2355
+ overscroll: ["overscroll-x", "overscroll-y"],
2356
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2357
+ "inset-x": ["right", "left"],
2358
+ "inset-y": ["top", "bottom"],
2359
+ flex: ["basis", "grow", "shrink"],
2360
+ gap: ["gap-x", "gap-y"],
2361
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2362
+ px: ["pr", "pl"],
2363
+ py: ["pt", "pb"],
2364
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2365
+ mx: ["mr", "ml"],
2366
+ my: ["mt", "mb"],
2367
+ size: ["w", "h"],
2368
+ "font-size": ["leading"],
2369
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2370
+ "fvn-ordinal": ["fvn-normal"],
2371
+ "fvn-slashed-zero": ["fvn-normal"],
2372
+ "fvn-figure": ["fvn-normal"],
2373
+ "fvn-spacing": ["fvn-normal"],
2374
+ "fvn-fraction": ["fvn-normal"],
2375
+ "line-clamp": ["display", "overflow"],
2376
+ 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"],
2377
+ "rounded-s": ["rounded-ss", "rounded-es"],
2378
+ "rounded-e": ["rounded-se", "rounded-ee"],
2379
+ "rounded-t": ["rounded-tl", "rounded-tr"],
2380
+ "rounded-r": ["rounded-tr", "rounded-br"],
2381
+ "rounded-b": ["rounded-br", "rounded-bl"],
2382
+ "rounded-l": ["rounded-tl", "rounded-bl"],
2383
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
2384
+ "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2385
+ "border-w-x": ["border-w-r", "border-w-l"],
2386
+ "border-w-y": ["border-w-t", "border-w-b"],
2387
+ "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2388
+ "border-color-x": ["border-color-r", "border-color-l"],
2389
+ "border-color-y": ["border-color-t", "border-color-b"],
2390
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2391
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
2392
+ "scroll-my": ["scroll-mt", "scroll-mb"],
2393
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2394
+ "scroll-px": ["scroll-pr", "scroll-pl"],
2395
+ "scroll-py": ["scroll-pt", "scroll-pb"],
2396
+ touch: ["touch-x", "touch-y", "touch-pz"],
2397
+ "touch-x": ["touch"],
2398
+ "touch-y": ["touch"],
2399
+ "touch-pz": ["touch"]
2400
+ },
2401
+ conflictingClassGroupModifiers: {
2402
+ "font-size": ["leading"]
2403
+ }
2404
+ };
2405
+ }, Xe = /* @__PURE__ */ Re(Je), f = (...e) => Xe(ae(e)), Ze = q(
2406
+ [
2407
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap",
2408
+ "font-medium leading-none select-none cursor-pointer",
2409
+ "rounded-md transition-colors duration-150",
2410
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
2411
+ "disabled:pointer-events-none disabled:opacity-50"
2412
+ ].join(" "),
2413
+ {
2414
+ variants: {
2415
+ variant: {
2416
+ default: "bg-blue-600 text-white hover:bg-blue-700 focus-visible:ring-blue-600",
2417
+ secondary: "bg-neutral-100 text-neutral-900 hover:bg-neutral-200 focus-visible:ring-neutral-400",
2418
+ destructive: "bg-red-600 text-white hover:bg-red-700 focus-visible:ring-red-600",
2419
+ outline: "border border-neutral-300 bg-transparent text-neutral-900 hover:bg-neutral-50 focus-visible:ring-neutral-400",
2420
+ ghost: "bg-transparent text-neutral-700 hover:bg-neutral-100 hover:text-neutral-900 focus-visible:ring-neutral-400"
2421
+ },
2422
+ size: {
2423
+ sm: "h-8 px-3 text-xs",
2424
+ md: "h-10 px-4 text-sm",
2425
+ lg: "h-12 px-6 text-base"
2426
+ }
2427
+ },
2428
+ defaultVariants: {
2429
+ variant: "default",
2430
+ size: "md"
2431
+ }
2432
+ }
2433
+ ), Qe = W(
2434
+ ({ className: e, variant: t, size: r, loading: o = !1, disabled: s, children: n, ...i }, a) => /* @__PURE__ */ y(
2435
+ "button",
2436
+ {
2437
+ ref: a,
2438
+ className: f(Ze({ variant: t, size: r }), e),
2439
+ disabled: s || o,
2440
+ "aria-busy": o || void 0,
2441
+ ...i,
2442
+ children: [
2443
+ o && /* @__PURE__ */ y(
2444
+ "svg",
2445
+ {
2446
+ className: "h-4 w-4 animate-spin",
2447
+ xmlns: "http://www.w3.org/2000/svg",
2448
+ fill: "none",
2449
+ viewBox: "0 0 24 24",
2450
+ "aria-hidden": "true",
2451
+ children: [
2452
+ /* @__PURE__ */ l(
2453
+ "circle",
2454
+ {
2455
+ className: "opacity-25",
2456
+ cx: "12",
2457
+ cy: "12",
2458
+ r: "10",
2459
+ stroke: "currentColor",
2460
+ strokeWidth: "4"
2461
+ }
2462
+ ),
2463
+ /* @__PURE__ */ l(
2464
+ "path",
2465
+ {
2466
+ className: "opacity-75",
2467
+ fill: "currentColor",
2468
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
2469
+ }
2470
+ )
2471
+ ]
2472
+ }
2473
+ ),
2474
+ n
2475
+ ]
2476
+ }
2477
+ )
2478
+ );
2479
+ Qe.displayName = "Button";
2480
+ const Ye = q(
2481
+ [
2482
+ "w-full rounded-md border bg-white text-neutral-900",
2483
+ "placeholder:text-neutral-400",
2484
+ "transition-colors duration-150",
2485
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-0",
2486
+ "disabled:pointer-events-none disabled:opacity-50"
2487
+ ].join(" "),
2488
+ {
2489
+ variants: {
2490
+ size: {
2491
+ sm: "h-8 px-3 text-xs",
2492
+ md: "h-10 px-3 text-sm",
2493
+ lg: "h-12 px-4 text-base"
2494
+ },
2495
+ state: {
2496
+ default: "border-neutral-300 focus-visible:ring-blue-600",
2497
+ error: "border-red-500 focus-visible:ring-red-500"
2498
+ }
2499
+ },
2500
+ defaultVariants: {
2501
+ size: "md",
2502
+ state: "default"
2503
+ }
2504
+ }
2505
+ ), De = W(
2506
+ ({ className: e, size: t, label: r, error: o, hint: s, id: n, ...i }, a) => {
2507
+ const d = n ?? (r == null ? void 0 : r.toLowerCase().replace(/\s+/g, "-"));
2508
+ return /* @__PURE__ */ y("div", { className: "flex flex-col gap-1.5", children: [
2509
+ r && /* @__PURE__ */ l("label", { htmlFor: d, className: "text-sm font-medium text-neutral-700", children: r }),
2510
+ /* @__PURE__ */ l(
2511
+ "input",
2512
+ {
2513
+ ref: a,
2514
+ id: d,
2515
+ className: f(Ye({ size: t, state: o ? "error" : "default" }), e),
2516
+ "aria-invalid": !!o,
2517
+ "aria-describedby": o ? `${d}-error` : s ? `${d}-hint` : void 0,
2518
+ ...i
2519
+ }
2520
+ ),
2521
+ o && /* @__PURE__ */ l("p", { id: `${d}-error`, className: "text-xs text-red-500", children: o }),
2522
+ s && !o && /* @__PURE__ */ l("p", { id: `${d}-hint`, className: "text-xs text-neutral-500", children: s })
2523
+ ] });
2524
+ }
2525
+ );
2526
+ De.displayName = "Input";
2527
+ const et = {
2528
+ sm: "h-8 px-3 text-xs",
2529
+ md: "h-10 px-3 text-sm",
2530
+ lg: "h-12 px-4 text-base"
2531
+ }, tt = W(
2532
+ ({ className: e, label: t, error: r, options: o, placeholder: s, size: n = "md", id: i, ...a }, d) => {
2533
+ const u = i ?? (t == null ? void 0 : t.toLowerCase().replace(/\s+/g, "-"));
2534
+ return /* @__PURE__ */ y("div", { className: "flex flex-col gap-1.5", children: [
2535
+ t && /* @__PURE__ */ l("label", { htmlFor: u, className: "text-sm font-medium text-neutral-700", children: t }),
2536
+ /* @__PURE__ */ y(
2537
+ "select",
2538
+ {
2539
+ ref: d,
2540
+ id: u,
2541
+ className: f(
2542
+ "w-full appearance-none rounded-md border bg-white text-neutral-900",
2543
+ "transition-colors duration-150",
2544
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-0",
2545
+ "disabled:pointer-events-none disabled:opacity-50",
2546
+ r ? "border-red-500 focus-visible:ring-red-500" : "border-neutral-300 focus-visible:ring-blue-600",
2547
+ et[n],
2548
+ e
2549
+ ),
2550
+ "aria-invalid": !!r,
2551
+ ...a,
2552
+ children: [
2553
+ s && /* @__PURE__ */ l("option", { value: "", disabled: !0, children: s }),
2554
+ o.map((p) => /* @__PURE__ */ l("option", { value: p.value, disabled: p.disabled, children: p.label }, p.value))
2555
+ ]
2556
+ }
2557
+ ),
2558
+ r && /* @__PURE__ */ l("p", { className: "text-xs text-red-500", children: r })
2559
+ ] });
2560
+ }
2561
+ );
2562
+ tt.displayName = "Select";
2563
+ const rt = q("inline-flex items-center font-medium rounded-full", {
2564
+ variants: {
2565
+ variant: {
2566
+ default: "bg-blue-100 text-blue-700",
2567
+ secondary: "bg-neutral-100 text-neutral-700",
2568
+ destructive: "bg-red-100 text-red-700",
2569
+ success: "bg-green-100 text-green-700",
2570
+ warning: "bg-yellow-100 text-yellow-800",
2571
+ outline: "border border-neutral-300 text-neutral-700 bg-transparent"
2572
+ },
2573
+ size: {
2574
+ sm: "px-2 py-0.5 text-xs",
2575
+ md: "px-2.5 py-1 text-xs"
2576
+ }
2577
+ },
2578
+ defaultVariants: {
2579
+ variant: "default",
2580
+ size: "md"
2581
+ }
2582
+ }), me = ({ className: e, variant: t, size: r, ...o }) => /* @__PURE__ */ l("span", { className: f(rt({ variant: t, size: r }), e), ...o });
2583
+ me.displayName = "Badge";
2584
+ const ot = {
2585
+ sm: "h-4 w-4",
2586
+ md: "h-6 w-6",
2587
+ lg: "h-8 w-8"
2588
+ }, be = ({ size: e = "md", className: t, ...r }) => /* @__PURE__ */ y(
2589
+ "svg",
2590
+ {
2591
+ className: f("animate-spin text-current", ot[e], t),
2592
+ xmlns: "http://www.w3.org/2000/svg",
2593
+ fill: "none",
2594
+ viewBox: "0 0 24 24",
2595
+ role: "status",
2596
+ "aria-label": "Loading",
2597
+ ...r,
2598
+ children: [
2599
+ /* @__PURE__ */ l(
2600
+ "circle",
2601
+ {
2602
+ className: "opacity-25",
2603
+ cx: "12",
2604
+ cy: "12",
2605
+ r: "10",
2606
+ stroke: "currentColor",
2607
+ strokeWidth: "4"
2608
+ }
2609
+ ),
2610
+ /* @__PURE__ */ l(
2611
+ "path",
2612
+ {
2613
+ className: "opacity-75",
2614
+ fill: "currentColor",
2615
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
2616
+ }
2617
+ )
2618
+ ]
2619
+ }
2620
+ );
2621
+ be.displayName = "Spinner";
2622
+ const nt = ({ label: e, onRemove: t, className: r, ...o }) => /* @__PURE__ */ y(
2623
+ "span",
2624
+ {
2625
+ className: f(
2626
+ "inline-flex items-center gap-1 rounded-full border border-neutral-200 bg-neutral-50",
2627
+ "px-2.5 py-1 text-xs font-medium text-neutral-700",
2628
+ r
2629
+ ),
2630
+ ...o,
2631
+ children: [
2632
+ e,
2633
+ t && /* @__PURE__ */ l(
2634
+ "button",
2635
+ {
2636
+ type: "button",
2637
+ onClick: (s) => {
2638
+ s.stopPropagation(), t();
2639
+ },
2640
+ "aria-label": `Remove ${e}`,
2641
+ className: "ml-0.5 rounded-full p-0.5 text-neutral-400 hover:text-neutral-700 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-neutral-400",
2642
+ children: /* @__PURE__ */ l("svg", { className: "h-3 w-3", viewBox: "0 0 12 12", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ l(
2643
+ "path",
2644
+ {
2645
+ d: "M9 3L3 9M3 3l6 6",
2646
+ stroke: "currentColor",
2647
+ strokeWidth: "1.5",
2648
+ strokeLinecap: "round"
2649
+ }
2650
+ ) })
2651
+ }
2652
+ )
2653
+ ]
2654
+ }
2655
+ );
2656
+ nt.displayName = "Tag";
2657
+ const st = {
2658
+ sm: "h-8 w-8 text-xs",
2659
+ md: "h-10 w-10 text-sm",
2660
+ lg: "h-14 w-14 text-lg",
2661
+ xl: "h-20 w-20 text-2xl"
2662
+ }, ge = ({
2663
+ src: e,
2664
+ alt: t = "",
2665
+ initials: r,
2666
+ size: o = "md",
2667
+ className: s,
2668
+ ...n
2669
+ }) => /* @__PURE__ */ l(
2670
+ "span",
2671
+ {
2672
+ className: f(
2673
+ "inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full bg-neutral-200 font-medium text-neutral-600",
2674
+ st[o],
2675
+ s
2676
+ ),
2677
+ ...n,
2678
+ children: e ? /* @__PURE__ */ l("img", { src: e, alt: t, className: "h-full w-full object-cover" }) : r ? /* @__PURE__ */ l("span", { "aria-label": t, children: r }) : /* @__PURE__ */ l(
2679
+ "svg",
2680
+ {
2681
+ className: "h-1/2 w-1/2 text-neutral-400",
2682
+ fill: "currentColor",
2683
+ viewBox: "0 0 24 24",
2684
+ "aria-hidden": "true",
2685
+ children: /* @__PURE__ */ l("path", { d: "M24 20.993V24H0v-2.996A14.977 14.977 0 0112.004 15c4.904 0 9.26 2.354 11.996 5.993zM16.002 8.999a4 4 0 11-8 0 4 4 0 018 0z" })
2686
+ }
2687
+ )
2688
+ }
2689
+ );
2690
+ ge.displayName = "Avatar";
2691
+ const lt = ({ className: e, ...t }) => /* @__PURE__ */ l(
2692
+ "div",
2693
+ {
2694
+ className: f("rounded-xl border border-neutral-200 bg-white shadow-sm", e),
2695
+ ...t
2696
+ }
2697
+ );
2698
+ lt.displayName = "Card";
2699
+ const at = ({ className: e, ...t }) => /* @__PURE__ */ l("div", { className: f("flex flex-col gap-1.5 p-6", e), ...t });
2700
+ at.displayName = "CardHeader";
2701
+ const it = ({ className: e, ...t }) => /* @__PURE__ */ l(
2702
+ "h3",
2703
+ {
2704
+ className: f("font-semibold leading-none tracking-tight text-neutral-900", e),
2705
+ ...t
2706
+ }
2707
+ );
2708
+ it.displayName = "CardTitle";
2709
+ const ct = ({
2710
+ className: e,
2711
+ ...t
2712
+ }) => /* @__PURE__ */ l("p", { className: f("text-sm text-neutral-500", e), ...t });
2713
+ ct.displayName = "CardDescription";
2714
+ const dt = ({ className: e, ...t }) => /* @__PURE__ */ l("div", { className: f("p-6 pt-0", e), ...t });
2715
+ dt.displayName = "CardContent";
2716
+ const ut = ({ className: e, ...t }) => /* @__PURE__ */ l("div", { className: f("flex items-center p-6 pt-0", e), ...t });
2717
+ ut.displayName = "CardFooter";
2718
+ const pt = ({ className: e, ...t }) => /* @__PURE__ */ l(
2719
+ "div",
2720
+ {
2721
+ className: f("animate-pulse rounded-md bg-neutral-200", e),
2722
+ "aria-hidden": "true",
2723
+ ...t
2724
+ }
2725
+ );
2726
+ pt.displayName = "Skeleton";
2727
+ const he = ({ name: e, active: t = !1, className: r, ...o }) => /* @__PURE__ */ l(
2728
+ "span",
2729
+ {
2730
+ className: f(
2731
+ "inline-flex items-center rounded-full px-3 py-1 text-xs font-medium transition-colors",
2732
+ t ? "bg-blue-600 text-white" : "bg-neutral-100 text-neutral-700 hover:bg-neutral-200",
2733
+ r
2734
+ ),
2735
+ ...o,
2736
+ children: e
2737
+ }
2738
+ );
2739
+ he.displayName = "GenreTag";
2740
+ const mt = { sm: "h-3 w-3", md: "h-4 w-4", lg: "h-5 w-5" }, J = ({
2741
+ value: e,
2742
+ max: t = 5,
2743
+ readonly: r = !0,
2744
+ size: o = "md",
2745
+ onChange: s,
2746
+ className: n
2747
+ }) => {
2748
+ const [i, a] = fe(null), d = Math.round(e / 10 * t), u = i ?? d;
2749
+ return /* @__PURE__ */ l(
2750
+ "div",
2751
+ {
2752
+ className: f("flex items-center gap-0.5", n),
2753
+ "aria-label": `Rating: ${e} out of 10`,
2754
+ role: r ? void 0 : "group",
2755
+ children: Array.from({ length: t }, (p, h) => {
2756
+ const x = h + 1 <= u;
2757
+ return /* @__PURE__ */ l(
2758
+ "svg",
2759
+ {
2760
+ className: f(
2761
+ "transition-colors duration-100",
2762
+ mt[o],
2763
+ x ? "text-yellow-400" : "text-neutral-300",
2764
+ !r && "cursor-pointer hover:scale-110"
2765
+ ),
2766
+ viewBox: "0 0 20 20",
2767
+ fill: "currentColor",
2768
+ "aria-hidden": "true",
2769
+ onMouseEnter: r ? void 0 : () => a(h + 1),
2770
+ onMouseLeave: r ? void 0 : () => a(null),
2771
+ onClick: r ? void 0 : () => s == null ? void 0 : s(Math.round((h + 1) / t * 10)),
2772
+ children: /* @__PURE__ */ l("path", { d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" })
2773
+ },
2774
+ h
2775
+ );
2776
+ })
2777
+ }
2778
+ );
2779
+ };
2780
+ J.displayName = "RatingStars";
2781
+ const bt = W(
2782
+ ({ className: e, onClear: t, isLoading: r, value: o, ...s }, n) => /* @__PURE__ */ y("div", { className: f("relative flex items-center", e), children: [
2783
+ /* @__PURE__ */ l(
2784
+ "svg",
2785
+ {
2786
+ className: "absolute left-3 h-4 w-4 text-neutral-400 pointer-events-none",
2787
+ xmlns: "http://www.w3.org/2000/svg",
2788
+ fill: "none",
2789
+ viewBox: "0 0 24 24",
2790
+ stroke: "currentColor",
2791
+ strokeWidth: 2,
2792
+ "aria-hidden": "true",
2793
+ children: /* @__PURE__ */ l(
2794
+ "path",
2795
+ {
2796
+ strokeLinecap: "round",
2797
+ strokeLinejoin: "round",
2798
+ d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
2799
+ }
2800
+ )
2801
+ }
2802
+ ),
2803
+ /* @__PURE__ */ l(
2804
+ "input",
2805
+ {
2806
+ ref: n,
2807
+ type: "search",
2808
+ value: o,
2809
+ className: f(
2810
+ "h-10 w-full rounded-lg border border-neutral-300 bg-white pl-10 pr-10 text-sm",
2811
+ "placeholder:text-neutral-400",
2812
+ "transition-colors duration-150",
2813
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-600 focus-visible:ring-offset-0",
2814
+ "disabled:pointer-events-none disabled:opacity-50"
2815
+ ),
2816
+ ...s
2817
+ }
2818
+ ),
2819
+ /* @__PURE__ */ l("div", { className: "absolute right-3", children: r ? /* @__PURE__ */ l(be, { size: "sm", className: "text-neutral-400" }) : o && t ? /* @__PURE__ */ l(
2820
+ "button",
2821
+ {
2822
+ type: "button",
2823
+ onClick: t,
2824
+ "aria-label": "Clear search",
2825
+ className: "text-neutral-400 hover:text-neutral-700 focus-visible:outline-none",
2826
+ children: /* @__PURE__ */ l("svg", { className: "h-4 w-4", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ l(
2827
+ "path",
2828
+ {
2829
+ d: "M18 6L6 18M6 6l12 12",
2830
+ stroke: "currentColor",
2831
+ strokeWidth: 2,
2832
+ strokeLinecap: "round"
2833
+ }
2834
+ ) })
2835
+ }
2836
+ ) : null })
2837
+ ] })
2838
+ );
2839
+ bt.displayName = "SearchBar";
2840
+ const gt = ({
2841
+ title: e,
2842
+ posterUrl: t,
2843
+ rating: r,
2844
+ genres: o = [],
2845
+ year: s,
2846
+ overview: n,
2847
+ onClick: i,
2848
+ className: a
2849
+ }) => /* @__PURE__ */ y(
2850
+ "div",
2851
+ {
2852
+ className: f(
2853
+ "group relative flex flex-col overflow-hidden rounded-xl bg-neutral-900 shadow-lg",
2854
+ "transition-transform duration-200 hover:-translate-y-1 hover:shadow-xl",
2855
+ i && "cursor-pointer",
2856
+ a
2857
+ ),
2858
+ onClick: i,
2859
+ role: i ? "button" : void 0,
2860
+ tabIndex: i ? 0 : void 0,
2861
+ onKeyDown: i ? (d) => d.key === "Enter" && i() : void 0,
2862
+ children: [
2863
+ /* @__PURE__ */ y("div", { className: "relative aspect-[2/3] overflow-hidden bg-neutral-800", children: [
2864
+ t ? /* @__PURE__ */ l(
2865
+ "img",
2866
+ {
2867
+ src: t,
2868
+ alt: e,
2869
+ className: "h-full w-full object-cover transition-transform duration-300 group-hover:scale-105"
2870
+ }
2871
+ ) : /* @__PURE__ */ l("div", { className: "flex h-full items-center justify-center text-neutral-600", children: /* @__PURE__ */ l(ht, {}) }),
2872
+ r !== void 0 && /* @__PURE__ */ l("div", { className: "absolute top-2 right-2", children: /* @__PURE__ */ y(me, { className: "border-0 bg-black/70 text-yellow-400 backdrop-blur-sm", children: [
2873
+ "★ ",
2874
+ r.toFixed(1)
2875
+ ] }) })
2876
+ ] }),
2877
+ /* @__PURE__ */ y("div", { className: "flex flex-col gap-2 p-3", children: [
2878
+ /* @__PURE__ */ y("div", { className: "flex items-start justify-between gap-2", children: [
2879
+ /* @__PURE__ */ l("h3", { className: "line-clamp-2 text-sm font-semibold leading-snug text-white", children: e }),
2880
+ s && /* @__PURE__ */ l("span", { className: "shrink-0 text-xs text-neutral-400", children: s })
2881
+ ] }),
2882
+ r !== void 0 && /* @__PURE__ */ l(J, { value: r, size: "sm", readonly: !0 }),
2883
+ n && /* @__PURE__ */ l("p", { className: "line-clamp-2 text-xs leading-relaxed text-neutral-400", children: n }),
2884
+ o.length > 0 && /* @__PURE__ */ l("div", { className: "flex flex-wrap gap-1", children: o.slice(0, 3).map((d) => /* @__PURE__ */ l(
2885
+ he,
2886
+ {
2887
+ name: d,
2888
+ className: "bg-neutral-800 text-neutral-300 hover:bg-neutral-700"
2889
+ },
2890
+ d
2891
+ )) })
2892
+ ] })
2893
+ ]
2894
+ }
2895
+ ), ht = () => /* @__PURE__ */ y(
2896
+ "svg",
2897
+ {
2898
+ className: "h-12 w-12",
2899
+ fill: "none",
2900
+ viewBox: "0 0 24 24",
2901
+ stroke: "currentColor",
2902
+ strokeWidth: 1,
2903
+ "aria-hidden": "true",
2904
+ children: [
2905
+ /* @__PURE__ */ l("rect", { x: "2", y: "2", width: "20", height: "20", rx: "2" }),
2906
+ /* @__PURE__ */ l("line", { x1: "7", y1: "2", x2: "7", y2: "22" }),
2907
+ /* @__PURE__ */ l("line", { x1: "17", y1: "2", x2: "17", y2: "22" }),
2908
+ /* @__PURE__ */ l("line", { x1: "2", y1: "12", x2: "22", y2: "12" }),
2909
+ /* @__PURE__ */ l("line", { x1: "2", y1: "7", x2: "7", y2: "7" }),
2910
+ /* @__PURE__ */ l("line", { x1: "2", y1: "17", x2: "7", y2: "17" }),
2911
+ /* @__PURE__ */ l("line", { x1: "17", y1: "17", x2: "22", y2: "17" }),
2912
+ /* @__PURE__ */ l("line", { x1: "17", y1: "7", x2: "22", y2: "7" })
2913
+ ]
2914
+ }
2915
+ );
2916
+ gt.displayName = "MovieCard";
2917
+ const ft = {
2918
+ 2: "grid-cols-2",
2919
+ 3: "grid-cols-2 sm:grid-cols-3",
2920
+ 4: "grid-cols-2 sm:grid-cols-3 lg:grid-cols-4",
2921
+ 5: "grid-cols-2 sm:grid-cols-3 lg:grid-cols-5",
2922
+ 6: "grid-cols-3 sm:grid-cols-4 lg:grid-cols-6"
2923
+ }, xt = ({ columns: e = 4, className: t, children: r, ...o }) => /* @__PURE__ */ l("div", { className: f("grid gap-4", ft[e], t), ...o, children: r });
2924
+ xt.displayName = "MovieGrid";
2925
+ const vt = ({
2926
+ author: e,
2927
+ avatarUrl: t,
2928
+ avatarInitials: r,
2929
+ rating: o,
2930
+ content: s,
2931
+ date: n,
2932
+ movieTitle: i,
2933
+ className: a
2934
+ }) => /* @__PURE__ */ y(
2935
+ "div",
2936
+ {
2937
+ className: f(
2938
+ "flex flex-col gap-3 rounded-xl border border-neutral-200 bg-white p-4 shadow-sm",
2939
+ a
2940
+ ),
2941
+ children: [
2942
+ /* @__PURE__ */ y("div", { className: "flex items-start justify-between gap-3", children: [
2943
+ /* @__PURE__ */ y("div", { className: "flex items-center gap-3", children: [
2944
+ /* @__PURE__ */ l(
2945
+ ge,
2946
+ {
2947
+ src: t,
2948
+ initials: r,
2949
+ alt: e,
2950
+ size: "sm"
2951
+ }
2952
+ ),
2953
+ /* @__PURE__ */ y("div", { className: "flex flex-col", children: [
2954
+ /* @__PURE__ */ l("span", { className: "text-sm font-medium text-neutral-900", children: e }),
2955
+ i && /* @__PURE__ */ l("span", { className: "text-xs text-neutral-500", children: i })
2956
+ ] })
2957
+ ] }),
2958
+ n && /* @__PURE__ */ l("span", { className: "shrink-0 text-xs text-neutral-400", children: n })
2959
+ ] }),
2960
+ o !== void 0 && /* @__PURE__ */ l(J, { value: o, size: "sm", readonly: !0 }),
2961
+ /* @__PURE__ */ l("p", { className: "text-sm leading-relaxed text-neutral-700", children: s })
2962
+ ]
2963
+ }
2964
+ );
2965
+ vt.displayName = "ReviewCard";
2966
+ export {
2967
+ ge as Avatar,
2968
+ me as Badge,
2969
+ Qe as Button,
2970
+ lt as Card,
2971
+ dt as CardContent,
2972
+ ct as CardDescription,
2973
+ ut as CardFooter,
2974
+ at as CardHeader,
2975
+ it as CardTitle,
2976
+ he as GenreTag,
2977
+ De as Input,
2978
+ gt as MovieCard,
2979
+ xt as MovieGrid,
2980
+ J as RatingStars,
2981
+ vt as ReviewCard,
2982
+ bt as SearchBar,
2983
+ tt as Select,
2984
+ pt as Skeleton,
2985
+ be as Spinner,
2986
+ nt as Tag,
2987
+ rt as badgeVariants,
2988
+ Ze as buttonVariants,
2989
+ kt as colors,
2990
+ zt as radii,
2991
+ Mt as shadows,
2992
+ Nt as spacing,
2993
+ Ct as typography
2994
+ };
2995
+ //# sourceMappingURL=index.mjs.map