UNPKG

1.87 kBTypeScriptView Raw
1import * as React from 'react';
2import { StandardProps } from '..';
3
4export interface Mark {
5 value: number;
6 label?: React.ReactNode;
7}
8
9export interface ValueLabelProps extends React.HTMLAttributes<HTMLSpanElement> {
10 value: number;
11 open: boolean;
12 children: React.ReactElement;
13}
14
15export interface SliderProps
16 extends StandardProps<
17 React.HTMLAttributes<HTMLSpanElement>,
18 SliderClassKey,
19 'defaultValue' | 'onChange'
20 > {
21 'aria-label'?: string;
22 'aria-labelledby'?: string;
23 'aria-valuetext'?: string;
24 color?: 'primary' | 'secondary';
25 component?: React.ElementType<React.HTMLAttributes<HTMLSpanElement>>;
26 defaultValue?: number | number[];
27 disabled?: boolean;
28 getAriaLabel?: (index: number) => string;
29 getAriaValueText?: (value: number, index: number) => string;
30 marks?: boolean | Mark[];
31 max?: number;
32 min?: number;
33 name?: string;
34 onChange?: (event: React.ChangeEvent<{}>, value: number | number[]) => void;
35 onChangeCommitted?: (event: React.ChangeEvent<{}>, value: number | number[]) => void;
36 orientation?: 'horizontal' | 'vertical';
37 step?: number | null;
38 ThumbComponent?: React.ElementType<React.HTMLAttributes<HTMLSpanElement>>;
39 track?: 'normal' | false | 'inverted';
40 value?: number | number[];
41 ValueLabelComponent?: React.ElementType<ValueLabelProps>;
42 valueLabelDisplay?: 'on' | 'auto' | 'off';
43 valueLabelFormat?: string | ((value: number, index: number) => React.ReactNode);
44}
45
46export type SliderClassKey =
47 | 'root'
48 | 'colorPrimary'
49 | 'colorSecondary'
50 | 'marked'
51 | 'vertical'
52 | 'rtl'
53 | 'disabled'
54 | 'rail'
55 | 'track'
56 | 'trackFalse'
57 | 'trackInverted'
58 | 'thumb'
59 | 'thumbColorPrimary'
60 | 'thumbColorSecondary'
61 | 'valueLabel'
62 | 'mark'
63 | 'markActive'
64 | 'markLabel'
65 | 'markLabelActive';
66
67declare const Slider: React.ComponentType<SliderProps>;
68
69export default Slider;
70
\No newline at end of file