import type { HTMLAttributes, ReactNode } from 'react'; export type BreadcrumbItem = { /** * Unique key for each breadcrumb item */ key: string; /** * Text content to display */ text: string; /** * Href link for navigation */ to?: string; /** * Optional icon displayed before the text label */ icon?: ReactNode; /** * Additional custom class for the item element */ className?: string; }; export interface BreadcrumbProps extends HTMLAttributes { /** * List of breadcrumb items */ items: BreadcrumbItem[]; /** * Custom render method for breadcrumb items. * If omitted, defaults to standard {item.text} */ render?: (item: BreadcrumbItem) => ReactNode; /** * Separator icon or variant ('slash' | 'chevron' | 'dot' | ReactNode). Default is 'slash' */ separator?: 'slash' | 'chevron' | 'dot' | ReactNode; /** * Size variant ('sm' | 'md' | 'lg'). Default is 'md' */ size?: 'sm' | 'md' | 'lg'; /** * Maximum number of items to display before collapsing middle items into a '...' dropdown menu */ maxItems?: number; /** * Additional container class name */ className?: string; /** * Custom class name applied to non-active ancestor links */ itemClass?: string; /** * Custom class name applied to the active current page item */ activeItemClass?: string; /** * Custom class name applied to separator elements */ separatorClass?: string; }