{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "menubar",
  "title": "Menubar",
  "description": "Horizontal menu bar with nested dropdowns.",
  "dependencies": ["@radix-ui/react-menubar", "lucide-react"],
  "registryDependencies": ["@glasswave/glass", "@glasswave/menu-classes"],
  "files": [
    {
      "path": "registry/glasswave/ui/menubar.tsx",
      "content": "\"use client\";\n\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { glass, glassBase, textOnGlass } from \"@/lib/glass\";\nimport {\n  menuContentClass,\n  menuItemClass,\n  menuLabelClass,\n  menuSeparatorClass,\n} from \"@/lib/menu-classes\";\n\nexport const Menubar = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n  <MenubarPrimitive.Root\n    ref={ref}\n    className={cn(\n      glassBase,\n      textOnGlass,\n      \"relative flex h-11 items-center gap-1 rounded-full border border-black/[0.08] px-1.5 shadow-sm dark:border-white/[0.25]\",\n      className,\n    )}\n    {...props}\n  />\n));\nMenubar.displayName = MenubarPrimitive.Root.displayName;\n\nexport const MenubarMenu: typeof MenubarPrimitive.Menu = MenubarPrimitive.Menu;\n\nexport const MenubarTrigger = forwardRef<\n  HTMLButtonElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n  <MenubarPrimitive.Trigger\n    ref={ref}\n    className={cn(\n      \"flex cursor-default select-none items-center rounded-full px-3 py-1.5 text-sm font-medium outline-none\",\n      \"data-[state=open]:bg-black/[0.06] dark:data-[state=open]:bg-white/15 data-[highlighted]:bg-black/[0.05] dark:data-[highlighted]:bg-white/10\",\n      className,\n    )}\n    {...props}\n  />\n));\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;\n\nexport const MenubarContent = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>\n>(\n  (\n    { className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props },\n    ref,\n  ) => (\n    <MenubarPrimitive.Portal>\n      <MenubarPrimitive.Content\n        ref={ref}\n        align={align}\n        alignOffset={alignOffset}\n        sideOffset={sideOffset}\n        className={cn(\n          glass,\n          menuContentClass,\n          \"animate-in fade-in-0 zoom-in-95\",\n          className,\n        )}\n        {...props}\n      />\n    </MenubarPrimitive.Portal>\n  ),\n);\nMenubarContent.displayName = MenubarPrimitive.Content.displayName;\n\nexport const MenubarItem = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {\n    inset?: boolean;\n  }\n>(({ className, inset, ...props }, ref) => (\n  <MenubarPrimitive.Item\n    ref={ref}\n    className={cn(menuItemClass, inset && \"pl-8\", className)}\n    {...props}\n  />\n));\nMenubarItem.displayName = MenubarPrimitive.Item.displayName;\n\nexport const MenubarCheckboxItem = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n  <MenubarPrimitive.CheckboxItem\n    ref={ref}\n    className={cn(menuItemClass, \"pl-8\", className)}\n    checked={checked}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex size-4 items-center justify-center\">\n      <MenubarPrimitive.ItemIndicator>\n        <Check className=\"size-4\" />\n      </MenubarPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </MenubarPrimitive.CheckboxItem>\n));\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;\n\nexport const MenubarRadioItem = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n  <MenubarPrimitive.RadioItem\n    ref={ref}\n    className={cn(menuItemClass, \"pl-8\", className)}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex size-4 items-center justify-center\">\n      <MenubarPrimitive.ItemIndicator>\n        <Circle className=\"size-2 fill-current\" />\n      </MenubarPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </MenubarPrimitive.RadioItem>\n));\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;\n\nexport const MenubarLabel = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {\n    inset?: boolean;\n  }\n>(({ className, inset, ...props }, ref) => (\n  <MenubarPrimitive.Label\n    ref={ref}\n    className={cn(menuLabelClass, inset && \"pl-8\", className)}\n    {...props}\n  />\n));\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName;\n\nexport const MenubarSeparator = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <MenubarPrimitive.Separator\n    ref={ref}\n    className={cn(menuSeparatorClass, className)}\n    {...props}\n  />\n));\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;\n\nexport const MenubarShortcut = ({\n  className,\n  ...props\n}: React.ComponentProps<\"span\">) => (\n  <span\n    className={cn(\"ml-auto text-xs tracking-widest text-current/50\", className)}\n    {...props}\n  />\n);\n\nexport const MenubarSub = MenubarPrimitive.Sub;\n\nexport const MenubarSubTrigger = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {\n    inset?: boolean;\n  }\n>(({ className, inset, children, ...props }, ref) => (\n  <MenubarPrimitive.SubTrigger\n    ref={ref}\n    className={cn(menuItemClass, inset && \"pl-8\", className)}\n    {...props}\n  >\n    {children}\n    <ChevronRight className=\"ml-auto size-4\" />\n  </MenubarPrimitive.SubTrigger>\n));\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;\n\nexport const MenubarSubContent = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n  <MenubarPrimitive.SubContent\n    ref={ref}\n    className={cn(\n      glass,\n      menuContentClass,\n      \"animate-in fade-in-0 zoom-in-95\",\n      className,\n    )}\n    {...props}\n  />\n));\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;\n\nexport const MenubarRadioGroup = MenubarPrimitive.RadioGroup;\nexport const MenubarGroup = MenubarPrimitive.Group;\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}
