1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | import * as React from "react";
|
10 |
|
11 | export interface MediaQueryTypes {
|
12 | all?: boolean | undefined;
|
13 | grid?: boolean | undefined;
|
14 | aural?: boolean | undefined;
|
15 | braille?: boolean | undefined;
|
16 | handheld?: boolean | undefined;
|
17 | print?: boolean | undefined;
|
18 | projection?: boolean | undefined;
|
19 | screen?: boolean | undefined;
|
20 | tty?: boolean | undefined;
|
21 | tv?: boolean | undefined;
|
22 | embossed?: boolean | undefined;
|
23 | }
|
24 |
|
25 | export type MediaQueryType = keyof MediaQueryTypes;
|
26 |
|
27 | export interface MediaQueryMatchers {
|
28 | aspectRatio?: string | undefined;
|
29 | deviceAspectRatio?: string | undefined;
|
30 | height?: number | string | undefined;
|
31 | deviceHeight?: number | string | undefined;
|
32 | width?: number | string | undefined;
|
33 | deviceWidth?: number | string | undefined;
|
34 | color?: boolean | undefined;
|
35 | colorIndex?: boolean | undefined;
|
36 | monochrome?: boolean | undefined;
|
37 | resolution?: number | string | undefined;
|
38 | orientation?: 'portrait' | 'landscape' | undefined;
|
39 | scan?: 'progressive' | 'interlace' | undefined;
|
40 | type?: MediaQueryType | undefined;
|
41 | }
|
42 |
|
43 | export interface MediaQueryFeatures extends MediaQueryMatchers {
|
44 | minAspectRatio?: string | undefined;
|
45 | maxAspectRatio?: string | undefined;
|
46 |
|
47 | minDeviceAspectRatio?: string | undefined;
|
48 | maxDeviceAspectRatio?: string | undefined;
|
49 |
|
50 | minHeight?: number | string | undefined;
|
51 | maxHeight?: number | string | undefined;
|
52 |
|
53 | minDeviceHeight?: number | string | undefined;
|
54 | maxDeviceHeight?: number | string | undefined;
|
55 |
|
56 | minWidth?: number | string | undefined;
|
57 | maxWidth?: number | string | undefined;
|
58 |
|
59 | minDeviceWidth?: number | string | undefined;
|
60 | maxDeviceWidth?: number | string | undefined;
|
61 |
|
62 | minColor?: number | undefined;
|
63 | maxColor?: number | undefined;
|
64 |
|
65 | minColorIndex?: number | undefined;
|
66 | maxColorIndex?: number | undefined;
|
67 |
|
68 | minMonochrome?: number | undefined;
|
69 | maxMonochrome?: number | undefined;
|
70 |
|
71 | minResolution?: number | string | undefined;
|
72 | maxResolution?: number | string | undefined;
|
73 | }
|
74 |
|
75 | export interface MediaQueryAllQueryable extends MediaQueryFeatures, MediaQueryTypes {}
|
76 |
|
77 | export interface MediaQueryProps extends MediaQueryAllQueryable {
|
78 | component?: React.ElementType | undefined;
|
79 | query?: string | undefined;
|
80 | style?: React.CSSProperties | undefined;
|
81 | className?: string | undefined;
|
82 | children?: React.ReactNode | ((matches: boolean) => React.ReactNode) | undefined;
|
83 | device?: MediaQueryMatchers | undefined;
|
84 | values?: Partial<MediaQueryMatchers> | undefined;
|
85 | onBeforeChange?: ((matches: boolean) => void) | undefined;
|
86 | onChange?: ((matches: boolean) => void) | undefined;
|
87 | }
|
88 |
|
89 | declare class MediaQuery extends React.Component<MediaQueryProps> { }
|
90 | export function toQuery(matchers: Partial<MediaQueryAllQueryable>): string;
|
91 |
|
92 | export const Context: React.Context<Partial<MediaQueryAllQueryable>>;
|
93 |
|
94 | export function useMediaQuery(
|
95 | settings: Partial<MediaQueryAllQueryable & { query?: string | undefined }>,
|
96 | device?: MediaQueryMatchers,
|
97 | callback?: (matches: boolean) => void
|
98 | ): boolean;
|
99 |
|
100 | export default MediaQuery;
|
101 |
|
\ | No newline at end of file |