{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "profile-02",
  "title": "Profile 02",
  "description": "A simple profile block",
  "dependencies": [
    "lucide-react"
  ],
  "registryDependencies": [
    "button",
    "avatar",
    "tooltip",
    "dropdown-menu"
  ],
  "files": [
    {
      "path": "src/registry/blocks/radix/profile-02/components/profile.tsx",
      "content": "import { MoreHorizontalIcon, PencilIcon } from \"lucide-react\";\nimport type { SVGProps } from \"react\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/registry/bases/radix/ui/avatar\";\nimport { Button } from \"@/registry/bases/radix/ui/button\";\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\";\nimport {\n  Tooltip,\n  TooltipContent,\n  TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\";\n\nexport default function Profile() {\n  return (\n    <div className=\"min-h-dvh bg-muted/50 px-6 py-10\">\n      <div className=\"mx-auto w-full max-w-2xl\">\n        <div className=\"relative overflow-hidden rounded-xl border border-border/55 bg-background p-8 shadow-[0_0_10px_rgba(0,0,0,0.04)] dark:border-border/75 dark:shadow-[0_0_20px_rgba(0,0,0,0.4)]\">\n          <div\n            className=\"absolute inset-0 -top-px z-0\"\n            style={{\n              backgroundImage: `\n        linear-gradient(to right, var(--border) 1px, transparent 1px),\n        linear-gradient(to bottom, var(--border) 1px, transparent 1px)\n      `,\n              backgroundSize: \"20px 20px\",\n              backgroundPosition: \"0 0, 0 0\",\n              maskImage: `\n          repeating-linear-gradient(\n              to right,\n              black 0px,\n              black 3px,\n              transparent 3px,\n              transparent 8px\n            ),\n            repeating-linear-gradient(\n              to bottom,\n              black 0px,\n              black 3px,\n              transparent 3px,\n              transparent 8px\n            ),\n            radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)\n      `,\n              WebkitMaskImage: `\n    repeating-linear-gradient(\n              to right,\n              black 0px,\n              black 3px,\n              transparent 3px,\n              transparent 8px\n            ),\n            repeating-linear-gradient(\n              to bottom,\n              black 0px,\n              black 3px,\n              transparent 3px,\n              transparent 8px\n            ),\n            radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)\n      `,\n              maskComposite: \"intersect\",\n              WebkitMaskComposite: \"source-in\",\n            }}\n          />\n\n          <Tooltip>\n            <TooltipTrigger asChild>\n              <Button\n                className=\"absolute top-4 right-4 z-1\"\n                size=\"icon\"\n                variant=\"outline\"\n              >\n                <PencilIcon className=\"size-4\" />\n              </Button>\n            </TooltipTrigger>\n            <TooltipContent>Edit Profile</TooltipContent>\n          </Tooltip>\n\n          <div className=\"relative isolate flex flex-col\">\n            <div className=\"mb-5 flex items-center gap-4\">\n              <Avatar className=\"size-24 border\">\n                <AvatarImage\n                  alt=\"User avatar\"\n                  src=\"https://github.com/shadcn.png\"\n                />\n                <AvatarFallback className=\"font-medium text-2xl\">\n                  CN\n                </AvatarFallback>\n              </Avatar>\n            </div>\n            <span className=\"font-medium text-xl tracking-tight\">John Doe</span>\n            <span className=\"text-muted-foreground\">john.doe@example.com</span>\n\n            <div className=\"mt-5 flex w-full items-center gap-2\">\n              <Button>Hire Me</Button>\n              <Button size=\"icon\" variant=\"secondary\">\n                <X className=\"size-4!\" />\n              </Button>\n              <Button size=\"icon\" variant=\"secondary\">\n                <DailyDev className=\"size-5.5!\" />\n              </Button>\n              <Button size=\"icon\" variant=\"secondary\">\n                <Bluesky />\n              </Button>\n              <DropdownMenu>\n                <DropdownMenuTrigger asChild>\n                  <Button size=\"icon\" variant=\"secondary\">\n                    <MoreHorizontalIcon />\n                  </Button>\n                </DropdownMenuTrigger>\n                <DropdownMenuContent className=\"w-fit\">\n                  <DropdownMenuItem>\n                    <Hashnode />\n                    Follow on Hashnode\n                  </DropdownMenuItem>\n                  <DropdownMenuItem>\n                    <Peerlist />\n                    Follow on Peerlist\n                  </DropdownMenuItem>\n                  <DropdownMenuItem>\n                    <Reddit />\n                    Follow on Reddit\n                  </DropdownMenuItem>\n                </DropdownMenuContent>\n              </DropdownMenu>\n            </div>\n          </div>\n        </div>\n\n        <div className=\"mt-4 grid grid-cols-1 gap-4 *:h-72 sm:grid-cols-2\">\n          {projects.map((project) => (\n            <div\n              className=\"relative flex flex-col overflow-hidden rounded-xl border border-border/60 bg-background p-1 shadow-[0_0_15px_rgba(0,0,0,0.05)] dark:border-border/85 dark:shadow-[0_0_20px_rgba(0,0,0,0.4)]\"\n              key={project.name}\n            >\n              <div className=\"mask-b-from-50% dark:mask-b-from-10% dark:mask-b-to-70% size-full rounded-lg\">\n                <img\n                  alt={project.name}\n                  className=\"size-full rounded-lg object-cover\"\n                  src={project.image}\n                />\n              </div>\n\n              <div className=\"mask-t-from-50% absolute inset-x-0 bottom-0 rounded-b-xl bg-background/80 p-6 pt-20\">\n                <h3 className=\"font-medium text-xl tracking-[-0.005em]\">\n                  {project.name}\n                </h3>\n                <p className=\"mt-1.5 text-base text-foreground/90\">\n                  {project.description}\n                </p>\n              </div>\n            </div>\n          ))}\n        </div>\n      </div>\n    </div>\n  );\n}\n\nconst Bluesky = (props: SVGProps<SVGSVGElement>) => (\n  <svg {...props} preserveAspectRatio=\"xMidYMid\" viewBox=\"0 0 256 226\">\n    <path\n      d=\"M55.491 15.172c29.35 22.035 60.917 66.712 72.509 90.686 11.592-23.974 43.159-68.651 72.509-90.686C221.686-.727 256-13.028 256 26.116c0 7.818-4.482 65.674-7.111 75.068-9.138 32.654-42.436 40.983-72.057 35.942 51.775 8.812 64.946 38 36.501 67.187-54.021 55.433-77.644-13.908-83.696-31.676-1.11-3.257-1.63-4.78-1.637-3.485-.008-1.296-.527.228-1.637 3.485-6.052 17.768-29.675 87.11-83.696 31.676-28.445-29.187-15.274-58.375 36.5-67.187-29.62 5.041-62.918-3.288-72.056-35.942C4.482 91.79 0 33.934 0 26.116 0-13.028 34.314-.727 55.491 15.172Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n);\n\nconst X = (props: SVGProps<SVGSVGElement>) => (\n  <svg {...props} fill=\"currentColor\" viewBox=\"0 0 1200 1227\">\n    <path d=\"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z\" />\n  </svg>\n);\n\nconst DailyDev = (props: SVGProps<SVGSVGElement>) => (\n  <svg {...props} viewBox=\"0 0 40 40\">\n    <g fill=\"currentColor\" fillRule=\"evenodd\">\n      <path\n        d=\"m31.48 19.944-3.533-3.533 1.765-3.531 5.74 5.74a1.873 1.873 0 0 1 0 2.648l-7.065 7.064a1.873 1.873 0 0 1-2.648-2.648l5.74-5.74Z\"\n        opacity=\".56\"\n      />\n      <path d=\"M25.74 11.548a1.873 1.873 0 0 1 2.649 0l1.324 1.325-15.452 15.452a1.873 1.873 0 0 1-2.649 0l-1.324-1.324L25.74 11.548Zm-6.622 4.857-2.65 2.649-3.532-3.533-4.415 4.416 3.532 3.532-1.765 3.532-5.74-5.74a1.873 1.873 0 0 1 0-2.648l7.064-7.064a1.873 1.873 0 0 1 2.65 0l4.856 4.856Z\" />\n    </g>\n  </svg>\n);\n\nconst Hashnode = (props: SVGProps<SVGSVGElement>) => (\n  <svg {...props} fill=\"none\" viewBox=\"0 0 1000 1000\">\n    <path\n      clipRule=\"evenodd\"\n      d=\"M68.692 334.16c-91.59 91.589-91.59 240.085 0 331.674L334.16 931.302c91.589 91.588 240.085 91.588 331.674-.001l265.468-265.467c91.588-91.59 91.588-240.085-.001-331.674L665.834 68.692c-91.59-91.59-240.085-91.59-331.674 0L68.692 334.16Zm431.302 330.06c90.694 0 164.216-73.522 164.216-164.216s-73.522-164.216-164.216-164.216-164.216 73.522-164.216 164.216S409.3 664.22 499.994 664.22Z\"\n      fill=\"#2563EB\"\n      fillRule=\"evenodd\"\n    />\n  </svg>\n);\n\nconst Peerlist = (props: SVGProps<SVGSVGElement>) => (\n  <svg {...props} fill=\"none\" viewBox=\"0 0 56 56\">\n    <path\n      d=\"M28 0C6.22222 0 0 6.22222 0 28C0 49.7778 6.23778 56 28 56C49.7622 56 56 49.7778 56 28C56 6.22222 49.7622 0 28 0Z\"\n      fill=\"#00AA45\"\n    />\n    <path\n      clipRule=\"evenodd\"\n      d=\"M7.24755 7.24755C3.5875 10.9076 2 17.153 2 28C2 38.8461 3.59108 45.0918 7.25306 48.7521C10.9153 52.4127 17.1612 54 28 54C38.8388 54 45.0847 52.4127 48.7469 48.7521C52.4089 45.0918 54 38.8461 54 28C54 17.1539 52.4089 10.9082 48.7469 7.24787C45.0847 3.58733 38.8388 2 28 2C17.153 2 10.9076 3.5875 7.24755 7.24755ZM0 28C0 6.22222 6.22222 0 28 0C49.7622 0 56 6.22222 56 28C56 49.7778 49.7622 56 28 56C6.23778 56 0 49.7778 0 28Z\"\n      fill=\"#219653\"\n      fillRule=\"evenodd\"\n    />\n    <path\n      clipRule=\"evenodd\"\n      d=\"M27.0769 13H15V47H24.3846V39.8889H27.0769C34.7305 39.8889 41 33.9048 41 26.4444C41 18.984 34.7305 13 27.0769 13ZM24.3846 30.7778V22.1111H27.0769C29.6194 22.1111 31.6154 24.0864 31.6154 26.4444C31.6154 28.8024 29.6194 30.7778 27.0769 30.7778H24.3846Z\"\n      fill=\"#24292E\"\n      fillRule=\"evenodd\"\n    />\n    <path\n      clipRule=\"evenodd\"\n      d=\"M18 12H29.0769C36.2141 12 42 17.5716 42 24.4444C42 31.3173 36.2141 36.8889 29.0769 36.8889H25.3846V44H18V12ZM25.3846 29.7778H29.0769C32.1357 29.7778 34.6154 27.39 34.6154 24.4444C34.6154 21.4989 32.1357 19.1111 29.0769 19.1111H25.3846V29.7778Z\"\n      fill=\"white\"\n      fillRule=\"evenodd\"\n    />\n    <path\n      clipRule=\"evenodd\"\n      d=\"M17 11H29.0769C36.7305 11 43 16.984 43 24.4444C43 31.9048 36.7305 37.8889 29.0769 37.8889H26.3846V45H17V11ZM19 13V43H24.3846V35.8889H29.0769C35.6978 35.8889 41 30.7298 41 24.4444C41 18.1591 35.6978 13 29.0769 13H19ZM24.3846 18.1111H29.0769C32.6521 18.1111 35.6154 20.9114 35.6154 24.4444C35.6154 27.9775 32.6521 30.7778 29.0769 30.7778H24.3846V18.1111ZM26.3846 20.1111V28.7778H29.0769C31.6194 28.7778 33.6154 26.8024 33.6154 24.4444C33.6154 22.0864 31.6194 20.1111 29.0769 20.1111H26.3846Z\"\n      fill=\"#24292E\"\n      fillRule=\"evenodd\"\n    />\n  </svg>\n);\n\nconst Reddit = (props: SVGProps<SVGSVGElement>) => (\n  <svg\n    {...props}\n    viewBox=\"0 0 216 216\"\n    xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n  >\n    <defs>\n      <radialGradient\n        cx=\"169.75\"\n        cy=\"92.19\"\n        fx=\"169.75\"\n        fy=\"92.19\"\n        gradientTransform=\"matrix(1 0 0 .87 0 11.64)\"\n        gradientUnits=\"userSpaceOnUse\"\n        id=\"reddit__snoo-radial-gragient\"\n        r=\"50.98\"\n      >\n        <stop offset=\"0\" stopColor=\"#feffff\" />\n        <stop offset=\".4\" stopColor=\"#feffff\" />\n        <stop offset=\".51\" stopColor=\"#f9fcfc\" />\n        <stop offset=\".62\" stopColor=\"#edf3f5\" />\n        <stop offset=\".7\" stopColor=\"#dee9ec\" />\n        <stop offset=\".72\" stopColor=\"#d8e4e8\" />\n        <stop offset=\".76\" stopColor=\"#ccd8df\" />\n        <stop offset=\".8\" stopColor=\"#c8d5dd\" />\n        <stop offset=\".83\" stopColor=\"#ccd6de\" />\n        <stop offset=\".85\" stopColor=\"#d8dbe2\" />\n        <stop offset=\".88\" stopColor=\"#ede3e9\" />\n        <stop offset=\".9\" stopColor=\"#ffebef\" />\n      </radialGradient>\n      <radialGradient\n        cx=\"47.31\"\n        fx=\"47.31\"\n        id=\"reddit__snoo-radial-gragient-2\"\n        r=\"50.98\"\n        xlinkHref=\"#reddit__snoo-radial-gragient\"\n      />\n      <radialGradient\n        cx=\"109.61\"\n        cy=\"85.59\"\n        fx=\"109.61\"\n        fy=\"85.59\"\n        gradientTransform=\"matrix(1 0 0 .7 0 25.56)\"\n        id=\"reddit__snoo-radial-gragient-3\"\n        r=\"153.78\"\n        xlinkHref=\"#reddit__snoo-radial-gragient\"\n      />\n      <radialGradient\n        cx=\"-6.01\"\n        cy=\"64.68\"\n        fx=\"-6.01\"\n        fy=\"64.68\"\n        gradientTransform=\"matrix(1.07 0 0 1.55 81.08 27.26)\"\n        gradientUnits=\"userSpaceOnUse\"\n        id=\"reddit__snoo-radial-gragient-4\"\n        r=\"12.85\"\n      >\n        <stop offset=\"0\" stopColor=\"#f60\" />\n        <stop offset=\".5\" stopColor=\"#ff4500\" />\n        <stop offset=\".7\" stopColor=\"#fc4301\" />\n        <stop offset=\".82\" stopColor=\"#f43f07\" />\n        <stop offset=\".92\" stopColor=\"#e53812\" />\n        <stop offset=\"1\" stopColor=\"#d4301f\" />\n      </radialGradient>\n      <radialGradient\n        cx=\"-73.55\"\n        cy=\"64.68\"\n        fx=\"-73.55\"\n        fy=\"64.68\"\n        gradientTransform=\"matrix(-1.07 0 0 1.55 62.87 27.26)\"\n        id=\"reddit__snoo-radial-gragient-5\"\n        r=\"12.85\"\n        xlinkHref=\"#reddit__snoo-radial-gragient-4\"\n      />\n      <radialGradient\n        cx=\"107.93\"\n        cy=\"166.96\"\n        fx=\"107.93\"\n        fy=\"166.96\"\n        gradientTransform=\"matrix(1 0 0 .66 0 57.4)\"\n        gradientUnits=\"userSpaceOnUse\"\n        id=\"reddit__snoo-radial-gragient-6\"\n        r=\"45.3\"\n      >\n        <stop offset=\"0\" stopColor=\"#172e35\" />\n        <stop offset=\".29\" stopColor=\"#0e1c21\" />\n        <stop offset=\".73\" stopColor=\"#030708\" />\n        <stop offset=\"1\" />\n      </radialGradient>\n      <radialGradient\n        cx=\"147.88\"\n        cy=\"32.94\"\n        fx=\"147.88\"\n        fy=\"32.94\"\n        gradientTransform=\"matrix(1 0 0 .98 0 .54)\"\n        id=\"reddit__snoo-radial-gragient-7\"\n        r=\"39.77\"\n      />\n      <radialGradient\n        cx=\"131.31\"\n        cy=\"73.08\"\n        fx=\"131.31\"\n        fy=\"73.08\"\n        gradientUnits=\"userSpaceOnUse\"\n        id=\"reddit__snoo-radial-gragient-8\"\n        r=\"32.6\"\n      >\n        <stop offset=\".48\" stopColor=\"#7a9299\" />\n        <stop offset=\".67\" stopColor=\"#172e35\" />\n        <stop offset=\".75\" />\n        <stop offset=\".82\" stopColor=\"#172e35\" />\n      </radialGradient>\n    </defs>\n    <path\n      d=\"M108 0C48.35 0 0 48.35 0 108c0 29.82 12.09 56.82 31.63 76.37l-20.57 20.57C6.98 209.02 9.87 216 15.64 216H108c59.65 0 108-48.35 108-108S167.65 0 108 0Z\"\n      fill=\"#ff4500\"\n    />\n    <circle\n      cx=\"169.22\"\n      cy=\"106.98\"\n      fill=\"url(#reddit__snoo-radial-gragient)\"\n      r=\"25.22\"\n    />\n    <circle\n      cx=\"46.78\"\n      cy=\"106.98\"\n      fill=\"url(#reddit__snoo-radial-gragient-2)\"\n      r=\"25.22\"\n    />\n    <ellipse\n      cx=\"108.06\"\n      cy=\"128.64\"\n      fill=\"url(#reddit__snoo-radial-gragient-3)\"\n      rx=\"72\"\n      ry=\"54\"\n    />\n    <path\n      d=\"M86.78 123.48c-.42 9.08-6.49 12.38-13.56 12.38s-12.46-4.93-12.04-14.01c.42-9.08 6.49-15.02 13.56-15.02s12.46 7.58 12.04 16.66Z\"\n      fill=\"url(#reddit__snoo-radial-gragient-4)\"\n    />\n    <path\n      d=\"M129.35 123.48c.42 9.08 6.49 12.38 13.56 12.38s12.46-4.93 12.04-14.01c-.42-9.08-6.49-15.02-13.56-15.02s-12.46 7.58-12.04 16.66Z\"\n      fill=\"url(#reddit__snoo-radial-gragient-5)\"\n    />\n    <ellipse cx=\"79.63\" cy=\"116.37\" rx=\"2.8\" ry=\"3.05\" />\n    <ellipse cx=\"146.21\" cy=\"116.37\" rx=\"2.8\" ry=\"3.05\" />\n    <path\n      d=\"M108.06 142.92c-8.76 0-17.16.43-24.92 1.22-1.33.13-2.17 1.51-1.65 2.74 4.35 10.39 14.61 17.69 26.57 17.69s22.23-7.3 26.57-17.69c.52-1.23-.33-2.61-1.65-2.74-7.77-.79-16.16-1.22-24.92-1.22Z\"\n      fill=\"url(#reddit__snoo-radial-gragient-6)\"\n    />\n    <circle\n      cx=\"147.49\"\n      cy=\"49.43\"\n      fill=\"url(#reddit__snoo-radial-gragient-7)\"\n      r=\"17.87\"\n    />\n    <path\n      d=\"M107.8 76.92c-2.14 0-3.87-.89-3.87-2.27 0-16.01 13.03-29.04 29.04-29.04 2.14 0 3.87 1.73 3.87 3.87s-1.73 3.87-3.87 3.87c-11.74 0-21.29 9.55-21.29 21.29 0 1.38-1.73 2.27-3.87 2.27Z\"\n      fill=\"url(#reddit__snoo-radial-gragient-8)\"\n    />\n    <path\n      d=\"M62.82 122.65c.39-8.56 6.08-14.16 12.69-14.16 6.26 0 11.1 6.39 11.28 14.33.17-8.88-5.13-15.99-12.05-15.99s-13.14 6.05-13.56 15.2c-.42 9.15 4.97 13.83 12.04 13.83h.52c-6.44-.16-11.3-4.79-10.91-13.2Zm90.48 0c-.39-8.56-6.08-14.16-12.69-14.16-6.26 0-11.1 6.39-11.28 14.33-.17-8.88 5.13-15.99 12.05-15.99 7.07 0 13.14 6.05 13.56 15.2.42 9.15-4.97 13.83-12.04 13.83h-.52c6.44-.16 11.3-4.79 10.91-13.2Z\"\n      fill=\"#842123\"\n    />\n  </svg>\n);\n\nconst projects = [\n  {\n    name: \"Shadcn UI Blocks\",\n    description: \"A collection of shadcn/ui blocks.\",\n    image: \"https://fffuel.co/images/dddepth-preview/dddepth-028.jpg\",\n  },\n  {\n    name: \"Databuddy\",\n    description: \"Privacy-first web analytics.\",\n    image: \"https://fffuel.co/images/dddepth-preview/dddepth-051.jpg\",\n  },\n  {\n    name: \"dddepth\",\n    description: \"A collection of AI-generated abstract 3D shapes.\",\n    image: \"https://fffuel.co/images/dddepth-preview/dddepth-248.jpg\",\n  },\n  {\n    name: \"Pattern Craft\",\n    description: \"Modern background patterns and gradient snippets.\",\n    image: \"https://fffuel.co/images/dddepth-preview/dddepth-045.jpg\",\n  },\n];\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:block"
}