1 | import * as React from 'react';
|
2 | import { SxProps } from '@mui/system';
|
3 | import { Theme } from '..';
|
4 | import { OverridableComponent, OverridableTypeMap, OverrideProps } from '../OverridableComponent';
|
5 | import { ListClasses } from './listClasses';
|
6 |
|
7 | export interface ListOwnProps {
|
8 | |
9 |
|
10 |
|
11 | children?: React.ReactNode;
|
12 | |
13 |
|
14 |
|
15 | classes?: Partial<ListClasses>;
|
16 | |
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | dense?: boolean;
|
23 | |
24 |
|
25 |
|
26 |
|
27 | disablePadding?: boolean;
|
28 | |
29 |
|
30 |
|
31 | subheader?: React.ReactNode;
|
32 | |
33 |
|
34 |
|
35 | sx?: SxProps<Theme>;
|
36 | }
|
37 |
|
38 | export interface ListTypeMap<AdditionalProps = {}, RootComponent extends React.ElementType = 'ul'> {
|
39 | props: AdditionalProps & ListOwnProps;
|
40 | defaultComponent: RootComponent;
|
41 | }
|
42 |
|
43 |
|
44 |
|
45 |
|
46 | export interface ExtendListTypeMap<TypeMap extends OverridableTypeMap> {
|
47 | props: TypeMap['props'] & ListTypeMap['props'];
|
48 | defaultComponent: TypeMap['defaultComponent'];
|
49 | }
|
50 |
|
51 | export type ExtendList<TypeMap extends OverridableTypeMap> = OverridableComponent<
|
52 | ExtendListTypeMap<TypeMap>
|
53 | >;
|
54 |
|
55 |
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 | declare const List: ExtendList<ListTypeMap>;
|
67 |
|
68 | export type ListProps<
|
69 | RootComponent extends React.ElementType = ListTypeMap['defaultComponent'],
|
70 | AdditionalProps = {},
|
71 | > = OverrideProps<ListTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
|
72 | component?: React.ElementType;
|
73 | };
|
74 |
|
75 | export default List;
|