UNPKG

1.69 kBTypeScriptView Raw
1import * as React from 'react';
2import {StyletronComponent} from 'styletron-react';
3import {Override} from '../overrides';
4
5export interface STATE_CHANGE_TYPE {
6 change: 'change';
7}
8
9export interface Item {
10 title: React.ReactNode;
11 itemId?: string;
12 subNav?: Item[];
13 disabled?: boolean;
14}
15
16export interface NavigationOverrides {
17 Root?: Override<any>;
18 NavItemContainer?: Override<any>;
19 NavLink?: Override<any>;
20 NavItem?: Override<any>;
21 SubNavContainer?: Override<any>;
22}
23
24export interface NavigationProps {
25 activeItemId: string;
26 activePredicate?: (item: any, activeItemId: string) => boolean;
27 items?: Item[];
28 onChange?: (args: {item: any; event: React.SyntheticEvent<any>}) => any;
29 overrides?: NavigationOverrides;
30 mapItem?: (item: Item) => Item;
31}
32
33export class Navigation extends React.Component<NavigationProps> {
34 activePredicate(item: Item): boolean;
35}
36
37export interface NavItemOverrides {
38 NavLink?: Override<any>;
39 NavItem?: Override<any>;
40}
41
42export interface NavItemProps {
43 $active?: boolean;
44 $level?: number;
45 $selectable?: boolean;
46 item: Item;
47 onSelect?: (args: {item: any; event: Event | KeyboardEvent}) => any;
48 overrides?: NavItemOverrides;
49}
50
51export class NavItem extends React.Component<NavItemProps> {
52 handleClick(event: React.MouseEvent): void;
53 handleKeyDown(event: React.KeyboardEvent): void;
54}
55
56export const StyledRoot: StyletronComponent<any>;
57export const StyledNavItemContainer: StyletronComponent<any>;
58export const StyledNavLink: StyletronComponent<any>;
59export const StyledNavItem: StyletronComponent<any>;
60export const StyledSubNavContainer: StyletronComponent<any>;
61
62export const STATE_CHANGE_TYPE: STATE_CHANGE_TYPE;