import { LucideIcon } from 'lucide-react'; /** * A single item rendered into one of the status bar's three alignment groups. */ export interface IStatusBarWidget { /** Stable unique identifier. Used as the React key. */ id: string; /** Text shown next to the icon. Pass an empty string for an icon-only item. */ label: string; /** Optional `lucide-react` icon rendered before the label at 12px. */ icon?: LucideIcon; /** Which of the three groups the item belongs to. */ alignment: 'left' | 'center' | 'right'; /** Invoked on click and on Enter/Space. Providing it makes the item interactive. */ onClick?: () => void; /** Extra classes merged onto the item, e.g. `"text-green-500"`. */ className?: string; /** Higher values sort earlier within the group. Defaults to `0`. */ priority?: number; } export interface StatusBarProps { /** * Items to display. They are grouped by `alignment` and sorted by descending * `priority` within each group. */ widgets?: IStatusBarWidget[]; /** Accessible label for the landmark. Defaults to `"Status Bar"`. */ 'aria-label'?: string; /** Extra classes merged onto the root `