@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.
Files changed (123) hide show
  1. package/dist/components/Avatar.d.ts +16 -0
  2. package/dist/components/Avatar.d.ts.map +1 -0
  3. package/dist/components/AvatarGroup.d.ts +14 -0
  4. package/dist/components/AvatarGroup.d.ts.map +1 -0
  5. package/dist/components/Button.d.ts +13 -0
  6. package/dist/components/Button.d.ts.map +1 -0
  7. package/dist/components/Button.test.d.ts +2 -0
  8. package/dist/components/Button.test.d.ts.map +1 -0
  9. package/dist/components/Calendar.d.ts +27 -0
  10. package/dist/components/Calendar.d.ts.map +1 -0
  11. package/dist/components/Carousel.d.ts +11 -0
  12. package/dist/components/Carousel.d.ts.map +1 -0
  13. package/dist/components/CtaSection.d.ts +13 -0
  14. package/dist/components/CtaSection.d.ts.map +1 -0
  15. package/dist/components/EventCard.d.ts +19 -0
  16. package/dist/components/EventCard.d.ts.map +1 -0
  17. package/dist/components/Footer.d.ts +25 -0
  18. package/dist/components/Footer.d.ts.map +1 -0
  19. package/dist/components/Header.d.ts +17 -0
  20. package/dist/components/Header.d.ts.map +1 -0
  21. package/dist/components/Icon.d.ts +8 -0
  22. package/dist/components/Icon.d.ts.map +1 -0
  23. package/dist/components/Image.d.ts +17 -0
  24. package/dist/components/Image.d.ts.map +1 -0
  25. package/dist/components/ImageCarousel.d.ts +18 -0
  26. package/dist/components/ImageCarousel.d.ts.map +1 -0
  27. package/dist/components/ImageText.d.ts +16 -0
  28. package/dist/components/ImageText.d.ts.map +1 -0
  29. package/dist/components/Logo.d.ts +15 -0
  30. package/dist/components/Logo.d.ts.map +1 -0
  31. package/dist/components/Logo3d.d.ts +28 -0
  32. package/dist/components/Logo3d.d.ts.map +1 -0
  33. package/dist/components/LogoMarquee.d.ts +18 -0
  34. package/dist/components/LogoMarquee.d.ts.map +1 -0
  35. package/dist/components/NewsletterSignup.d.ts +11 -0
  36. package/dist/components/NewsletterSignup.d.ts.map +1 -0
  37. package/dist/components/OpenCollective.d.ts +16 -0
  38. package/dist/components/OpenCollective.d.ts.map +1 -0
  39. package/dist/components/PersonCard.d.ts +20 -0
  40. package/dist/components/PersonCard.d.ts.map +1 -0
  41. package/dist/components/PersonTable.d.ts +28 -0
  42. package/dist/components/PersonTable.d.ts.map +1 -0
  43. package/dist/components/PromoSection.d.ts +20 -0
  44. package/dist/components/PromoSection.d.ts.map +1 -0
  45. package/dist/components/SponsorCard.d.ts +10 -0
  46. package/dist/components/SponsorCard.d.ts.map +1 -0
  47. package/dist/components/SponsorGrid.d.ts +21 -0
  48. package/dist/components/SponsorGrid.d.ts.map +1 -0
  49. package/dist/components/Table.d.ts +30 -0
  50. package/dist/components/Table.d.ts.map +1 -0
  51. package/dist/components/VideoEmbed.d.ts +14 -0
  52. package/dist/components/VideoEmbed.d.ts.map +1 -0
  53. package/dist/components/VideoHero.d.ts +16 -0
  54. package/dist/components/VideoHero.d.ts.map +1 -0
  55. package/dist/index.d.ts +53 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +55 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/index10.js +185 -0
  60. package/dist/index10.js.map +1 -0
  61. package/dist/index11.js +268 -0
  62. package/dist/index11.js.map +1 -0
  63. package/dist/index12.js +133 -0
  64. package/dist/index12.js.map +1 -0
  65. package/dist/index13.js +112 -0
  66. package/dist/index13.js.map +1 -0
  67. package/dist/index14.js +286 -0
  68. package/dist/index14.js.map +1 -0
  69. package/dist/index15.js +325 -0
  70. package/dist/index15.js.map +1 -0
  71. package/dist/index16.js +204 -0
  72. package/dist/index16.js.map +1 -0
  73. package/dist/index17.js +269 -0
  74. package/dist/index17.js.map +1 -0
  75. package/dist/index18.js +147 -0
  76. package/dist/index18.js.map +1 -0
  77. package/dist/index19.js +697 -0
  78. package/dist/index19.js.map +1 -0
  79. package/dist/index2.js +181 -0
  80. package/dist/index2.js.map +1 -0
  81. package/dist/index20.js +492 -0
  82. package/dist/index20.js.map +1 -0
  83. package/dist/index21.js +277 -0
  84. package/dist/index21.js.map +1 -0
  85. package/dist/index22.js +331 -0
  86. package/dist/index22.js.map +1 -0
  87. package/dist/index23.js +98 -0
  88. package/dist/index23.js.map +1 -0
  89. package/dist/index24.js +406 -0
  90. package/dist/index24.js.map +1 -0
  91. package/dist/index25.js +464 -0
  92. package/dist/index25.js.map +1 -0
  93. package/dist/index26.js +280 -0
  94. package/dist/index26.js.map +1 -0
  95. package/dist/index27.js +234 -0
  96. package/dist/index27.js.map +1 -0
  97. package/dist/index28.js +18 -0
  98. package/dist/index28.js.map +1 -0
  99. package/dist/index29.js +10779 -0
  100. package/dist/index29.js.map +1 -0
  101. package/dist/index3.js +39 -0
  102. package/dist/index3.js.map +1 -0
  103. package/dist/index30.js +358 -0
  104. package/dist/index30.js.map +1 -0
  105. package/dist/index31.js +199 -0
  106. package/dist/index31.js.map +1 -0
  107. package/dist/index32.js +22762 -0
  108. package/dist/index32.js.map +1 -0
  109. package/dist/index4.js +142 -0
  110. package/dist/index4.js.map +1 -0
  111. package/dist/index5.js +128 -0
  112. package/dist/index5.js.map +1 -0
  113. package/dist/index6.js +109 -0
  114. package/dist/index6.js.map +1 -0
  115. package/dist/index7.js +254 -0
  116. package/dist/index7.js.map +1 -0
  117. package/dist/index8.js +237 -0
  118. package/dist/index8.js.map +1 -0
  119. package/dist/index9.js +142 -0
  120. package/dist/index9.js.map +1 -0
  121. package/dist/test/setup.d.ts +2 -0
  122. package/dist/test/setup.d.ts.map +1 -0
  123. package/package.json +58 -0
