{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "navigation-menu",
  "dependencies": [
    "@data-slot/navigation-menu"
  ],
  "registryDependencies": [
    "@fulldev/icon"
  ],
  "files": [
    {
      "path": "src/components/ui/navigation-menu/navigation-menu.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport NavigationMenuPositioner from \"./navigation-menu-positioner.astro\"\n\ntype Props = HTMLAttributes<\"nav\"> & {\n  delayOpen?: number\n  delayClose?: number\n  openOnFocus?: boolean\n  side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n  align?: \"start\" | \"center\" | \"end\"\n  sideOffset?: number\n  alignOffset?: number\n  positionMethod?: \"absolute\" | \"fixed\"\n  safeTriangle?: boolean\n  debugSafeTriangle?: boolean\n}\n\nconst {\n  class: className = \"\",\n  delayOpen = 0,\n  delayClose = 0,\n  openOnFocus,\n  side = \"bottom\",\n  align = \"start\",\n  sideOffset = 0,\n  alignOffset = 0,\n  positionMethod = \"absolute\",\n  safeTriangle,\n  debugSafeTriangle,\n  ...props\n} = Astro.props\n---\n\n<nav\n  {...props}\n  data-slot=\"navigation-menu\"\n  data-delay-open={delayOpen}\n  data-delay-close={delayClose}\n  data-open-on-focus={openOnFocus}\n  data-side={side}\n  data-align={align}\n  data-side-offset={sideOffset}\n  data-align-offset={alignOffset}\n  data-position-method={positionMethod}\n  data-safe-triangle={safeTriangle}\n  data-debug-safe-triangle={debugSafeTriangle}\n  class={cn(\n    \"group/navigation-menu relative flex flex-1 items-center justify-center\",\n    className\n  )}\n>\n  <slot />\n  <NavigationMenuPositioner align={align} />\n</nav>\n\n<script>\n  import { create } from \"@data-slot/navigation-menu\"\n\n  create()\n</script>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/navigation-menu/navigation-menu-content.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = {\n  class?: string\n  align?: \"start\" | \"center\" | \"end\"\n  alignOffset?: number\n  side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n  sideOffset?: number\n} & HTMLAttributes<\"div\">\n\nconst {\n  class: className = \"\",\n  align,\n  alignOffset,\n  side,\n  sideOffset,\n  ...props\n} = Astro.props\n---\n\n<div\n  {...props}\n  data-slot=\"navigation-menu-content\"\n  data-align={align}\n  data-align-offset={alignOffset}\n  data-side={side}\n  data-side-offset={sideOffset}\n  class={cn(\n    \"data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:ring-foreground/10 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95 h-full w-auto p-2 pr-2.5 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none\",\n    className\n  )}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/navigation-menu/navigation-menu-item.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"li\"> & {\n  value: string\n  align?: \"start\" | \"center\" | \"end\"\n  alignOffset?: number\n  side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n  sideOffset?: number\n}\n\nconst {\n  class: className,\n  value,\n  align,\n  alignOffset,\n  side,\n  sideOffset,\n  ...props\n} = Astro.props\n---\n\n<li\n  data-slot=\"navigation-menu-item\"\n  data-value={value}\n  data-align={align}\n  data-align-offset={alignOffset}\n  data-side={side}\n  data-side-offset={sideOffset}\n  class={cn(\"relative list-none\", className)}\n  {...props}\n>\n  <slot />\n</li>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/navigation-menu/navigation-menu-link.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"a\"> & {\n  active?: boolean\n}\n\nconst { class: className, active, ...props } = Astro.props\n---\n\n<a\n  data-slot=\"navigation-menu-link\"\n  data-active={active ? \"true\" : undefined}\n  class={cn(\n    \"hover:bg-muted focus:bg-muted focus-visible:ring-ring/50 data-[active=true]:bg-muted/50 data-[active=true]:hover:bg-muted data-[active=true]:focus:bg-muted flex items-center gap-1.5 rounded-md p-2 text-sm transition-all outline-none focus-visible:ring-3 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-sm [&_svg:not([class*='size-'])]:size-4\",\n    className\n  )}\n  {...props}\n>\n  <slot />\n</a>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/navigation-menu/navigation-menu-list.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"ul\">\n\nconst { class: className, ...props } = Astro.props\n---\n\n<ul\n  data-slot=\"navigation-menu-list\"\n  class={cn(\n    \"group flex flex-1 list-none items-center justify-center gap-1\",\n    className\n  )}\n  {...props}\n>\n  <slot />\n</ul>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/navigation-menu/navigation-menu-indicator.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\">\n\nconst { class: className, ...props } = Astro.props\n---\n\n<div\n  data-slot=\"navigation-menu-indicator\"\n  class={cn(\n    \"data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden\",\n    className\n  )}\n  {...props}\n>\n  <div\n    class=\"bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md\"\n  >\n  </div>\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/navigation-menu/navigation-menu-trigger.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Icon } from \"@/components/ui/icon\"\n\nimport navigationMenuTriggerStyle from \"./navigation-menu-trigger-style\"\n\ntype Props = HTMLAttributes<\"button\">\n\nconst { class: className, type = \"button\", ...props } = Astro.props\n---\n\n<button\n  data-slot=\"navigation-menu-trigger\"\n  type={type}\n  class={cn(navigationMenuTriggerStyle(), \"group\", className)}\n  {...props}\n>\n  <slot />\n  {\" \"}\n  <Icon\n    name=\"chevron-down\"\n    class=\"relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180\"\n    aria-hidden=\"true\"\n  />\n</button>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/navigation-menu/navigation-menu-trigger-style.ts",
      "content": "import { cva } from \"class-variance-authority\"\n\nconst navigationMenuTriggerStyle = cva(\n  \"group/navigation-menu-trigger hover:bg-muted focus:bg-muted focus-visible:ring-ring/50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted inline-flex h-9 w-max items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-all outline-none focus-visible:ring-3 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50\"\n)\n\nexport default navigationMenuTriggerStyle\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/navigation-menu/navigation-menu-positioner.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n  side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n  sideOffset?: number\n  align?: \"start\" | \"center\" | \"end\"\n  alignOffset?: number\n}\n\nconst {\n  class: className,\n  side = \"bottom\",\n  sideOffset = 8,\n  align = \"start\",\n  alignOffset = 0,\n  ...props\n} = Astro.props\n---\n\n<div data-slot=\"navigation-menu-portal\">\n  <div\n    {...props}\n    data-slot=\"navigation-menu-positioner\"\n    data-side={side}\n    data-side-offset={sideOffset}\n    data-align={align}\n    data-align-offset={alignOffset}\n    class={cn(\n      \"isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0\",\n      className\n    )}\n  >\n    <div\n      data-slot=\"navigation-menu-popup\"\n      class=\"data-[ending-style]:easing-[ease] xs:w-(--popup-width) bg-popover text-popover-foreground ring-foreground/10 relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg shadow ring-1 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\"\n    >\n      <div\n        data-slot=\"navigation-menu-viewport\"\n        class=\"relative size-full overflow-hidden\"\n      >\n      </div>\n    </div>\n  </div>\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/navigation-menu/index.ts",
      "content": "export { default as NavigationMenu } from \"./navigation-menu.astro\"\nexport { default as NavigationMenuContent } from \"./navigation-menu-content.astro\"\nexport { default as NavigationMenuIndicator } from \"./navigation-menu-indicator.astro\"\nexport { default as NavigationMenuItem } from \"./navigation-menu-item.astro\"\nexport { default as NavigationMenuLink } from \"./navigation-menu-link.astro\"\nexport { default as NavigationMenuList } from \"./navigation-menu-list.astro\"\nexport { default as NavigationMenuPositioner } from \"./navigation-menu-positioner.astro\"\nexport { default as NavigationMenuTrigger } from \"./navigation-menu-trigger.astro\"\nexport { default as navigationMenuTriggerStyle } from \"./navigation-menu-trigger-style\"\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}