import React from 'react'; import { useStyles, useTheme, useBreakpoint } from '../../core'; import { Container } from '../Container/Container'; import { Stack } from '../Stack/Stack'; import { Link } from '../Link/Link'; import { Button, ButtonProps } from '../Button/Button'; import { Dropdown, DropdownTrigger, DropdownContent, DropdownItem } from '../Dropdown/Dropdown'; import { IconButton } from '../IconButton/IconButton'; import { MenuIcon } from '../../icons'; import { Text } from '../Text/Text'; // --- Types --- interface HeaderProps extends React.HTMLAttributes { children: React.ReactNode; height?: string; } // --- Brand --- interface BrandProps { children: React.ReactNode; href?: string; to?: string; } const HeaderBrand: React.FC = ({ children, ...props }) => { return ( {children} ); }; HeaderBrand.displayName = 'Header.Brand'; // --- Nav --- interface NavItemProps extends React.AnchorHTMLAttributes { to?: string; isActive?: boolean; } const NavItem: React.FC = ({ children, isActive, ...props }) => { const { theme } = useTheme(); const createStyle = useStyles('header-nav-item'); const itemClass = createStyle({ padding: '6px 1rem', borderRadius: '6px', color: isActive ? theme.colors.text : theme.colors.textSecondary, fontWeight: isActive ? '500' : '400', textDecoration: 'none', transition: 'all 0.2s', '&:hover': { color: theme.colors.text, backgroundColor: 'rgba(255, 255, 255, 0.05)', }, }); return {children}; }; NavItem.displayName = 'Header.Nav.Item'; const HeaderNav: React.FC<{ children: React.ReactNode }> & { Item: typeof NavItem } = ({ children }) => { const createStyle = useStyles('header-nav'); const isDesktop = useBreakpoint('md'); const navClass = createStyle({ display: isDesktop ? 'flex' : 'none', alignItems: 'center', gap: '0.25rem', }); return ; }; HeaderNav.Item = NavItem; HeaderNav.displayName = 'Header.Nav'; // --- Action --- const ActionItem: React.FC = (props) => { return