@sproutsocial/seeds-react-profile 0.3.35 → 0.3.38
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/.turbo/turbo-build.log +67 -11
- package/CHANGELOG.md +47 -0
- package/dist/esm/index.js +255 -23
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +4 -42
- package/dist/index.d.ts +4 -42
- package/dist/index.js +255 -23
- package/dist/index.js.map +1 -1
- package/dist/inline-profile.css +73 -0
- package/dist/profile-card.css +74 -0
- package/dist/profile-token.css +23 -0
- package/package.json +21 -10
- package/src/InlineProfile.stories.tsx +27 -0
- package/src/InlineProfile.tsx +1 -153
- package/src/InlineProfileHybrid.tsx +18 -0
- package/src/InlineProfileStyled.tsx +143 -0
- package/src/InlineProfileTailwind.tsx +81 -0
- package/src/ProfileCard.stories.tsx +27 -0
- package/src/ProfileCard.tsx +4 -186
- package/src/ProfileCardHybrid.tsx +25 -0
- package/src/ProfileCardStyled.tsx +188 -0
- package/src/ProfileCardTailwind.tsx +154 -0
- package/src/ProfileToken.stories.tsx +16 -0
- package/src/ProfileToken.tsx +4 -40
- package/src/ProfileTokenHybrid.tsx +18 -0
- package/src/ProfileTokenStyled.tsx +37 -0
- package/src/ProfileTokenTailwind.tsx +40 -0
- package/src/__tests__/InlineProfile.test.tsx +37 -0
- package/src/__tests__/ProfileCard.test.tsx +64 -0
- package/src/__tests__/ProfileToken.test.tsx +12 -0
- package/src/cn.ts +28 -0
- package/src/inline-profile.css +73 -0
- package/src/profile-card.css +74 -0
- package/src/profile-token.css +23 -0
package/dist/index.d.mts
CHANGED
|
@@ -84,48 +84,10 @@ interface TypeProfileCardProps extends TypeBaseProfileProps {
|
|
|
84
84
|
cardProps?: TypeCardProps;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
|
|
88
|
-
* A flexible profile component that can display user profiles in various formats
|
|
89
|
-
* across different social networks with consistent styling and behavior.
|
|
90
|
-
*/
|
|
91
|
-
declare const ProfileCard: ({ partnerName, name, secondaryName, avatarUrl, subtext, description, verificationType, profileUrl, location, bannerColor, bannerContent, metadata, profileActions, footer, cardProps, }: TypeProfileCardProps) => react_jsx_runtime.JSX.Element;
|
|
87
|
+
declare const ProfileCardHybrid: (props: TypeProfileCardProps) => react_jsx_runtime.JSX.Element;
|
|
92
88
|
|
|
93
|
-
|
|
94
|
-
* A compact inline profile component that displays avatar, name/handle, and verification.
|
|
95
|
-
* Perfect for use in post headers, comments, or other compact spaces.
|
|
96
|
-
*
|
|
97
|
-
* @param props - Profile props
|
|
98
|
-
* @param props.name - Name of the profile
|
|
99
|
-
* @param props.secondaryName - Secondary name of the profile
|
|
100
|
-
* @param props.partnerName - Partner logo name
|
|
101
|
-
* @param props.partnerLogoLabel - Aria-label for the partner logo
|
|
102
|
-
* @param props.avatarSize - Size of the avatar
|
|
103
|
-
* @param props.avatarUrl - Image URL for the avatar
|
|
104
|
-
* @param props.children - Additional elements to render within the profile component
|
|
105
|
-
* @returns JSX.Element representing a user profile
|
|
106
|
-
*
|
|
107
|
-
* @example
|
|
108
|
-
* <InlineProfile
|
|
109
|
-
* name="John Doe"
|
|
110
|
-
* secondaryName="johndoe123"
|
|
111
|
-
* partnerName="facebook"
|
|
112
|
-
* partnerLogoLabel="Facebook Logo"
|
|
113
|
-
* avatarSize="24px"
|
|
114
|
-
* avatarUrl="https://example.com/avatar.jpg"
|
|
115
|
-
* >
|
|
116
|
-
* <Badge text="Moderator" badgeColor="green" />
|
|
117
|
-
* </InlineProfile>
|
|
118
|
-
*/
|
|
119
|
-
declare const InlineProfile: ({ name, secondaryName, partnerName, partnerLogoLabel, size, avatarSize: avatarSizeOverride, avatarUrl, verificationType, className, }: TypeInlineProfileProps) => react_jsx_runtime.JSX.Element;
|
|
89
|
+
declare const InlineProfileHybrid: (props: TypeInlineProfileProps) => react_jsx_runtime.JSX.Element;
|
|
120
90
|
|
|
121
|
-
|
|
122
|
-
* A ProfileToken component that wraps InlineProfile in a Seeds Token component.
|
|
123
|
-
* This token is not closable and provides a compact way to display profile information inline.
|
|
124
|
-
*
|
|
125
|
-
* ProfileToken enforces design standards by only showing the profile name and network logo.
|
|
126
|
-
* It does not support avatars, secondary names (handles), or custom avatar sizes.
|
|
127
|
-
* Use InlineProfile directly if you need more flexibility.
|
|
128
|
-
*/
|
|
129
|
-
declare const ProfileToken: ({ className, onClick, tokenProps, ...props }: ProfileTokenProps) => react_jsx_runtime.JSX.Element;
|
|
91
|
+
declare const ProfileTokenHybrid: (props: ProfileTokenProps) => react_jsx_runtime.JSX.Element;
|
|
130
92
|
|
|
131
|
-
export { InlineProfile, ProfileCard, ProfileToken, type ProfileTokenProps, type TypeBaseProfileProps, type TypeInlineProfileProps, type TypeProfileCardProps, type TypeProfileNetwork, type TypeProfileVerification };
|
|
93
|
+
export { InlineProfileHybrid as InlineProfile, ProfileCardHybrid as ProfileCard, ProfileTokenHybrid as ProfileToken, type ProfileTokenProps, type TypeBaseProfileProps, type TypeInlineProfileProps, type TypeProfileCardProps, type TypeProfileNetwork, type TypeProfileVerification };
|
package/dist/index.d.ts
CHANGED
|
@@ -84,48 +84,10 @@ interface TypeProfileCardProps extends TypeBaseProfileProps {
|
|
|
84
84
|
cardProps?: TypeCardProps;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
|
|
88
|
-
* A flexible profile component that can display user profiles in various formats
|
|
89
|
-
* across different social networks with consistent styling and behavior.
|
|
90
|
-
*/
|
|
91
|
-
declare const ProfileCard: ({ partnerName, name, secondaryName, avatarUrl, subtext, description, verificationType, profileUrl, location, bannerColor, bannerContent, metadata, profileActions, footer, cardProps, }: TypeProfileCardProps) => react_jsx_runtime.JSX.Element;
|
|
87
|
+
declare const ProfileCardHybrid: (props: TypeProfileCardProps) => react_jsx_runtime.JSX.Element;
|
|
92
88
|
|
|
93
|
-
|
|
94
|
-
* A compact inline profile component that displays avatar, name/handle, and verification.
|
|
95
|
-
* Perfect for use in post headers, comments, or other compact spaces.
|
|
96
|
-
*
|
|
97
|
-
* @param props - Profile props
|
|
98
|
-
* @param props.name - Name of the profile
|
|
99
|
-
* @param props.secondaryName - Secondary name of the profile
|
|
100
|
-
* @param props.partnerName - Partner logo name
|
|
101
|
-
* @param props.partnerLogoLabel - Aria-label for the partner logo
|
|
102
|
-
* @param props.avatarSize - Size of the avatar
|
|
103
|
-
* @param props.avatarUrl - Image URL for the avatar
|
|
104
|
-
* @param props.children - Additional elements to render within the profile component
|
|
105
|
-
* @returns JSX.Element representing a user profile
|
|
106
|
-
*
|
|
107
|
-
* @example
|
|
108
|
-
* <InlineProfile
|
|
109
|
-
* name="John Doe"
|
|
110
|
-
* secondaryName="johndoe123"
|
|
111
|
-
* partnerName="facebook"
|
|
112
|
-
* partnerLogoLabel="Facebook Logo"
|
|
113
|
-
* avatarSize="24px"
|
|
114
|
-
* avatarUrl="https://example.com/avatar.jpg"
|
|
115
|
-
* >
|
|
116
|
-
* <Badge text="Moderator" badgeColor="green" />
|
|
117
|
-
* </InlineProfile>
|
|
118
|
-
*/
|
|
119
|
-
declare const InlineProfile: ({ name, secondaryName, partnerName, partnerLogoLabel, size, avatarSize: avatarSizeOverride, avatarUrl, verificationType, className, }: TypeInlineProfileProps) => react_jsx_runtime.JSX.Element;
|
|
89
|
+
declare const InlineProfileHybrid: (props: TypeInlineProfileProps) => react_jsx_runtime.JSX.Element;
|
|
120
90
|
|
|
121
|
-
|
|
122
|
-
* A ProfileToken component that wraps InlineProfile in a Seeds Token component.
|
|
123
|
-
* This token is not closable and provides a compact way to display profile information inline.
|
|
124
|
-
*
|
|
125
|
-
* ProfileToken enforces design standards by only showing the profile name and network logo.
|
|
126
|
-
* It does not support avatars, secondary names (handles), or custom avatar sizes.
|
|
127
|
-
* Use InlineProfile directly if you need more flexibility.
|
|
128
|
-
*/
|
|
129
|
-
declare const ProfileToken: ({ className, onClick, tokenProps, ...props }: ProfileTokenProps) => react_jsx_runtime.JSX.Element;
|
|
91
|
+
declare const ProfileTokenHybrid: (props: ProfileTokenProps) => react_jsx_runtime.JSX.Element;
|
|
130
92
|
|
|
131
|
-
export { InlineProfile, ProfileCard, ProfileToken, type ProfileTokenProps, type TypeBaseProfileProps, type TypeInlineProfileProps, type TypeProfileCardProps, type TypeProfileNetwork, type TypeProfileVerification };
|
|
93
|
+
export { InlineProfileHybrid as InlineProfile, ProfileCardHybrid as ProfileCard, ProfileTokenHybrid as ProfileToken, type ProfileTokenProps, type TypeBaseProfileProps, type TypeInlineProfileProps, type TypeProfileCardProps, type TypeProfileNetwork, type TypeProfileVerification };
|
package/dist/index.js
CHANGED
|
@@ -30,13 +30,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/index.ts
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
|
-
InlineProfile: () =>
|
|
34
|
-
ProfileCard: () =>
|
|
35
|
-
ProfileToken: () =>
|
|
33
|
+
InlineProfile: () => InlineProfileHybrid,
|
|
34
|
+
ProfileCard: () => ProfileCardHybrid,
|
|
35
|
+
ProfileToken: () => ProfileTokenHybrid
|
|
36
36
|
});
|
|
37
37
|
module.exports = __toCommonJS(index_exports);
|
|
38
38
|
|
|
39
|
-
// src/
|
|
39
|
+
// src/ProfileCardHybrid.tsx
|
|
40
|
+
var import_seeds_react_system_props = require("@sproutsocial/seeds-react-system-props");
|
|
41
|
+
|
|
42
|
+
// src/ProfileCardStyled.tsx
|
|
40
43
|
var import_styled_components = __toESM(require("styled-components"));
|
|
41
44
|
var import_seeds_react_partner_logo = require("@sproutsocial/seeds-react-partner-logo");
|
|
42
45
|
var import_seeds_react_avatar = require("@sproutsocial/seeds-react-avatar");
|
|
@@ -89,7 +92,7 @@ var VerifiedProfileIcon = ({
|
|
|
89
92
|
);
|
|
90
93
|
};
|
|
91
94
|
|
|
92
|
-
// src/
|
|
95
|
+
// src/ProfileCardStyled.tsx
|
|
93
96
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
94
97
|
var StyledProfileCard = (0, import_styled_components.default)(import_seeds_react_card.Card)`
|
|
95
98
|
max-width: 300px;
|
|
@@ -146,7 +149,7 @@ var InfoRow = import_styled_components.default.div`
|
|
|
146
149
|
align-items: center;
|
|
147
150
|
gap: ${(props) => props.theme.space[300]};
|
|
148
151
|
`;
|
|
149
|
-
var
|
|
152
|
+
var ProfileCardStyled = ({
|
|
150
153
|
partnerName,
|
|
151
154
|
name,
|
|
152
155
|
secondaryName,
|
|
@@ -214,11 +217,149 @@ var ProfileCard = ({
|
|
|
214
217
|
] });
|
|
215
218
|
};
|
|
216
219
|
|
|
217
|
-
// src/
|
|
218
|
-
var import_styled_components2 = __toESM(require("styled-components"));
|
|
220
|
+
// src/ProfileCardTailwind.tsx
|
|
219
221
|
var import_seeds_react_partner_logo2 = require("@sproutsocial/seeds-react-partner-logo");
|
|
220
222
|
var import_seeds_react_avatar2 = require("@sproutsocial/seeds-react-avatar");
|
|
223
|
+
var import_seeds_react_icon3 = require("@sproutsocial/seeds-react-icon");
|
|
224
|
+
var import_seeds_react_link2 = require("@sproutsocial/seeds-react-link");
|
|
225
|
+
var import_seeds_react_text2 = require("@sproutsocial/seeds-react-text");
|
|
226
|
+
|
|
227
|
+
// src/cn.ts
|
|
228
|
+
function cn(...inputs) {
|
|
229
|
+
const classes = [];
|
|
230
|
+
for (const input of inputs) {
|
|
231
|
+
if (!input) continue;
|
|
232
|
+
if (typeof input === "string") {
|
|
233
|
+
classes.push(input);
|
|
234
|
+
} else if (typeof input === "object") {
|
|
235
|
+
for (const [key, value] of Object.entries(input)) {
|
|
236
|
+
if (value) {
|
|
237
|
+
classes.push(key);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return classes.join(" ");
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// src/ProfileCardTailwind.tsx
|
|
221
246
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
247
|
+
var ProfileCardTailwind = ({
|
|
248
|
+
partnerName,
|
|
249
|
+
name,
|
|
250
|
+
secondaryName,
|
|
251
|
+
avatarUrl,
|
|
252
|
+
subtext,
|
|
253
|
+
description,
|
|
254
|
+
verificationType,
|
|
255
|
+
profileUrl,
|
|
256
|
+
location,
|
|
257
|
+
bannerColor,
|
|
258
|
+
bannerContent,
|
|
259
|
+
metadata,
|
|
260
|
+
profileActions,
|
|
261
|
+
footer,
|
|
262
|
+
className,
|
|
263
|
+
cardProps
|
|
264
|
+
}) => {
|
|
265
|
+
const {
|
|
266
|
+
className: cardClassName,
|
|
267
|
+
role: cardRole,
|
|
268
|
+
...restCardProps
|
|
269
|
+
} = cardProps ?? {};
|
|
270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
271
|
+
"div",
|
|
272
|
+
{
|
|
273
|
+
role: cardRole ?? "presentation",
|
|
274
|
+
className: cn("seeds-profile-card", className, cardClassName),
|
|
275
|
+
...restCardProps,
|
|
276
|
+
children: [
|
|
277
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
278
|
+
"div",
|
|
279
|
+
{
|
|
280
|
+
className: "seeds-profile-card-header",
|
|
281
|
+
style: {
|
|
282
|
+
["--seeds-profile-card-banner-bg"]: bannerColor ?? (partnerName ? `var(--color-network-${partnerName})` : void 0)
|
|
283
|
+
},
|
|
284
|
+
children: [
|
|
285
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_seeds_react_avatar2.Avatar, { src: avatarUrl, name, size: "60px", mt: 450 }),
|
|
286
|
+
bannerContent && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "seeds-profile-card-banner-content", children: bannerContent })
|
|
287
|
+
]
|
|
288
|
+
}
|
|
289
|
+
),
|
|
290
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "seeds-profile-card-actions", children: profileActions }),
|
|
291
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "seeds-profile-card-content", children: [
|
|
292
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "seeds-profile-card-name-section", children: [
|
|
293
|
+
partnerName && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
294
|
+
import_seeds_react_partner_logo2.PartnerLogo,
|
|
295
|
+
{
|
|
296
|
+
partnerName,
|
|
297
|
+
"aria-label": `${partnerName} profile`,
|
|
298
|
+
size: "small"
|
|
299
|
+
}
|
|
300
|
+
),
|
|
301
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_seeds_react_text2.Text.SubHeadline, { as: "h2", children: name })
|
|
302
|
+
] }),
|
|
303
|
+
subtext && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_seeds_react_text2.Text, { fontSize: 200, color: "text.subtext", children: subtext }),
|
|
304
|
+
secondaryName && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "seeds-profile-card-info-row", children: [
|
|
305
|
+
profileUrl ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_seeds_react_link2.Link, { href: profileUrl, external: true, children: [
|
|
306
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_seeds_react_text2.Text, { fontSize: 200, children: secondaryName }),
|
|
307
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
308
|
+
import_seeds_react_icon3.Icon,
|
|
309
|
+
{
|
|
310
|
+
name: "arrow-right-up-outline",
|
|
311
|
+
"aria-hidden": true,
|
|
312
|
+
ml: 100,
|
|
313
|
+
size: "small"
|
|
314
|
+
}
|
|
315
|
+
)
|
|
316
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_seeds_react_text2.Text.SmallByline, { color: "text.subtext", children: secondaryName }),
|
|
317
|
+
verificationType && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
318
|
+
VerifiedProfileIcon,
|
|
319
|
+
{
|
|
320
|
+
partnerName,
|
|
321
|
+
verificationType
|
|
322
|
+
}
|
|
323
|
+
)
|
|
324
|
+
] }),
|
|
325
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_seeds_react_text2.Text, { color: "text.subtext", fontSize: 200, children: description }),
|
|
326
|
+
location && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "seeds-profile-card-info-row", children: [
|
|
327
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
328
|
+
import_seeds_react_icon3.Icon,
|
|
329
|
+
{
|
|
330
|
+
color: "icon.base",
|
|
331
|
+
name: "location-pin-outline",
|
|
332
|
+
"aria-hidden": true,
|
|
333
|
+
size: "small"
|
|
334
|
+
}
|
|
335
|
+
),
|
|
336
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_seeds_react_text2.Text, { color: "text.subtext", fontSize: 200, children: location })
|
|
337
|
+
] }),
|
|
338
|
+
metadata && metadata.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "seeds-profile-card-info-row", children: metadata.map((info, index) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_seeds_react_text2.Text, { color: "text.subtext", fontSize: 200, children: info }, index)) })
|
|
339
|
+
] }),
|
|
340
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "seeds-profile-card-footer", children: footer })
|
|
341
|
+
]
|
|
342
|
+
}
|
|
343
|
+
);
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
// src/ProfileCardHybrid.tsx
|
|
347
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
348
|
+
var ProfileCardHybrid = (props) => {
|
|
349
|
+
if ((0, import_seeds_react_system_props.needsStyledComponents)(props) || props.cardProps && (0, import_seeds_react_system_props.needsStyledComponents)(props.cardProps)) {
|
|
350
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ProfileCardStyled, { ...props });
|
|
351
|
+
}
|
|
352
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ProfileCardTailwind, { ...props });
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
// src/InlineProfileHybrid.tsx
|
|
356
|
+
var import_seeds_react_system_props2 = require("@sproutsocial/seeds-react-system-props");
|
|
357
|
+
|
|
358
|
+
// src/InlineProfileStyled.tsx
|
|
359
|
+
var import_styled_components2 = __toESM(require("styled-components"));
|
|
360
|
+
var import_seeds_react_partner_logo3 = require("@sproutsocial/seeds-react-partner-logo");
|
|
361
|
+
var import_seeds_react_avatar3 = require("@sproutsocial/seeds-react-avatar");
|
|
362
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
222
363
|
var InlineProfileContainer = import_styled_components2.default.span`
|
|
223
364
|
display: inline-flex;
|
|
224
365
|
flex-direction: row;
|
|
@@ -279,7 +420,7 @@ var avatarSizeMap = {
|
|
|
279
420
|
medium: "20px",
|
|
280
421
|
large: "24px"
|
|
281
422
|
};
|
|
282
|
-
var
|
|
423
|
+
var InlineProfileStyled = ({
|
|
283
424
|
name,
|
|
284
425
|
secondaryName,
|
|
285
426
|
partnerName,
|
|
@@ -292,22 +433,22 @@ var InlineProfile = ({
|
|
|
292
433
|
}) => {
|
|
293
434
|
const displayName = name || secondaryName || "Unknown Profile";
|
|
294
435
|
const avatarSize = avatarSizeOverride || avatarSizeMap[size];
|
|
295
|
-
return /* @__PURE__ */ (0,
|
|
296
|
-
avatarUrl && /* @__PURE__ */ (0,
|
|
297
|
-
/* @__PURE__ */ (0,
|
|
298
|
-
partnerName && /* @__PURE__ */ (0,
|
|
299
|
-
|
|
436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(InlineProfileContainer, { className, $size: size, children: [
|
|
437
|
+
avatarUrl && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(InlineProfileAvatar, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_seeds_react_avatar3.Avatar, { src: avatarUrl, name: displayName, size: avatarSize }) }),
|
|
438
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(InlineProfileContent, { children: [
|
|
439
|
+
partnerName && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(InlineProfileNetwork, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
440
|
+
import_seeds_react_partner_logo3.PartnerLogo,
|
|
300
441
|
{
|
|
301
442
|
partnerName,
|
|
302
443
|
"aria-label": partnerLogoLabel || `${partnerName} profile`,
|
|
303
444
|
size: "small"
|
|
304
445
|
}
|
|
305
446
|
) }),
|
|
306
|
-
/* @__PURE__ */ (0,
|
|
307
|
-
name && /* @__PURE__ */ (0,
|
|
308
|
-
secondaryName && /* @__PURE__ */ (0,
|
|
447
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(InlineProfileText, { children: [
|
|
448
|
+
name && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(InlineProfileName, { children: name }),
|
|
449
|
+
secondaryName && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(InlineProfileHandle, { children: secondaryName })
|
|
309
450
|
] }),
|
|
310
|
-
verificationType && /* @__PURE__ */ (0,
|
|
451
|
+
verificationType && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
311
452
|
VerifiedProfileIcon,
|
|
312
453
|
{
|
|
313
454
|
partnerName,
|
|
@@ -318,10 +459,70 @@ var InlineProfile = ({
|
|
|
318
459
|
] });
|
|
319
460
|
};
|
|
320
461
|
|
|
321
|
-
// src/
|
|
462
|
+
// src/InlineProfileTailwind.tsx
|
|
463
|
+
var import_seeds_react_partner_logo4 = require("@sproutsocial/seeds-react-partner-logo");
|
|
464
|
+
var import_seeds_react_avatar4 = require("@sproutsocial/seeds-react-avatar");
|
|
465
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
466
|
+
var avatarSizeMap2 = {
|
|
467
|
+
small: "16px",
|
|
468
|
+
medium: "20px",
|
|
469
|
+
large: "24px"
|
|
470
|
+
};
|
|
471
|
+
var InlineProfileTailwind = ({
|
|
472
|
+
name,
|
|
473
|
+
secondaryName,
|
|
474
|
+
partnerName,
|
|
475
|
+
partnerLogoLabel,
|
|
476
|
+
size = "medium",
|
|
477
|
+
avatarSize: avatarSizeOverride,
|
|
478
|
+
avatarUrl,
|
|
479
|
+
verificationType,
|
|
480
|
+
className
|
|
481
|
+
}) => {
|
|
482
|
+
const displayName = name || secondaryName || "Unknown Profile";
|
|
483
|
+
const avatarSize = avatarSizeOverride || avatarSizeMap2[size];
|
|
484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: cn("seeds-inline-profile", className), children: [
|
|
485
|
+
avatarUrl && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "seeds-inline-profile-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_seeds_react_avatar4.Avatar, { src: avatarUrl, name: displayName, size: avatarSize }) }),
|
|
486
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "seeds-inline-profile-content", children: [
|
|
487
|
+
partnerName && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "seeds-inline-profile-network", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
488
|
+
import_seeds_react_partner_logo4.PartnerLogo,
|
|
489
|
+
{
|
|
490
|
+
partnerName,
|
|
491
|
+
"aria-label": partnerLogoLabel || `${partnerName} profile`,
|
|
492
|
+
size: "small"
|
|
493
|
+
}
|
|
494
|
+
) }),
|
|
495
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "seeds-inline-profile-text", children: [
|
|
496
|
+
name && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "seeds-inline-profile-name", children: name }),
|
|
497
|
+
secondaryName && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "seeds-inline-profile-handle", children: secondaryName })
|
|
498
|
+
] }),
|
|
499
|
+
verificationType && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
500
|
+
VerifiedProfileIcon,
|
|
501
|
+
{
|
|
502
|
+
partnerName,
|
|
503
|
+
verificationType
|
|
504
|
+
}
|
|
505
|
+
)
|
|
506
|
+
] })
|
|
507
|
+
] });
|
|
508
|
+
};
|
|
509
|
+
|
|
510
|
+
// src/InlineProfileHybrid.tsx
|
|
511
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
512
|
+
var InlineProfileHybrid = (props) => {
|
|
513
|
+
if ((0, import_seeds_react_system_props2.needsStyledComponents)(props)) {
|
|
514
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(InlineProfileStyled, { ...props });
|
|
515
|
+
}
|
|
516
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(InlineProfileTailwind, { ...props });
|
|
517
|
+
};
|
|
518
|
+
|
|
519
|
+
// src/ProfileTokenHybrid.tsx
|
|
520
|
+
var import_seeds_react_system_props3 = require("@sproutsocial/seeds-react-system-props");
|
|
521
|
+
|
|
522
|
+
// src/ProfileTokenStyled.tsx
|
|
322
523
|
var import_styled_components3 = __toESM(require("styled-components"));
|
|
323
524
|
var import_seeds_react_token = require("@sproutsocial/seeds-react-token");
|
|
324
|
-
var
|
|
525
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
325
526
|
var StyledProfileToken = (0, import_styled_components3.default)(import_seeds_react_token.Token)`
|
|
326
527
|
box-sizing: border-box;
|
|
327
528
|
display: inline-flex;
|
|
@@ -331,21 +532,52 @@ var StyledProfileToken = (0, import_styled_components3.default)(import_seeds_rea
|
|
|
331
532
|
${(props) => props.theme.space[200]};
|
|
332
533
|
margin: ${(props) => props.theme.space[100]} 0;
|
|
333
534
|
`;
|
|
334
|
-
var
|
|
535
|
+
var ProfileTokenStyled = ({
|
|
335
536
|
className,
|
|
336
537
|
onClick,
|
|
337
538
|
tokenProps,
|
|
338
539
|
...props
|
|
339
|
-
}) => /* @__PURE__ */ (0,
|
|
540
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
340
541
|
StyledProfileToken,
|
|
341
542
|
{
|
|
342
543
|
className,
|
|
343
544
|
closeable: false,
|
|
344
545
|
onClick,
|
|
345
546
|
...tokenProps,
|
|
346
|
-
children: /* @__PURE__ */ (0,
|
|
547
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(InlineProfileHybrid, { size: "small", ...props })
|
|
347
548
|
}
|
|
348
549
|
);
|
|
550
|
+
|
|
551
|
+
// src/ProfileTokenTailwind.tsx
|
|
552
|
+
var import_seeds_react_token2 = require("@sproutsocial/seeds-react-token");
|
|
553
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
554
|
+
var ProfileTokenTailwind = ({
|
|
555
|
+
className,
|
|
556
|
+
onClick,
|
|
557
|
+
tokenProps,
|
|
558
|
+
...props
|
|
559
|
+
}) => {
|
|
560
|
+
const { className: tokenClassName, ...restTokenProps } = tokenProps ?? {};
|
|
561
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
562
|
+
import_seeds_react_token2.Token,
|
|
563
|
+
{
|
|
564
|
+
className: cn("seeds-profile-token", className, tokenClassName),
|
|
565
|
+
closeable: false,
|
|
566
|
+
onClick,
|
|
567
|
+
...restTokenProps,
|
|
568
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(InlineProfileHybrid, { size: "small", ...props })
|
|
569
|
+
}
|
|
570
|
+
);
|
|
571
|
+
};
|
|
572
|
+
|
|
573
|
+
// src/ProfileTokenHybrid.tsx
|
|
574
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
575
|
+
var ProfileTokenHybrid = (props) => {
|
|
576
|
+
if ((0, import_seeds_react_system_props3.needsStyledComponents)(props)) {
|
|
577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ProfileTokenStyled, { ...props });
|
|
578
|
+
}
|
|
579
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ProfileTokenTailwind, { ...props });
|
|
580
|
+
};
|
|
349
581
|
// Annotate the CommonJS export names for ESM import in node:
|
|
350
582
|
0 && (module.exports = {
|
|
351
583
|
InlineProfile,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/ProfileCard.tsx","../src/VerifiedProfileIcon.tsx","../src/InlineProfile.tsx","../src/ProfileToken.tsx"],"sourcesContent":["export * from \"./ProfileCard\";\nexport * from \"./InlineProfile\";\nexport * from \"./ProfileToken\";\nexport * from \"./types\";\n","import styled from \"styled-components\";\nimport { PartnerLogo } from \"@sproutsocial/seeds-react-partner-logo\";\nimport { Avatar } from \"@sproutsocial/seeds-react-avatar\";\nimport {\n Card,\n CardHeader,\n CardContent,\n CardFooter,\n} from \"@sproutsocial/seeds-react-card\";\nimport { Icon } from \"@sproutsocial/seeds-react-icon\";\nimport { Link } from \"@sproutsocial/seeds-react-link\";\nimport { Text } from \"@sproutsocial/seeds-react-text\";\nimport type { TypeProfileCardProps } from \"./types\";\nimport { VerifiedProfileIcon } from \"./VerifiedProfileIcon\";\n\n// Styled Components\nconst StyledProfileCard = styled(Card)`\n max-width: 300px;\n`;\n\nconst StyledCardHeader = styled(CardHeader)<{\n $bannerColor?: string;\n $partnerName?: string;\n}>`\n position: relative;\n height: 80px;\n padding: ${(props) => props.theme.space[400]}\n ${(props) => props.theme.space[400]} 0 ${(props) => props.theme.space[400]};\n margin-bottom: 0;\n color: ${(props) => props.theme.colors.text.inverse};\n border-radius: ${(props) => props.theme.radii[500]}\n ${(props) => props.theme.radii[500]} 0 0;\n ${(props) => {\n // Use explicit bannerColor if provided\n if (props.$bannerColor) {\n return `background: ${props.$bannerColor};`;\n }\n // Fall back to theme.colors.network[partnerName] if partnerName is available\n if (props.$partnerName && props.theme.colors.network) {\n const networkColor =\n props.theme.colors.network[\n props.$partnerName as keyof typeof props.theme.colors.network\n ];\n return networkColor ? `background: ${networkColor};` : \"\";\n }\n return \"\";\n }}\n`;\n\nconst BannerContent = styled.div`\n display: flex;\n justify-content: flex-end;\n width: 100%;\n`;\n\nconst ActionsSection = styled.div`\n display: flex;\n justify-content: flex-end;\n gap: ${(props) => props.theme.space[100]};\n padding: 0 ${(props) => props.theme.space[300]};\n\n &:empty {\n min-height: 44px;\n }\n`;\n\nconst StyledCardContent = styled(CardContent)`\n display: flex;\n flex-direction: column;\n gap: ${(props) => props.theme.space[300]};\n padding: 0 ${(props) => props.theme.space[400]}\n ${(props) => props.theme.space[400]};\n`;\n\nconst ProfileNameSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${(props) => props.theme.space[200]};\n`;\n\nconst InfoRow = styled.div`\n display: flex;\n align-items: center;\n gap: ${(props) => props.theme.space[300]};\n`;\n\n/**\n * A flexible profile component that can display user profiles in various formats\n * across different social networks with consistent styling and behavior.\n */\nexport const ProfileCard = ({\n partnerName,\n name,\n secondaryName,\n avatarUrl,\n subtext,\n description,\n verificationType,\n profileUrl,\n location,\n bannerColor,\n bannerContent,\n metadata,\n profileActions,\n footer,\n cardProps,\n}: TypeProfileCardProps) => {\n return (\n <StyledProfileCard role=\"presentation\" {...cardProps}>\n <StyledCardHeader $bannerColor={bannerColor} $partnerName={partnerName}>\n <Avatar src={avatarUrl} name={name} size=\"60px\" mt={450} />\n {bannerContent && <BannerContent>{bannerContent}</BannerContent>}\n </StyledCardHeader>\n\n <ActionsSection>{profileActions}</ActionsSection>\n\n <StyledCardContent>\n <ProfileNameSection>\n {partnerName && (\n <PartnerLogo\n partnerName={partnerName}\n aria-label={`${partnerName} profile`}\n size=\"small\"\n />\n )}\n <Text.SubHeadline as=\"h2\">{name}</Text.SubHeadline>\n </ProfileNameSection>\n\n {subtext && (\n <Text fontSize={200} color=\"text.subtext\">\n {subtext}\n </Text>\n )}\n\n {secondaryName && (\n <InfoRow>\n {profileUrl ? (\n <Link href={profileUrl} external>\n <Text fontSize={200}>{secondaryName}</Text>\n <Icon\n name=\"arrow-right-up-outline\"\n aria-hidden\n ml={100}\n size=\"small\"\n />\n </Link>\n ) : (\n <Text.SmallByline color=\"text.subtext\">\n {secondaryName}\n </Text.SmallByline>\n )}\n {verificationType && (\n <VerifiedProfileIcon\n partnerName={partnerName}\n verificationType={verificationType}\n />\n )}\n </InfoRow>\n )}\n\n {description && <Text fontSize={200}>{description}</Text>}\n\n {location && (\n <InfoRow>\n <Icon name=\"location-pin-outline\" aria-hidden size=\"small\" />\n <Text fontSize={200}>{location}</Text>\n </InfoRow>\n )}\n\n {metadata && metadata.length > 0 && (\n <InfoRow>\n {metadata.map((info, index) => (\n <Text fontSize={200} key={index}>\n {info}\n </Text>\n ))}\n </InfoRow>\n )}\n </StyledCardContent>\n\n {footer && <CardFooter>{footer}</CardFooter>}\n </StyledProfileCard>\n );\n};\n\nexport default ProfileCard;\n","import { Icon } from \"@sproutsocial/seeds-react-icon\";\nimport type { TypeProfileNetwork, TypeProfileVerification } from \"./types\";\n\n// TODO: Move these to a more appropriate location\nconst VERIFICATION_COLORS = {\n twitter: \"#000000\",\n facebook: \"#1877F2\",\n x: \"#000000\",\n linkedin: \"#0A66C2\",\n instagram: \"#e4405f\",\n gray: \"#515e5f\",\n} as const;\n\n/**\n * Gets the verification color based on partnerName and verification type\n */\nexport const getVerificationColor = (\n partnerName?: TypeProfileNetwork,\n verificationType?: TypeProfileVerification\n): string => {\n if (!verificationType || verificationType === \"not_verified\") return \"\";\n\n switch (verificationType) {\n case \"blue_verified\":\n // Use partner-specific blue color\n return partnerName === \"facebook\"\n ? VERIFICATION_COLORS.facebook\n : VERIFICATION_COLORS.twitter;\n case \"gray_verified\":\n return VERIFICATION_COLORS.gray;\n case \"verified\":\n default:\n // Default to partner color or Twitter blue\n if (partnerName && partnerName in VERIFICATION_COLORS) {\n return VERIFICATION_COLORS[\n partnerName as keyof typeof VERIFICATION_COLORS\n ];\n }\n return VERIFICATION_COLORS.twitter;\n }\n};\n\nexport interface TypeVerifiedProfileIconProps {\n partnerName?: TypeProfileNetwork;\n verificationType: TypeProfileVerification;\n}\n\nexport const VerifiedProfileIcon = ({\n partnerName,\n verificationType,\n}: TypeVerifiedProfileIconProps) => {\n if (!verificationType || verificationType === \"not_verified\") return;\n\n const verificationColor = getVerificationColor(partnerName, verificationType);\n return (\n <Icon\n title=\"Verified\"\n aria-label=\"Verified account\"\n color={verificationColor}\n name=\"verified\"\n ml=\"150\"\n />\n );\n};\n","import styled from \"styled-components\";\nimport { PartnerLogo } from \"@sproutsocial/seeds-react-partner-logo\";\nimport { Avatar } from \"@sproutsocial/seeds-react-avatar\";\nimport type { TypeInlineProfileProps } from \"./types\";\nimport { VerifiedProfileIcon } from \"./VerifiedProfileIcon\";\n\nconst InlineProfileContainer = styled.span<{\n $size?: \"small\" | \"medium\" | \"large\";\n}>`\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: ${(props) => props.theme.space[200]};\n max-width: 100%;\n ${(props) => props.theme.typography[200]}\n color: ${(props) => props.theme.colors.text.subtext};\n text-align: inherit;\n`;\n\nconst InlineProfileAvatar = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n`;\n\nconst InlineProfileContent = styled.span`\n display: inline-flex;\n align-items: center;\n gap: ${(props) => props.theme.space[200]};\n min-width: 0;\n flex: 1;\n`;\n\nconst InlineProfileNetwork = styled.span`\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n`;\n\nconst InlineProfileText = styled.span`\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: ${(props) => props.theme.space[200]};\n min-width: 0;\n flex: 1;\n`;\n\nconst InlineProfileName = styled.span`\n display: inline-block;\n ${(props) => props.theme.typography[200]}\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n color: ${(props) => props.theme.colors.text.body};\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst InlineProfileHandle = styled.span`\n display: inline-block;\n ${(props) => props.theme.typography[200]}\n font-family: ${(props) => props.theme.fontFamily};\n color: ${(props) => props.theme.colors.text.subtext};\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst avatarSizeMap = {\n small: \"16px\",\n medium: \"20px\",\n large: \"24px\",\n} as const;\n\n/**\n * A compact inline profile component that displays avatar, name/handle, and verification.\n * Perfect for use in post headers, comments, or other compact spaces.\n *\n * @param props - Profile props\n * @param props.name - Name of the profile\n * @param props.secondaryName - Secondary name of the profile\n * @param props.partnerName - Partner logo name\n * @param props.partnerLogoLabel - Aria-label for the partner logo\n * @param props.avatarSize - Size of the avatar\n * @param props.avatarUrl - Image URL for the avatar\n * @param props.children - Additional elements to render within the profile component\n * @returns JSX.Element representing a user profile\n *\n * @example\n * <InlineProfile\n * name=\"John Doe\"\n * secondaryName=\"johndoe123\"\n * partnerName=\"facebook\"\n * partnerLogoLabel=\"Facebook Logo\"\n * avatarSize=\"24px\"\n * avatarUrl=\"https://example.com/avatar.jpg\"\n * >\n * <Badge text=\"Moderator\" badgeColor=\"green\" />\n * </InlineProfile>\n */\nexport const InlineProfile = ({\n name,\n secondaryName,\n partnerName,\n partnerLogoLabel,\n size = \"medium\",\n avatarSize: avatarSizeOverride,\n avatarUrl,\n verificationType,\n className,\n}: TypeInlineProfileProps) => {\n const displayName = name || secondaryName || \"Unknown Profile\";\n const avatarSize = avatarSizeOverride || avatarSizeMap[size];\n\n return (\n <InlineProfileContainer className={className} $size={size}>\n {avatarUrl && (\n <InlineProfileAvatar>\n <Avatar src={avatarUrl} name={displayName} size={avatarSize} />\n </InlineProfileAvatar>\n )}\n\n <InlineProfileContent>\n {partnerName && (\n <InlineProfileNetwork>\n <PartnerLogo\n partnerName={partnerName}\n aria-label={partnerLogoLabel || `${partnerName} profile`}\n size=\"small\"\n />\n </InlineProfileNetwork>\n )}\n\n <InlineProfileText>\n {name && <InlineProfileName>{name}</InlineProfileName>}\n\n {secondaryName && (\n <InlineProfileHandle>{secondaryName}</InlineProfileHandle>\n )}\n </InlineProfileText>\n\n {verificationType && (\n <VerifiedProfileIcon\n partnerName={partnerName}\n verificationType={verificationType}\n />\n )}\n </InlineProfileContent>\n </InlineProfileContainer>\n );\n};\n","import styled from \"styled-components\";\nimport { Token } from \"@sproutsocial/seeds-react-token\";\nimport { InlineProfile } from \"./InlineProfile\";\nimport type { ProfileTokenProps } from \"./types\";\n\nconst StyledProfileToken = styled(Token)`\n box-sizing: border-box;\n display: inline-flex;\n max-width: 100%;\n vertical-align: middle;\n padding: ${(props) => props.theme.space[100]}\n ${(props) => props.theme.space[200]};\n margin: ${(props) => props.theme.space[100]} 0;\n`;\n\n/**\n * A ProfileToken component that wraps InlineProfile in a Seeds Token component.\n * This token is not closable and provides a compact way to display profile information inline.\n *\n * ProfileToken enforces design standards by only showing the profile name and network logo.\n * It does not support avatars, secondary names (handles), or custom avatar sizes.\n * Use InlineProfile directly if you need more flexibility.\n */\nexport const ProfileToken = ({\n className,\n onClick,\n tokenProps,\n ...props\n}: ProfileTokenProps) => (\n <StyledProfileToken\n className={className}\n closeable={false}\n onClick={onClick}\n {...tokenProps}\n >\n <InlineProfile size=\"small\" {...props} />\n </StyledProfileToken>\n);\n\nexport default ProfileToken;\n"],"mappings":"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","names":["import_seeds_react_icon","import_jsx_runtime","styled","import_styled_components","import_seeds_react_partner_logo","import_seeds_react_avatar","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/ProfileCardHybrid.tsx","../src/ProfileCardStyled.tsx","../src/VerifiedProfileIcon.tsx","../src/ProfileCardTailwind.tsx","../src/cn.ts","../src/InlineProfileHybrid.tsx","../src/InlineProfileStyled.tsx","../src/InlineProfileTailwind.tsx","../src/ProfileTokenHybrid.tsx","../src/ProfileTokenStyled.tsx","../src/ProfileTokenTailwind.tsx"],"sourcesContent":["export * from \"./ProfileCard\";\nexport * from \"./InlineProfile\";\nexport * from \"./ProfileToken\";\nexport * from \"./types\";\n","/**\n * Hybrid ProfileCard component.\n * Routes between the Tailwind implementation (preferred) and the\n * styled-components implementation (for consumers using styled-system props or\n * a styled() extension).\n */\n\nimport { needsStyledComponents } from \"@sproutsocial/seeds-react-system-props\";\nimport type { TypeProfileCardProps } from \"./types\";\nimport { ProfileCardStyled } from \"./ProfileCardStyled\";\nimport { ProfileCardTailwind } from \"./ProfileCardTailwind\";\n\nexport const ProfileCardHybrid = (props: TypeProfileCardProps) => {\n // Styled-system props may be passed at the top level or nested inside\n // cardProps (which the Styled path spreads onto the real styled(Card)). The\n // Tailwind path can only forward DOM-safe attributes, so route either case to\n // the styled-components implementation to preserve backward compatibility.\n if (\n needsStyledComponents(props) ||\n (props.cardProps && needsStyledComponents(props.cardProps))\n ) {\n return <ProfileCardStyled {...props} />;\n }\n return <ProfileCardTailwind {...props} />;\n};\n","import styled from \"styled-components\";\nimport { PartnerLogo } from \"@sproutsocial/seeds-react-partner-logo\";\nimport { Avatar } from \"@sproutsocial/seeds-react-avatar\";\nimport {\n Card,\n CardHeader,\n CardContent,\n CardFooter,\n} from \"@sproutsocial/seeds-react-card\";\nimport { Icon } from \"@sproutsocial/seeds-react-icon\";\nimport { Link } from \"@sproutsocial/seeds-react-link\";\nimport { Text } from \"@sproutsocial/seeds-react-text\";\nimport type { TypeProfileCardProps } from \"./types\";\nimport { VerifiedProfileIcon } from \"./VerifiedProfileIcon\";\n\n// Styled Components\nconst StyledProfileCard = styled(Card)`\n max-width: 300px;\n`;\n\nconst StyledCardHeader = styled(CardHeader)<{\n $bannerColor?: string;\n $partnerName?: string;\n}>`\n position: relative;\n height: 80px;\n padding: ${(props) => props.theme.space[400]}\n ${(props) => props.theme.space[400]} 0 ${(props) => props.theme.space[400]};\n margin-bottom: 0;\n color: ${(props) => props.theme.colors.text.inverse};\n border-radius: ${(props) => props.theme.radii[500]}\n ${(props) => props.theme.radii[500]} 0 0;\n ${(props) => {\n // Use explicit bannerColor if provided\n if (props.$bannerColor) {\n return `background: ${props.$bannerColor};`;\n }\n // Fall back to theme.colors.network[partnerName] if partnerName is available\n if (props.$partnerName && props.theme.colors.network) {\n const networkColor =\n props.theme.colors.network[\n props.$partnerName as keyof typeof props.theme.colors.network\n ];\n return networkColor ? `background: ${networkColor};` : \"\";\n }\n return \"\";\n }}\n`;\n\nconst BannerContent = styled.div`\n display: flex;\n justify-content: flex-end;\n width: 100%;\n`;\n\nconst ActionsSection = styled.div`\n display: flex;\n justify-content: flex-end;\n gap: ${(props) => props.theme.space[100]};\n padding: 0 ${(props) => props.theme.space[300]};\n\n &:empty {\n min-height: 44px;\n }\n`;\n\nconst StyledCardContent = styled(CardContent)`\n display: flex;\n flex-direction: column;\n gap: ${(props) => props.theme.space[300]};\n padding: 0 ${(props) => props.theme.space[400]}\n ${(props) => props.theme.space[400]};\n`;\n\nconst ProfileNameSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${(props) => props.theme.space[200]};\n`;\n\nconst InfoRow = styled.div`\n display: flex;\n align-items: center;\n gap: ${(props) => props.theme.space[300]};\n`;\n\n/**\n * Styled-components implementation of ProfileCard.\n *\n * Preserved as the legacy rendering path: the Hybrid routes here when the\n * component is extended via styled() or receives styled-system props. The\n * markup is byte-for-byte identical to the pre-migration ProfileCard,\n * including the dynamic banner background logic.\n */\nexport const ProfileCardStyled = ({\n partnerName,\n name,\n secondaryName,\n avatarUrl,\n subtext,\n description,\n verificationType,\n profileUrl,\n location,\n bannerColor,\n bannerContent,\n metadata,\n profileActions,\n footer,\n cardProps,\n}: TypeProfileCardProps) => {\n return (\n <StyledProfileCard role=\"presentation\" {...cardProps}>\n <StyledCardHeader $bannerColor={bannerColor} $partnerName={partnerName}>\n <Avatar src={avatarUrl} name={name} size=\"60px\" mt={450} />\n {bannerContent && <BannerContent>{bannerContent}</BannerContent>}\n </StyledCardHeader>\n\n <ActionsSection>{profileActions}</ActionsSection>\n\n <StyledCardContent>\n <ProfileNameSection>\n {partnerName && (\n <PartnerLogo\n partnerName={partnerName}\n aria-label={`${partnerName} profile`}\n size=\"small\"\n />\n )}\n <Text.SubHeadline as=\"h2\">{name}</Text.SubHeadline>\n </ProfileNameSection>\n\n {subtext && (\n <Text fontSize={200} color=\"text.subtext\">\n {subtext}\n </Text>\n )}\n\n {secondaryName && (\n <InfoRow>\n {profileUrl ? (\n <Link href={profileUrl} external>\n <Text fontSize={200}>{secondaryName}</Text>\n <Icon\n name=\"arrow-right-up-outline\"\n aria-hidden\n ml={100}\n size=\"small\"\n />\n </Link>\n ) : (\n <Text.SmallByline color=\"text.subtext\">\n {secondaryName}\n </Text.SmallByline>\n )}\n {verificationType && (\n <VerifiedProfileIcon\n partnerName={partnerName}\n verificationType={verificationType}\n />\n )}\n </InfoRow>\n )}\n\n {description && <Text fontSize={200}>{description}</Text>}\n\n {location && (\n <InfoRow>\n <Icon name=\"location-pin-outline\" aria-hidden size=\"small\" />\n <Text fontSize={200}>{location}</Text>\n </InfoRow>\n )}\n\n {metadata && metadata.length > 0 && (\n <InfoRow>\n {metadata.map((info, index) => (\n <Text fontSize={200} key={index}>\n {info}\n </Text>\n ))}\n </InfoRow>\n )}\n </StyledCardContent>\n\n {footer && <CardFooter>{footer}</CardFooter>}\n </StyledProfileCard>\n );\n};\n","import { Icon } from \"@sproutsocial/seeds-react-icon\";\nimport type { TypeProfileNetwork, TypeProfileVerification } from \"./types\";\n\n// TODO: Move these to a more appropriate location\nconst VERIFICATION_COLORS = {\n twitter: \"#000000\",\n facebook: \"#1877F2\",\n x: \"#000000\",\n linkedin: \"#0A66C2\",\n instagram: \"#e4405f\",\n gray: \"#515e5f\",\n} as const;\n\n/**\n * Gets the verification color based on partnerName and verification type\n */\nexport const getVerificationColor = (\n partnerName?: TypeProfileNetwork,\n verificationType?: TypeProfileVerification\n): string => {\n if (!verificationType || verificationType === \"not_verified\") return \"\";\n\n switch (verificationType) {\n case \"blue_verified\":\n // Use partner-specific blue color\n return partnerName === \"facebook\"\n ? VERIFICATION_COLORS.facebook\n : VERIFICATION_COLORS.twitter;\n case \"gray_verified\":\n return VERIFICATION_COLORS.gray;\n case \"verified\":\n default:\n // Default to partner color or Twitter blue\n if (partnerName && partnerName in VERIFICATION_COLORS) {\n return VERIFICATION_COLORS[\n partnerName as keyof typeof VERIFICATION_COLORS\n ];\n }\n return VERIFICATION_COLORS.twitter;\n }\n};\n\nexport interface TypeVerifiedProfileIconProps {\n partnerName?: TypeProfileNetwork;\n verificationType: TypeProfileVerification;\n}\n\nexport const VerifiedProfileIcon = ({\n partnerName,\n verificationType,\n}: TypeVerifiedProfileIconProps) => {\n if (!verificationType || verificationType === \"not_verified\") return;\n\n const verificationColor = getVerificationColor(partnerName, verificationType);\n return (\n <Icon\n title=\"Verified\"\n aria-label=\"Verified account\"\n color={verificationColor}\n name=\"verified\"\n ml=\"150\"\n />\n );\n};\n","/**\n * Tailwind/CSS-class implementation of ProfileCard.\n * Uses Seeds ProfileCard CSS classes from profile-card.css.\n *\n * The composed Card/CardHeader/CardContent/CardFooter components are not yet\n * migrated, so their styling is applied via their className prop. The dynamic\n * header background (bannerColor / network color) is applied via an inline\n * style, since no styled-components theme context is available on this path.\n */\n\nimport { PartnerLogo } from \"@sproutsocial/seeds-react-partner-logo\";\nimport { Avatar } from \"@sproutsocial/seeds-react-avatar\";\nimport { Icon } from \"@sproutsocial/seeds-react-icon\";\nimport { Link } from \"@sproutsocial/seeds-react-link\";\nimport { Text } from \"@sproutsocial/seeds-react-text\";\nimport type { TypeCardProps } from \"@sproutsocial/seeds-react-card\";\nimport type { TypeProfileCardProps } from \"./types\";\nimport { VerifiedProfileIcon } from \"./VerifiedProfileIcon\";\nimport { cn } from \"./cn\";\n\n/**\n * A flexible profile component that can display user profiles in various formats\n * across different social networks with consistent styling and behavior.\n */\nexport const ProfileCardTailwind = ({\n partnerName,\n name,\n secondaryName,\n avatarUrl,\n subtext,\n description,\n verificationType,\n profileUrl,\n location,\n bannerColor,\n bannerContent,\n metadata,\n profileActions,\n footer,\n className,\n cardProps,\n}: TypeProfileCardProps) => {\n const {\n className: cardClassName,\n role: cardRole,\n ...restCardProps\n } = cardProps ?? ({} as TypeCardProps);\n return (\n <div\n role={cardRole ?? \"presentation\"}\n className={cn(\"seeds-profile-card\", className, cardClassName)}\n // The Hybrid routes any cardProps carrying styled-system props to the SC\n // path, so whatever reaches this div is DOM-safe. Narrow the residual\n // TypeCardProps union (which TS cannot directly reconcile with DOM attrs)\n // to say so — it cannot leak Card-only props here.\n {...(restCardProps as unknown as React.HTMLAttributes<HTMLDivElement>)}\n >\n <div\n className=\"seeds-profile-card-header\"\n style={{\n [\"--seeds-profile-card-banner-bg\" as string]:\n bannerColor ??\n (partnerName ? `var(--color-network-${partnerName})` : undefined),\n }}\n >\n <Avatar src={avatarUrl} name={name} size=\"60px\" mt={450} />\n {bannerContent && (\n <div className=\"seeds-profile-card-banner-content\">\n {bannerContent}\n </div>\n )}\n </div>\n\n <div className=\"seeds-profile-card-actions\">{profileActions}</div>\n\n <div className=\"seeds-profile-card-content\">\n <div className=\"seeds-profile-card-name-section\">\n {partnerName && (\n <PartnerLogo\n partnerName={partnerName}\n aria-label={`${partnerName} profile`}\n size=\"small\"\n />\n )}\n <Text.SubHeadline as=\"h2\">{name}</Text.SubHeadline>\n </div>\n\n {subtext && (\n <Text fontSize={200} color=\"text.subtext\">\n {subtext}\n </Text>\n )}\n\n {secondaryName && (\n <div className=\"seeds-profile-card-info-row\">\n {profileUrl ? (\n <Link href={profileUrl} external>\n <Text fontSize={200}>{secondaryName}</Text>\n <Icon\n name=\"arrow-right-up-outline\"\n aria-hidden\n ml={100}\n size=\"small\"\n />\n </Link>\n ) : (\n <Text.SmallByline color=\"text.subtext\">\n {secondaryName}\n </Text.SmallByline>\n )}\n {verificationType && (\n <VerifiedProfileIcon\n partnerName={partnerName}\n verificationType={verificationType}\n />\n )}\n </div>\n )}\n\n {description && (\n <Text color=\"text.subtext\" fontSize={200}>\n {description}\n </Text>\n )}\n\n {location && (\n <div className=\"seeds-profile-card-info-row\">\n <Icon\n color=\"icon.base\"\n name=\"location-pin-outline\"\n aria-hidden\n size=\"small\"\n />\n <Text color=\"text.subtext\" fontSize={200}>\n {location}\n </Text>\n </div>\n )}\n\n {metadata && metadata.length > 0 && (\n <div className=\"seeds-profile-card-info-row\">\n {metadata.map((info, index) => (\n <Text color=\"text.subtext\" fontSize={200} key={index}>\n {info}\n </Text>\n ))}\n </div>\n )}\n </div>\n\n {footer && <div className=\"seeds-profile-card-footer\">{footer}</div>}\n </div>\n );\n};\n","/**\n * Local class-name merge helper for the Tailwind/CSS-class implementations.\n *\n * Copied verbatim from seeds-react-button's ButtonTailwind.tsx — `cn` is NOT\n * exported from @sproutsocial/seeds-react-utilities, so each migrated package\n * keeps its own local copy.\n */\nexport function cn(\n ...inputs: (string | undefined | null | false | Record<string, boolean>)[]\n): string {\n const classes: string[] = [];\n\n for (const input of inputs) {\n if (!input) continue;\n\n if (typeof input === \"string\") {\n classes.push(input);\n } else if (typeof input === \"object\") {\n for (const [key, value] of Object.entries(input)) {\n if (value) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(\" \");\n}\n","/**\n * Hybrid InlineProfile component.\n * Routes between the Tailwind implementation (preferred) and the\n * styled-components implementation (for consumers using styled-system props or\n * a styled() extension).\n */\n\nimport { needsStyledComponents } from \"@sproutsocial/seeds-react-system-props\";\nimport type { TypeInlineProfileProps } from \"./types\";\nimport { InlineProfileStyled } from \"./InlineProfileStyled\";\nimport { InlineProfileTailwind } from \"./InlineProfileTailwind\";\n\nexport const InlineProfileHybrid = (props: TypeInlineProfileProps) => {\n if (needsStyledComponents(props)) {\n return <InlineProfileStyled {...props} />;\n }\n return <InlineProfileTailwind {...props} />;\n};\n","import styled from \"styled-components\";\nimport { PartnerLogo } from \"@sproutsocial/seeds-react-partner-logo\";\nimport { Avatar } from \"@sproutsocial/seeds-react-avatar\";\nimport type { TypeInlineProfileProps } from \"./types\";\nimport { VerifiedProfileIcon } from \"./VerifiedProfileIcon\";\n\nconst InlineProfileContainer = styled.span<{\n $size?: \"small\" | \"medium\" | \"large\";\n}>`\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: ${(props) => props.theme.space[200]};\n max-width: 100%;\n ${(props) => props.theme.typography[200]}\n color: ${(props) => props.theme.colors.text.subtext};\n text-align: inherit;\n`;\n\nconst InlineProfileAvatar = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n`;\n\nconst InlineProfileContent = styled.span`\n display: inline-flex;\n align-items: center;\n gap: ${(props) => props.theme.space[200]};\n min-width: 0;\n flex: 1;\n`;\n\nconst InlineProfileNetwork = styled.span`\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n`;\n\nconst InlineProfileText = styled.span`\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: ${(props) => props.theme.space[200]};\n min-width: 0;\n flex: 1;\n`;\n\nconst InlineProfileName = styled.span`\n display: inline-block;\n ${(props) => props.theme.typography[200]}\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n color: ${(props) => props.theme.colors.text.body};\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst InlineProfileHandle = styled.span`\n display: inline-block;\n ${(props) => props.theme.typography[200]}\n font-family: ${(props) => props.theme.fontFamily};\n color: ${(props) => props.theme.colors.text.subtext};\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst avatarSizeMap = {\n small: \"16px\",\n medium: \"20px\",\n large: \"24px\",\n} as const;\n\n/**\n * Styled-components implementation of InlineProfile.\n *\n * Preserved as the legacy rendering path: the Hybrid routes here when the\n * component is extended via styled() or receives styled-system props. The\n * markup is byte-for-byte identical to the pre-migration InlineProfile.\n *\n * @param props - Profile props\n * @param props.name - Name of the profile\n * @param props.secondaryName - Secondary name of the profile\n * @param props.partnerName - Partner logo name\n * @param props.partnerLogoLabel - Aria-label for the partner logo\n * @param props.avatarSize - Size of the avatar\n * @param props.avatarUrl - Image URL for the avatar\n * @returns JSX.Element representing a user profile\n */\nexport const InlineProfileStyled = ({\n name,\n secondaryName,\n partnerName,\n partnerLogoLabel,\n size = \"medium\",\n avatarSize: avatarSizeOverride,\n avatarUrl,\n verificationType,\n className,\n}: TypeInlineProfileProps) => {\n const displayName = name || secondaryName || \"Unknown Profile\";\n const avatarSize = avatarSizeOverride || avatarSizeMap[size];\n\n return (\n <InlineProfileContainer className={className} $size={size}>\n {avatarUrl && (\n <InlineProfileAvatar>\n <Avatar src={avatarUrl} name={displayName} size={avatarSize} />\n </InlineProfileAvatar>\n )}\n\n <InlineProfileContent>\n {partnerName && (\n <InlineProfileNetwork>\n <PartnerLogo\n partnerName={partnerName}\n aria-label={partnerLogoLabel || `${partnerName} profile`}\n size=\"small\"\n />\n </InlineProfileNetwork>\n )}\n\n <InlineProfileText>\n {name && <InlineProfileName>{name}</InlineProfileName>}\n\n {secondaryName && (\n <InlineProfileHandle>{secondaryName}</InlineProfileHandle>\n )}\n </InlineProfileText>\n\n {verificationType && (\n <VerifiedProfileIcon\n partnerName={partnerName}\n verificationType={verificationType}\n />\n )}\n </InlineProfileContent>\n </InlineProfileContainer>\n );\n};\n","/**\n * Tailwind/CSS-class implementation of InlineProfile.\n * Uses Seeds InlineProfile CSS classes from inline-profile.css.\n */\n\nimport { PartnerLogo } from \"@sproutsocial/seeds-react-partner-logo\";\nimport { Avatar } from \"@sproutsocial/seeds-react-avatar\";\nimport type { TypeInlineProfileProps } from \"./types\";\nimport { VerifiedProfileIcon } from \"./VerifiedProfileIcon\";\nimport { cn } from \"./cn\";\n\nconst avatarSizeMap = {\n small: \"16px\",\n medium: \"20px\",\n large: \"24px\",\n} as const;\n\n/**\n * A compact inline profile component that displays avatar, name/handle, and verification.\n * Perfect for use in post headers, comments, or other compact spaces.\n *\n * @param props - Profile props\n * @param props.name - Name of the profile\n * @param props.secondaryName - Secondary name of the profile\n * @param props.partnerName - Partner logo name\n * @param props.partnerLogoLabel - Aria-label for the partner logo\n * @param props.avatarSize - Size of the avatar\n * @param props.avatarUrl - Image URL for the avatar\n * @returns JSX.Element representing a user profile\n */\nexport const InlineProfileTailwind = ({\n name,\n secondaryName,\n partnerName,\n partnerLogoLabel,\n size = \"medium\",\n avatarSize: avatarSizeOverride,\n avatarUrl,\n verificationType,\n className,\n}: TypeInlineProfileProps) => {\n const displayName = name || secondaryName || \"Unknown Profile\";\n const avatarSize = avatarSizeOverride || avatarSizeMap[size];\n\n return (\n <span className={cn(\"seeds-inline-profile\", className)}>\n {avatarUrl && (\n <span className=\"seeds-inline-profile-avatar\">\n <Avatar src={avatarUrl} name={displayName} size={avatarSize} />\n </span>\n )}\n\n <span className=\"seeds-inline-profile-content\">\n {partnerName && (\n <span className=\"seeds-inline-profile-network\">\n <PartnerLogo\n partnerName={partnerName}\n aria-label={partnerLogoLabel || `${partnerName} profile`}\n size=\"small\"\n />\n </span>\n )}\n\n <span className=\"seeds-inline-profile-text\">\n {name && <span className=\"seeds-inline-profile-name\">{name}</span>}\n\n {secondaryName && (\n <span className=\"seeds-inline-profile-handle\">{secondaryName}</span>\n )}\n </span>\n\n {verificationType && (\n <VerifiedProfileIcon\n partnerName={partnerName}\n verificationType={verificationType}\n />\n )}\n </span>\n </span>\n );\n};\n","/**\n * Hybrid ProfileToken component.\n * Routes between the Tailwind implementation (preferred) and the\n * styled-components implementation (for consumers using styled-system props or\n * a styled() extension).\n */\n\nimport { needsStyledComponents } from \"@sproutsocial/seeds-react-system-props\";\nimport type { ProfileTokenProps } from \"./types\";\nimport { ProfileTokenStyled } from \"./ProfileTokenStyled\";\nimport { ProfileTokenTailwind } from \"./ProfileTokenTailwind\";\n\nexport const ProfileTokenHybrid = (props: ProfileTokenProps) => {\n if (needsStyledComponents(props)) {\n return <ProfileTokenStyled {...props} />;\n }\n return <ProfileTokenTailwind {...props} />;\n};\n","import styled from \"styled-components\";\nimport { Token } from \"@sproutsocial/seeds-react-token\";\nimport { InlineProfile } from \"./InlineProfile\";\nimport type { ProfileTokenProps } from \"./types\";\n\nconst StyledProfileToken = styled(Token)`\n box-sizing: border-box;\n display: inline-flex;\n max-width: 100%;\n vertical-align: middle;\n padding: ${(props) => props.theme.space[100]}\n ${(props) => props.theme.space[200]};\n margin: ${(props) => props.theme.space[100]} 0;\n`;\n\n/**\n * Styled-components implementation of ProfileToken.\n *\n * Preserved as the legacy rendering path: the Hybrid routes here when the\n * component is extended via styled() or receives styled-system props. The\n * markup is byte-for-byte identical to the pre-migration ProfileToken.\n */\nexport const ProfileTokenStyled = ({\n className,\n onClick,\n tokenProps,\n ...props\n}: ProfileTokenProps) => (\n <StyledProfileToken\n className={className}\n closeable={false}\n onClick={onClick}\n {...tokenProps}\n >\n <InlineProfile size=\"small\" {...props} />\n </StyledProfileToken>\n);\n","/**\n * Tailwind/CSS-class implementation of ProfileToken.\n * Uses Seeds ProfileToken CSS classes from profile-token.css.\n *\n * The composed Token component is not yet migrated, so its styling is applied\n * via its className prop.\n */\n\nimport { Token } from \"@sproutsocial/seeds-react-token\";\nimport { InlineProfile } from \"./InlineProfile\";\nimport type { ProfileTokenProps } from \"./types\";\nimport { cn } from \"./cn\";\n\n/**\n * A ProfileToken component that wraps InlineProfile in a Seeds Token component.\n * This token is not closable and provides a compact way to display profile information inline.\n *\n * ProfileToken enforces design standards by only showing the profile name and network logo.\n * It does not support avatars, secondary names (handles), or custom avatar sizes.\n * Use InlineProfile directly if you need more flexibility.\n */\nexport const ProfileTokenTailwind = ({\n className,\n onClick,\n tokenProps,\n ...props\n}: ProfileTokenProps) => {\n const { className: tokenClassName, ...restTokenProps } =\n tokenProps ?? ({} as NonNullable<ProfileTokenProps[\"tokenProps\"]>);\n return (\n <Token\n className={cn(\"seeds-profile-token\", className, tokenClassName)}\n closeable={false}\n onClick={onClick}\n {...restTokenProps}\n >\n <InlineProfile size=\"small\" {...props} />\n </Token>\n );\n};\n"],"mappings":"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","names":["import_seeds_react_icon","import_jsx_runtime","styled","import_seeds_react_partner_logo","import_seeds_react_avatar","import_seeds_react_icon","import_seeds_react_link","import_seeds_react_text","import_jsx_runtime","import_jsx_runtime","import_seeds_react_system_props","import_styled_components","import_seeds_react_partner_logo","import_seeds_react_avatar","import_jsx_runtime","styled","import_seeds_react_partner_logo","import_seeds_react_avatar","import_jsx_runtime","avatarSizeMap","import_jsx_runtime","import_seeds_react_system_props","import_styled_components","import_jsx_runtime","styled","import_seeds_react_token","import_jsx_runtime","import_jsx_runtime"]}
|