import * as React from 'react' import { cva, type VariantProps } from 'class-variance-authority' import { MenuIcon, XIcon } from 'lucide-react' import { cn } from '@/lib/utils' import { Button } from '@/components/ui/button' const navbarVariants = cva( 'fixed top-0 left-0 right-0 z-50 h-[65px] font-sans', { variants: { variant: { solid: 'bg-card dark:bg-background border-b border-border', transparent: 'bg-transparent', minimal: 'bg-card/80 dark:bg-background/80 backdrop-blur-sm border-b border-border/50', }, }, defaultVariants: { variant: 'solid', }, }, ) interface NavbarProps extends React.ComponentProps<'header'>, VariantProps { logo?: React.ReactNode actions?: React.ReactNode } function Navbar({ className, variant, logo, actions, children, ...props }: NavbarProps) { const [mobileOpen, setMobileOpen] = React.useState(false) return (
{/* Logo slot — left */} {logo && (
{logo}
)} {/* Desktop nav — center */} {/* Actions slot — right */}
{actions && (
{actions}
)} {/* Mobile menu toggle */}
{/* Mobile nav */} {mobileOpen && (
{actions && (
{actions}
)}
)}
) } function NavbarLink({ className, active, ...props }: React.ComponentProps<'a'> & { active?: boolean }) { return ( ) } export { Navbar, NavbarLink, navbarVariants }