@n3wth/ui 0.1.0

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