{
	"$schema": "https://ui.shadcn.com/schema/registry-item.json",
	"name": "menubar",
	"dependencies": [],
	"registryDependencies": [],
	"files": [
		{
			"path": "ui/menubar.tsx",
			"content": "import { Menu as BaseMenu } from \"@base-ui/react/menu\"\nimport { Menubar as BaseMenubar } from \"@base-ui/react/menubar\"\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Menubar({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseMenubar>) {\n\treturn (\n\t\t<BaseMenubar\n\t\t\tdata-slot=\"menubar\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-popover flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof BaseMenu.Root>) {\n\treturn <BaseMenu.Root data-slot=\"menubar-menu\" {...props} />\n}\n\nfunction MenubarGroup({\n\t...props\n}: React.ComponentProps<typeof BaseMenu.Group>) {\n\treturn <BaseMenu.Group data-slot=\"menubar-group\" {...props} />\n}\n\nfunction MenubarPortal({\n\t...props\n}: React.ComponentProps<typeof BaseMenu.Portal>) {\n\treturn <BaseMenu.Portal data-slot=\"menubar-portal\" {...props} />\n}\n\nfunction MenubarRadioGroup({\n\t...props\n}: React.ComponentProps<typeof BaseMenu.RadioGroup>) {\n\treturn <BaseMenu.RadioGroup data-slot=\"menubar-radio-group\" {...props} />\n}\n\nfunction MenubarTrigger({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseMenu.Trigger>) {\n\treturn (\n\t\t<BaseMenu.Trigger\n\t\t\tdelay={0}\n\t\t\tcloseDelay={0}\n\t\t\tdata-slot=\"menubar-trigger\"\n\t\t\tclassName={cn(\n\t\t\t\t\"data-popup-open:bg-accent data-popup-open:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction MenubarContent({\n\tclassName,\n\talign = \"start\",\n\talignOffset = -4,\n\tsideOffset = 8,\n\t...props\n}: React.ComponentProps<typeof BaseMenu.Popup> & {\n\talign?: BaseMenu.Positioner.Props[\"align\"]\n\talignOffset?: BaseMenu.Positioner.Props[\"alignOffset\"]\n\tsideOffset?: BaseMenu.Positioner.Props[\"sideOffset\"]\n}) {\n\treturn (\n\t\t<MenubarPortal>\n\t\t\t<BaseMenu.Positioner\n\t\t\t\tclassName=\"max-h-(--available-height)\"\n\t\t\t\talign={align}\n\t\t\t\talignOffset={alignOffset}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t>\n\t\t\t\t<BaseMenu.Popup\n\t\t\t\t\tdata-slot=\"menubar-content\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"bg-popover text-popover-foreground z-50 min-w-48 origin-(--transform-origin) overflow-hidden rounded-md border p-1 shadow-md transition-all data-ending-style:scale-98 data-ending-style:opacity-0 data-starting-style:scale-98 data-starting-style:opacity-0\",\n\t\t\t\t\t\tclassName\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</BaseMenu.Positioner>\n\t\t</MenubarPortal>\n\t)\n}\n\nfunction MenubarItem({\n\tclassName,\n\tinset,\n\tvariant = \"default\",\n\t...props\n}: React.ComponentProps<typeof BaseMenu.Item> & {\n\tinset?: boolean\n\tvariant?: \"default\" | \"destructive\"\n}) {\n\treturn (\n\t\t<BaseMenu.Item\n\t\t\tdata-slot=\"menubar-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive-foreground data-[variant=destructive]:*:[svg]:text-destructive! focus:data-[variant=destructive]:*:[svg]:text-destructive-foreground! [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden transition-all select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:transition-all [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction MenubarCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\t...props\n}: React.ComponentProps<typeof BaseMenu.CheckboxItem>) {\n\treturn (\n\t\t<BaseMenu.CheckboxItem\n\t\t\tdata-slot=\"menubar-checkbox-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<BaseMenu.CheckboxItemIndicator>\n\t\t\t\t\t<CheckIcon className=\"size-4\" />\n\t\t\t\t</BaseMenu.CheckboxItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</BaseMenu.CheckboxItem>\n\t)\n}\n\nfunction MenubarRadioItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof BaseMenu.RadioItem>) {\n\treturn (\n\t\t<BaseMenu.RadioItem\n\t\t\tdata-slot=\"menubar-radio-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<BaseMenu.RadioItemIndicator>\n\t\t\t\t\t<CircleIcon className=\"size-2 fill-current\" />\n\t\t\t\t</BaseMenu.RadioItemIndicator>\n\t\t\t</span>\n\t\t\t{children}\n\t\t</BaseMenu.RadioItem>\n\t)\n}\n\nfunction MenubarLabel({\n\tclassName,\n\tinset,\n\t...props\n}: React.ComponentProps<typeof BaseMenu.GroupLabel> & {\n\tinset?: boolean\n}) {\n\treturn (\n\t\t<BaseMenu.GroupLabel\n\t\t\tdata-slot=\"menubar-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t\"px-2 py-1.5 text-xs font-medium data-inset:pl-8\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction MenubarSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseMenu.Separator>) {\n\treturn (\n\t\t<BaseMenu.Separator\n\t\t\tdata-slot=\"menubar-separator\"\n\t\t\tclassName={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction MenubarShortcut({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"menubar-shortcut\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-muted-foreground ml-auto text-xs tracking-widest\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction MenubarSub({\n\t...props\n}: React.ComponentProps<typeof BaseMenu.SubmenuRoot>) {\n\treturn <BaseMenu.SubmenuRoot data-slot=\"menubar-sub\" {...props} />\n}\n\nfunction MenubarSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof BaseMenu.SubmenuTrigger> & {\n\tinset?: boolean\n}) {\n\treturn (\n\t\t<BaseMenu.SubmenuTrigger\n\t\t\tdelay={0}\n\t\t\tcloseDelay={0}\n\t\t\tdata-slot=\"menubar-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground data-popup-open:bg-accent data-popup-open:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n\t\t</BaseMenu.SubmenuTrigger>\n\t)\n}\n\nfunction MenubarSubContent({\n\tclassName,\n\tsideOffset = 0,\n\talign = \"start\",\n\t...props\n}: React.ComponentProps<typeof BaseMenu.Popup> & {\n\tsideOffset?: BaseMenu.Positioner.Props[\"sideOffset\"]\n\talign?: BaseMenu.Positioner.Props[\"align\"]\n}) {\n\treturn (\n\t\t<MenubarPortal>\n\t\t\t<BaseMenu.Positioner\n\t\t\t\tclassName=\"max-h-(--available-height)\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\talign={align}\n\t\t\t>\n\t\t\t\t<BaseMenu.Popup\n\t\t\t\t\tdata-slot=\"menubar-sub-content\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"bg-popover text-popover-foreground z-50 min-w-48 origin-(--transform-origin) overflow-hidden rounded-md border p-1 shadow-md transition-all data-ending-style:scale-98 data-ending-style:opacity-0 data-starting-style:scale-98 data-starting-style:opacity-0\",\n\t\t\t\t\t\tclassName\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</BaseMenu.Positioner>\n\t\t</MenubarPortal>\n\t)\n}\n\nexport {\n\tMenubar,\n\tMenubarPortal,\n\tMenubarMenu,\n\tMenubarTrigger,\n\tMenubarContent,\n\tMenubarGroup,\n\tMenubarSeparator,\n\tMenubarLabel,\n\tMenubarItem,\n\tMenubarShortcut,\n\tMenubarCheckboxItem,\n\tMenubarRadioGroup,\n\tMenubarRadioItem,\n\tMenubarSub,\n\tMenubarSubTrigger,\n\tMenubarSubContent,\n}\n",
			"type": "registry:ui",
			"target": ""
		}
	],
	"type": "registry:ui"
}
