import { HTMLAttributes, ReactElement } from 'react';
import { IconNamesType } from '../../../../../../../../../src/utils';
export interface TopLinkItemProps {
label: string;
href: string;
disabled?: boolean;
icon?: IconNamesType;
id?: string;
className?: string;
}
export interface LinkItemProps extends HTMLAttributes {
children: string;
active?: boolean;
disabled?: boolean;
href: string;
parentHasIcon?: boolean;
}
export interface NavCategoryProps extends React.ButtonHTMLAttributes {
label: string;
icon?: IconNamesType;
expanded?: boolean;
disabled?: boolean;
active?: boolean;
children?: ReactElement | ReactElement[];
}
type EnforcedAccessibleLabel = {
"aria-label": string;
} | {
"aria-labelledby": string;
};
export type LeftNavProps = {
currentUrl?: string;
isActiveOverride?: boolean;
onNavigate?: (id: string, url: string) => void;
children?: ReactElement | ReactElement[];
} & React.BaseHTMLAttributes & EnforcedAccessibleLabel;
export interface LeftNavSubComponents {
LinkItem: React.FC;
NavCategory: React.FC;
TopLinkItem: React.FC;
}
export interface LeftNavContextType {
currentUrl: string;
onSelectedLink?: (id: string, url: string) => void;
isActiveOverride?: boolean;
hasCustomOnNavigate?: boolean;
}
export {};