UNPKG

1.48 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
23/**
24 * Uses an additional container component if `ListItemSecondaryAction` is the last child.
25 * Demos:
26 *
27 * - [Lists](https://mui.com/components/lists/)
28 * - [Transfer List](https://mui.com/components/transfer-list/)
29 *
30 * API:
31 *
32 * - [ListItem API](https://mui.com/api/list-item/)
33 */
34declare const ListItem: OverridableComponent<ListItemTypeMap<{ button?: false }, 'li'>> &
35 ExtendButtonBase<ListItemTypeMap<{ button: true }, 'div'>>;
36
37export type ListItemClassKey =
38 | 'root'
39 | 'container'
40 | 'focusVisible'
41 | 'default'
42 | 'dense'
43 | 'disabled'
44 | 'divider'
45 | 'gutters'
46 | 'button'
47 | 'secondaryAction'
48 | 'selected';
49
50export type ListItemProps<D extends React.ElementType = 'li', P = {}> = OverrideProps<
51 ListItemTypeMap<P, D>,
52 D
53>;
54
55export default ListItem;