@ugurdemirel/landcraft 0.1.0

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