UNPKG

1.75 kBTypeScriptView Raw
1import { ReactNode, ComponentType, ReactElement } from 'react';
2import { CSSObject } from '@emotion/serialize';
3
4import { spacing } from '../theme';
5import { CommonProps, GroupTypeBase, OptionTypeBase } from '../types';
6
7interface ComponentProps {
8 /** The children to be rendered. */
9 children: ReactNode;
10 /** Component to wrap the label, recieves headingProps. */
11 Heading: ComponentType<any>;
12 /** Props to pass to Heading. */
13 headingProps: any;
14 /** Label to be displayed in the heading component. */
15 label: ReactNode;
16}
17export type GroupProps<
18 OptionType extends OptionTypeBase,
19 IsMulti extends boolean,
20 GroupType extends GroupTypeBase<OptionType> = GroupTypeBase<OptionType>
21> = CommonProps<OptionType, IsMulti, GroupType> & ComponentProps;
22
23export function groupCSS(): CSSObject;
24
25declare function Group<
26 OptionType extends OptionTypeBase,
27 IsMulti extends boolean,
28 GroupType extends GroupTypeBase<OptionType> = GroupTypeBase<OptionType>
29 // tslint:disable-next-line:no-unnecessary-generics
30>(props: GroupProps<OptionType, IsMulti, GroupType>): ReactElement;
31
32export type GroupHeadingProps<
33 OptionType extends OptionTypeBase,
34 IsMulti extends boolean,
35 GroupType extends GroupTypeBase<OptionType> = GroupTypeBase<OptionType>
36> = CommonProps<OptionType, IsMulti, GroupType> & Pick<ComponentProps, 'children'>;
37
38export function groupHeadingCSS(): CSSObject;
39
40export function GroupHeading<
41 OptionType extends OptionTypeBase,
42 IsMulti extends boolean,
43 GroupType extends GroupTypeBase<OptionType> = GroupTypeBase<OptionType>
44 // tslint:disable-next-line:no-unnecessary-generics
45>(props: GroupHeadingProps<OptionType, IsMulti, GroupType>): ReactElement;
46
47export default Group;