@activate-spritz-components/spritz-ui-components
Version:
This is shared components library for spritz projects.
67 lines (66 loc) • 1.87 kB
TypeScript
import { ReactNode, FunctionComponent } from 'react';
export interface NavItem {
id: string;
label: string;
href?: string;
icon?: ReactNode;
onClick?: () => void;
isActive?: boolean;
isDisabled?: boolean;
openInNewTab?: boolean;
type?: 'navigation' | 'action' | 'separator';
separatorElement?: ReactNode;
separatorStyle?: {
height?: string;
borderColor?: string;
backgroundColor?: string;
background?: string;
margin?: string;
};
}
interface ResponsiveNavbarProps {
id?: string;
className?: string;
height?: number;
mobileHeight?: number;
logo?: ReactNode;
leftContent?: ReactNode;
rightContent?: ReactNode;
children?: ReactNode;
navigationItems: NavItem[];
backgroundColor?: string;
borderColor?: string;
shadow?: boolean;
hamburgerIcon?: ReactNode;
showHeader?: boolean;
menuTitle?: string;
menuPosition?: 'left' | 'right';
menuVariant?: 'dropdown' | 'sidebar';
defaultOpenInNewTab?: boolean;
mobileOpenInNewTab?: boolean;
desktopOpenInNewTab?: boolean;
menuBackgroundColor?: string;
menuBorderColor?: string;
menuShadow?: boolean;
menuItemTextColor?: string;
menuItemHoverColor?: string;
menuItemActiveColor?: string;
onNavigationItemClick?: (item: NavItem) => void;
onMenuOpenChange?: (isOpen: boolean) => void;
onLogoClick?: () => void;
}
/**
* Responsive Navbar Component
*
* Features:
* - Single comprehensive navbar component
* - Built-in hamburger menu with responsive behavior
* - Highly customizable styling and behavior
* - Mobile/Desktop specific link behavior
* - Clean, production-ready design
*
* @param {*} props
* @returns
*/
declare const ResponsiveNavbar: FunctionComponent<ResponsiveNavbarProps>;
export default ResponsiveNavbar;