UNPKG

2.68 kBTypeScriptView Raw
1import * as React from 'react';
2import { OUIAProps } from '../../helpers';
3export declare type NavSelectClickHandler = (e: React.FormEvent<HTMLInputElement>, itemId: number | string, groupId: number | string, to: string) => void;
4export interface NavProps extends Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, 'onSelect'>, OUIAProps {
5 /** Anything that can be rendered inside of the nav */
6 children?: React.ReactNode;
7 /** Additional classes added to the container */
8 className?: string;
9 /** Callback for updating when item selection changes */
10 onSelect?: (selectedItem: {
11 groupId: number | string;
12 itemId: number | string;
13 to: string;
14 event: React.FormEvent<HTMLInputElement>;
15 }) => void;
16 /** Callback for when a list is expanded or collapsed */
17 onToggle?: (toggledItem: {
18 groupId: number | string;
19 isExpanded: boolean;
20 event: React.MouseEvent<HTMLButtonElement>;
21 }) => void;
22 /** Accessibility label */
23 'aria-label'?: string;
24 /** Indicates which theme color to use */
25 theme?: 'dark' | 'light';
26 /** For horizontal navs */
27 variant?: 'default' | 'horizontal' | 'tertiary' | 'horizontal-subnav';
28}
29export interface NavContextProps {
30 onSelect?: (event: React.FormEvent<HTMLInputElement>, groupId: number | string, itemId: number | string, to: string, preventDefault: boolean, onClick: (e: React.FormEvent<HTMLInputElement>, itemId: number | string, groupId: number | string, to: string) => void) => void;
31 onToggle?: (event: React.MouseEvent<HTMLButtonElement>, groupId: number | string, expanded: boolean) => void;
32 updateIsScrollable?: (isScrollable: boolean) => void;
33 isHorizontal?: boolean;
34 flyoutRef?: React.Ref<HTMLLIElement>;
35 setFlyoutRef?: (ref: React.Ref<HTMLLIElement>) => void;
36}
37export declare const navContextDefaults: {};
38export declare const NavContext: React.Context<NavContextProps>;
39export declare class Nav extends React.Component<NavProps, {
40 isScrollable: boolean;
41 ouiaStateId: string;
42 flyoutRef: React.Ref<HTMLLIElement> | null;
43}> {
44 static displayName: string;
45 static defaultProps: NavProps;
46 state: {
47 isScrollable: boolean;
48 ouiaStateId: string;
49 flyoutRef: React.Ref<HTMLLIElement>;
50 };
51 onSelect(event: React.FormEvent<HTMLInputElement>, groupId: number | string, itemId: number | string, to: string, preventDefault: boolean, onClick: NavSelectClickHandler): void;
52 onToggle(event: React.MouseEvent<HTMLButtonElement>, groupId: number | string, toggleValue: boolean): void;
53 render(): JSX.Element;
54}
55//# sourceMappingURL=Nav.d.ts.map
\No newline at end of file