@@ -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":";;;;AAyBA,MAAMA,IAAuD;AAAA,EAC3D,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AACX,GAEMC,IAAwC;AAAA,EAC5C,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,OAAO;AACT;AAEO,SAASC,EAAW;AAAA,EACzB,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AACF,GAAoB;AAClB,QAAMC,IAAab,EAAcS,CAAO,GAElCK,IACJ,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAKX;AAAA,QACL,MAAAJ;AAAA,QACA,MAAMU;AAAA,QACN,MAAMJ,MAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAGpB,gBAAAM,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA,gBAAAE,EAAC,MAAA,EAAG,WAAU,wBAAwB,UAAAd,GAAK;AAAA,MAC1CC,KAAQ,gBAAAa,EAAC,KAAA,EAAE,WAAU,wBAAwB,UAAAb,GAAK;AAAA,MAClDC,KAAgB,gBAAAY,EAAC,KAAA,EAAE,WAAU,uBAAuB,UAAAZ,GAAa;AAAA,MACjEC,KAAO,gBAAAW,EAAC,KAAA,EAAE,WAAU,uBAAuB,UAAAX,GAAI;AAAA,MAE/CE,KAAWA,EAAQ,SAAS,KAC3B,gBAAAS,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAAT,EAAQ,IAAI,CAACW,GAAQC,MACpB,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UACV,MAAME,EAAO,aAAa,UAAU,UAAUA,EAAO,GAAG,KAAKA,EAAO;AAAA,UACpE,QAAQA,EAAO,aAAa,UAAU,UAAU;AAAA,UAChD,KAAI;AAAA,UACJ,OAAOA,EAAO;AAAA,UAEd,UAAA,gBAAAF,EAACI,KAAK,MAAMpB,EAAckB,EAAO,QAAQ,KAAK,QAAQ,MAAK,KAAA,CAAK;AAAA,QAAA;AAAA,QAP3DC;AAAA,MAAA,CASR,GACH;AAAA,MAGDT;AAAA,IAAA,EAAA,CACH;AAAA,EAAA,GACF,GAGIW,IAAYC;AAAA,IAChB;AAAA,IACA,mBAAmBd,CAAO;AAAA,IAC1BG;AAAA,EAAA;AAGF,SAAIF,IAEA,gBAAAK,EAAC,KAAA,EAAE,MAAAL,GAAY,WAAWY,GACvB,UAAA;AAAA,IAAAR;AAAA,sBACAU,GAAA,CAAA,CAAiB;AAAA,EAAA,GACpB,IAKF,gBAAAT,EAAC,OAAA,EAAI,WAAWO,GACb,UAAA;AAAA,IAAAR;AAAA,sBACAU,GAAA,CAAA,CAAiB;AAAA,EAAA,GACpB;AAEJ;AAEA,SAASA,IAAmB;AAC1B,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAwMN;AAEN;"}
@@ -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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"}