@homlista-devs/ui 1.0.0

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