@tampadevs/react 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/components/Avatar.d.ts +16 -0
- package/dist/components/Avatar.d.ts.map +1 -0
- package/dist/components/AvatarGroup.d.ts +14 -0
- package/dist/components/AvatarGroup.d.ts.map +1 -0
- package/dist/components/Button.d.ts +13 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.test.d.ts +2 -0
- package/dist/components/Button.test.d.ts.map +1 -0
- package/dist/components/Calendar.d.ts +27 -0
- package/dist/components/Calendar.d.ts.map +1 -0
- package/dist/components/Carousel.d.ts +11 -0
- package/dist/components/Carousel.d.ts.map +1 -0
- package/dist/components/CtaSection.d.ts +13 -0
- package/dist/components/CtaSection.d.ts.map +1 -0
- package/dist/components/EventCard.d.ts +19 -0
- package/dist/components/EventCard.d.ts.map +1 -0
- package/dist/components/Footer.d.ts +25 -0
- package/dist/components/Footer.d.ts.map +1 -0
- package/dist/components/Header.d.ts +17 -0
- package/dist/components/Header.d.ts.map +1 -0
- package/dist/components/Icon.d.ts +8 -0
- package/dist/components/Icon.d.ts.map +1 -0
- package/dist/components/Image.d.ts +17 -0
- package/dist/components/Image.d.ts.map +1 -0
- package/dist/components/ImageCarousel.d.ts +18 -0
- package/dist/components/ImageCarousel.d.ts.map +1 -0
- package/dist/components/ImageText.d.ts +16 -0
- package/dist/components/ImageText.d.ts.map +1 -0
- package/dist/components/Logo.d.ts +15 -0
- package/dist/components/Logo.d.ts.map +1 -0
- package/dist/components/Logo3d.d.ts +28 -0
- package/dist/components/Logo3d.d.ts.map +1 -0
- package/dist/components/LogoMarquee.d.ts +18 -0
- package/dist/components/LogoMarquee.d.ts.map +1 -0
- package/dist/components/NewsletterSignup.d.ts +11 -0
- package/dist/components/NewsletterSignup.d.ts.map +1 -0
- package/dist/components/OpenCollective.d.ts +16 -0
- package/dist/components/OpenCollective.d.ts.map +1 -0
- package/dist/components/PersonCard.d.ts +20 -0
- package/dist/components/PersonCard.d.ts.map +1 -0
- package/dist/components/PersonTable.d.ts +28 -0
- package/dist/components/PersonTable.d.ts.map +1 -0
- package/dist/components/PromoSection.d.ts +20 -0
- package/dist/components/PromoSection.d.ts.map +1 -0
- package/dist/components/SponsorCard.d.ts +10 -0
- package/dist/components/SponsorCard.d.ts.map +1 -0
- package/dist/components/SponsorGrid.d.ts +21 -0
- package/dist/components/SponsorGrid.d.ts.map +1 -0
- package/dist/components/Table.d.ts +30 -0
- package/dist/components/Table.d.ts.map +1 -0
- package/dist/components/VideoEmbed.d.ts +14 -0
- package/dist/components/VideoEmbed.d.ts.map +1 -0
- package/dist/components/VideoHero.d.ts +16 -0
- package/dist/components/VideoHero.d.ts.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/index10.js +185 -0
- package/dist/index10.js.map +1 -0
- package/dist/index11.js +268 -0
- package/dist/index11.js.map +1 -0
- package/dist/index12.js +133 -0
- package/dist/index12.js.map +1 -0
- package/dist/index13.js +112 -0
- package/dist/index13.js.map +1 -0
- package/dist/index14.js +286 -0
- package/dist/index14.js.map +1 -0
- package/dist/index15.js +325 -0
- package/dist/index15.js.map +1 -0
- package/dist/index16.js +204 -0
- package/dist/index16.js.map +1 -0
- package/dist/index17.js +269 -0
- package/dist/index17.js.map +1 -0
- package/dist/index18.js +147 -0
- package/dist/index18.js.map +1 -0
- package/dist/index19.js +697 -0
- package/dist/index19.js.map +1 -0
- package/dist/index2.js +181 -0
- package/dist/index2.js.map +1 -0
- package/dist/index20.js +492 -0
- package/dist/index20.js.map +1 -0
- package/dist/index21.js +277 -0
- package/dist/index21.js.map +1 -0
- package/dist/index22.js +331 -0
- package/dist/index22.js.map +1 -0
- package/dist/index23.js +98 -0
- package/dist/index23.js.map +1 -0
- package/dist/index24.js +406 -0
- package/dist/index24.js.map +1 -0
- package/dist/index25.js +464 -0
- package/dist/index25.js.map +1 -0
- package/dist/index26.js +280 -0
- package/dist/index26.js.map +1 -0
- package/dist/index27.js +234 -0
- package/dist/index27.js.map +1 -0
- package/dist/index28.js +18 -0
- package/dist/index28.js.map +1 -0
- package/dist/index29.js +10779 -0
- package/dist/index29.js.map +1 -0
- package/dist/index3.js +39 -0
- package/dist/index3.js.map +1 -0
- package/dist/index30.js +358 -0
- package/dist/index30.js.map +1 -0
- package/dist/index31.js +199 -0
- package/dist/index31.js.map +1 -0
- package/dist/index32.js +22762 -0
- package/dist/index32.js.map +1 -0
- package/dist/index4.js +142 -0
- package/dist/index4.js.map +1 -0
- package/dist/index5.js +128 -0
- package/dist/index5.js.map +1 -0
- package/dist/index6.js +109 -0
- package/dist/index6.js.map +1 -0
- package/dist/index7.js +254 -0
- package/dist/index7.js.map +1 -0
- package/dist/index8.js +237 -0
- package/dist/index8.js.map +1 -0
- package/dist/index9.js +142 -0
- package/dist/index9.js.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/package.json +58 -0
package/dist/index23.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { jsxs as a, Fragment as d, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { clsx as e } from "./index28.js";
|
|
3
|
+
function h({
|
|
4
|
+
name: o,
|
|
5
|
+
logo: t,
|
|
6
|
+
href: n,
|
|
7
|
+
tier: i = "community",
|
|
8
|
+
className: s
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ a(d, { children: [
|
|
11
|
+
/* @__PURE__ */ r(
|
|
12
|
+
"a",
|
|
13
|
+
{
|
|
14
|
+
className: e("td-sponsor-card", `td-sponsor-card--${i}`, s),
|
|
15
|
+
href: n,
|
|
16
|
+
target: "_blank",
|
|
17
|
+
rel: "noopener noreferrer",
|
|
18
|
+
children: /* @__PURE__ */ r("img", { src: t, alt: o })
|
|
19
|
+
}
|
|
20
|
+
),
|
|
21
|
+
/* @__PURE__ */ r(m, {})
|
|
22
|
+
] });
|
|
23
|
+
}
|
|
24
|
+
function m() {
|
|
25
|
+
return /* @__PURE__ */ r("style", { children: `
|
|
26
|
+
.td-sponsor-card {
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
justify-content: center;
|
|
30
|
+
padding: 2rem;
|
|
31
|
+
background: #E5E7EB;
|
|
32
|
+
transition: all 0.15s ease;
|
|
33
|
+
height: 100%;
|
|
34
|
+
min-height: 120px;
|
|
35
|
+
text-decoration: none;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.td-sponsor-card:hover {
|
|
39
|
+
background: #D1D5DB;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.td-sponsor-card:hover img {
|
|
43
|
+
transform: scale(1.05);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.td-sponsor-card img {
|
|
47
|
+
max-width: 80%;
|
|
48
|
+
max-height: 80px;
|
|
49
|
+
height: auto;
|
|
50
|
+
display: block;
|
|
51
|
+
object-fit: contain;
|
|
52
|
+
transition: transform 0.15s ease;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.td-sponsor-card--platinum {
|
|
56
|
+
min-height: 180px;
|
|
57
|
+
padding: 2.5rem;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.td-sponsor-card--platinum img {
|
|
61
|
+
max-height: 120px;
|
|
62
|
+
max-width: 85%;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.td-sponsor-card--gold {
|
|
66
|
+
min-height: 150px;
|
|
67
|
+
padding: 2rem;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.td-sponsor-card--gold img {
|
|
71
|
+
max-height: 100px;
|
|
72
|
+
max-width: 85%;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.td-sponsor-card--silver {
|
|
76
|
+
min-height: 120px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.td-sponsor-card--silver img {
|
|
80
|
+
max-height: 70px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.td-sponsor-card--bronze,
|
|
84
|
+
.td-sponsor-card--community {
|
|
85
|
+
min-height: 100px;
|
|
86
|
+
padding: 1.5rem;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.td-sponsor-card--bronze img,
|
|
90
|
+
.td-sponsor-card--community img {
|
|
91
|
+
max-height: 50px;
|
|
92
|
+
}
|
|
93
|
+
` });
|
|
94
|
+
}
|
|
95
|
+
export {
|
|
96
|
+
h as SponsorCard
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=index23.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index23.js","sources":["../src/components/SponsorCard.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nexport type SponsorCardTier = 'platinum' | 'gold' | 'silver' | 'bronze' | 'community';\n\nexport interface SponsorCardProps {\n name: string;\n logo: string;\n href: string;\n tier?: SponsorCardTier;\n className?: string;\n}\n\nexport function SponsorCard({\n name,\n logo,\n href,\n tier = 'community',\n className,\n}: SponsorCardProps) {\n return (\n <>\n <a\n className={clsx('td-sponsor-card', `td-sponsor-card--${tier}`, className)}\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <img src={logo} alt={name} />\n </a>\n <SponsorCardStyles />\n </>\n );\n}\n\nfunction SponsorCardStyles() {\n return (\n <style>{`\n .td-sponsor-card {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2rem;\n background: #E5E7EB;\n transition: all 0.15s ease;\n height: 100%;\n min-height: 120px;\n text-decoration: none;\n }\n\n .td-sponsor-card:hover {\n background: #D1D5DB;\n }\n\n .td-sponsor-card:hover img {\n transform: scale(1.05);\n }\n\n .td-sponsor-card img {\n max-width: 80%;\n max-height: 80px;\n height: auto;\n display: block;\n object-fit: contain;\n transition: transform 0.15s ease;\n }\n\n .td-sponsor-card--platinum {\n min-height: 180px;\n padding: 2.5rem;\n }\n\n .td-sponsor-card--platinum img {\n max-height: 120px;\n max-width: 85%;\n }\n\n .td-sponsor-card--gold {\n min-height: 150px;\n padding: 2rem;\n }\n\n .td-sponsor-card--gold img {\n max-height: 100px;\n max-width: 85%;\n }\n\n .td-sponsor-card--silver {\n min-height: 120px;\n }\n\n .td-sponsor-card--silver img {\n max-height: 70px;\n }\n\n .td-sponsor-card--bronze,\n .td-sponsor-card--community {\n min-height: 100px;\n padding: 1.5rem;\n }\n\n .td-sponsor-card--bronze img,\n .td-sponsor-card--community img {\n max-height: 50px;\n }\n `}</style>\n );\n}\n"],"names":["SponsorCard","name","logo","href","tier","className","jsxs","Fragment","jsx","clsx","SponsorCardStyles"],"mappings":";;AAYO,SAASA,EAAY;AAAA,EAC1B,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,WAAAC;AACF,GAAqB;AACnB,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC,EAAK,mBAAmB,oBAAoBL,CAAI,IAAIC,CAAS;AAAA,QACxE,MAAAF;AAAA,QACA,QAAO;AAAA,QACP,KAAI;AAAA,QAEJ,UAAA,gBAAAK,EAAC,OAAA,EAAI,KAAKN,GAAM,KAAKD,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,sBAE5BS,GAAA,CAAA,CAAkB;AAAA,EAAA,GACrB;AAEJ;AAEA,SAASA,IAAoB;AAC3B,2BACG,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAoEN;AAEN;"}
|
package/dist/index24.js
ADDED
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
import { jsxs as p, Fragment as k, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as N, useCallback as u } from "react";
|
|
3
|
+
import { clsx as w } from "./index28.js";
|
|
4
|
+
const f = ["platinum", "gold", "silver", "bronze", "community"], z = {
|
|
5
|
+
platinum: { label: "Platinum", accent: "#E5E7EB" },
|
|
6
|
+
gold: { label: "Gold", accent: "#FCD34D" },
|
|
7
|
+
silver: { label: "Silver", accent: "#9CA3AF" },
|
|
8
|
+
bronze: { label: "Bronze", accent: "#D97706" },
|
|
9
|
+
community: { label: "Community", accent: "#E85A4F" }
|
|
10
|
+
};
|
|
11
|
+
function y({ sponsor: d, monochrome: c }) {
|
|
12
|
+
const n = N(null), _ = d.tier || "community", a = u((t) => {
|
|
13
|
+
const i = n.current;
|
|
14
|
+
if (!i) return;
|
|
15
|
+
const e = i.getBoundingClientRect(), m = t.clientX - e.left, h = t.clientY - e.top, x = e.width / 2, r = e.height / 2, s = (h - r) / r * -8, g = (m - x) / x * 8, b = m / e.width * 100, v = h / e.height * 100;
|
|
16
|
+
i.style.setProperty("--rotateX", `${s}deg`), i.style.setProperty("--rotateY", `${g}deg`), i.style.setProperty("--shineX", `${b}%`), i.style.setProperty("--shineY", `${v}%`);
|
|
17
|
+
}, []), l = u(() => {
|
|
18
|
+
const t = n.current;
|
|
19
|
+
t && (t.style.setProperty("--rotateX", "0deg"), t.style.setProperty("--rotateY", "0deg"));
|
|
20
|
+
}, []);
|
|
21
|
+
return /* @__PURE__ */ o(
|
|
22
|
+
"a",
|
|
23
|
+
{
|
|
24
|
+
ref: n,
|
|
25
|
+
href: d.href || "#",
|
|
26
|
+
target: "_blank",
|
|
27
|
+
rel: "noopener noreferrer",
|
|
28
|
+
className: `td-sponsor-grid__card td-sponsor-grid__card--${_}`,
|
|
29
|
+
title: d.name,
|
|
30
|
+
onMouseMove: a,
|
|
31
|
+
onMouseLeave: l,
|
|
32
|
+
children: /* @__PURE__ */ p("div", { className: "td-sponsor-grid__card-inner", children: [
|
|
33
|
+
/* @__PURE__ */ o("div", { className: "td-sponsor-grid__shine" }),
|
|
34
|
+
/* @__PURE__ */ o("div", { className: "td-sponsor-grid__logo-bg", children: /* @__PURE__ */ o(
|
|
35
|
+
"img",
|
|
36
|
+
{
|
|
37
|
+
src: d.logo,
|
|
38
|
+
alt: d.name,
|
|
39
|
+
className: w("td-sponsor-grid__logo", c && "td-sponsor-grid__logo--mono")
|
|
40
|
+
}
|
|
41
|
+
) }),
|
|
42
|
+
/* @__PURE__ */ o("span", { className: "td-sponsor-grid__name", children: d.name })
|
|
43
|
+
] })
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
function S({
|
|
48
|
+
title: d,
|
|
49
|
+
description: c,
|
|
50
|
+
sponsors: n,
|
|
51
|
+
showTierHeadings: _ = !1,
|
|
52
|
+
tier: a = "",
|
|
53
|
+
monochrome: l = !1,
|
|
54
|
+
children: t,
|
|
55
|
+
className: i
|
|
56
|
+
}) {
|
|
57
|
+
const e = a ? n.filter((r) => r.tier === a) : n, m = f.reduce((r, s) => (r[s] = e.filter((g) => (g.tier || "community") === s), r), {}), h = (r, s) => {
|
|
58
|
+
if (s.length === 0) return null;
|
|
59
|
+
const g = z[r];
|
|
60
|
+
return /* @__PURE__ */ p("div", { className: "td-sponsor-grid__tier-section", children: [
|
|
61
|
+
_ && /* @__PURE__ */ p("div", { className: "td-sponsor-grid__tier-heading", children: [
|
|
62
|
+
/* @__PURE__ */ o(
|
|
63
|
+
"span",
|
|
64
|
+
{
|
|
65
|
+
className: "td-sponsor-grid__tier-dot",
|
|
66
|
+
style: { background: g.accent }
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
g.label,
|
|
70
|
+
" Sponsors"
|
|
71
|
+
] }),
|
|
72
|
+
/* @__PURE__ */ o("div", { className: `td-sponsor-grid__grid td-sponsor-grid__grid--${r}`, children: s.map((b) => /* @__PURE__ */ o(y, { sponsor: b, monochrome: l }, b.name)) })
|
|
73
|
+
] }, r);
|
|
74
|
+
}, x = !a && !_;
|
|
75
|
+
return /* @__PURE__ */ p(k, { children: [
|
|
76
|
+
/* @__PURE__ */ p("div", { className: w("td-sponsor-grid", i), children: [
|
|
77
|
+
(d || c) && /* @__PURE__ */ p("div", { className: "td-sponsor-grid__header", children: [
|
|
78
|
+
d && /* @__PURE__ */ o("h2", { className: "td-sponsor-grid__title", children: d }),
|
|
79
|
+
c && /* @__PURE__ */ o("p", { className: "td-sponsor-grid__description", children: c })
|
|
80
|
+
] }),
|
|
81
|
+
/* @__PURE__ */ o("div", { className: "td-sponsor-grid__body", children: _ ? f.map((r) => h(r, m[r])) : /* @__PURE__ */ o("div", { className: `td-sponsor-grid__grid td-sponsor-grid__grid--${x ? "mixed" : a || "mixed"}`, children: e.map((r) => /* @__PURE__ */ o(y, { sponsor: r, monochrome: l }, r.name)) }) }),
|
|
82
|
+
t && /* @__PURE__ */ o("div", { className: "td-sponsor-grid__footer", children: t })
|
|
83
|
+
] }),
|
|
84
|
+
/* @__PURE__ */ o(X, {})
|
|
85
|
+
] });
|
|
86
|
+
}
|
|
87
|
+
function X() {
|
|
88
|
+
return /* @__PURE__ */ o("style", { children: `
|
|
89
|
+
.td-sponsor-grid {
|
|
90
|
+
background: rgba(28, 36, 56, 0.8);
|
|
91
|
+
backdrop-filter: blur(12px);
|
|
92
|
+
-webkit-backdrop-filter: blur(12px);
|
|
93
|
+
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
94
|
+
border-radius: 0.875rem;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
box-shadow:
|
|
97
|
+
inset 0 1px 1px 0 rgba(255, 255, 255, 0.05),
|
|
98
|
+
0 8px 24px -4px rgba(0, 0, 0, 0.15);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.td-sponsor-grid__header {
|
|
102
|
+
text-align: center;
|
|
103
|
+
padding: 2rem 1.5rem;
|
|
104
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.td-sponsor-grid__title {
|
|
108
|
+
font-size: 1.5rem;
|
|
109
|
+
font-weight: 700;
|
|
110
|
+
color: white;
|
|
111
|
+
margin: 0;
|
|
112
|
+
letter-spacing: -0.01em;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.td-sponsor-grid__description {
|
|
116
|
+
font-size: 1rem;
|
|
117
|
+
color: rgba(209, 213, 219, 0.8);
|
|
118
|
+
margin: 0.75rem 0 0 0;
|
|
119
|
+
line-height: 1.6;
|
|
120
|
+
max-width: 500px;
|
|
121
|
+
margin-left: auto;
|
|
122
|
+
margin-right: auto;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.td-sponsor-grid__body {
|
|
126
|
+
padding: 1.5rem;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.td-sponsor-grid__tier-section {
|
|
130
|
+
margin-bottom: 2rem;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.td-sponsor-grid__tier-section:last-child {
|
|
134
|
+
margin-bottom: 0;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.td-sponsor-grid__tier-heading {
|
|
138
|
+
display: flex;
|
|
139
|
+
align-items: center;
|
|
140
|
+
gap: 0.5rem;
|
|
141
|
+
font-size: 0.75rem;
|
|
142
|
+
font-weight: 600;
|
|
143
|
+
text-transform: uppercase;
|
|
144
|
+
letter-spacing: 0.1em;
|
|
145
|
+
color: rgba(209, 213, 219, 0.6);
|
|
146
|
+
margin-bottom: 1rem;
|
|
147
|
+
padding-bottom: 0.75rem;
|
|
148
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.td-sponsor-grid__tier-dot {
|
|
152
|
+
width: 8px;
|
|
153
|
+
height: 8px;
|
|
154
|
+
border-radius: 50%;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.td-sponsor-grid__grid {
|
|
158
|
+
display: flex;
|
|
159
|
+
flex-wrap: wrap;
|
|
160
|
+
gap: 1rem;
|
|
161
|
+
justify-content: center;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* Card widths by tier */
|
|
165
|
+
.td-sponsor-grid__grid--platinum .td-sponsor-grid__card {
|
|
166
|
+
width: calc(50% - 0.5rem);
|
|
167
|
+
max-width: 280px;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@media (max-width: 639px) {
|
|
171
|
+
.td-sponsor-grid__grid--platinum .td-sponsor-grid__card {
|
|
172
|
+
width: 100%;
|
|
173
|
+
max-width: 280px;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.td-sponsor-grid__grid--gold .td-sponsor-grid__card {
|
|
178
|
+
width: calc(50% - 0.5rem);
|
|
179
|
+
max-width: 200px;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
@media (min-width: 768px) {
|
|
183
|
+
.td-sponsor-grid__grid--gold .td-sponsor-grid__card {
|
|
184
|
+
width: calc(33.333% - 0.667rem);
|
|
185
|
+
max-width: 200px;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.td-sponsor-grid__grid--silver .td-sponsor-grid__card,
|
|
190
|
+
.td-sponsor-grid__grid--bronze .td-sponsor-grid__card,
|
|
191
|
+
.td-sponsor-grid__grid--mixed .td-sponsor-grid__card,
|
|
192
|
+
.td-sponsor-grid__grid--community .td-sponsor-grid__card {
|
|
193
|
+
width: calc(50% - 0.5rem);
|
|
194
|
+
max-width: 160px;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
@media (min-width: 640px) {
|
|
198
|
+
.td-sponsor-grid__grid--silver .td-sponsor-grid__card,
|
|
199
|
+
.td-sponsor-grid__grid--bronze .td-sponsor-grid__card,
|
|
200
|
+
.td-sponsor-grid__grid--mixed .td-sponsor-grid__card,
|
|
201
|
+
.td-sponsor-grid__grid--community .td-sponsor-grid__card {
|
|
202
|
+
width: calc(33.333% - 0.667rem);
|
|
203
|
+
max-width: 160px;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
@media (min-width: 768px) {
|
|
208
|
+
.td-sponsor-grid__grid--silver .td-sponsor-grid__card,
|
|
209
|
+
.td-sponsor-grid__grid--bronze .td-sponsor-grid__card,
|
|
210
|
+
.td-sponsor-grid__grid--mixed .td-sponsor-grid__card,
|
|
211
|
+
.td-sponsor-grid__grid--community .td-sponsor-grid__card {
|
|
212
|
+
width: calc(25% - 0.75rem);
|
|
213
|
+
max-width: 160px;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/* Card with Apple TV parallax effect */
|
|
218
|
+
.td-sponsor-grid__card {
|
|
219
|
+
--rotateX: 0deg;
|
|
220
|
+
--rotateY: 0deg;
|
|
221
|
+
--shineX: 50%;
|
|
222
|
+
--shineY: 50%;
|
|
223
|
+
|
|
224
|
+
display: block;
|
|
225
|
+
perspective: 1000px;
|
|
226
|
+
text-decoration: none;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.td-sponsor-grid__card-inner {
|
|
230
|
+
position: relative;
|
|
231
|
+
display: flex;
|
|
232
|
+
flex-direction: column;
|
|
233
|
+
align-items: center;
|
|
234
|
+
justify-content: center;
|
|
235
|
+
gap: 0.75rem;
|
|
236
|
+
padding: 1.5rem;
|
|
237
|
+
min-height: 120px;
|
|
238
|
+
background: linear-gradient(
|
|
239
|
+
145deg,
|
|
240
|
+
rgba(255, 255, 255, 0.08) 0%,
|
|
241
|
+
rgba(255, 255, 255, 0.02) 100%
|
|
242
|
+
);
|
|
243
|
+
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
244
|
+
border-radius: 0.75rem;
|
|
245
|
+
transform-style: preserve-3d;
|
|
246
|
+
transform: rotateX(var(--rotateX)) rotateY(var(--rotateY));
|
|
247
|
+
transition: transform 0.1s ease-out, box-shadow 0.3s ease, border-color 0.3s ease;
|
|
248
|
+
overflow: hidden;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.td-sponsor-grid__card:hover .td-sponsor-grid__card-inner {
|
|
252
|
+
border-color: rgba(255, 255, 255, 0.15);
|
|
253
|
+
box-shadow:
|
|
254
|
+
0 20px 40px -10px rgba(0, 0, 0, 0.3),
|
|
255
|
+
0 10px 20px -5px rgba(0, 0, 0, 0.2),
|
|
256
|
+
inset 0 1px 2px rgba(255, 255, 255, 0.1);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* Shine effect */
|
|
260
|
+
.td-sponsor-grid__shine {
|
|
261
|
+
position: absolute;
|
|
262
|
+
inset: 0;
|
|
263
|
+
background: radial-gradient(
|
|
264
|
+
circle at var(--shineX) var(--shineY),
|
|
265
|
+
rgba(255, 255, 255, 0.15) 0%,
|
|
266
|
+
transparent 60%
|
|
267
|
+
);
|
|
268
|
+
opacity: 0;
|
|
269
|
+
transition: opacity 0.3s ease;
|
|
270
|
+
pointer-events: none;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.td-sponsor-grid__card:hover .td-sponsor-grid__shine {
|
|
274
|
+
opacity: 1;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.td-sponsor-grid__logo-bg {
|
|
278
|
+
display: flex;
|
|
279
|
+
align-items: center;
|
|
280
|
+
justify-content: center;
|
|
281
|
+
padding: 1rem;
|
|
282
|
+
background: white;
|
|
283
|
+
border-radius: 0.5rem;
|
|
284
|
+
transform: translateZ(20px);
|
|
285
|
+
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
|
286
|
+
width: 100%;
|
|
287
|
+
max-width: 160px;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.td-sponsor-grid__card:hover .td-sponsor-grid__logo-bg {
|
|
291
|
+
transform: translateZ(30px) scale(1.05);
|
|
292
|
+
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.td-sponsor-grid__logo {
|
|
296
|
+
max-width: 100%;
|
|
297
|
+
max-height: 50px;
|
|
298
|
+
height: auto;
|
|
299
|
+
display: block;
|
|
300
|
+
object-fit: contain;
|
|
301
|
+
transition: opacity 0.3s ease, filter 0.3s ease;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.td-sponsor-grid__logo--mono {
|
|
305
|
+
filter: brightness(0) invert(1);
|
|
306
|
+
opacity: 0.9;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.td-sponsor-grid__name {
|
|
310
|
+
font-size: 0.75rem;
|
|
311
|
+
font-weight: 500;
|
|
312
|
+
color: rgba(209, 213, 219, 0.6);
|
|
313
|
+
text-align: center;
|
|
314
|
+
transform: translateZ(10px);
|
|
315
|
+
transition: color 0.3s ease;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.td-sponsor-grid__card:hover .td-sponsor-grid__name {
|
|
319
|
+
color: rgba(255, 255, 255, 0.8);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/* Tier-based card sizing */
|
|
323
|
+
.td-sponsor-grid__card--platinum .td-sponsor-grid__card-inner {
|
|
324
|
+
min-height: 180px;
|
|
325
|
+
padding: 2rem;
|
|
326
|
+
background: linear-gradient(
|
|
327
|
+
145deg,
|
|
328
|
+
rgba(255, 255, 255, 0.12) 0%,
|
|
329
|
+
rgba(255, 255, 255, 0.04) 100%
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.td-sponsor-grid__card--platinum .td-sponsor-grid__logo {
|
|
334
|
+
max-height: 100px;
|
|
335
|
+
max-width: 85%;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
.td-sponsor-grid__card--gold .td-sponsor-grid__card-inner {
|
|
339
|
+
min-height: 150px;
|
|
340
|
+
background: linear-gradient(
|
|
341
|
+
145deg,
|
|
342
|
+
rgba(252, 211, 77, 0.1) 0%,
|
|
343
|
+
rgba(255, 255, 255, 0.03) 100%
|
|
344
|
+
);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.td-sponsor-grid__card--gold .td-sponsor-grid__logo {
|
|
348
|
+
max-height: 80px;
|
|
349
|
+
max-width: 85%;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.td-sponsor-grid__card--silver .td-sponsor-grid__card-inner {
|
|
353
|
+
min-height: 130px;
|
|
354
|
+
background: linear-gradient(
|
|
355
|
+
145deg,
|
|
356
|
+
rgba(156, 163, 175, 0.08) 0%,
|
|
357
|
+
rgba(255, 255, 255, 0.02) 100%
|
|
358
|
+
);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.td-sponsor-grid__card--silver .td-sponsor-grid__logo {
|
|
362
|
+
max-height: 70px;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.td-sponsor-grid__card--bronze .td-sponsor-grid__card-inner,
|
|
366
|
+
.td-sponsor-grid__card--community .td-sponsor-grid__card-inner {
|
|
367
|
+
min-height: 100px;
|
|
368
|
+
padding: 1.25rem;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
.td-sponsor-grid__card--bronze .td-sponsor-grid__logo,
|
|
372
|
+
.td-sponsor-grid__card--community .td-sponsor-grid__logo {
|
|
373
|
+
max-height: 50px;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
.td-sponsor-grid__footer {
|
|
377
|
+
padding: 1.5rem;
|
|
378
|
+
display: flex;
|
|
379
|
+
justify-content: center;
|
|
380
|
+
gap: 1rem;
|
|
381
|
+
flex-wrap: wrap;
|
|
382
|
+
background: rgba(0, 0, 0, 0.2);
|
|
383
|
+
border-top: 1px solid rgba(255, 255, 255, 0.05);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
.td-sponsor-grid__footer:empty {
|
|
387
|
+
display: none;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/* Reduced motion */
|
|
391
|
+
@media (prefers-reduced-motion: reduce) {
|
|
392
|
+
.td-sponsor-grid__card-inner {
|
|
393
|
+
transform: none !important;
|
|
394
|
+
transition: box-shadow 0.3s ease, border-color 0.3s ease;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
.td-sponsor-grid__shine {
|
|
398
|
+
display: none;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
` });
|
|
402
|
+
}
|
|
403
|
+
export {
|
|
404
|
+
S as SponsorGrid
|
|
405
|
+
};
|
|
406
|
+
//# sourceMappingURL=index24.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index24.js","sources":["../src/components/SponsorGrid.tsx"],"sourcesContent":["'use client';\n\nimport { ReactNode, useRef, useCallback } from 'react';\nimport { clsx } from 'clsx';\n\nexport type SponsorTier = 'platinum' | 'gold' | 'silver' | 'bronze' | 'community';\n\nexport interface Sponsor {\n name: string;\n logo: string;\n href?: string;\n tier?: SponsorTier;\n}\n\nexport interface SponsorGridProps {\n title?: string;\n description?: string;\n sponsors: Sponsor[];\n showTierHeadings?: boolean;\n tier?: SponsorTier | '';\n /** Force all logos to display as white monochrome */\n monochrome?: boolean;\n children?: ReactNode;\n className?: string;\n}\n\nconst TIER_ORDER: SponsorTier[] = ['platinum', 'gold', 'silver', 'bronze', 'community'];\n\nconst TIER_CONFIG: Record<SponsorTier, { label: string; accent: string }> = {\n platinum: { label: 'Platinum', accent: '#E5E7EB' },\n gold: { label: 'Gold', accent: '#FCD34D' },\n silver: { label: 'Silver', accent: '#9CA3AF' },\n bronze: { label: 'Bronze', accent: '#D97706' },\n community: { label: 'Community', accent: '#E85A4F' },\n};\n\nfunction SponsorCard({ sponsor, monochrome }: { sponsor: Sponsor; monochrome?: boolean }) {\n const cardRef = useRef<HTMLAnchorElement>(null);\n const tierClass = sponsor.tier || 'community';\n\n const handleMouseMove = useCallback((e: React.MouseEvent<HTMLAnchorElement>) => {\n const card = cardRef.current;\n if (!card) return;\n\n const rect = card.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n const centerX = rect.width / 2;\n const centerY = rect.height / 2;\n\n // Calculate rotation (max 8 degrees)\n const rotateX = ((y - centerY) / centerY) * -8;\n const rotateY = ((x - centerX) / centerX) * 8;\n\n // Calculate shine position\n const shineX = (x / rect.width) * 100;\n const shineY = (y / rect.height) * 100;\n\n card.style.setProperty('--rotateX', `${rotateX}deg`);\n card.style.setProperty('--rotateY', `${rotateY}deg`);\n card.style.setProperty('--shineX', `${shineX}%`);\n card.style.setProperty('--shineY', `${shineY}%`);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n const card = cardRef.current;\n if (!card) return;\n\n card.style.setProperty('--rotateX', '0deg');\n card.style.setProperty('--rotateY', '0deg');\n }, []);\n\n return (\n <a\n ref={cardRef}\n href={sponsor.href || '#'}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`td-sponsor-grid__card td-sponsor-grid__card--${tierClass}`}\n title={sponsor.name}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n >\n <div className=\"td-sponsor-grid__card-inner\">\n <div className=\"td-sponsor-grid__shine\" />\n <div className=\"td-sponsor-grid__logo-bg\">\n <img\n src={sponsor.logo}\n alt={sponsor.name}\n className={clsx('td-sponsor-grid__logo', monochrome && 'td-sponsor-grid__logo--mono')}\n />\n </div>\n <span className=\"td-sponsor-grid__name\">{sponsor.name}</span>\n </div>\n </a>\n );\n}\n\nexport function SponsorGrid({\n title,\n description,\n sponsors,\n showTierHeadings = false,\n tier = '',\n monochrome = false,\n children,\n className,\n}: SponsorGridProps) {\n // Filter sponsors by tier if specified\n const filteredSponsors = tier\n ? sponsors.filter((s) => s.tier === tier)\n : sponsors;\n\n // Group sponsors by tier\n const sponsorsByTier = TIER_ORDER.reduce((acc, t) => {\n acc[t] = filteredSponsors.filter((s) => (s.tier || 'community') === t);\n return acc;\n }, {} as Record<SponsorTier, Sponsor[]>);\n\n const renderTierSection = (tierName: SponsorTier, tierSponsors: Sponsor[]) => {\n if (tierSponsors.length === 0) return null;\n\n const config = TIER_CONFIG[tierName];\n\n return (\n <div key={tierName} className=\"td-sponsor-grid__tier-section\">\n {showTierHeadings && (\n <div className=\"td-sponsor-grid__tier-heading\">\n <span\n className=\"td-sponsor-grid__tier-dot\"\n style={{ background: config.accent }}\n />\n {config.label} Sponsors\n </div>\n )}\n <div className={`td-sponsor-grid__grid td-sponsor-grid__grid--${tierName}`}>\n {tierSponsors.map((sponsor) => (\n <SponsorCard key={sponsor.name} sponsor={sponsor} monochrome={monochrome} />\n ))}\n </div>\n </div>\n );\n };\n\n const hasMixedTiers = !tier && !showTierHeadings;\n\n return (\n <>\n <div className={clsx('td-sponsor-grid', className)}>\n {(title || description) && (\n <div className=\"td-sponsor-grid__header\">\n {title && <h2 className=\"td-sponsor-grid__title\">{title}</h2>}\n {description && <p className=\"td-sponsor-grid__description\">{description}</p>}\n </div>\n )}\n\n <div className=\"td-sponsor-grid__body\">\n {showTierHeadings ? (\n TIER_ORDER.map((t) => renderTierSection(t, sponsorsByTier[t]))\n ) : (\n <div className={`td-sponsor-grid__grid td-sponsor-grid__grid--${hasMixedTiers ? 'mixed' : tier || 'mixed'}`}>\n {filteredSponsors.map((sponsor) => (\n <SponsorCard key={sponsor.name} sponsor={sponsor} monochrome={monochrome} />\n ))}\n </div>\n )}\n </div>\n\n {children && (\n <div className=\"td-sponsor-grid__footer\">\n {children}\n </div>\n )}\n </div>\n <SponsorGridStyles />\n </>\n );\n}\n\nfunction SponsorGridStyles() {\n return (\n <style>{`\n .td-sponsor-grid {\n background: rgba(28, 36, 56, 0.8);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n border: 1px solid rgba(255, 255, 255, 0.05);\n border-radius: 0.875rem;\n overflow: hidden;\n box-shadow:\n inset 0 1px 1px 0 rgba(255, 255, 255, 0.05),\n 0 8px 24px -4px rgba(0, 0, 0, 0.15);\n }\n\n .td-sponsor-grid__header {\n text-align: center;\n padding: 2rem 1.5rem;\n border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n }\n\n .td-sponsor-grid__title {\n font-size: 1.5rem;\n font-weight: 700;\n color: white;\n margin: 0;\n letter-spacing: -0.01em;\n }\n\n .td-sponsor-grid__description {\n font-size: 1rem;\n color: rgba(209, 213, 219, 0.8);\n margin: 0.75rem 0 0 0;\n line-height: 1.6;\n max-width: 500px;\n margin-left: auto;\n margin-right: auto;\n }\n\n .td-sponsor-grid__body {\n padding: 1.5rem;\n }\n\n .td-sponsor-grid__tier-section {\n margin-bottom: 2rem;\n }\n\n .td-sponsor-grid__tier-section:last-child {\n margin-bottom: 0;\n }\n\n .td-sponsor-grid__tier-heading {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n color: rgba(209, 213, 219, 0.6);\n margin-bottom: 1rem;\n padding-bottom: 0.75rem;\n border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n }\n\n .td-sponsor-grid__tier-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n }\n\n .td-sponsor-grid__grid {\n display: flex;\n flex-wrap: wrap;\n gap: 1rem;\n justify-content: center;\n }\n\n /* Card widths by tier */\n .td-sponsor-grid__grid--platinum .td-sponsor-grid__card {\n width: calc(50% - 0.5rem);\n max-width: 280px;\n }\n\n @media (max-width: 639px) {\n .td-sponsor-grid__grid--platinum .td-sponsor-grid__card {\n width: 100%;\n max-width: 280px;\n }\n }\n\n .td-sponsor-grid__grid--gold .td-sponsor-grid__card {\n width: calc(50% - 0.5rem);\n max-width: 200px;\n }\n\n @media (min-width: 768px) {\n .td-sponsor-grid__grid--gold .td-sponsor-grid__card {\n width: calc(33.333% - 0.667rem);\n max-width: 200px;\n }\n }\n\n .td-sponsor-grid__grid--silver .td-sponsor-grid__card,\n .td-sponsor-grid__grid--bronze .td-sponsor-grid__card,\n .td-sponsor-grid__grid--mixed .td-sponsor-grid__card,\n .td-sponsor-grid__grid--community .td-sponsor-grid__card {\n width: calc(50% - 0.5rem);\n max-width: 160px;\n }\n\n @media (min-width: 640px) {\n .td-sponsor-grid__grid--silver .td-sponsor-grid__card,\n .td-sponsor-grid__grid--bronze .td-sponsor-grid__card,\n .td-sponsor-grid__grid--mixed .td-sponsor-grid__card,\n .td-sponsor-grid__grid--community .td-sponsor-grid__card {\n width: calc(33.333% - 0.667rem);\n max-width: 160px;\n }\n }\n\n @media (min-width: 768px) {\n .td-sponsor-grid__grid--silver .td-sponsor-grid__card,\n .td-sponsor-grid__grid--bronze .td-sponsor-grid__card,\n .td-sponsor-grid__grid--mixed .td-sponsor-grid__card,\n .td-sponsor-grid__grid--community .td-sponsor-grid__card {\n width: calc(25% - 0.75rem);\n max-width: 160px;\n }\n }\n\n /* Card with Apple TV parallax effect */\n .td-sponsor-grid__card {\n --rotateX: 0deg;\n --rotateY: 0deg;\n --shineX: 50%;\n --shineY: 50%;\n\n display: block;\n perspective: 1000px;\n text-decoration: none;\n }\n\n .td-sponsor-grid__card-inner {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.75rem;\n padding: 1.5rem;\n min-height: 120px;\n background: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.08) 0%,\n rgba(255, 255, 255, 0.02) 100%\n );\n border: 1px solid rgba(255, 255, 255, 0.08);\n border-radius: 0.75rem;\n transform-style: preserve-3d;\n transform: rotateX(var(--rotateX)) rotateY(var(--rotateY));\n transition: transform 0.1s ease-out, box-shadow 0.3s ease, border-color 0.3s ease;\n overflow: hidden;\n }\n\n .td-sponsor-grid__card:hover .td-sponsor-grid__card-inner {\n border-color: rgba(255, 255, 255, 0.15);\n box-shadow:\n 0 20px 40px -10px rgba(0, 0, 0, 0.3),\n 0 10px 20px -5px rgba(0, 0, 0, 0.2),\n inset 0 1px 2px rgba(255, 255, 255, 0.1);\n }\n\n /* Shine effect */\n .td-sponsor-grid__shine {\n position: absolute;\n inset: 0;\n background: radial-gradient(\n circle at var(--shineX) var(--shineY),\n rgba(255, 255, 255, 0.15) 0%,\n transparent 60%\n );\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n }\n\n .td-sponsor-grid__card:hover .td-sponsor-grid__shine {\n opacity: 1;\n }\n\n .td-sponsor-grid__logo-bg {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1rem;\n background: white;\n border-radius: 0.5rem;\n transform: translateZ(20px);\n transition: transform 0.3s ease, box-shadow 0.3s ease;\n width: 100%;\n max-width: 160px;\n }\n\n .td-sponsor-grid__card:hover .td-sponsor-grid__logo-bg {\n transform: translateZ(30px) scale(1.05);\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);\n }\n\n .td-sponsor-grid__logo {\n max-width: 100%;\n max-height: 50px;\n height: auto;\n display: block;\n object-fit: contain;\n transition: opacity 0.3s ease, filter 0.3s ease;\n }\n\n .td-sponsor-grid__logo--mono {\n filter: brightness(0) invert(1);\n opacity: 0.9;\n }\n\n .td-sponsor-grid__name {\n font-size: 0.75rem;\n font-weight: 500;\n color: rgba(209, 213, 219, 0.6);\n text-align: center;\n transform: translateZ(10px);\n transition: color 0.3s ease;\n }\n\n .td-sponsor-grid__card:hover .td-sponsor-grid__name {\n color: rgba(255, 255, 255, 0.8);\n }\n\n /* Tier-based card sizing */\n .td-sponsor-grid__card--platinum .td-sponsor-grid__card-inner {\n min-height: 180px;\n padding: 2rem;\n background: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.12) 0%,\n rgba(255, 255, 255, 0.04) 100%\n );\n }\n\n .td-sponsor-grid__card--platinum .td-sponsor-grid__logo {\n max-height: 100px;\n max-width: 85%;\n }\n\n .td-sponsor-grid__card--gold .td-sponsor-grid__card-inner {\n min-height: 150px;\n background: linear-gradient(\n 145deg,\n rgba(252, 211, 77, 0.1) 0%,\n rgba(255, 255, 255, 0.03) 100%\n );\n }\n\n .td-sponsor-grid__card--gold .td-sponsor-grid__logo {\n max-height: 80px;\n max-width: 85%;\n }\n\n .td-sponsor-grid__card--silver .td-sponsor-grid__card-inner {\n min-height: 130px;\n background: linear-gradient(\n 145deg,\n rgba(156, 163, 175, 0.08) 0%,\n rgba(255, 255, 255, 0.02) 100%\n );\n }\n\n .td-sponsor-grid__card--silver .td-sponsor-grid__logo {\n max-height: 70px;\n }\n\n .td-sponsor-grid__card--bronze .td-sponsor-grid__card-inner,\n .td-sponsor-grid__card--community .td-sponsor-grid__card-inner {\n min-height: 100px;\n padding: 1.25rem;\n }\n\n .td-sponsor-grid__card--bronze .td-sponsor-grid__logo,\n .td-sponsor-grid__card--community .td-sponsor-grid__logo {\n max-height: 50px;\n }\n\n .td-sponsor-grid__footer {\n padding: 1.5rem;\n display: flex;\n justify-content: center;\n gap: 1rem;\n flex-wrap: wrap;\n background: rgba(0, 0, 0, 0.2);\n border-top: 1px solid rgba(255, 255, 255, 0.05);\n }\n\n .td-sponsor-grid__footer:empty {\n display: none;\n }\n\n /* Reduced motion */\n @media (prefers-reduced-motion: reduce) {\n .td-sponsor-grid__card-inner {\n transform: none !important;\n transition: box-shadow 0.3s ease, border-color 0.3s ease;\n }\n\n .td-sponsor-grid__shine {\n display: none;\n }\n }\n `}</style>\n );\n}\n"],"names":["TIER_ORDER","TIER_CONFIG","SponsorCard","sponsor","monochrome","cardRef","useRef","tierClass","handleMouseMove","useCallback","e","card","rect","x","y","centerX","centerY","rotateX","rotateY","shineX","shineY","handleMouseLeave","jsx","jsxs","clsx","SponsorGrid","title","description","sponsors","showTierHeadings","tier","children","className","filteredSponsors","s","sponsorsByTier","acc","t","renderTierSection","tierName","tierSponsors","config","hasMixedTiers","Fragment","SponsorGridStyles"],"mappings":"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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAyTN;AAEN;"}
|