1 | import * as React from 'react';
|
2 | import {
|
3 | StyledFn,
|
4 | StyletronComponent,
|
5 | StyletronComponentInjectedProps,
|
6 | } from 'styletron-react';
|
7 | import {Override} from '../overrides';
|
8 |
|
9 | export interface KIND {
|
10 | primary: 'primary';
|
11 | secondary: 'secondary';
|
12 | tertiary: 'tertiary';
|
13 | minimal: 'minimal';
|
14 | }
|
15 |
|
16 | export interface SIZE {
|
17 | compact: 'compact';
|
18 | default: 'default';
|
19 | large: 'large';
|
20 | mini: 'mini';
|
21 | }
|
22 |
|
23 | export interface SHAPE {
|
24 | default: 'default';
|
25 | pill: 'pill';
|
26 | round: 'round';
|
27 | circle: 'circle';
|
28 | square: 'square';
|
29 | }
|
30 |
|
31 | export interface ButtonOverrides {
|
32 | Root?: Override<any>;
|
33 | BaseButton?: Override<any>;
|
34 | StartEnhancer?: Override<any>;
|
35 | EndEnhancer?: Override<any>;
|
36 | LoadingSpinnerContainer?: Override<any>;
|
37 | LoadingSpinner?: Override<any>;
|
38 | }
|
39 |
|
40 | export interface ButtonProps
|
41 | extends StyletronComponentInjectedProps<ButtonProps> {
|
42 | href?: string;
|
43 | target?: string;
|
44 | children?: React.ReactNode;
|
45 | disabled?: boolean;
|
46 | endEnhancer?: React.ReactNode;
|
47 | isLoading?: boolean;
|
48 | isSelected?: boolean;
|
49 | kind?: KIND[keyof KIND];
|
50 | onClick?: (event: React.MouseEvent<HTMLButtonElement>) => any;
|
51 | overrides?: ButtonOverrides;
|
52 | shape?: SHAPE[keyof SHAPE];
|
53 | size?: SIZE[keyof SIZE];
|
54 | startEnhancer?: React.ReactNode;
|
55 | type?: 'submit' | 'reset' | 'button';
|
56 | }
|
57 |
|
58 | export const StyledBaseButton: StyletronComponent<any>;
|
59 | export const StyledStartEnhancer: StyletronComponent<any>;
|
60 | export const StyledEndEnhancer: StyletronComponent<any>;
|
61 | export const StyledLoadingSpinner: StyletronComponent<any>;
|
62 | export const StyledLoadingSpinnerContainer: StyletronComponent<any>;
|
63 |
|
64 | export const Button: React.ForwardRefExoticComponent<
|
65 | React.PropsWithoutRef<ButtonProps> & React.RefAttributes<HTMLButtonElement>
|
66 | >;
|
67 |
|
68 | export const KIND: KIND;
|
69 | export const SHAPE: SHAPE;
|
70 | export const SIZE: SIZE;
|