@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/index21.js
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { jsxs as t, Fragment as h, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { clsx as b } from "./index28.js";
|
|
3
|
+
import { Avatar as w } from "./index4.js";
|
|
4
|
+
import { Icon as k } from "./index3.js";
|
|
5
|
+
const z = {
|
|
6
|
+
compact: "md",
|
|
7
|
+
featured: "2xl",
|
|
8
|
+
author: "lg",
|
|
9
|
+
default: "xl"
|
|
10
|
+
}, v = {
|
|
11
|
+
github: "github",
|
|
12
|
+
twitter: "twitter",
|
|
13
|
+
linkedin: "linkedin",
|
|
14
|
+
website: "globe",
|
|
15
|
+
email: "mail"
|
|
16
|
+
};
|
|
17
|
+
function F({
|
|
18
|
+
name: n,
|
|
19
|
+
role: d,
|
|
20
|
+
organization: c,
|
|
21
|
+
bio: s,
|
|
22
|
+
photo: _,
|
|
23
|
+
socials: a,
|
|
24
|
+
variant: o = "default",
|
|
25
|
+
href: i,
|
|
26
|
+
children: g,
|
|
27
|
+
className: f
|
|
28
|
+
}) {
|
|
29
|
+
const u = z[o], p = /* @__PURE__ */ t(h, { children: [
|
|
30
|
+
/* @__PURE__ */ r(
|
|
31
|
+
w,
|
|
32
|
+
{
|
|
33
|
+
src: _,
|
|
34
|
+
name: n,
|
|
35
|
+
size: u,
|
|
36
|
+
ring: o === "featured"
|
|
37
|
+
}
|
|
38
|
+
),
|
|
39
|
+
/* @__PURE__ */ t("div", { className: "td-person-card__content", children: [
|
|
40
|
+
/* @__PURE__ */ r("h3", { className: "td-person-card__name", children: n }),
|
|
41
|
+
d && /* @__PURE__ */ r("p", { className: "td-person-card__role", children: d }),
|
|
42
|
+
c && /* @__PURE__ */ r("p", { className: "td-person-card__org", children: c }),
|
|
43
|
+
s && /* @__PURE__ */ r("p", { className: "td-person-card__bio", children: s }),
|
|
44
|
+
a && a.length > 0 && /* @__PURE__ */ r("div", { className: "td-person-card__socials", children: a.map((e, x) => /* @__PURE__ */ r(
|
|
45
|
+
"a",
|
|
46
|
+
{
|
|
47
|
+
className: "td-person-card__social-link",
|
|
48
|
+
href: e.platform === "email" ? `mailto:${e.url}` : e.url,
|
|
49
|
+
target: e.platform === "email" ? "_self" : "_blank",
|
|
50
|
+
rel: "noopener noreferrer",
|
|
51
|
+
title: e.platform,
|
|
52
|
+
children: /* @__PURE__ */ r(k, { name: v[e.platform] || "link", size: "sm" })
|
|
53
|
+
},
|
|
54
|
+
x
|
|
55
|
+
)) }),
|
|
56
|
+
g
|
|
57
|
+
] })
|
|
58
|
+
] }), l = b(
|
|
59
|
+
"td-person-card",
|
|
60
|
+
`td-person-card--${o}`,
|
|
61
|
+
f
|
|
62
|
+
);
|
|
63
|
+
return i ? /* @__PURE__ */ t("a", { href: i, className: l, children: [
|
|
64
|
+
p,
|
|
65
|
+
/* @__PURE__ */ r(m, {})
|
|
66
|
+
] }) : /* @__PURE__ */ t("div", { className: l, children: [
|
|
67
|
+
p,
|
|
68
|
+
/* @__PURE__ */ r(m, {})
|
|
69
|
+
] });
|
|
70
|
+
}
|
|
71
|
+
function m() {
|
|
72
|
+
return /* @__PURE__ */ r("style", { children: `
|
|
73
|
+
.td-person-card {
|
|
74
|
+
display: flex;
|
|
75
|
+
background: rgba(28, 36, 56, 0.8);
|
|
76
|
+
backdrop-filter: blur(12px);
|
|
77
|
+
-webkit-backdrop-filter: blur(12px);
|
|
78
|
+
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
79
|
+
border-radius: 0.75rem;
|
|
80
|
+
overflow: hidden;
|
|
81
|
+
transition: all 0.2s ease;
|
|
82
|
+
box-shadow:
|
|
83
|
+
inset 0 1px 1px 0 rgba(255, 255, 255, 0.05),
|
|
84
|
+
0 8px 24px -4px rgba(0, 0, 0, 0.15);
|
|
85
|
+
text-decoration: none;
|
|
86
|
+
color: inherit;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.td-person-card:hover {
|
|
90
|
+
transform: translateY(-4px);
|
|
91
|
+
box-shadow:
|
|
92
|
+
inset 0 1px 1px 0 rgba(255, 255, 255, 0.08),
|
|
93
|
+
0 16px 32px -8px rgba(0, 0, 0, 0.2);
|
|
94
|
+
border-color: rgba(255, 255, 255, 0.1);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.td-person-card__content {
|
|
98
|
+
flex: 1;
|
|
99
|
+
min-width: 0;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.td-person-card__name {
|
|
103
|
+
font-weight: 700;
|
|
104
|
+
color: white;
|
|
105
|
+
margin: 0;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.td-person-card__role {
|
|
109
|
+
color: #E85A4F;
|
|
110
|
+
font-weight: 500;
|
|
111
|
+
margin: 0;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.td-person-card__org {
|
|
115
|
+
color: rgba(209, 213, 219, 0.6);
|
|
116
|
+
font-size: 0.875rem;
|
|
117
|
+
margin: 0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.td-person-card__bio {
|
|
121
|
+
color: rgba(209, 213, 219, 0.8);
|
|
122
|
+
margin: 0;
|
|
123
|
+
line-height: 1.6;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.td-person-card__socials {
|
|
127
|
+
display: flex;
|
|
128
|
+
gap: 0.75rem;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.td-person-card__social-link {
|
|
132
|
+
display: flex;
|
|
133
|
+
align-items: center;
|
|
134
|
+
justify-content: center;
|
|
135
|
+
width: 32px;
|
|
136
|
+
height: 32px;
|
|
137
|
+
border-radius: 0.375rem;
|
|
138
|
+
background: rgba(255, 255, 255, 0.1);
|
|
139
|
+
color: rgba(209, 213, 219, 0.8);
|
|
140
|
+
transition: all 0.15s ease;
|
|
141
|
+
text-decoration: none;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.td-person-card__social-link:hover {
|
|
145
|
+
background: #E85A4F;
|
|
146
|
+
color: white;
|
|
147
|
+
transform: translateY(-2px);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* Default variant */
|
|
151
|
+
.td-person-card--default {
|
|
152
|
+
flex-direction: column;
|
|
153
|
+
align-items: center;
|
|
154
|
+
text-align: center;
|
|
155
|
+
padding: 2rem;
|
|
156
|
+
gap: 1rem;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.td-person-card--default .td-person-card__name {
|
|
160
|
+
font-size: 1.25rem;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.td-person-card--default .td-person-card__role {
|
|
164
|
+
font-size: 0.875rem;
|
|
165
|
+
margin-top: 0.25rem;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.td-person-card--default .td-person-card__bio {
|
|
169
|
+
font-size: 0.875rem;
|
|
170
|
+
margin-top: 0.75rem;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.td-person-card--default .td-person-card__socials {
|
|
174
|
+
margin-top: 1rem;
|
|
175
|
+
justify-content: center;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* Compact variant */
|
|
179
|
+
.td-person-card--compact {
|
|
180
|
+
flex-direction: row;
|
|
181
|
+
align-items: center;
|
|
182
|
+
padding: 1rem;
|
|
183
|
+
gap: 1rem;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.td-person-card--compact .td-person-card__content {
|
|
187
|
+
display: flex;
|
|
188
|
+
flex-direction: column;
|
|
189
|
+
gap: 0.125rem;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.td-person-card--compact .td-person-card__name {
|
|
193
|
+
font-size: 1rem;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.td-person-card--compact .td-person-card__role {
|
|
197
|
+
font-size: 0.75rem;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.td-person-card--compact .td-person-card__bio,
|
|
201
|
+
.td-person-card--compact .td-person-card__socials {
|
|
202
|
+
display: none;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/* Featured variant */
|
|
206
|
+
.td-person-card--featured {
|
|
207
|
+
flex-direction: column;
|
|
208
|
+
padding: 2.5rem;
|
|
209
|
+
gap: 1.5rem;
|
|
210
|
+
align-items: center;
|
|
211
|
+
text-align: center;
|
|
212
|
+
background: linear-gradient(135deg, rgba(28, 36, 56, 0.9) 0%, rgba(43, 52, 71, 0.9) 100%);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.td-person-card--featured .td-person-card__name {
|
|
216
|
+
font-size: 1.5rem;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.td-person-card--featured .td-person-card__role {
|
|
220
|
+
font-size: 1rem;
|
|
221
|
+
margin-top: 0.25rem;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.td-person-card--featured .td-person-card__bio {
|
|
225
|
+
font-size: 1rem;
|
|
226
|
+
margin-top: 1rem;
|
|
227
|
+
max-width: 400px;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.td-person-card--featured .td-person-card__socials {
|
|
231
|
+
margin-top: 1.5rem;
|
|
232
|
+
justify-content: center;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/* Author variant */
|
|
236
|
+
.td-person-card--author {
|
|
237
|
+
flex-direction: row;
|
|
238
|
+
align-items: flex-start;
|
|
239
|
+
padding: 1.5rem;
|
|
240
|
+
gap: 1rem;
|
|
241
|
+
background: rgba(28, 36, 56, 0.8);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.td-person-card--author .td-person-card__content {
|
|
245
|
+
display: flex;
|
|
246
|
+
flex-direction: column;
|
|
247
|
+
gap: 0.25rem;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.td-person-card--author .td-person-card__name {
|
|
251
|
+
font-size: 1rem;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.td-person-card--author .td-person-card__role {
|
|
255
|
+
font-size: 0.75rem;
|
|
256
|
+
color: #E85A4F;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.td-person-card--author .td-person-card__bio {
|
|
260
|
+
font-size: 0.875rem;
|
|
261
|
+
margin-top: 0.5rem;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.td-person-card--author .td-person-card__socials {
|
|
265
|
+
margin-top: 0.75rem;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.td-person-card--author .td-person-card__social-link {
|
|
269
|
+
width: 28px;
|
|
270
|
+
height: 28px;
|
|
271
|
+
}
|
|
272
|
+
` });
|
|
273
|
+
}
|
|
274
|
+
export {
|
|
275
|
+
F as PersonCard
|
|
276
|
+
};
|
|
277
|
+
//# sourceMappingURL=index21.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index21.js","sources":["../src/components/PersonCard.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { clsx } from 'clsx';\nimport { Avatar, AvatarSize } from './Avatar';\nimport { Icon } from './Icon';\n\nexport type PersonCardVariant = 'default' | 'compact' | 'featured' | 'author';\n\nexport interface SocialLink {\n platform: 'github' | 'twitter' | 'linkedin' | 'website' | 'email';\n url: string;\n}\n\nexport interface PersonCardProps {\n name: string;\n role?: string;\n organization?: string;\n bio?: string;\n photo?: string;\n socials?: SocialLink[];\n variant?: PersonCardVariant;\n href?: string;\n children?: ReactNode;\n className?: string;\n}\n\nconst avatarSizeMap: Record<PersonCardVariant, AvatarSize> = {\n compact: 'md',\n featured: '2xl',\n author: 'lg',\n default: 'xl',\n};\n\nconst socialIconMap: Record<string, string> = {\n github: 'github',\n twitter: 'twitter',\n linkedin: 'linkedin',\n website: 'globe',\n email: 'mail',\n};\n\nexport function PersonCard({\n name,\n role,\n organization,\n bio,\n photo,\n socials,\n variant = 'default',\n href,\n children,\n className,\n}: PersonCardProps) {\n const avatarSize = avatarSizeMap[variant];\n\n const content = (\n <>\n <Avatar\n src={photo}\n name={name}\n size={avatarSize}\n ring={variant === 'featured'}\n />\n\n <div className=\"td-person-card__content\">\n <h3 className=\"td-person-card__name\">{name}</h3>\n {role && <p className=\"td-person-card__role\">{role}</p>}\n {organization && <p className=\"td-person-card__org\">{organization}</p>}\n {bio && <p className=\"td-person-card__bio\">{bio}</p>}\n\n {socials && socials.length > 0 && (\n <div className=\"td-person-card__socials\">\n {socials.map((social, i) => (\n <a\n key={i}\n className=\"td-person-card__social-link\"\n href={social.platform === 'email' ? `mailto:${social.url}` : social.url}\n target={social.platform === 'email' ? '_self' : '_blank'}\n rel=\"noopener noreferrer\"\n title={social.platform}\n >\n <Icon name={socialIconMap[social.platform] || 'link'} size=\"sm\" />\n </a>\n ))}\n </div>\n )}\n\n {children}\n </div>\n </>\n );\n\n const cardClass = clsx(\n 'td-person-card',\n `td-person-card--${variant}`,\n className\n );\n\n if (href) {\n return (\n <a href={href} className={cardClass}>\n {content}\n <PersonCardStyles />\n </a>\n );\n }\n\n return (\n <div className={cardClass}>\n {content}\n <PersonCardStyles />\n </div>\n );\n}\n\nfunction PersonCardStyles() {\n return (\n <style>{`\n .td-person-card {\n display: flex;\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.75rem;\n overflow: hidden;\n transition: all 0.2s ease;\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 text-decoration: none;\n color: inherit;\n }\n\n .td-person-card:hover {\n transform: translateY(-4px);\n box-shadow:\n inset 0 1px 1px 0 rgba(255, 255, 255, 0.08),\n 0 16px 32px -8px rgba(0, 0, 0, 0.2);\n border-color: rgba(255, 255, 255, 0.1);\n }\n\n .td-person-card__content {\n flex: 1;\n min-width: 0;\n }\n\n .td-person-card__name {\n font-weight: 700;\n color: white;\n margin: 0;\n }\n\n .td-person-card__role {\n color: #E85A4F;\n font-weight: 500;\n margin: 0;\n }\n\n .td-person-card__org {\n color: rgba(209, 213, 219, 0.6);\n font-size: 0.875rem;\n margin: 0;\n }\n\n .td-person-card__bio {\n color: rgba(209, 213, 219, 0.8);\n margin: 0;\n line-height: 1.6;\n }\n\n .td-person-card__socials {\n display: flex;\n gap: 0.75rem;\n }\n\n .td-person-card__social-link {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 0.375rem;\n background: rgba(255, 255, 255, 0.1);\n color: rgba(209, 213, 219, 0.8);\n transition: all 0.15s ease;\n text-decoration: none;\n }\n\n .td-person-card__social-link:hover {\n background: #E85A4F;\n color: white;\n transform: translateY(-2px);\n }\n\n /* Default variant */\n .td-person-card--default {\n flex-direction: column;\n align-items: center;\n text-align: center;\n padding: 2rem;\n gap: 1rem;\n }\n\n .td-person-card--default .td-person-card__name {\n font-size: 1.25rem;\n }\n\n .td-person-card--default .td-person-card__role {\n font-size: 0.875rem;\n margin-top: 0.25rem;\n }\n\n .td-person-card--default .td-person-card__bio {\n font-size: 0.875rem;\n margin-top: 0.75rem;\n }\n\n .td-person-card--default .td-person-card__socials {\n margin-top: 1rem;\n justify-content: center;\n }\n\n /* Compact variant */\n .td-person-card--compact {\n flex-direction: row;\n align-items: center;\n padding: 1rem;\n gap: 1rem;\n }\n\n .td-person-card--compact .td-person-card__content {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n }\n\n .td-person-card--compact .td-person-card__name {\n font-size: 1rem;\n }\n\n .td-person-card--compact .td-person-card__role {\n font-size: 0.75rem;\n }\n\n .td-person-card--compact .td-person-card__bio,\n .td-person-card--compact .td-person-card__socials {\n display: none;\n }\n\n /* Featured variant */\n .td-person-card--featured {\n flex-direction: column;\n padding: 2.5rem;\n gap: 1.5rem;\n align-items: center;\n text-align: center;\n background: linear-gradient(135deg, rgba(28, 36, 56, 0.9) 0%, rgba(43, 52, 71, 0.9) 100%);\n }\n\n .td-person-card--featured .td-person-card__name {\n font-size: 1.5rem;\n }\n\n .td-person-card--featured .td-person-card__role {\n font-size: 1rem;\n margin-top: 0.25rem;\n }\n\n .td-person-card--featured .td-person-card__bio {\n font-size: 1rem;\n margin-top: 1rem;\n max-width: 400px;\n }\n\n .td-person-card--featured .td-person-card__socials {\n margin-top: 1.5rem;\n justify-content: center;\n }\n\n /* Author variant */\n .td-person-card--author {\n flex-direction: row;\n align-items: flex-start;\n padding: 1.5rem;\n gap: 1rem;\n background: rgba(28, 36, 56, 0.8);\n }\n\n .td-person-card--author .td-person-card__content {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n .td-person-card--author .td-person-card__name {\n font-size: 1rem;\n }\n\n .td-person-card--author .td-person-card__role {\n font-size: 0.75rem;\n color: #E85A4F;\n }\n\n .td-person-card--author .td-person-card__bio {\n font-size: 0.875rem;\n margin-top: 0.5rem;\n }\n\n .td-person-card--author .td-person-card__socials {\n margin-top: 0.75rem;\n }\n\n .td-person-card--author .td-person-card__social-link {\n width: 28px;\n height: 28px;\n }\n `}</style>\n );\n}\n"],"names":["avatarSizeMap","socialIconMap","PersonCard","name","role","organization","bio","photo","socials","variant","href","children","className","avatarSize","content","jsxs","Fragment","jsx","Avatar","social","i","Icon","cardClass","clsx","PersonCardStyles"],"mappings":"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"}
|
package/dist/index22.js
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import { jsxs as r, Fragment as F, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { useState as T, useEffect as j } from "react";
|
|
3
|
+
import { clsx as g } from "./index28.js";
|
|
4
|
+
import { Avatar as S } from "./index4.js";
|
|
5
|
+
import { Icon as i } from "./index3.js";
|
|
6
|
+
function R({
|
|
7
|
+
title: o,
|
|
8
|
+
members: f = [],
|
|
9
|
+
years: l = [],
|
|
10
|
+
activeYear: x,
|
|
11
|
+
onYearChange: d,
|
|
12
|
+
showTerm: b = !0,
|
|
13
|
+
showSocials: u = !0,
|
|
14
|
+
compact: w = !1,
|
|
15
|
+
className: k
|
|
16
|
+
}) {
|
|
17
|
+
var h, m;
|
|
18
|
+
const n = l.length > 0, [N, c] = T(((h = l[0]) == null ? void 0 : h.year) || ""), s = x ?? N;
|
|
19
|
+
j(() => {
|
|
20
|
+
n && !s && l.length > 0 && c(l[0].year);
|
|
21
|
+
}, [n, s, l]);
|
|
22
|
+
const p = n ? ((m = l.find((e) => e.year === s)) == null ? void 0 : m.members) ?? [] : f, v = (e) => {
|
|
23
|
+
c(e), d == null || d(e);
|
|
24
|
+
}, y = (e) => !!(e.linkedin || e.github || e.twitter || e.website), _ = u && p.some(y), z = (e) => {
|
|
25
|
+
const a = [];
|
|
26
|
+
return e.linkedin && a.push(
|
|
27
|
+
/* @__PURE__ */ t("a", { className: "td-person-table__social-link", href: e.linkedin, target: "_blank", rel: "noopener noreferrer", title: "LinkedIn", children: /* @__PURE__ */ t(i, { name: "linkedin", size: "sm" }) }, "linkedin")
|
|
28
|
+
), e.github && a.push(
|
|
29
|
+
/* @__PURE__ */ t("a", { className: "td-person-table__social-link", href: e.github, target: "_blank", rel: "noopener noreferrer", title: "GitHub", children: /* @__PURE__ */ t(i, { name: "github", size: "sm" }) }, "github")
|
|
30
|
+
), e.twitter && a.push(
|
|
31
|
+
/* @__PURE__ */ t("a", { className: "td-person-table__social-link", href: e.twitter, target: "_blank", rel: "noopener noreferrer", title: "Twitter", children: /* @__PURE__ */ t(i, { name: "twitter", size: "sm" }) }, "twitter")
|
|
32
|
+
), e.website && a.push(
|
|
33
|
+
/* @__PURE__ */ t("a", { className: "td-person-table__social-link", href: e.website, target: "_blank", rel: "noopener noreferrer", title: "Website", children: /* @__PURE__ */ t(i, { name: "globe", size: "sm" }) }, "website")
|
|
34
|
+
), a;
|
|
35
|
+
}, A = () => /* @__PURE__ */ t("div", { className: "td-person-table__tabs-wrapper", children: /* @__PURE__ */ t("div", { className: "td-person-table__tabs-scroll", children: l.map((e) => /* @__PURE__ */ r(
|
|
36
|
+
"button",
|
|
37
|
+
{
|
|
38
|
+
className: g("td-person-table__tab", s === e.year && "td-person-table__tab--active"),
|
|
39
|
+
onClick: () => v(e.year),
|
|
40
|
+
children: [
|
|
41
|
+
e.label || e.year,
|
|
42
|
+
/* @__PURE__ */ t("span", { className: "td-person-table__tab-badge", children: e.members.length })
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
e.year
|
|
46
|
+
)) }) }), E = o || n;
|
|
47
|
+
return /* @__PURE__ */ r(F, { children: [
|
|
48
|
+
/* @__PURE__ */ r("div", { className: g("td-person-table", w && "td-person-table--compact", k), children: [
|
|
49
|
+
E && (n ? /* @__PURE__ */ r("div", { className: "td-person-table__header", children: [
|
|
50
|
+
o && /* @__PURE__ */ t("h2", { className: "td-person-table__title", children: o }),
|
|
51
|
+
A()
|
|
52
|
+
] }) : /* @__PURE__ */ t("div", { className: "td-person-table__title-only", children: /* @__PURE__ */ t("h2", { className: "td-person-table__title", children: o }) })),
|
|
53
|
+
p.length === 0 ? /* @__PURE__ */ t("div", { className: "td-person-table__empty", children: n ? "No members for this year" : "No members to display" }) : /* @__PURE__ */ t("div", { className: "td-person-table__wrapper", children: /* @__PURE__ */ r("table", { children: [
|
|
54
|
+
/* @__PURE__ */ t("thead", { children: /* @__PURE__ */ r("tr", { children: [
|
|
55
|
+
/* @__PURE__ */ t("th", { children: "Name" }),
|
|
56
|
+
/* @__PURE__ */ t("th", { className: "td-person-table__hide-mobile", children: "Role" }),
|
|
57
|
+
b && /* @__PURE__ */ t("th", { className: "td-person-table__hide-sm", children: "Term" }),
|
|
58
|
+
_ && /* @__PURE__ */ t("th", { children: "Links" })
|
|
59
|
+
] }) }),
|
|
60
|
+
/* @__PURE__ */ t("tbody", { children: p.map((e, a) => /* @__PURE__ */ r("tr", { children: [
|
|
61
|
+
/* @__PURE__ */ t("td", { children: /* @__PURE__ */ r("div", { className: "td-person-table__person-cell", children: [
|
|
62
|
+
/* @__PURE__ */ t(S, { src: e.photo, name: e.name, size: "sm" }),
|
|
63
|
+
/* @__PURE__ */ r("div", { className: "td-person-table__person-info", children: [
|
|
64
|
+
/* @__PURE__ */ t("span", { className: "td-person-table__person-name", children: e.name }),
|
|
65
|
+
/* @__PURE__ */ t("span", { className: "td-person-table__person-role-mobile", children: e.role })
|
|
66
|
+
] })
|
|
67
|
+
] }) }),
|
|
68
|
+
/* @__PURE__ */ t("td", { className: "td-person-table__role-cell td-person-table__hide-mobile", children: e.role }),
|
|
69
|
+
b && /* @__PURE__ */ t("td", { className: "td-person-table__term-cell td-person-table__hide-sm", children: e.term || "—" }),
|
|
70
|
+
_ && /* @__PURE__ */ t("td", { children: /* @__PURE__ */ t("div", { className: "td-person-table__socials-cell", children: z(e) }) })
|
|
71
|
+
] }, a)) })
|
|
72
|
+
] }) })
|
|
73
|
+
] }),
|
|
74
|
+
/* @__PURE__ */ t(I, {})
|
|
75
|
+
] });
|
|
76
|
+
}
|
|
77
|
+
function I() {
|
|
78
|
+
return /* @__PURE__ */ t("style", { children: `
|
|
79
|
+
.td-person-table {
|
|
80
|
+
background: rgba(28, 36, 56, 0.8);
|
|
81
|
+
backdrop-filter: blur(12px);
|
|
82
|
+
-webkit-backdrop-filter: blur(12px);
|
|
83
|
+
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
84
|
+
border-radius: 0.875rem;
|
|
85
|
+
overflow: hidden;
|
|
86
|
+
box-shadow:
|
|
87
|
+
inset 0 1px 1px 0 rgba(255, 255, 255, 0.05),
|
|
88
|
+
0 8px 24px -4px rgba(0, 0, 0, 0.15);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.td-person-table__header {
|
|
92
|
+
display: flex;
|
|
93
|
+
align-items: stretch;
|
|
94
|
+
min-height: 56px;
|
|
95
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.td-person-table__title {
|
|
99
|
+
display: flex;
|
|
100
|
+
align-items: center;
|
|
101
|
+
font-size: 1.25rem;
|
|
102
|
+
font-weight: 700;
|
|
103
|
+
color: white;
|
|
104
|
+
margin: 0;
|
|
105
|
+
padding: 0 1.5rem;
|
|
106
|
+
flex-shrink: 0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.td-person-table__title-only {
|
|
110
|
+
padding: 1.5rem;
|
|
111
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.td-person-table__title-only .td-person-table__title {
|
|
115
|
+
padding: 0;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.td-person-table__tabs-wrapper {
|
|
119
|
+
display: flex;
|
|
120
|
+
align-items: stretch;
|
|
121
|
+
margin-left: auto;
|
|
122
|
+
flex-shrink: 0;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.td-person-table__tabs-scroll {
|
|
126
|
+
display: flex;
|
|
127
|
+
align-items: stretch;
|
|
128
|
+
overflow-x: auto;
|
|
129
|
+
scrollbar-width: none;
|
|
130
|
+
scroll-behavior: smooth;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.td-person-table__tabs-scroll::-webkit-scrollbar {
|
|
134
|
+
display: none;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.td-person-table__tab {
|
|
138
|
+
display: flex;
|
|
139
|
+
align-items: center;
|
|
140
|
+
justify-content: center;
|
|
141
|
+
gap: 0.5rem;
|
|
142
|
+
padding: 0 1.25rem;
|
|
143
|
+
font-size: 0.875rem;
|
|
144
|
+
font-weight: 500;
|
|
145
|
+
color: rgba(156, 163, 175, 0.8);
|
|
146
|
+
background: transparent;
|
|
147
|
+
border: none;
|
|
148
|
+
border-left: 1px solid rgba(255, 255, 255, 0.05);
|
|
149
|
+
cursor: pointer;
|
|
150
|
+
white-space: nowrap;
|
|
151
|
+
transition: all 0.15s ease;
|
|
152
|
+
flex-shrink: 0;
|
|
153
|
+
min-height: 100%;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.td-person-table__tab:hover {
|
|
157
|
+
background: rgba(255, 255, 255, 0.03);
|
|
158
|
+
color: rgba(255, 255, 255, 0.9);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.td-person-table__tab--active {
|
|
162
|
+
background: rgba(255, 255, 255, 0.08);
|
|
163
|
+
color: white;
|
|
164
|
+
box-shadow: inset 0 -2px 0 #E85A4F;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.td-person-table__tab-badge {
|
|
168
|
+
display: inline-flex;
|
|
169
|
+
align-items: center;
|
|
170
|
+
justify-content: center;
|
|
171
|
+
min-width: 18px;
|
|
172
|
+
height: 18px;
|
|
173
|
+
padding: 0 0.375rem;
|
|
174
|
+
border-radius: 9px;
|
|
175
|
+
background: rgba(255, 255, 255, 0.1);
|
|
176
|
+
font-size: 0.625rem;
|
|
177
|
+
font-weight: 600;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.td-person-table__tab--active .td-person-table__tab-badge {
|
|
181
|
+
background: rgba(232, 90, 79, 0.3);
|
|
182
|
+
color: #E85A4F;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.td-person-table__wrapper {
|
|
186
|
+
overflow-x: auto;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.td-person-table table {
|
|
190
|
+
width: 100%;
|
|
191
|
+
border-collapse: collapse;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.td-person-table th {
|
|
195
|
+
text-align: left;
|
|
196
|
+
font-size: 0.75rem;
|
|
197
|
+
font-weight: 600;
|
|
198
|
+
text-transform: uppercase;
|
|
199
|
+
letter-spacing: 0.05em;
|
|
200
|
+
color: rgba(156, 163, 175, 0.8);
|
|
201
|
+
padding: 1rem 1.5rem;
|
|
202
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
203
|
+
background: rgba(0, 0, 0, 0.1);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.td-person-table td {
|
|
207
|
+
padding: 1rem 1.5rem;
|
|
208
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.03);
|
|
209
|
+
vertical-align: middle;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.td-person-table--compact td {
|
|
213
|
+
padding: 0.75rem 1.5rem;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.td-person-table tr:last-child td {
|
|
217
|
+
border-bottom: none;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.td-person-table tbody tr:hover td {
|
|
221
|
+
background: rgba(255, 255, 255, 0.02);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.td-person-table__person-cell {
|
|
225
|
+
display: flex;
|
|
226
|
+
align-items: center;
|
|
227
|
+
gap: 1rem;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.td-person-table__person-info {
|
|
231
|
+
display: flex;
|
|
232
|
+
flex-direction: column;
|
|
233
|
+
gap: 0.125rem;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.td-person-table__person-name {
|
|
237
|
+
font-weight: 600;
|
|
238
|
+
color: white;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.td-person-table__person-role-mobile {
|
|
242
|
+
display: none;
|
|
243
|
+
font-size: 0.75rem;
|
|
244
|
+
color: #E85A4F;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.td-person-table__role-cell {
|
|
248
|
+
color: #E85A4F;
|
|
249
|
+
font-weight: 500;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.td-person-table__term-cell {
|
|
253
|
+
color: rgba(209, 213, 219, 0.6);
|
|
254
|
+
font-size: 0.875rem;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.td-person-table__socials-cell {
|
|
258
|
+
display: flex;
|
|
259
|
+
gap: 0.5rem;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.td-person-table__social-link {
|
|
263
|
+
display: flex;
|
|
264
|
+
align-items: center;
|
|
265
|
+
justify-content: center;
|
|
266
|
+
width: 28px;
|
|
267
|
+
height: 28px;
|
|
268
|
+
border-radius: 0.375rem;
|
|
269
|
+
background: rgba(255, 255, 255, 0.08);
|
|
270
|
+
color: rgba(209, 213, 219, 0.6);
|
|
271
|
+
transition: all 0.15s ease;
|
|
272
|
+
text-decoration: none;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.td-person-table__social-link:hover {
|
|
276
|
+
background: #E85A4F;
|
|
277
|
+
color: white;
|
|
278
|
+
transform: translateY(-1px);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.td-person-table__empty {
|
|
282
|
+
padding: 3rem;
|
|
283
|
+
text-align: center;
|
|
284
|
+
color: rgba(156, 163, 175, 0.6);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
@media (max-width: 768px) {
|
|
288
|
+
.td-person-table__header {
|
|
289
|
+
flex-wrap: wrap;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.td-person-table__title {
|
|
293
|
+
padding: 1rem 1.5rem;
|
|
294
|
+
width: 100%;
|
|
295
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.td-person-table__hide-mobile {
|
|
299
|
+
display: none;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.td-person-table__person-role-mobile {
|
|
303
|
+
display: block;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.td-person-table th,
|
|
307
|
+
.td-person-table td {
|
|
308
|
+
padding: 0.75rem 1rem;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.td-person-table__tabs-wrapper {
|
|
312
|
+
width: 100%;
|
|
313
|
+
margin-left: 0;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.td-person-table__tab {
|
|
317
|
+
padding: 0.75rem 1rem;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
@media (max-width: 480px) {
|
|
322
|
+
.td-person-table__hide-sm {
|
|
323
|
+
display: none;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
` });
|
|
327
|
+
}
|
|
328
|
+
export {
|
|
329
|
+
R as PersonTable
|
|
330
|
+
};
|
|
331
|
+
//# sourceMappingURL=index22.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index22.js","sources":["../src/components/PersonTable.tsx"],"sourcesContent":["'use client';\n\nimport { useState, useEffect } from 'react';\nimport { clsx } from 'clsx';\nimport { Avatar } from './Avatar';\nimport { Icon } from './Icon';\n\nexport interface PersonTableMember {\n name: string;\n role: string;\n photo?: string;\n term?: string;\n linkedin?: string;\n github?: string;\n twitter?: string;\n website?: string;\n}\n\nexport interface PersonTableYear {\n year: string;\n label?: string;\n members: PersonTableMember[];\n}\n\nexport interface PersonTableProps {\n title?: string;\n members?: PersonTableMember[];\n years?: PersonTableYear[];\n activeYear?: string;\n onYearChange?: (year: string) => void;\n showTerm?: boolean;\n showSocials?: boolean;\n compact?: boolean;\n className?: string;\n}\n\nexport function PersonTable({\n title,\n members = [],\n years = [],\n activeYear: controlledActiveYear,\n onYearChange,\n showTerm = true,\n showSocials = true,\n compact = false,\n className,\n}: PersonTableProps) {\n const isTabbedMode = years.length > 0;\n const [internalActiveYear, setInternalActiveYear] = useState(years[0]?.year || '');\n\n const activeYear = controlledActiveYear ?? internalActiveYear;\n\n useEffect(() => {\n if (isTabbedMode && !activeYear && years.length > 0) {\n setInternalActiveYear(years[0].year);\n }\n }, [isTabbedMode, activeYear, years]);\n\n const displayMembers = isTabbedMode\n ? years.find((y) => y.year === activeYear)?.members ?? []\n : members;\n\n const handleTabClick = (year: string) => {\n setInternalActiveYear(year);\n onYearChange?.(year);\n };\n\n const hasSocials = (member: PersonTableMember): boolean => {\n return !!(member.linkedin || member.github || member.twitter || member.website);\n };\n\n const showSocialsColumn = showSocials && displayMembers.some(hasSocials);\n\n const renderSocialLinks = (member: PersonTableMember) => {\n const links = [];\n\n if (member.linkedin) {\n links.push(\n <a key=\"linkedin\" className=\"td-person-table__social-link\" href={member.linkedin} target=\"_blank\" rel=\"noopener noreferrer\" title=\"LinkedIn\">\n <Icon name=\"linkedin\" size=\"sm\" />\n </a>\n );\n }\n\n if (member.github) {\n links.push(\n <a key=\"github\" className=\"td-person-table__social-link\" href={member.github} target=\"_blank\" rel=\"noopener noreferrer\" title=\"GitHub\">\n <Icon name=\"github\" size=\"sm\" />\n </a>\n );\n }\n\n if (member.twitter) {\n links.push(\n <a key=\"twitter\" className=\"td-person-table__social-link\" href={member.twitter} target=\"_blank\" rel=\"noopener noreferrer\" title=\"Twitter\">\n <Icon name=\"twitter\" size=\"sm\" />\n </a>\n );\n }\n\n if (member.website) {\n links.push(\n <a key=\"website\" className=\"td-person-table__social-link\" href={member.website} target=\"_blank\" rel=\"noopener noreferrer\" title=\"Website\">\n <Icon name=\"globe\" size=\"sm\" />\n </a>\n );\n }\n\n return links;\n };\n\n const renderTabs = () => (\n <div className=\"td-person-table__tabs-wrapper\">\n <div className=\"td-person-table__tabs-scroll\">\n {years.map((yearData) => (\n <button\n key={yearData.year}\n className={clsx('td-person-table__tab', activeYear === yearData.year && 'td-person-table__tab--active')}\n onClick={() => handleTabClick(yearData.year)}\n >\n {yearData.label || yearData.year}\n <span className=\"td-person-table__tab-badge\">{yearData.members.length}</span>\n </button>\n ))}\n </div>\n </div>\n );\n\n const hasHeader = title || isTabbedMode;\n\n return (\n <>\n <div className={clsx('td-person-table', compact && 'td-person-table--compact', className)}>\n {hasHeader && (\n isTabbedMode ? (\n <div className=\"td-person-table__header\">\n {title && <h2 className=\"td-person-table__title\">{title}</h2>}\n {renderTabs()}\n </div>\n ) : (\n <div className=\"td-person-table__title-only\">\n <h2 className=\"td-person-table__title\">{title}</h2>\n </div>\n )\n )}\n\n {displayMembers.length === 0 ? (\n <div className=\"td-person-table__empty\">\n {isTabbedMode ? 'No members for this year' : 'No members to display'}\n </div>\n ) : (\n <div className=\"td-person-table__wrapper\">\n <table>\n <thead>\n <tr>\n <th>Name</th>\n <th className=\"td-person-table__hide-mobile\">Role</th>\n {showTerm && <th className=\"td-person-table__hide-sm\">Term</th>}\n {showSocialsColumn && <th>Links</th>}\n </tr>\n </thead>\n <tbody>\n {displayMembers.map((member, index) => (\n <tr key={index}>\n <td>\n <div className=\"td-person-table__person-cell\">\n <Avatar src={member.photo} name={member.name} size=\"sm\" />\n <div className=\"td-person-table__person-info\">\n <span className=\"td-person-table__person-name\">{member.name}</span>\n <span className=\"td-person-table__person-role-mobile\">{member.role}</span>\n </div>\n </div>\n </td>\n <td className=\"td-person-table__role-cell td-person-table__hide-mobile\">{member.role}</td>\n {showTerm && <td className=\"td-person-table__term-cell td-person-table__hide-sm\">{member.term || '—'}</td>}\n {showSocialsColumn && (\n <td>\n <div className=\"td-person-table__socials-cell\">\n {renderSocialLinks(member)}\n </div>\n </td>\n )}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </div>\n <PersonTableStyles />\n </>\n );\n}\n\nfunction PersonTableStyles() {\n return (\n <style>{`\n .td-person-table {\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-person-table__header {\n display: flex;\n align-items: stretch;\n min-height: 56px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n }\n\n .td-person-table__title {\n display: flex;\n align-items: center;\n font-size: 1.25rem;\n font-weight: 700;\n color: white;\n margin: 0;\n padding: 0 1.5rem;\n flex-shrink: 0;\n }\n\n .td-person-table__title-only {\n padding: 1.5rem;\n border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n }\n\n .td-person-table__title-only .td-person-table__title {\n padding: 0;\n }\n\n .td-person-table__tabs-wrapper {\n display: flex;\n align-items: stretch;\n margin-left: auto;\n flex-shrink: 0;\n }\n\n .td-person-table__tabs-scroll {\n display: flex;\n align-items: stretch;\n overflow-x: auto;\n scrollbar-width: none;\n scroll-behavior: smooth;\n }\n\n .td-person-table__tabs-scroll::-webkit-scrollbar {\n display: none;\n }\n\n .td-person-table__tab {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n padding: 0 1.25rem;\n font-size: 0.875rem;\n font-weight: 500;\n color: rgba(156, 163, 175, 0.8);\n background: transparent;\n border: none;\n border-left: 1px solid rgba(255, 255, 255, 0.05);\n cursor: pointer;\n white-space: nowrap;\n transition: all 0.15s ease;\n flex-shrink: 0;\n min-height: 100%;\n }\n\n .td-person-table__tab:hover {\n background: rgba(255, 255, 255, 0.03);\n color: rgba(255, 255, 255, 0.9);\n }\n\n .td-person-table__tab--active {\n background: rgba(255, 255, 255, 0.08);\n color: white;\n box-shadow: inset 0 -2px 0 #E85A4F;\n }\n\n .td-person-table__tab-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 0.375rem;\n border-radius: 9px;\n background: rgba(255, 255, 255, 0.1);\n font-size: 0.625rem;\n font-weight: 600;\n }\n\n .td-person-table__tab--active .td-person-table__tab-badge {\n background: rgba(232, 90, 79, 0.3);\n color: #E85A4F;\n }\n\n .td-person-table__wrapper {\n overflow-x: auto;\n }\n\n .td-person-table table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .td-person-table th {\n text-align: left;\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: rgba(156, 163, 175, 0.8);\n padding: 1rem 1.5rem;\n border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n background: rgba(0, 0, 0, 0.1);\n }\n\n .td-person-table td {\n padding: 1rem 1.5rem;\n border-bottom: 1px solid rgba(255, 255, 255, 0.03);\n vertical-align: middle;\n }\n\n .td-person-table--compact td {\n padding: 0.75rem 1.5rem;\n }\n\n .td-person-table tr:last-child td {\n border-bottom: none;\n }\n\n .td-person-table tbody tr:hover td {\n background: rgba(255, 255, 255, 0.02);\n }\n\n .td-person-table__person-cell {\n display: flex;\n align-items: center;\n gap: 1rem;\n }\n\n .td-person-table__person-info {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n }\n\n .td-person-table__person-name {\n font-weight: 600;\n color: white;\n }\n\n .td-person-table__person-role-mobile {\n display: none;\n font-size: 0.75rem;\n color: #E85A4F;\n }\n\n .td-person-table__role-cell {\n color: #E85A4F;\n font-weight: 500;\n }\n\n .td-person-table__term-cell {\n color: rgba(209, 213, 219, 0.6);\n font-size: 0.875rem;\n }\n\n .td-person-table__socials-cell {\n display: flex;\n gap: 0.5rem;\n }\n\n .td-person-table__social-link {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 0.375rem;\n background: rgba(255, 255, 255, 0.08);\n color: rgba(209, 213, 219, 0.6);\n transition: all 0.15s ease;\n text-decoration: none;\n }\n\n .td-person-table__social-link:hover {\n background: #E85A4F;\n color: white;\n transform: translateY(-1px);\n }\n\n .td-person-table__empty {\n padding: 3rem;\n text-align: center;\n color: rgba(156, 163, 175, 0.6);\n }\n\n @media (max-width: 768px) {\n .td-person-table__header {\n flex-wrap: wrap;\n }\n\n .td-person-table__title {\n padding: 1rem 1.5rem;\n width: 100%;\n border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n }\n\n .td-person-table__hide-mobile {\n display: none;\n }\n\n .td-person-table__person-role-mobile {\n display: block;\n }\n\n .td-person-table th,\n .td-person-table td {\n padding: 0.75rem 1rem;\n }\n\n .td-person-table__tabs-wrapper {\n width: 100%;\n margin-left: 0;\n }\n\n .td-person-table__tab {\n padding: 0.75rem 1rem;\n }\n }\n\n @media (max-width: 480px) {\n .td-person-table__hide-sm {\n display: none;\n }\n }\n `}</style>\n );\n}\n"],"names":["PersonTable","title","members","years","controlledActiveYear","onYearChange","showTerm","showSocials","compact","className","isTabbedMode","internalActiveYear","setInternalActiveYear","useState","_a","activeYear","useEffect","displayMembers","_b","y","handleTabClick","year","hasSocials","member","showSocialsColumn","renderSocialLinks","links","jsx","Icon","renderTabs","yearData","jsxs","clsx","hasHeader","Fragment","index","Avatar","PersonTableStyles"],"mappings":"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"}
|