@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
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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"}