@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/index4.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { jsxs as l, Fragment as v, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { clsx as g } from "./index28.js";
|
|
3
|
+
const m = {
|
|
4
|
+
xs: "24px",
|
|
5
|
+
sm: "32px",
|
|
6
|
+
md: "48px",
|
|
7
|
+
lg: "64px",
|
|
8
|
+
xl: "96px",
|
|
9
|
+
"2xl": "128px"
|
|
10
|
+
}, h = {
|
|
11
|
+
xs: "0.5rem",
|
|
12
|
+
sm: "0.625rem",
|
|
13
|
+
md: "0.875rem",
|
|
14
|
+
lg: "1rem",
|
|
15
|
+
xl: "1.5rem",
|
|
16
|
+
"2xl": "2rem"
|
|
17
|
+
}, b = {
|
|
18
|
+
xs: { size: "8px", bottom: "-2px", right: "-2px" },
|
|
19
|
+
sm: { size: "10px", bottom: "-1px", right: "-1px" },
|
|
20
|
+
md: { size: "12px", bottom: "0", right: "0" },
|
|
21
|
+
lg: { size: "14px", bottom: "2px", right: "2px" },
|
|
22
|
+
xl: { size: "18px", bottom: "4px", right: "4px" },
|
|
23
|
+
"2xl": { size: "24px", bottom: "6px", right: "6px" }
|
|
24
|
+
};
|
|
25
|
+
function f(a) {
|
|
26
|
+
if (!a) return "?";
|
|
27
|
+
const t = a.trim().split(/\s+/);
|
|
28
|
+
return t.length === 1 ? t[0].substring(0, 2).toUpperCase() : (t[0][0] + t[t.length - 1][0]).toUpperCase();
|
|
29
|
+
}
|
|
30
|
+
function y({
|
|
31
|
+
src: a,
|
|
32
|
+
alt: t,
|
|
33
|
+
name: i = "",
|
|
34
|
+
size: s = "md",
|
|
35
|
+
shape: d = "circle",
|
|
36
|
+
ring: p = !1,
|
|
37
|
+
ringColor: o,
|
|
38
|
+
status: n,
|
|
39
|
+
className: x
|
|
40
|
+
}) {
|
|
41
|
+
const c = m[s], u = h[s], e = b[s];
|
|
42
|
+
return /* @__PURE__ */ l(v, { children: [
|
|
43
|
+
/* @__PURE__ */ l(
|
|
44
|
+
"div",
|
|
45
|
+
{
|
|
46
|
+
className: g(
|
|
47
|
+
"td-avatar",
|
|
48
|
+
`td-avatar--${d}`,
|
|
49
|
+
p && "td-avatar--ring",
|
|
50
|
+
x
|
|
51
|
+
),
|
|
52
|
+
style: {
|
|
53
|
+
"--avatar-size": c,
|
|
54
|
+
"--avatar-font-size": u,
|
|
55
|
+
"--status-size": e.size,
|
|
56
|
+
"--status-bottom": e.bottom,
|
|
57
|
+
"--status-right": e.right,
|
|
58
|
+
...o ? { "--avatar-ring-color": o } : {}
|
|
59
|
+
},
|
|
60
|
+
children: [
|
|
61
|
+
a ? /* @__PURE__ */ r("img", { src: a, alt: t || i, className: "td-avatar__image" }) : /* @__PURE__ */ r("span", { className: "td-avatar__initials", children: f(i) }),
|
|
62
|
+
n && /* @__PURE__ */ r("span", { className: `td-avatar__status td-avatar__status--${n}` })
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
),
|
|
66
|
+
/* @__PURE__ */ r(_, {})
|
|
67
|
+
] });
|
|
68
|
+
}
|
|
69
|
+
function _() {
|
|
70
|
+
return /* @__PURE__ */ r("style", { children: `
|
|
71
|
+
.td-avatar {
|
|
72
|
+
position: relative;
|
|
73
|
+
width: var(--avatar-size);
|
|
74
|
+
height: var(--avatar-size);
|
|
75
|
+
overflow: visible;
|
|
76
|
+
background: linear-gradient(135deg, #2B3447 0%, #1C2438 100%);
|
|
77
|
+
border: 2px solid rgba(255, 255, 255, 0.1);
|
|
78
|
+
display: flex;
|
|
79
|
+
align-items: center;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
flex-shrink: 0;
|
|
82
|
+
transition: all 0.15s ease;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.td-avatar--circle {
|
|
86
|
+
border-radius: 9999px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.td-avatar--square {
|
|
90
|
+
border-radius: 0.5rem;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.td-avatar--ring {
|
|
94
|
+
box-shadow: 0 0 0 3px var(--avatar-ring-color, #E85A4F);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.td-avatar__image {
|
|
98
|
+
width: 100%;
|
|
99
|
+
height: 100%;
|
|
100
|
+
object-fit: cover;
|
|
101
|
+
border-radius: inherit;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.td-avatar__initials {
|
|
105
|
+
font-size: var(--avatar-font-size);
|
|
106
|
+
font-weight: 600;
|
|
107
|
+
color: white;
|
|
108
|
+
text-transform: uppercase;
|
|
109
|
+
user-select: none;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.td-avatar__status {
|
|
113
|
+
position: absolute;
|
|
114
|
+
width: var(--status-size);
|
|
115
|
+
height: var(--status-size);
|
|
116
|
+
bottom: var(--status-bottom);
|
|
117
|
+
right: var(--status-right);
|
|
118
|
+
border-radius: 9999px;
|
|
119
|
+
border: 2px solid #1C2438;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.td-avatar__status--online {
|
|
123
|
+
background-color: #10B981;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.td-avatar__status--offline {
|
|
127
|
+
background-color: #6B7280;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.td-avatar__status--busy {
|
|
131
|
+
background-color: #EF4444;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.td-avatar__status--away {
|
|
135
|
+
background-color: #F59E0B;
|
|
136
|
+
}
|
|
137
|
+
` });
|
|
138
|
+
}
|
|
139
|
+
export {
|
|
140
|
+
y as Avatar
|
|
141
|
+
};
|
|
142
|
+
//# sourceMappingURL=index4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index4.js","sources":["../src/components/Avatar.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\nexport type AvatarShape = 'circle' | 'square';\nexport type AvatarStatus = 'online' | 'offline' | 'busy' | 'away';\n\nexport interface AvatarProps {\n src?: string;\n alt?: string;\n name?: string;\n size?: AvatarSize;\n shape?: AvatarShape;\n ring?: boolean;\n ringColor?: string;\n status?: AvatarStatus;\n className?: string;\n}\n\n// Sizes matching the web component exactly\nconst sizeMap: Record<AvatarSize, string> = {\n xs: '24px',\n sm: '32px',\n md: '48px',\n lg: '64px',\n xl: '96px',\n '2xl': '128px',\n};\n\nconst fontSizeMap: Record<AvatarSize, string> = {\n xs: '0.5rem',\n sm: '0.625rem',\n md: '0.875rem',\n lg: '1rem',\n xl: '1.5rem',\n '2xl': '2rem',\n};\n\nconst statusSizeMap: Record<AvatarSize, { size: string; bottom: string; right: string }> = {\n xs: { size: '8px', bottom: '-2px', right: '-2px' },\n sm: { size: '10px', bottom: '-1px', right: '-1px' },\n md: { size: '12px', bottom: '0', right: '0' },\n lg: { size: '14px', bottom: '2px', right: '2px' },\n xl: { size: '18px', bottom: '4px', right: '4px' },\n '2xl': { size: '24px', bottom: '6px', right: '6px' },\n};\n\nfunction getInitials(name: string): string {\n if (!name) return '?';\n const parts = name.trim().split(/\\s+/);\n if (parts.length === 1) {\n return parts[0].substring(0, 2).toUpperCase();\n }\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nexport function Avatar({\n src,\n alt,\n name = '',\n size = 'md',\n shape = 'circle',\n ring = false,\n ringColor,\n status,\n className,\n}: AvatarProps) {\n const sizeValue = sizeMap[size];\n const fontSize = fontSizeMap[size];\n const statusSize = statusSizeMap[size];\n\n return (\n <>\n <div\n className={clsx(\n 'td-avatar',\n `td-avatar--${shape}`,\n ring && 'td-avatar--ring',\n className\n )}\n style={{\n '--avatar-size': sizeValue,\n '--avatar-font-size': fontSize,\n '--status-size': statusSize.size,\n '--status-bottom': statusSize.bottom,\n '--status-right': statusSize.right,\n ...(ringColor ? { '--avatar-ring-color': ringColor } : {}),\n } as React.CSSProperties}\n >\n {src ? (\n <img src={src} alt={alt || name} className=\"td-avatar__image\" />\n ) : (\n <span className=\"td-avatar__initials\">{getInitials(name)}</span>\n )}\n {status && <span className={`td-avatar__status td-avatar__status--${status}`} />}\n </div>\n <AvatarStyles />\n </>\n );\n}\n\nfunction AvatarStyles() {\n return (\n <style>{`\n .td-avatar {\n position: relative;\n width: var(--avatar-size);\n height: var(--avatar-size);\n overflow: visible;\n background: linear-gradient(135deg, #2B3447 0%, #1C2438 100%);\n border: 2px solid rgba(255, 255, 255, 0.1);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s ease;\n }\n\n .td-avatar--circle {\n border-radius: 9999px;\n }\n\n .td-avatar--square {\n border-radius: 0.5rem;\n }\n\n .td-avatar--ring {\n box-shadow: 0 0 0 3px var(--avatar-ring-color, #E85A4F);\n }\n\n .td-avatar__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: inherit;\n }\n\n .td-avatar__initials {\n font-size: var(--avatar-font-size);\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n user-select: none;\n }\n\n .td-avatar__status {\n position: absolute;\n width: var(--status-size);\n height: var(--status-size);\n bottom: var(--status-bottom);\n right: var(--status-right);\n border-radius: 9999px;\n border: 2px solid #1C2438;\n }\n\n .td-avatar__status--online {\n background-color: #10B981;\n }\n\n .td-avatar__status--offline {\n background-color: #6B7280;\n }\n\n .td-avatar__status--busy {\n background-color: #EF4444;\n }\n\n .td-avatar__status--away {\n background-color: #F59E0B;\n }\n `}</style>\n );\n}\n"],"names":["sizeMap","fontSizeMap","statusSizeMap","getInitials","name","parts","Avatar","src","alt","size","shape","ring","ringColor","status","className","sizeValue","fontSize","statusSize","jsxs","Fragment","clsx","jsx","AvatarStyles"],"mappings":"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"}
|
package/dist/index5.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { jsxs as i, Fragment as m, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { clsx as v } from "./index28.js";
|
|
3
|
+
const u = {
|
|
4
|
+
xs: "24px",
|
|
5
|
+
sm: "32px",
|
|
6
|
+
md: "40px",
|
|
7
|
+
lg: "48px"
|
|
8
|
+
}, f = {
|
|
9
|
+
xs: "0.5rem",
|
|
10
|
+
sm: "0.625rem",
|
|
11
|
+
md: "0.75rem",
|
|
12
|
+
lg: "0.875rem"
|
|
13
|
+
}, _ = {
|
|
14
|
+
xs: "-8px",
|
|
15
|
+
sm: "-10px",
|
|
16
|
+
md: "-12px",
|
|
17
|
+
lg: "-14px"
|
|
18
|
+
};
|
|
19
|
+
function h(e) {
|
|
20
|
+
if (!e) return "?";
|
|
21
|
+
const t = e.trim().split(/\s+/);
|
|
22
|
+
return t.length === 1 ? t[0].substring(0, 2).toUpperCase() : (t[0][0] + t[t.length - 1][0]).toUpperCase();
|
|
23
|
+
}
|
|
24
|
+
function b({
|
|
25
|
+
avatars: e,
|
|
26
|
+
size: t = "md",
|
|
27
|
+
max: s = 4,
|
|
28
|
+
className: p
|
|
29
|
+
}) {
|
|
30
|
+
const d = u[t], c = f[t], g = _[t], n = e.slice(0, s), o = e.length - s;
|
|
31
|
+
return /* @__PURE__ */ i(m, { children: [
|
|
32
|
+
/* @__PURE__ */ i(
|
|
33
|
+
"div",
|
|
34
|
+
{
|
|
35
|
+
className: v("td-avatar-group", p),
|
|
36
|
+
style: {
|
|
37
|
+
"--avatar-size": d,
|
|
38
|
+
"--avatar-font-size": c,
|
|
39
|
+
"--avatar-overlap": g
|
|
40
|
+
},
|
|
41
|
+
children: [
|
|
42
|
+
n.map((a, l) => /* @__PURE__ */ r(
|
|
43
|
+
"div",
|
|
44
|
+
{
|
|
45
|
+
className: "td-avatar-group__item",
|
|
46
|
+
style: { zIndex: n.length - l },
|
|
47
|
+
title: a.name,
|
|
48
|
+
children: a.src ? /* @__PURE__ */ r(
|
|
49
|
+
"img",
|
|
50
|
+
{
|
|
51
|
+
src: a.src,
|
|
52
|
+
alt: a.alt || a.name,
|
|
53
|
+
className: "td-avatar-group__image"
|
|
54
|
+
}
|
|
55
|
+
) : /* @__PURE__ */ r("span", { className: "td-avatar-group__initials", children: h(a.name) })
|
|
56
|
+
},
|
|
57
|
+
l
|
|
58
|
+
)),
|
|
59
|
+
o > 0 && /* @__PURE__ */ r(
|
|
60
|
+
"div",
|
|
61
|
+
{
|
|
62
|
+
className: "td-avatar-group__item td-avatar-group__overflow",
|
|
63
|
+
style: { zIndex: 0 },
|
|
64
|
+
children: /* @__PURE__ */ i("span", { className: "td-avatar-group__initials", children: [
|
|
65
|
+
"+",
|
|
66
|
+
o
|
|
67
|
+
] })
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
),
|
|
73
|
+
/* @__PURE__ */ r(x, {})
|
|
74
|
+
] });
|
|
75
|
+
}
|
|
76
|
+
function x() {
|
|
77
|
+
return /* @__PURE__ */ r("style", { children: `
|
|
78
|
+
.td-avatar-group {
|
|
79
|
+
display: flex;
|
|
80
|
+
align-items: center;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.td-avatar-group__item {
|
|
84
|
+
position: relative;
|
|
85
|
+
width: var(--avatar-size);
|
|
86
|
+
height: var(--avatar-size);
|
|
87
|
+
border-radius: 9999px;
|
|
88
|
+
overflow: hidden;
|
|
89
|
+
background: linear-gradient(135deg, #2B3447 0%, #1C2438 100%);
|
|
90
|
+
border: 2px solid #1C2438;
|
|
91
|
+
display: flex;
|
|
92
|
+
align-items: center;
|
|
93
|
+
justify-content: center;
|
|
94
|
+
flex-shrink: 0;
|
|
95
|
+
transition: transform 0.15s ease;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.td-avatar-group__item:not(:first-child) {
|
|
99
|
+
margin-left: var(--avatar-overlap);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.td-avatar-group__item:hover {
|
|
103
|
+
transform: translateY(-2px);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.td-avatar-group__image {
|
|
107
|
+
width: 100%;
|
|
108
|
+
height: 100%;
|
|
109
|
+
object-fit: cover;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.td-avatar-group__initials {
|
|
113
|
+
font-size: var(--avatar-font-size);
|
|
114
|
+
font-weight: 600;
|
|
115
|
+
color: white;
|
|
116
|
+
text-transform: uppercase;
|
|
117
|
+
user-select: none;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.td-avatar-group__overflow {
|
|
121
|
+
background: linear-gradient(135deg, #E85A4F 0%, #C44D44 100%);
|
|
122
|
+
}
|
|
123
|
+
` });
|
|
124
|
+
}
|
|
125
|
+
export {
|
|
126
|
+
b as AvatarGroup
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=index5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index5.js","sources":["../src/components/AvatarGroup.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nexport type AvatarGroupSize = 'xs' | 'sm' | 'md' | 'lg';\n\nexport interface AvatarGroupItem {\n src?: string;\n name: string;\n alt?: string;\n}\n\nexport interface AvatarGroupProps {\n avatars: AvatarGroupItem[];\n size?: AvatarGroupSize;\n max?: number;\n className?: string;\n}\n\nconst sizeMap: Record<AvatarGroupSize, string> = {\n xs: '24px',\n sm: '32px',\n md: '40px',\n lg: '48px',\n};\n\nconst fontSizeMap: Record<AvatarGroupSize, string> = {\n xs: '0.5rem',\n sm: '0.625rem',\n md: '0.75rem',\n lg: '0.875rem',\n};\n\nconst overlapMap: Record<AvatarGroupSize, string> = {\n xs: '-8px',\n sm: '-10px',\n md: '-12px',\n lg: '-14px',\n};\n\nfunction getInitials(name: string): string {\n if (!name) return '?';\n const parts = name.trim().split(/\\s+/);\n if (parts.length === 1) {\n return parts[0].substring(0, 2).toUpperCase();\n }\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nexport function AvatarGroup({\n avatars,\n size = 'md',\n max = 4,\n className,\n}: AvatarGroupProps) {\n const sizeValue = sizeMap[size];\n const fontSize = fontSizeMap[size];\n const overlap = overlapMap[size];\n\n const visibleAvatars = avatars.slice(0, max);\n const remaining = avatars.length - max;\n\n return (\n <>\n <div\n className={clsx('td-avatar-group', className)}\n style={{\n '--avatar-size': sizeValue,\n '--avatar-font-size': fontSize,\n '--avatar-overlap': overlap,\n } as React.CSSProperties}\n >\n {visibleAvatars.map((avatar, index) => (\n <div\n key={index}\n className=\"td-avatar-group__item\"\n style={{ zIndex: visibleAvatars.length - index }}\n title={avatar.name}\n >\n {avatar.src ? (\n <img\n src={avatar.src}\n alt={avatar.alt || avatar.name}\n className=\"td-avatar-group__image\"\n />\n ) : (\n <span className=\"td-avatar-group__initials\">\n {getInitials(avatar.name)}\n </span>\n )}\n </div>\n ))}\n {remaining > 0 && (\n <div\n className=\"td-avatar-group__item td-avatar-group__overflow\"\n style={{ zIndex: 0 }}\n >\n <span className=\"td-avatar-group__initials\">+{remaining}</span>\n </div>\n )}\n </div>\n <AvatarGroupStyles />\n </>\n );\n}\n\nfunction AvatarGroupStyles() {\n return (\n <style>{`\n .td-avatar-group {\n display: flex;\n align-items: center;\n }\n\n .td-avatar-group__item {\n position: relative;\n width: var(--avatar-size);\n height: var(--avatar-size);\n border-radius: 9999px;\n overflow: hidden;\n background: linear-gradient(135deg, #2B3447 0%, #1C2438 100%);\n border: 2px solid #1C2438;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: transform 0.15s ease;\n }\n\n .td-avatar-group__item:not(:first-child) {\n margin-left: var(--avatar-overlap);\n }\n\n .td-avatar-group__item:hover {\n transform: translateY(-2px);\n }\n\n .td-avatar-group__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .td-avatar-group__initials {\n font-size: var(--avatar-font-size);\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n user-select: none;\n }\n\n .td-avatar-group__overflow {\n background: linear-gradient(135deg, #E85A4F 0%, #C44D44 100%);\n }\n `}</style>\n );\n}\n"],"names":["sizeMap","fontSizeMap","overlapMap","getInitials","name","parts","AvatarGroup","avatars","size","max","className","sizeValue","fontSize","overlap","visibleAvatars","remaining","jsxs","Fragment","clsx","avatar","index","jsx","AvatarGroupStyles"],"mappings":";;AAiBA,MAAMA,IAA2C;AAAA,EAC/C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,IAA+C;AAAA,EACnD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,IAA8C;AAAA,EAClD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,SAASC,EAAYC,GAAsB;AACzC,MAAI,CAACA,EAAM,QAAO;AAClB,QAAMC,IAAQD,EAAK,KAAA,EAAO,MAAM,KAAK;AACrC,SAAIC,EAAM,WAAW,IACZA,EAAM,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,YAAA,KAE1BA,EAAM,CAAC,EAAE,CAAC,IAAIA,EAAMA,EAAM,SAAS,CAAC,EAAE,CAAC,GAAG,YAAA;AACpD;AAEO,SAASC,EAAY;AAAA,EAC1B,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,KAAAC,IAAM;AAAA,EACN,WAAAC;AACF,GAAqB;AACnB,QAAMC,IAAYX,EAAQQ,CAAI,GACxBI,IAAWX,EAAYO,CAAI,GAC3BK,IAAUX,EAAWM,CAAI,GAEzBM,IAAiBP,EAAQ,MAAM,GAAGE,CAAG,GACrCM,IAAYR,EAAQ,SAASE;AAEnC,SACE,gBAAAO,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWE,EAAK,mBAAmBR,CAAS;AAAA,QAC5C,OAAO;AAAA,UACL,iBAAiBC;AAAA,UACjB,sBAAsBC;AAAA,UACtB,oBAAoBC;AAAA,QAAA;AAAA,QAGrB,UAAA;AAAA,UAAAC,EAAe,IAAI,CAACK,GAAQC,MAC3B,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,WAAU;AAAA,cACV,OAAO,EAAE,QAAQP,EAAe,SAASM,EAAA;AAAA,cACzC,OAAOD,EAAO;AAAA,cAEb,YAAO,MACN,gBAAAE;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,KAAKF,EAAO;AAAA,kBACZ,KAAKA,EAAO,OAAOA,EAAO;AAAA,kBAC1B,WAAU;AAAA,gBAAA;AAAA,cAAA,sBAGX,QAAA,EAAK,WAAU,6BACb,UAAAhB,EAAYgB,EAAO,IAAI,EAAA,CAC1B;AAAA,YAAA;AAAA,YAdGC;AAAA,UAAA,CAiBR;AAAA,UACAL,IAAY,KACX,gBAAAM;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,QAAQ,EAAA;AAAA,cAEjB,UAAA,gBAAAL,EAAC,QAAA,EAAK,WAAU,6BAA4B,UAAA;AAAA,gBAAA;AAAA,gBAAED;AAAA,cAAA,EAAA,CAAU;AAAA,YAAA;AAAA,UAAA;AAAA,QAC1D;AAAA,MAAA;AAAA,IAAA;AAAA,sBAGHO,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,OA8CN;AAEN;"}
|
package/dist/index6.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { jsxs as n, Fragment as s, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { clsx as d } from "./index28.js";
|
|
3
|
+
const v = {
|
|
4
|
+
xs: { fontSize: "0.875rem", iconSize: "24px", gap: "0.5em" },
|
|
5
|
+
sm: { fontSize: "1rem", iconSize: "32px", gap: "0.5em" },
|
|
6
|
+
md: { fontSize: "1.25rem", iconSize: "40px", gap: "0.75em" },
|
|
7
|
+
lg: { fontSize: "1.5rem", iconSize: "48px", gap: "0.75em" },
|
|
8
|
+
xl: { fontSize: "2rem", iconSize: "64px", gap: "0.75em" },
|
|
9
|
+
"2xl": { fontSize: "2.5rem", iconSize: "80px", gap: "0.75em" }
|
|
10
|
+
};
|
|
11
|
+
function k({ monochrome: c }) {
|
|
12
|
+
const e = c ? "currentColor" : "#d70100", o = c ? "currentColor" : "#000";
|
|
13
|
+
return /* @__PURE__ */ n("svg", { viewBox: "0 0 260 260", xmlns: "http://www.w3.org/2000/svg", style: { fillRule: "evenodd", clipRule: "evenodd", strokeLinejoin: "round", strokeMiterlimit: 2 }, children: [
|
|
14
|
+
/* @__PURE__ */ l("path", { d: "M158.271,116.348l-96.245,-0c-2.454,0.609 -15.574,4.29 -25.365,15.306l0,30.132l0.065,-0.003l0.537,4.341c4.677,37.664 36.833,66.072 74.82,66.118c37.989,-0.046 70.146,-28.454 74.822,-66.118l0.538,-4.341l0.064,0.003l0,-25.064c-9.782,-14.993 -26.438,-19.68 -29.236,-20.374", style: { fill: "#fff", fillRule: "nonzero" } }),
|
|
15
|
+
/* @__PURE__ */ l("path", { d: "M234.921,98.695c5.29,-5.291 8.112,-12.571 8.133,-20.801c-8.232,0.021 -15.512,2.843 -20.802,8.134c-4.108,4.108 -6.707,9.424 -7.682,15.444c0.039,0.333 0.097,0.661 0.133,0.996c0.158,1.484 0.024,2.948 -0.357,4.349c8.137,-0.071 15.332,-2.88 20.575,-8.122", style: { fill: e, fillRule: "nonzero" } }),
|
|
16
|
+
/* @__PURE__ */ l("path", { d: "M207.629,116.382c0.021,8.229 2.844,15.509 8.134,20.8c5.29,5.291 12.57,8.112 20.8,8.132c-0.021,-8.229 -2.843,-15.509 -8.133,-20.8c-5.291,-5.291 -12.571,-8.112 -20.801,-8.132", style: { fill: e, fillRule: "nonzero" } }),
|
|
17
|
+
/* @__PURE__ */ l("path", { d: "M112.175,27.757c-48.436,0 -88.441,32.554 -93.063,75.724c-0.092,0.871 0.332,1.548 0.704,1.962c0.779,0.866 2.03,1.384 3.348,1.384l178.022,0c1.316,0 2.567,-0.517 3.346,-1.384c0.034,-0.038 0.067,-0.088 0.101,-0.129c0.046,-1.339 0.155,-2.657 0.319,-3.955c-5.683,-42.106 -45.141,-73.602 -92.777,-73.602", style: { fill: e, fillRule: "nonzero" } }),
|
|
18
|
+
/* @__PURE__ */ l("path", { d: "M63.606,137.207l12.905,16.819l-12.905,16.818l12.342,-0l12.905,-16.818l-12.905,-16.819l-12.342,-0Z", style: { fill: o, fillRule: "nonzero" } }),
|
|
19
|
+
/* @__PURE__ */ l("path", { d: "M216.028,136.915c-5.147,-5.148 -7.917,-12.111 -8.021,-20.154c8.047,0.103 15.011,2.872 20.156,8.019c5.147,5.148 7.917,12.112 8.02,20.157c-8.046,-0.102 -15.009,-2.871 -20.155,-8.022m-11.765,-31.72l-0.01,-0.003c-0.707,0.786 -1.854,1.259 -3.067,1.259l-178.021,0c-1.214,0 -2.362,-0.473 -3.07,-1.259c-0.321,-0.358 -0.686,-0.938 -0.609,-1.669c4.602,-42.98 44.447,-75.391 92.688,-75.391c22.928,0 44.907,7.433 61.888,20.93c16.928,13.454 27.762,32.025 30.512,52.3c-0.161,1.293 -0.266,2.584 -0.311,3.833m-58.536,27.913c-5.724,0 -10.907,1.414 -14.694,4.234c-16.21,-3.196 -31.277,-10.3 -44.11,-20.622l71.257,-0.009c2.884,0.718 16.678,4.7 26.389,16.66c-7.332,2.629 -14.894,4.385 -22.619,5.251c-3.852,-3.678 -9.688,-5.514 -16.223,-5.514m40.806,32.969c-4.651,37.461 -36.657,65.742 -74.449,65.79c-37.79,-0.048 -69.796,-28.329 -74.449,-65.79l-0.538,-4.341l-0.061,-0.196l-0,-29.743c9.687,-10.83 22.586,-14.464 24.989,-15.074l10.894,-0.001c14.604,14.339 32.643,24.42 52.408,29.083c-0.376,1.441 -0.597,2.989 -0.597,4.677c-0,11.596 9.401,20.996 20.997,20.996c11.596,0 20.996,-9.4 20.996,-20.996c-0,-1.017 -0.096,-1.972 -0.236,-2.9c7.029,-1.022 13.924,-2.741 20.645,-5.123l-0,18.934l-0.599,4.684Zm28.543,-63.648c-0.021,-0.193 -0.048,-0.381 -0.074,-0.572c-0.018,-0.126 -0.037,-0.252 -0.052,-0.375c0.975,-5.963 3.592,-11.214 7.568,-15.188c5.148,-5.148 12.11,-7.917 20.156,-8.021c-0.103,8.044 -2.873,15.008 -8.019,20.155c-5.068,5.069 -11.916,7.832 -19.826,8.005c0.305,-1.329 0.388,-2.675 0.247,-4.004m15.442,10.982c4.308,-1.865 8.14,-4.461 11.399,-7.717c8.291,-8.292 12.115,-19.961 10.77,-32.86l-0.43,-4.143l-4.145,-0.432c-12.888,-1.351 -24.564,2.477 -32.858,10.772c-1.515,1.513 -2.92,3.202 -4.185,5.028c-6.367,-19.061 -19.001,-35.447 -36.575,-47.431c-18.004,-12.276 -39.553,-18.766 -62.32,-18.766c-31.35,0 -59.519,12.482 -78.509,32.516c-13.419,14.158 -22.255,32.087 -24.391,52.048c-0.377,3.509 0.753,6.928 3.182,9.633c1.744,1.939 4.04,3.347 6.655,4.086l-0,9.589c-3.854,2.323 -7.015,5.661 -9.142,9.656c-0.194,0.346 -0.379,0.704 -0.593,1.15c-0.86,1.763 -1.488,3.707 -1.868,5.781c-0.039,0.199 -0.074,0.396 -0.109,0.601c-0.078,0.496 -0.151,0.989 -0.201,1.502c-0.1,0.953 -0.149,1.804 -0.149,2.602c-0,0.874 0.05,1.76 0.155,2.71c0.076,0.754 0.204,1.464 0.316,2.068l0.018,0.097c0.011,0.07 0.022,0.138 0.035,0.197c0.47,2.346 1.253,4.517 2.326,6.45c3.658,6.957 10.439,11.803 18.175,13.005c7.129,40.76 42.279,70.401 83.723,70.582l0.377,0.003l0.375,-0.003l-0,-0.003c41.369,-0.263 76.427,-29.875 83.546,-70.579c7.737,-1.202 14.515,-6.048 18.168,-12.999c1.08,-1.942 1.865,-4.113 2.331,-6.448l0.056,-0.305c0.089,-0.481 0.181,-0.988 0.254,-1.537c5.895,3.285 12.523,4.948 19.706,4.948c1.659,0 3.346,-0.088 5.012,-0.263l4.143,-0.431l0.431,-4.145c1.345,-12.897 -2.48,-24.566 -10.771,-32.855c-1.484,-1.487 -3.132,-2.866 -4.907,-4.107", style: { fill: o, fillRule: "nonzero" } })
|
|
20
|
+
] });
|
|
21
|
+
}
|
|
22
|
+
function R({
|
|
23
|
+
variant: c = "full",
|
|
24
|
+
size: e = "md",
|
|
25
|
+
monochrome: o = !1,
|
|
26
|
+
href: a,
|
|
27
|
+
textColor: h,
|
|
28
|
+
colorScheme: u = "dark",
|
|
29
|
+
customText: x = "Tampa Devs",
|
|
30
|
+
className: g
|
|
31
|
+
}) {
|
|
32
|
+
const i = v[e], _ = h || (u === "light" ? "#1C2438" : "white"), z = () => /* @__PURE__ */ l("div", { className: "td-logo__icon", style: { width: i.iconSize, height: i.iconSize }, children: /* @__PURE__ */ l(k, { monochrome: o }) }), w = () => {
|
|
33
|
+
const t = x, r = t.lastIndexOf(" ");
|
|
34
|
+
if (r > 0 && t.toLowerCase().includes("devs")) {
|
|
35
|
+
const y = t.substring(0, r), S = t.substring(r + 1);
|
|
36
|
+
return /* @__PURE__ */ n("span", { className: "td-logo__wordmark", children: [
|
|
37
|
+
/* @__PURE__ */ l("span", { className: "td-logo__tampa", children: y }),
|
|
38
|
+
" ",
|
|
39
|
+
/* @__PURE__ */ l("span", { className: d("td-logo__devs", o && "td-logo__devs--mono"), children: S })
|
|
40
|
+
] });
|
|
41
|
+
}
|
|
42
|
+
return /* @__PURE__ */ l("span", { className: "td-logo__wordmark", children: /* @__PURE__ */ l("span", { className: "td-logo__tampa", children: t }) });
|
|
43
|
+
}, p = /* @__PURE__ */ n(s, { children: [
|
|
44
|
+
(c === "icon" || c === "full") && z(),
|
|
45
|
+
(c === "wordmark" || c === "full") && w()
|
|
46
|
+
] }), m = {
|
|
47
|
+
fontSize: i.fontSize,
|
|
48
|
+
gap: i.gap,
|
|
49
|
+
"--logo-text-color": _
|
|
50
|
+
};
|
|
51
|
+
return a ? /* @__PURE__ */ n(s, { children: [
|
|
52
|
+
/* @__PURE__ */ l("a", { href: a, className: d("td-logo", g), style: m, children: p }),
|
|
53
|
+
/* @__PURE__ */ l(f, {})
|
|
54
|
+
] }) : /* @__PURE__ */ n(s, { children: [
|
|
55
|
+
/* @__PURE__ */ l("span", { className: d("td-logo", g), style: m, children: p }),
|
|
56
|
+
/* @__PURE__ */ l(f, {})
|
|
57
|
+
] });
|
|
58
|
+
}
|
|
59
|
+
function f() {
|
|
60
|
+
return /* @__PURE__ */ l("style", { children: `
|
|
61
|
+
.td-logo {
|
|
62
|
+
display: inline-flex;
|
|
63
|
+
align-items: center;
|
|
64
|
+
text-decoration: none;
|
|
65
|
+
color: inherit;
|
|
66
|
+
transition: opacity 0.15s ease;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
a.td-logo:hover {
|
|
70
|
+
opacity: 0.9;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.td-logo__icon {
|
|
74
|
+
display: flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
justify-content: center;
|
|
77
|
+
flex-shrink: 0;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.td-logo__icon svg {
|
|
81
|
+
width: 100%;
|
|
82
|
+
height: 100%;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.td-logo__wordmark {
|
|
86
|
+
display: inline-flex;
|
|
87
|
+
gap: 0.25em;
|
|
88
|
+
font-weight: 700;
|
|
89
|
+
letter-spacing: -0.02em;
|
|
90
|
+
white-space: nowrap;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.td-logo__tampa {
|
|
94
|
+
color: var(--logo-text-color, white);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.td-logo__devs {
|
|
98
|
+
color: #E85A4F;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.td-logo__devs--mono {
|
|
102
|
+
color: var(--logo-text-color, white);
|
|
103
|
+
}
|
|
104
|
+
` });
|
|
105
|
+
}
|
|
106
|
+
export {
|
|
107
|
+
R as Logo
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=index6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index6.js","sources":["../src/components/Logo.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nexport type LogoVariant = 'full' | 'wordmark' | 'icon';\nexport type LogoSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nexport type LogoColorScheme = 'dark' | 'light' | 'auto';\n\nexport interface LogoProps {\n variant?: LogoVariant;\n size?: LogoSize;\n monochrome?: boolean;\n href?: string;\n textColor?: string;\n colorScheme?: LogoColorScheme;\n customText?: string;\n className?: string;\n}\n\nconst sizeMap: Record<LogoSize, { fontSize: string; iconSize: string; gap: string }> = {\n xs: { fontSize: '0.875rem', iconSize: '24px', gap: '0.5em' },\n sm: { fontSize: '1rem', iconSize: '32px', gap: '0.5em' },\n md: { fontSize: '1.25rem', iconSize: '40px', gap: '0.75em' },\n lg: { fontSize: '1.5rem', iconSize: '48px', gap: '0.75em' },\n xl: { fontSize: '2rem', iconSize: '64px', gap: '0.75em' },\n '2xl': { fontSize: '2.5rem', iconSize: '80px', gap: '0.75em' },\n};\n\nfunction LogoIcon({ monochrome }: { monochrome: boolean }) {\n const redColor = monochrome ? 'currentColor' : '#d70100';\n const blackColor = monochrome ? 'currentColor' : '#000';\n\n return (\n <svg viewBox=\"0 0 260 260\" xmlns=\"http://www.w3.org/2000/svg\" style={{ fillRule: 'evenodd', clipRule: 'evenodd', strokeLinejoin: 'round', strokeMiterlimit: 2 }}>\n <path d=\"M158.271,116.348l-96.245,-0c-2.454,0.609 -15.574,4.29 -25.365,15.306l0,30.132l0.065,-0.003l0.537,4.341c4.677,37.664 36.833,66.072 74.82,66.118c37.989,-0.046 70.146,-28.454 74.822,-66.118l0.538,-4.341l0.064,0.003l0,-25.064c-9.782,-14.993 -26.438,-19.68 -29.236,-20.374\" style={{ fill: '#fff', fillRule: 'nonzero' }} />\n <path d=\"M234.921,98.695c5.29,-5.291 8.112,-12.571 8.133,-20.801c-8.232,0.021 -15.512,2.843 -20.802,8.134c-4.108,4.108 -6.707,9.424 -7.682,15.444c0.039,0.333 0.097,0.661 0.133,0.996c0.158,1.484 0.024,2.948 -0.357,4.349c8.137,-0.071 15.332,-2.88 20.575,-8.122\" style={{ fill: redColor, fillRule: 'nonzero' }} />\n <path d=\"M207.629,116.382c0.021,8.229 2.844,15.509 8.134,20.8c5.29,5.291 12.57,8.112 20.8,8.132c-0.021,-8.229 -2.843,-15.509 -8.133,-20.8c-5.291,-5.291 -12.571,-8.112 -20.801,-8.132\" style={{ fill: redColor, fillRule: 'nonzero' }} />\n <path d=\"M112.175,27.757c-48.436,0 -88.441,32.554 -93.063,75.724c-0.092,0.871 0.332,1.548 0.704,1.962c0.779,0.866 2.03,1.384 3.348,1.384l178.022,0c1.316,0 2.567,-0.517 3.346,-1.384c0.034,-0.038 0.067,-0.088 0.101,-0.129c0.046,-1.339 0.155,-2.657 0.319,-3.955c-5.683,-42.106 -45.141,-73.602 -92.777,-73.602\" style={{ fill: redColor, fillRule: 'nonzero' }} />\n <path d=\"M63.606,137.207l12.905,16.819l-12.905,16.818l12.342,-0l12.905,-16.818l-12.905,-16.819l-12.342,-0Z\" style={{ fill: blackColor, fillRule: 'nonzero' }} />\n <path d=\"M216.028,136.915c-5.147,-5.148 -7.917,-12.111 -8.021,-20.154c8.047,0.103 15.011,2.872 20.156,8.019c5.147,5.148 7.917,12.112 8.02,20.157c-8.046,-0.102 -15.009,-2.871 -20.155,-8.022m-11.765,-31.72l-0.01,-0.003c-0.707,0.786 -1.854,1.259 -3.067,1.259l-178.021,0c-1.214,0 -2.362,-0.473 -3.07,-1.259c-0.321,-0.358 -0.686,-0.938 -0.609,-1.669c4.602,-42.98 44.447,-75.391 92.688,-75.391c22.928,0 44.907,7.433 61.888,20.93c16.928,13.454 27.762,32.025 30.512,52.3c-0.161,1.293 -0.266,2.584 -0.311,3.833m-58.536,27.913c-5.724,0 -10.907,1.414 -14.694,4.234c-16.21,-3.196 -31.277,-10.3 -44.11,-20.622l71.257,-0.009c2.884,0.718 16.678,4.7 26.389,16.66c-7.332,2.629 -14.894,4.385 -22.619,5.251c-3.852,-3.678 -9.688,-5.514 -16.223,-5.514m40.806,32.969c-4.651,37.461 -36.657,65.742 -74.449,65.79c-37.79,-0.048 -69.796,-28.329 -74.449,-65.79l-0.538,-4.341l-0.061,-0.196l-0,-29.743c9.687,-10.83 22.586,-14.464 24.989,-15.074l10.894,-0.001c14.604,14.339 32.643,24.42 52.408,29.083c-0.376,1.441 -0.597,2.989 -0.597,4.677c-0,11.596 9.401,20.996 20.997,20.996c11.596,0 20.996,-9.4 20.996,-20.996c-0,-1.017 -0.096,-1.972 -0.236,-2.9c7.029,-1.022 13.924,-2.741 20.645,-5.123l-0,18.934l-0.599,4.684Zm28.543,-63.648c-0.021,-0.193 -0.048,-0.381 -0.074,-0.572c-0.018,-0.126 -0.037,-0.252 -0.052,-0.375c0.975,-5.963 3.592,-11.214 7.568,-15.188c5.148,-5.148 12.11,-7.917 20.156,-8.021c-0.103,8.044 -2.873,15.008 -8.019,20.155c-5.068,5.069 -11.916,7.832 -19.826,8.005c0.305,-1.329 0.388,-2.675 0.247,-4.004m15.442,10.982c4.308,-1.865 8.14,-4.461 11.399,-7.717c8.291,-8.292 12.115,-19.961 10.77,-32.86l-0.43,-4.143l-4.145,-0.432c-12.888,-1.351 -24.564,2.477 -32.858,10.772c-1.515,1.513 -2.92,3.202 -4.185,5.028c-6.367,-19.061 -19.001,-35.447 -36.575,-47.431c-18.004,-12.276 -39.553,-18.766 -62.32,-18.766c-31.35,0 -59.519,12.482 -78.509,32.516c-13.419,14.158 -22.255,32.087 -24.391,52.048c-0.377,3.509 0.753,6.928 3.182,9.633c1.744,1.939 4.04,3.347 6.655,4.086l-0,9.589c-3.854,2.323 -7.015,5.661 -9.142,9.656c-0.194,0.346 -0.379,0.704 -0.593,1.15c-0.86,1.763 -1.488,3.707 -1.868,5.781c-0.039,0.199 -0.074,0.396 -0.109,0.601c-0.078,0.496 -0.151,0.989 -0.201,1.502c-0.1,0.953 -0.149,1.804 -0.149,2.602c-0,0.874 0.05,1.76 0.155,2.71c0.076,0.754 0.204,1.464 0.316,2.068l0.018,0.097c0.011,0.07 0.022,0.138 0.035,0.197c0.47,2.346 1.253,4.517 2.326,6.45c3.658,6.957 10.439,11.803 18.175,13.005c7.129,40.76 42.279,70.401 83.723,70.582l0.377,0.003l0.375,-0.003l-0,-0.003c41.369,-0.263 76.427,-29.875 83.546,-70.579c7.737,-1.202 14.515,-6.048 18.168,-12.999c1.08,-1.942 1.865,-4.113 2.331,-6.448l0.056,-0.305c0.089,-0.481 0.181,-0.988 0.254,-1.537c5.895,3.285 12.523,4.948 19.706,4.948c1.659,0 3.346,-0.088 5.012,-0.263l4.143,-0.431l0.431,-4.145c1.345,-12.897 -2.48,-24.566 -10.771,-32.855c-1.484,-1.487 -3.132,-2.866 -4.907,-4.107\" style={{ fill: blackColor, fillRule: 'nonzero' }} />\n </svg>\n );\n}\n\nexport function Logo({\n variant = 'full',\n size = 'md',\n monochrome = false,\n href,\n textColor,\n colorScheme = 'dark',\n customText = 'Tampa Devs',\n className,\n}: LogoProps) {\n const sizeConfig = sizeMap[size];\n\n // Determine text color based on colorScheme if textColor not explicitly set\n const resolvedTextColor = textColor || (colorScheme === 'light' ? '#1C2438' : 'white');\n\n const renderIcon = () => (\n <div className=\"td-logo__icon\" style={{ width: sizeConfig.iconSize, height: sizeConfig.iconSize }}>\n <LogoIcon monochrome={monochrome} />\n </div>\n );\n\n const renderWordmark = () => {\n const text = customText;\n const spaceIndex = text.lastIndexOf(' ');\n\n if (spaceIndex > 0 && text.toLowerCase().includes('devs')) {\n const firstPart = text.substring(0, spaceIndex);\n const secondPart = text.substring(spaceIndex + 1);\n return (\n <span className=\"td-logo__wordmark\">\n <span className=\"td-logo__tampa\">{firstPart}</span>{' '}\n <span className={clsx('td-logo__devs', monochrome && 'td-logo__devs--mono')}>{secondPart}</span>\n </span>\n );\n }\n\n return (\n <span className=\"td-logo__wordmark\">\n <span className=\"td-logo__tampa\">{text}</span>\n </span>\n );\n };\n\n const content = (\n <>\n {(variant === 'icon' || variant === 'full') && renderIcon()}\n {(variant === 'wordmark' || variant === 'full') && renderWordmark()}\n </>\n );\n\n const style = {\n fontSize: sizeConfig.fontSize,\n gap: sizeConfig.gap,\n '--logo-text-color': resolvedTextColor,\n } as React.CSSProperties;\n\n if (href) {\n return (\n <>\n <a href={href} className={clsx('td-logo', className)} style={style}>\n {content}\n </a>\n <LogoStyles />\n </>\n );\n }\n\n return (\n <>\n <span className={clsx('td-logo', className)} style={style}>\n {content}\n </span>\n <LogoStyles />\n </>\n );\n}\n\nfunction LogoStyles() {\n return (\n <style>{`\n .td-logo {\n display: inline-flex;\n align-items: center;\n text-decoration: none;\n color: inherit;\n transition: opacity 0.15s ease;\n }\n\n a.td-logo:hover {\n opacity: 0.9;\n }\n\n .td-logo__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .td-logo__icon svg {\n width: 100%;\n height: 100%;\n }\n\n .td-logo__wordmark {\n display: inline-flex;\n gap: 0.25em;\n font-weight: 700;\n letter-spacing: -0.02em;\n white-space: nowrap;\n }\n\n .td-logo__tampa {\n color: var(--logo-text-color, white);\n }\n\n .td-logo__devs {\n color: #E85A4F;\n }\n\n .td-logo__devs--mono {\n color: var(--logo-text-color, white);\n }\n `}</style>\n );\n}\n"],"names":["sizeMap","LogoIcon","monochrome","redColor","blackColor","jsx","Logo","variant","size","href","textColor","colorScheme","customText","className","sizeConfig","resolvedTextColor","renderIcon","renderWordmark","text","spaceIndex","firstPart","secondPart","jsxs","clsx","content","Fragment","style","LogoStyles"],"mappings":"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"}
|