{
  "name": "profile-management-profilecard",
  "type": "registry:component",
  "dependencies": [],
  "devDependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "path": "components/profile-management/ProfileCard.tsx",
      "type": "registry:component",
      "content": "\"use client\";\n\nimport {\n\tCheckIcon,\n\tCopyIcon,\n\tDotsHorizontalIcon,\n\tEnvelopeClosedIcon,\n\tExternalLinkIcon,\n\tGlobeIcon,\n\tHomeIcon,\n\tTokensIcon,\n} from \"@radix-ui/react-icons\";\nimport React from \"react\";\nimport { HEIGHTS } from \"../../lib/layout-constants.js\";\nimport type { ProfileInfo } from \"../../lib/types.js\";\nimport { BitcoinImage } from \"../ui-components/index.js\";\nimport { Badge } from \"../ui/badge.js\";\nimport { Button } from \"../ui/button.js\";\nimport { Card, CardContent } from \"../ui/card.js\";\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from \"../ui/dropdown-menu.js\";\nimport { ScrollArea } from \"../ui/scroll-area.js\";\nimport { Separator } from \"../ui/separator.js\";\n\nexport interface ProfileCardMenuItem {\n\tlabel: string;\n\tonClick: () => void;\n\ticon?: React.ReactNode;\n\tcolor?:\n\t\t| \"red\"\n\t\t| \"orange\"\n\t\t| \"yellow\"\n\t\t| \"green\"\n\t\t| \"blue\"\n\t\t| \"purple\"\n\t\t| \"pink\"\n\t\t| \"gray\";\n}\n\nexport interface ProfileCardStatus {\n\tlabel: string;\n\tcolor?:\n\t\t| \"red\"\n\t\t| \"orange\"\n\t\t| \"yellow\"\n\t\t| \"green\"\n\t\t| \"blue\"\n\t\t| \"purple\"\n\t\t| \"pink\"\n\t\t| \"gray\";\n\tvariant?: \"soft\" | \"solid\" | \"outline\" | \"surface\";\n}\n\nexport interface ProfileCardProps {\n\tprofile: ProfileInfo;\n\tshowActions?: boolean;\n\tonEdit?: () => void;\n\tonSwitch?: () => void;\n\tonViewDetails?: () => void;\n\tmenuItems?: ProfileCardMenuItem[];\n\tstatus?: ProfileCardStatus; // Custom status badge\n\tcompact?: boolean;\n\tvariant?: \"surface\" | \"classic\" | \"ghost\";\n\tsize?: \"1\" | \"2\" | \"3\" | \"4\" | \"5\";\n\tshowFullDetails?: boolean;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\tnoWrapper?: boolean; // When true, renders without Card wrapper (for use in popovers)\n}\n\n/**\n * ProfileCard supporting full schema.org Person/Organization structure\n *\n * Features:\n * - Complete schema.org field support (name, email, url, location, etc.)\n * - Person vs Organization type detection\n * - Rich contact information display\n * - Location and address handling\n * - Bitcoin-specific fields (paymail, address)\n * - Beautiful avatar with BitcoinImage wrapper\n * - Scrollable bio section\n * - Responsive design with multiple variants\n */\nexport function ProfileCard({\n\tprofile,\n\tshowActions = true,\n\tonEdit,\n\tonSwitch,\n\tonViewDetails,\n\tmenuItems,\n\tstatus,\n\tcompact = false,\n\tvariant = \"surface\",\n\tsize = \"2\",\n\tshowFullDetails = false,\n\tclassName = \"\",\n\tstyle,\n\tnoWrapper = false,\n}: ProfileCardProps) {\n\tconst [copied, setCopied] = React.useState<string | null>(null);\n\n\tconst handleCopy = async (text: string, type: string) => {\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(text);\n\t\t\tsetCopied(type);\n\t\t\tsetTimeout(() => setCopied(null), 2000);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Failed to copy:\", error);\n\t\t}\n\t};\n\n\tconst getInitials = (name?: string) => {\n\t\tif (!name) return \"?\";\n\t\treturn name\n\t\t\t.split(\" \")\n\t\t\t.map((word) => word[0])\n\t\t\t.join(\"\")\n\t\t\t.toUpperCase()\n\t\t\t.slice(0, 2);\n\t};\n\n\tconst getDisplayName = () => {\n\t\t// Support schema.org structure: alternateName, givenName+familyName, or fallback\n\t\tif (profile.alternateName) return profile.alternateName;\n\t\tif (profile.givenName && profile.familyName) {\n\t\t\treturn `${profile.givenName} ${profile.familyName}`;\n\t\t}\n\t\tif (profile.givenName) return profile.givenName;\n\t\tif (profile.name) return profile.name;\n\t\tif (profile.legalName) return profile.legalName;\n\t\treturn \"Unnamed Profile\";\n\t};\n\n\tconst getProfileType = () => {\n\t\t// Detect if it's a Person or Organization based on schema.org fields\n\t\tif (profile.legalName || profile.logo) return \"Organization\";\n\t\tif (profile.givenName || profile.familyName || profile.homeLocation)\n\t\t\treturn \"Person\";\n\t\treturn \"Person\"; // Default\n\t};\n\n\tconst profileType = getProfileType();\n\tconst displayName = getDisplayName();\n\tconst avatarImage =\n\t\tprofileType === \"Organization\"\n\t\t\t? profile.logo || profile.image\n\t\t\t: profile.image;\n\n\t// Use custom status or default to published/draft\n\tconst statusBadge = status || {\n\t\tlabel: profile.isPublished ? \"Published\" : \"Draft\",\n\t\tcolor: profile.isPublished ? \"green\" : \"orange\",\n\t\tvariant: \"soft\" as const,\n\t};\n\n\t// Compact view for tight spaces\n\tif (compact) {\n\t\treturn (\n\t\t\t<Card className={`p-3 ${className}`} style={style}>\n\t\t\t\t<div className=\"flex items-center gap-3\">\n\t\t\t\t\t<BitcoinImage\n\t\t\t\t\t\tsrc={avatarImage}\n\t\t\t\t\t\talt={displayName}\n\t\t\t\t\t\tfallback={getInitials(displayName)}\n\t\t\t\t\t\tclassName=\"w-8 h-8 rounded-md\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className=\"flex flex-col gap-1 flex-1 min-w-0\">\n\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t<p className=\"text-sm font-bold truncate\">{displayName}</p>\n\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tstatusBadge.variant === \"soft\" ? \"secondary\" : \"default\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"text-xs\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{statusBadge.label}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{profile.description && (\n\t\t\t\t\t\t\t<p className=\"text-xs text-muted-foreground truncate\">\n\t\t\t\t\t\t\t\t{profile.description}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{onSwitch && (\n\t\t\t\t\t\t<Button size=\"sm\" variant=\"ghost\" onClick={onSwitch}>\n\t\t\t\t\t\t\t<CheckIcon className=\"h-4 w-4\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</Card>\n\t\t);\n\t}\n\n\t// Full profile card view\n\tconst content = (\n\t\t<div className=\"flex flex-col gap-3\">\n\t\t\t{/* Header with Avatar and Basic Info */}\n\t\t\t<div className=\"flex items-start justify-between w-full\">\n\t\t\t\t<div className=\"flex items-center gap-4 flex-1 min-w-0\">\n\t\t\t\t\t<BitcoinImage\n\t\t\t\t\t\tsrc={avatarImage}\n\t\t\t\t\t\talt={displayName}\n\t\t\t\t\t\tfallback={getInitials(displayName)}\n\t\t\t\t\t\tclassName=\"w-16 h-16 rounded-md\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className=\"flex flex-col gap-2 flex-1 min-w-0\">\n\t\t\t\t\t\t<div className=\"flex items-center gap-3 w-full\">\n\t\t\t\t\t\t\t<h3 className=\"text-lg font-bold flex-1 min-w-0\">\n\t\t\t\t\t\t\t\t{displayName}\n\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tstatusBadge.variant === \"soft\" ? \"secondary\" : \"default\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"text-xs\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{statusBadge.label}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Legal name for organizations or full name for persons */}\n\t\t\t\t\t\t{profileType === \"Organization\" &&\n\t\t\t\t\t\t\tprofile.legalName &&\n\t\t\t\t\t\t\tprofile.legalName !== displayName && (\n\t\t\t\t\t\t\t\t<p className=\"text-sm text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t{profile.legalName}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{profileType === \"Person\" &&\n\t\t\t\t\t\t\tprofile.givenName &&\n\t\t\t\t\t\t\tprofile.familyName &&\n\t\t\t\t\t\t\t!profile.alternateName && (\n\t\t\t\t\t\t\t\t<p className=\"text-sm text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t{profile.givenName} {profile.familyName}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div className=\"flex items-center gap-2 w-full\">\n\t\t\t\t\t\t\t<p className=\"text-xs text-muted-foreground font-mono flex-1 min-w-0\">\n\t\t\t\t\t\t\t\t{profile.address.slice(0, 8)}...{profile.address.slice(-6)}\n\t\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\tonClick={() => handleCopy(profile.address, \"address\")}\n\t\t\t\t\t\t\t\taria-label=\"Copy address\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{copied === \"address\" ? (\n\t\t\t\t\t\t\t\t\t<CheckIcon className=\"h-3 w-3\" />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<CopyIcon className=\"h-3 w-3\" />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\t\taria-label=\"View on blockchain\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\thref={`https://whatsonchain.com/address/${profile.address}`}\n\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ExternalLinkIcon className=\"h-3 w-3\" />\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Menu - only show if menuItems provided */}\n\t\t\t\t{menuItems && menuItems.length > 0 && (\n\t\t\t\t\t<div className=\"flex-shrink-0 ml-3\">\n\t\t\t\t\t\t<DropdownMenu>\n\t\t\t\t\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t\t\t\t\t<Button size=\"sm\" variant=\"ghost\" aria-label=\"More options\">\n\t\t\t\t\t\t\t\t\t<DotsHorizontalIcon className=\"h-4 w-4\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t\t\t<DropdownMenuContent align=\"end\">\n\t\t\t\t\t\t\t\t{menuItems.map((item, index) => (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tkey={`profile-card-menu-item-${index + 1}`}\n\t\t\t\t\t\t\t\t\t\tonClick={item.onClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{item.icon && <span className=\"mr-2\">{item.icon}</span>}\n\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Bio/Description with ScrollArea */}\n\t\t\t{profile.description && (\n\t\t\t\t<div>\n\t\t\t\t\t<p className=\"text-sm font-medium mb-2\">About</p>\n\t\t\t\t\t<ScrollArea\n\t\t\t\t\t\tclassName=\"\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: showFullDetails ? \"auto\" : \"60px\",\n\t\t\t\t\t\t\tmaxHeight: showFullDetails ? HEIGHTS.CARD_MIN : \"60px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<p className=\"text-sm leading-6\">{profile.description}</p>\n\t\t\t\t\t</ScrollArea>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Contact & Location Information */}\n\t\t\t{showFullDetails && (\n\t\t\t\t<div className=\"flex flex-col gap-3 w-full\">\n\t\t\t\t\t{/* Email */}\n\t\t\t\t\t{profile.email && (\n\t\t\t\t\t\t<div className=\"flex items-center justify-between w-full\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2 w-20 flex-shrink-0\">\n\t\t\t\t\t\t\t\t<EnvelopeClosedIcon className=\"h-4 w-4\" />\n\t\t\t\t\t\t\t\t<p className=\"text-sm text-muted-foreground\">Email</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"flex-1 text-right pr-2\">\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\thref={`mailto:${profile.email}`}\n\t\t\t\t\t\t\t\t\tclassName=\"text-sm text-blue-600 hover:underline\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{profile.email}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"w-10 flex justify-end\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\tonClick={() => handleCopy(profile.email || \"\", \"email\")}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{copied === \"email\" ? (\n\t\t\t\t\t\t\t\t\t\t<CheckIcon className=\"h-3 w-3\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<CopyIcon className=\"h-3 w-3\" />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Website */}\n\t\t\t\t\t{profile.url && (\n\t\t\t\t\t\t<div className=\"flex items-center justify-between w-full\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2 w-20 flex-shrink-0\">\n\t\t\t\t\t\t\t\t<GlobeIcon className=\"h-4 w-4\" />\n\t\t\t\t\t\t\t\t<p className=\"text-sm text-muted-foreground\">Website</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"flex-1 text-right pr-2\">\n\t\t\t\t\t\t\t\t<p className=\"text-sm\">\n\t\t\t\t\t\t\t\t\t{profile.url.replace(/^https?:\\/\\//, \"\")}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"w-10 flex justify-end\">\n\t\t\t\t\t\t\t\t<Button size=\"sm\" variant=\"ghost\" asChild>\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\thref={profile.url}\n\t\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<ExternalLinkIcon className=\"h-3 w-3\" />\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Location */}\n\t\t\t\t\t{(profile.location || profile.homeLocation) && (\n\t\t\t\t\t\t<div className=\"flex items-center justify-between w-full\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2 w-20 flex-shrink-0\">\n\t\t\t\t\t\t\t\t{profileType === \"Organization\" ? (\n\t\t\t\t\t\t\t\t\t<TokensIcon className=\"h-4 w-4\" />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<HomeIcon className=\"h-4 w-4\" />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<p className=\"text-sm text-muted-foreground\">Location</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"flex-1 text-right pr-2\">\n\t\t\t\t\t\t\t\t<p className=\"text-sm\">\n\t\t\t\t\t\t\t\t\t{profileType === \"Organization\"\n\t\t\t\t\t\t\t\t\t\t? profile.location\n\t\t\t\t\t\t\t\t\t\t: profile.homeLocation}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"w-10\">{/* No action for location */}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Bitcoin Paymail */}\n\t\t\t\t\t{profile.paymail && (\n\t\t\t\t\t\t<div className=\"flex items-center justify-between w-full\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2 w-20 flex-shrink-0\">\n\t\t\t\t\t\t\t\t<span className=\"text-sm\">₿</span>\n\t\t\t\t\t\t\t\t<p className=\"text-sm text-muted-foreground\">Paymail</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"flex-1 text-right pr-2\">\n\t\t\t\t\t\t\t\t<p className=\"text-sm font-mono\">{profile.paymail}</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"w-10 flex justify-end\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\tonClick={() => handleCopy(profile.paymail || \"\", \"paymail\")}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{copied === \"paymail\" ? (\n\t\t\t\t\t\t\t\t\t\t<CheckIcon className=\"h-3 w-3\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<CopyIcon className=\"h-3 w-3\" />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Action Buttons */}\n\t\t\t{showActions && (onEdit || onSwitch || onViewDetails) && (\n\t\t\t\t<>\n\t\t\t\t\t<Separator className=\"my-4\" />\n\t\t\t\t\t<div className=\"flex flex-col sm:flex-row gap-2 sm:gap-3 justify-center sm:justify-end\">\n\t\t\t\t\t\t{onViewDetails && (\n\t\t\t\t\t\t\t<Button size=\"sm\" variant=\"outline\" onClick={onViewDetails}>\n\t\t\t\t\t\t\t\tDetails\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{onEdit && (\n\t\t\t\t\t\t\t<Button size=\"sm\" variant=\"outline\" onClick={onEdit}>\n\t\t\t\t\t\t\t\tEdit\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{onSwitch && (\n\t\t\t\t\t\t\t<Button size=\"sm\" variant=\"default\" onClick={onSwitch}>\n\t\t\t\t\t\t\t\t<CheckIcon className=\"h-4 w-4 mr-1\" />\n\t\t\t\t\t\t\t\t<span className=\"hidden sm:inline\">Switch to Profile</span>\n\t\t\t\t\t\t\t\t<span className=\"inline sm:hidden\">Switch</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n\n\t// Conditionally wrap in Card\n\tif (noWrapper) {\n\t\treturn content;\n\t}\n\n\treturn (\n\t\t<Card className={`p-6 ${className}`} style={style}>\n\t\t\t{content}\n\t\t</Card>\n\t);\n}\n",
      "target": "<%- config.aliases.components %>/profilecard.tsx"
    }
  ]
}