{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "header-3",
  "registryDependencies": [
    "@fulldev/button",
    "@fulldev/header",
    "@fulldev/icon",
    "@fulldev/logo",
    "@fulldev/navigation-menu",
    "@fulldev/separator",
    "@fulldev/sheet"
  ],
  "files": [
    {
      "path": "src/components/blocks/header-3.astro",
      "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Header, HeaderContainer, HeaderGroup } from \"@/components/ui/header\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Logo, LogoImage, LogoText } from \"@/components/ui/logo\"\nimport {\n  NavigationMenu,\n  NavigationMenuItem,\n  NavigationMenuLink,\n  NavigationMenuList,\n} from \"@/components/ui/navigation-menu\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n  Sheet,\n  SheetClose,\n  SheetContent,\n  SheetDescription,\n  SheetHeader,\n  SheetTitle,\n  SheetTrigger,\n} from \"@/components/ui/sheet\"\n\ntype Props = {\n  class?: string\n  logo: {\n    label: string\n    href: string\n    src?: any\n    srcLight?: any\n    srcDark?: any\n    alt?: string\n  }\n  navigation: {\n    label: string\n    href: string\n    links?: {\n      label: string\n      href: string\n    }[]\n  }[]\n  buttons: {\n    label: string\n    href: string\n    icon?: string\n    variant?: \"default\" | \"outline\" | \"secondary\" | \"ghost\"\n  }[]\n}\n\nconst { class: className, logo, navigation, buttons } = Astro.props\n---\n\n<Header class={cn(\"border-b\", className)}>\n  <HeaderContainer class=\"justify-between\">\n    <HeaderGroup>\n      <Logo href={logo.href}>\n        <LogoImage\n          src={logo.src}\n          srcLight={logo.srcLight}\n          srcDark={logo.srcDark}\n          alt={logo.alt}\n        />\n        {logo.label && <LogoText>{logo.label}</LogoText>}\n      </Logo>\n    </HeaderGroup>\n    <HeaderGroup class=\"ml-auto hidden justify-end gap-1 lg:flex\">\n      <NavigationMenu class=\"hidden max-w-none justify-end lg:flex\">\n        <NavigationMenuList>\n          {\n            navigation.map((item, index) => (\n              <NavigationMenuItem value={`nav-${index}`}>\n                <NavigationMenuLink href={item.href}>\n                  {item.label}\n                </NavigationMenuLink>\n              </NavigationMenuItem>\n            ))\n          }\n        </NavigationMenuList>\n      </NavigationMenu>\n      <Separator\n        orientation=\"vertical\"\n        class=\"mx-1 hidden h-5 self-center lg:block\"\n      />\n      <slot />\n      {\n        buttons.map(({ label, icon, ...button }) => (\n          <Button\n            as=\"a\"\n            size={icon && !label ? \"icon-sm\" : \"sm\"}\n            aria-label={label}\n            target={button.href.startsWith(\"http\") ? \"_blank\" : undefined}\n            rel={button.href.startsWith(\"http\") ? \"noreferrer\" : undefined}\n            {...button}\n          >\n            {icon && <Icon name={icon} />}\n            {label}\n          </Button>\n        ))\n      }\n    </HeaderGroup>\n    <Sheet class=\"lg:hidden\">\n      <SheetTrigger\n        variant=\"ghost\"\n        size=\"icon-sm\"\n        class=\"ml-auto\"\n        aria-label=\"Open menu\"\n      >\n        <Icon name=\"menu\" />\n      </SheetTrigger>\n      <SheetContent side=\"right\" class=\"p-0\">\n        <SheetHeader class=\"sr-only\">\n          <SheetTitle>Menu</SheetTitle>\n          <SheetDescription>Site navigation and actions.</SheetDescription>\n        </SheetHeader>\n        <div class=\"flex h-full flex-col gap-6 px-4 py-12\">\n          <nav aria-label=\"Main navigation\" class=\"flex flex-col gap-1\">\n            {\n              navigation.map((item) => (\n                <SheetClose variant=\"ghost\" class=\"justify-start\">\n                  {item.label}\n                </SheetClose>\n              ))\n            }\n          </nav>\n          <Separator />\n          <div class=\"mt-auto flex flex-col gap-2\">\n            <slot />\n          </div>\n        </div>\n      </SheetContent>\n    </Sheet>\n  </HeaderContainer>\n</Header>\n",
      "type": "registry:block"
    }
  ],
  "type": "registry:block"
}