UNPKG

1.19 kBTypeScriptView Raw
1import * as React from 'react';
2import { ExtendButtonBase } from '../ButtonBase';
3import { OverridableComponent, OverrideProps } from '../OverridableComponent';
4
5export interface ListItemTypeMap<P, D extends React.ElementType> {
6 props: P & {
7 alignItems?: 'flex-start' | 'center';
8 autoFocus?: boolean;
9 button?: boolean;
10 ContainerComponent?: React.ElementType<React.HTMLAttributes<HTMLDivElement>>;
11 ContainerProps?: React.HTMLAttributes<HTMLDivElement>;
12 dense?: boolean;
13 disabled?: boolean;
14 disableGutters?: boolean;
15 divider?: boolean;
16 focusVisibleClassName?: string;
17 selected?: boolean;
18 };
19 defaultComponent: D;
20 classKey: ListItemClassKey;
21}
22
23declare const ListItem: OverridableComponent<ListItemTypeMap<{ button?: false }, 'li'>> &
24 ExtendButtonBase<ListItemTypeMap<{ button: true }, 'div'>>;
25
26export type ListItemClassKey =
27 | 'root'
28 | 'container'
29 | 'focusVisible'
30 | 'default'
31 | 'dense'
32 | 'disabled'
33 | 'divider'
34 | 'gutters'
35 | 'button'
36 | 'secondaryAction'
37 | 'selected';
38
39export type ListItemProps<D extends React.ElementType = 'li', P = {}> = OverrideProps<
40 ListItemTypeMap<P, D>,
41 D
42>;
43
44export default ListItem;