{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "profile-card", "title": "Profile Card", "description": "A block for displaying a user's profile information with a rough styling.", "dependencies": [ "roughjs" ], "registryDependencies": [ "https://www.bydefaulthuman.fun/r/use-rough.json", "utils", "https://www.bydefaulthuman.fun/r/crumble-theme.json", "https://www.bydefaulthuman.fun/r/rough-lib.json", "https://www.bydefaulthuman.fun/r/avatar.json", "https://www.bydefaulthuman.fun/r/badge.json", "https://www.bydefaulthuman.fun/r/button.json", "https://www.bydefaulthuman.fun/r/card.json", "https://www.bydefaulthuman.fun/r/tooltip.json", "https://www.bydefaulthuman.fun/r/rough-line.json" ], "files": [ { "path": "registry/new-york/blocks/ProfileCardBlock.tsx", "content": "\"use client\";\n\nimport { RoughLine } from \"@/components/primitives/rough-line\";\nimport { Avatar, AvatarGroup } from \"@/components/crumble/ui/avatar\";\nimport { Badge } from \"@/components/crumble/ui/badge\";\nimport { Button } from \"@/components/crumble/ui/button\";\nimport { Card } from \"@/components/crumble/ui/card\";\nimport { Tooltip } from \"@/components/crumble/ui/tooltip\";\n\nexport interface MutualFollower {\n fallback: string;\n src?: string;\n}\n\nexport interface ProfileCardBlockProps {\n avatarFallback?: string;\n avatarSrc?: string;\n bio?: string;\n followers?: number;\n following?: number;\n messageLabel?: string;\n mutualFollowers?: MutualFollower[];\n mutualFollowersLabel?: string;\n name?: string;\n onFollow?: (following: boolean) => void;\n onMessage?: () => void;\n role?: string;\n username?: string;\n}\n\nconst DEFAULT_MUTUAL_FOLLOWERS: MutualFollower[] = [\n { fallback: \"AC\" },\n { fallback: \"BM\" },\n { fallback: \"CD\" },\n { fallback: \"DP\" },\n];\n\nexport function ProfileCardBlock({\n avatarFallback = \"GL\",\n avatarSrc,\n bio = \"Designing systems that feel playful without losing the sharp edges needed for production.\",\n followers = 1420,\n following = 318,\n messageLabel = \"Message\",\n mutualFollowers = DEFAULT_MUTUAL_FOLLOWERS,\n mutualFollowersLabel = \"Mutual followers\",\n name = \"Grace Liu\",\n onFollow,\n onMessage,\n role = \"Design Engineer\",\n username = \"@graceliu\",\n}: ProfileCardBlockProps) {\n return (\n \n
\n
\n
\n \n
\n

{name}

\n

{username}

\n
\n {role}\n
\n
\n
\n
\n\n

{bio}

\n\n \n\n
\n
\n

{followers}

\n

\n Followers\n

\n
\n
\n

{following}

\n

\n Following\n

\n
\n
\n\n
\n
\n

\n {mutualFollowersLabel}\n

\n ({\n fallback: follower.fallback,\n src: follower.src,\n }))}\n size={28}\n />\n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n );\n}\n", "type": "registry:ui", "target": "components/crumble/blocks/profile-card.tsx" } ], "type": "registry:block" }