{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "menubar",
  "type": "registry:ui",
  "title": "Menubar",
  "dependencies": [
    "@radix-ui/react-menubar"
  ],
  "files": [
    {
      "path": "src/components/ui/menubar.tsx",
      "content": "\"use client\"\r\n\r\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\"\r\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction Menubar({\r\n  className,\r\n  ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Root>) {\r\n  return (\r\n    <MenubarPrimitive.Root\r\n      data-slot=\"menubar\"\r\n      className={cn(\r\n        \"flex h-11 items-center space-x-1 rounded-base border-2 border-border bg-main p-1 font-base\",\r\n        className,\r\n      )}\r\n      {...props}\r\n    />\r\n  )\r\n}\r\n\r\nfunction MenubarMenu({\r\n  ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\r\n  return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />\r\n}\r\n\r\nfunction MenubarTrigger({\r\n  className,\r\n  ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {\r\n  return (\r\n    <MenubarPrimitive.Trigger\r\n      data-slot=\"menubar-trigger\"\r\n      className={cn(\r\n        \"flex cursor-default select-none items-center text-main-foreground rounded-base px-3 py-1.5 text-sm border-2 border-transparent font-heading outline-none focus:border-border data-[state=open]:border-border\",\r\n        className,\r\n      )}\r\n      {...props}\r\n    />\r\n  )\r\n}\r\n\r\nfunction MenubarContent({\r\n  className,\r\n  align = \"start\",\r\n  alignOffset = -4,\r\n  sideOffset = 8,\r\n  ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Content>) {\r\n  return (\r\n    <MenubarPrimitive.Portal>\r\n      <MenubarPrimitive.Content\r\n        data-slot=\"menubar-content\"\r\n        align={align}\r\n        alignOffset={alignOffset}\r\n        sideOffset={sideOffset}\r\n        className={cn(\r\n          \"z-50 min-w-[12rem] overflow-hidden rounded-base border-2 border-border bg-main p-1 text-main-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 origin-(--radix-menubar-content-transform-origin)\",\r\n          className,\r\n        )}\r\n        {...props}\r\n      />\r\n    </MenubarPrimitive.Portal>\r\n  )\r\n}\r\n\r\nfunction MenubarGroup({\r\n  ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\r\n  return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />\r\n}\r\n\r\nfunction MenubarPortal({\r\n  ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\r\n  return <MenubarPrimitive.Portal data-slot=\"menubar-portal\" {...props} />\r\n}\r\n\r\nfunction MenubarSub({\r\n  ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\r\n  return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />\r\n}\r\n\r\nfunction MenubarRadioGroup({\r\n  ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\r\n  return (\r\n    <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />\r\n  )\r\n}\r\n\r\nfunction MenubarItem({\r\n  className,\r\n  inset,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {\r\n  inset?: boolean\r\n}) {\r\n  return (\r\n    <MenubarPrimitive.Item\r\n      data-slot=\"menubar-item\"\r\n      data-inset={inset}\r\n      className={cn(\r\n        \"relative flex cursor-default select-none items-center rounded-base border-2 border-transparent px-2 py-1.5 text-sm font-base outline-hidden focus:border-border data-disabled:pointer-events-none data-disabled:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n        className,\r\n      )}\r\n      {...props}\r\n    />\r\n  )\r\n}\r\n\r\nfunction MenubarCheckboxItem({\r\n  className,\r\n  children,\r\n  checked,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>) {\r\n  return (\r\n    <MenubarPrimitive.CheckboxItem\r\n      data-slot=\"menubar-checkbox-item\"\r\n      className={cn(\r\n        \"relative flex cursor-default select-none items-center rounded-base border-2 border-transparent py-1.5 pl-8 pr-2 text-sm font-base outline-hidden focus:border-border data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n        className,\r\n      )}\r\n      checked={checked}\r\n      {...props}\r\n    >\r\n      <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n        <MenubarPrimitive.ItemIndicator>\r\n          <Check className=\"size-4\" />\r\n        </MenubarPrimitive.ItemIndicator>\r\n      </span>\r\n      {children}\r\n    </MenubarPrimitive.CheckboxItem>\r\n  )\r\n}\r\n\r\nfunction MenubarRadioItem({\r\n  className,\r\n  children,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>) {\r\n  return (\r\n    <MenubarPrimitive.RadioItem\r\n      data-slot=\"menubar-radio-item\"\r\n      className={cn(\r\n        \"relative flex cursor-default select-none items-center rounded-base border-2 border-transparent py-1.5 pl-8 pr-2 text-sm font-base outline-hidden focus:border-border data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n        className,\r\n      )}\r\n      {...props}\r\n    >\r\n      <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n        <MenubarPrimitive.ItemIndicator>\r\n          <Circle className=\"size-2 fill-current\" />\r\n        </MenubarPrimitive.ItemIndicator>\r\n      </span>\r\n      {children}\r\n    </MenubarPrimitive.RadioItem>\r\n  )\r\n}\r\n\r\nfunction MenubarLabel({\r\n  className,\r\n  inset,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {\r\n  inset?: boolean\r\n}) {\r\n  return (\r\n    <MenubarPrimitive.Label\r\n      data-slot=\"menubar-label\"\r\n      data-inset={inset}\r\n      className={cn(\r\n        \"px-2 py-1.5 text-sm font-heading data-[inset]:pl-8\",\r\n        className,\r\n      )}\r\n      {...props}\r\n    />\r\n  )\r\n}\r\n\r\nfunction MenubarSeparator({\r\n  className,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>) {\r\n  return (\r\n    <MenubarPrimitive.Separator\r\n      data-slot=\"menubar-separator\"\r\n      className={cn(\"-mx-1 my-1 h-0.5 bg-border\", className)}\r\n      {...props}\r\n    />\r\n  )\r\n}\r\n\r\nfunction MenubarShortcut({\r\n  className,\r\n  ...props\r\n}: React.HTMLAttributes<HTMLSpanElement>) {\r\n  return (\r\n    <span\r\n      data-slot=\"menubar-shortcut\"\r\n      className={cn(\r\n        \"ml-auto text-xs tracking-widest text-main-foreground\",\r\n        className,\r\n      )}\r\n      {...props}\r\n    />\r\n  )\r\n}\r\n\r\nfunction MenubarSubTrigger({\r\n  className,\r\n  inset,\r\n  children,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {\r\n  inset?: boolean\r\n}) {\r\n  return (\r\n    <MenubarPrimitive.SubTrigger\r\n      data-slot=\"menubar-sub-trigger\"\r\n      className={cn(\r\n        \"flex cursor-default select-none items-center rounded-base border-2 border-transparent px-3 py-1.5 text-sm font-base outline-hidden focus:border-border data-[state=open]:border-border data-[inset]:pl-8\",\r\n        className,\r\n      )}\r\n      {...props}\r\n    >\r\n      {children}\r\n      <ChevronRight className=\"ml-auto size-4\" />\r\n    </MenubarPrimitive.SubTrigger>\r\n  )\r\n}\r\n\r\nfunction MenubarSubContent({\r\n  className,\r\n  ...props\r\n}: React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>) {\r\n  return (\r\n    <MenubarPrimitive.SubContent\r\n      data-slot=\"menubar-sub-content\"\r\n      className={cn(\r\n        \"z-50 min-w-[8rem] overflow-hidden rounded-base border-2 border-border bg-main p-1 font-base text-main-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-menubar-content-transform-origin)\",\r\n        className,\r\n      )}\r\n      {...props}\r\n    />\r\n  )\r\n}\r\n\r\nexport {\r\n  Menubar,\r\n  MenubarMenu,\r\n  MenubarTrigger,\r\n  MenubarContent,\r\n  MenubarItem,\r\n  MenubarSeparator,\r\n  MenubarLabel,\r\n  MenubarCheckboxItem,\r\n  MenubarRadioGroup,\r\n  MenubarRadioItem,\r\n  MenubarPortal,\r\n  MenubarSubContent,\r\n  MenubarSubTrigger,\r\n  MenubarGroup,\r\n  MenubarSub,\r\n  MenubarShortcut,\r\n}\r\n",
      "type": "registry:ui"
    }
  ]
}