{"$schema":"https://ui.shadcn.com/schema/registry-item.json","author":"Eduardo Calvo <edu@smoothui.dev>","css":{},"dependencies":["@base-ui/react"],"description":"Desktop Menubar for SmoothUI with Base UI / Radix twins.","devDependencies":[],"files":[{"content":"\"use client\";\n\nimport { Menu } from \"@base-ui/react/menu\";\nimport { Menubar as MenubarPrimitive } from \"@base-ui/react/menubar\";\nimport { cn } from \"@/lib/utils\";\nimport type { ComponentProps, ReactNode } from \"react\";\n\nexport interface MenubarProps {\n  children?: ReactNode;\n  className?: string;\n}\n\nexport type MenubarRootProps = Omit<\n  ComponentProps<typeof MenubarPrimitive>,\n  \"className\"\n> & { className?: string };\nexport type MenubarMenuProps = Omit<\n  ComponentProps<typeof Menu.Root>,\n  \"className\"\n> & { className?: string };\nexport type MenubarTriggerProps = Omit<\n  ComponentProps<typeof Menu.Trigger>,\n  \"className\"\n> & { className?: string };\nexport type MenubarContentProps = Omit<\n  ComponentProps<typeof Menu.Popup>,\n  \"className\"\n> & {\n  align?: \"start\" | \"center\" | \"end\";\n  className?: string;\n  sideOffset?: number;\n};\nexport type MenubarItemProps = Omit<\n  ComponentProps<typeof Menu.Item>,\n  \"className\"\n> & { className?: string };\nexport type MenubarSeparatorProps = Omit<\n  ComponentProps<typeof Menu.Separator>,\n  \"className\"\n> & { className?: string };\n\nconst TRIGGER_CLASS =\n  \"inline-flex h-8 select-none items-center rounded-md px-2.5 font-medium text-sm outline-none transition-colors hover:bg-muted focus-visible:bg-muted data-popup-open:bg-muted\";\n\nconst POPUP_CLASS =\n  \"z-50 min-w-40 origin-[var(--transform-origin)] rounded-md border bg-popover p-1 text-popover-foreground shadow-md outline-none transition-[scale,opacity] duration-150 ease-out data-ending-style:scale-[0.98] data-ending-style:opacity-0 data-starting-style:scale-[0.98] data-starting-style:opacity-0 motion-reduce:transition-none\";\n\nconst ITEM_CLASS =\n  \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50 data-highlighted:bg-accent data-highlighted:text-accent-foreground\";\n\nexport const MenubarRoot = ({ className, ...props }: MenubarRootProps) => (\n  <MenubarPrimitive\n    className={cn(\n      \"inline-flex h-10 items-center gap-0.5 rounded-xl border border-border bg-background/60 p-1 shadow-xs\",\n      className\n    )}\n    data-slot=\"menubar\"\n    {...props}\n  />\n);\n\nexport const MenubarMenu = ({ className, ...props }: MenubarMenuProps) => (\n  <Menu.Root data-slot=\"menubar-menu\" {...props} />\n);\n\nexport const MenubarTrigger = ({\n  className,\n  ...props\n}: MenubarTriggerProps) => (\n  <Menu.Trigger\n    className={cn(TRIGGER_CLASS, className)}\n    data-slot=\"menubar-trigger\"\n    {...props}\n  />\n);\n\nexport const MenubarContent = ({\n  align = \"start\",\n  className,\n  sideOffset = 4,\n  ...props\n}: MenubarContentProps) => (\n  <Menu.Portal>\n    <Menu.Positioner\n      align={align}\n      className=\"outline-none\"\n      sideOffset={sideOffset}\n    >\n      <Menu.Popup\n        className={cn(POPUP_CLASS, className)}\n        data-slot=\"menubar-content\"\n        {...props}\n      />\n    </Menu.Positioner>\n  </Menu.Portal>\n);\n\nexport const MenubarItem = ({ className, ...props }: MenubarItemProps) => (\n  <Menu.Item\n    className={cn(ITEM_CLASS, className)}\n    data-slot=\"menubar-item\"\n    {...props}\n  />\n);\n\nexport const MenubarSeparator = ({\n  className,\n  ...props\n}: MenubarSeparatorProps) => (\n  <Menu.Separator\n    className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n    data-slot=\"menubar-separator\"\n    {...props}\n  />\n);\n\n/**\n * SmoothUI Menubar — Base UI twin (default).\n * Convenience root; nest MenubarMenu / Trigger / Content / Item.\n */\nexport default function Menubar({ children, className }: MenubarProps) {\n  return <MenubarRoot className={className}>{children}</MenubarRoot>;\n}\n","path":"index.tsx","target":"components/smoothui/menubar/index.tsx","type":"registry:ui"}],"name":"menubar","registryDependencies":[],"title":"Menubar","type":"registry:ui"}