setIsOpen(true)}\n onMouseLeave={() => setIsOpen(false)}\n onFocus={() => setIsOpen(true)}\n onBlur={(e) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node | null)) {\n setIsOpen(false);\n }\n }}\n onKeyDown={(e) => {\n if (e.key === \"Escape\") setIsOpen(false);\n }}\n >\n
{\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setIsOpen((open) => !open);\n }\n }}\n className={cn(\n \"relative rounded-full overflow-hidden cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n imageSizeVariants[size]\n )}\n layout\n animate={{\n padding: isOpen ? \"8px\" : \"0px\",\n }}\n transition={{\n type: \"spring\",\n stiffness: 300,\n damping: 30,\n }}\n >\n {avatarElement}\n \n\n {/* Expanded Card Content */}\n
\n {isOpen && (\n \n {/* Background with gradient overlay on image */}\n \n
\n {avatarElement}\n
\n\n {/* Content Section */}\n
\n {/* Name */}\n \n \n {name}\n \n\n {/* Username */}\n {username && (\n \n @{username}\n \n )}\n
\n\n {/* Description */}\n {description && (\n \n {description}\n \n )}\n\n {/* Button */}\n \n {buttonContent ? (\n buttonContent\n ) : (\n \n )}\n \n \n
\n \n )}\n \n
\n