UNPKG

1.88 kBTypeScriptView Raw
1import * as React from 'react';
2import {StyletronComponent} from 'styletron-react';
3import {Override} from '../overrides';
4
5export interface ARTWORK_SIZES {
6 SMALL: 'SMALL';
7 MEDIUM: 'MEDIUM';
8 LARGE: 'LARGE';
9}
10export const ARTWORK_SIZES: ARTWORK_SIZES;
11export type ArtworkSizesT =
12 | ARTWORK_SIZES['SMALL']
13 | ARTWORK_SIZES['MEDIUM']
14 | ARTWORK_SIZES['LARGE'];
15
16export interface StyledArtworkContainerPropsT {
17 $artworkSize: ArtworkSizesT;
18 $sublist?: boolean;
19}
20export interface StyledContentPropsT {
21 $mLeft: boolean;
22 $sublist: boolean;
23}
24
25export interface ListOverrides {
26 Root?: Override<{}>;
27 ArtworkContainer?: Override<StyledArtworkContainerPropsT>;
28 Content?: Override<StyledContentPropsT>;
29 EndEnhancerContainer?: Override<{}>;
30}
31
32export interface PropsT {
33 artwork?: React.ReactNode;
34 artworkSize?: ArtworkSizesT | number;
35 children: React.ReactNode;
36 endEnhancer?: React.ReactNode;
37 overrides?: ListOverrides;
38 sublist?: boolean;
39}
40
41export interface LabelPropsT {
42 children: React.ReactNode;
43 description?: React.ReactNode;
44 sublist?: boolean;
45}
46
47export interface MenuAdapterPropsT extends PropsT {
48 // eslint-disable-next-line flowtype/no-weak-types
49 item: any;
50 onMouseEnter: (event: React.MouseEvent<HTMLLIElement>) => any;
51 onClick: (event: React.MouseEvent<HTMLLIElement>) => any;
52 $size: string;
53 $isHighlighted: boolean;
54 $disabled: boolean;
55}
56
57export const ListItem: React.ForwardRefExoticComponent<
58 PropsT & React.RefAttributes<HTMLLIElement>
59>;
60export const ListItemLabel: React.FC<LabelPropsT>;
61export const MenuAdapter: React.FC<MenuAdapterPropsT>;
62
63export const StyledRoot: StyletronComponent<{}>;
64export const StyledContent: StyletronComponent<StyledContentPropsT>;
65export const StyledEndEnhancerContainer: StyletronComponent<{}>;
66export const StyledArtworkContainer: StyletronComponent<
67 StyledArtworkContainerPropsT
68>;