-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathindex.d.ts
102 lines (92 loc) · 1.93 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/**
* Types
* =====
*/
export type SharedProps = {
children: React.ReactNode;
placement?: Placement;
preferredAutoPlacement?: PlacementWithoutAuto;
triggerDelay?: number;
trigger?: Trigger;
hideTrigger?: HideTrigger;
hideDelay?: number;
title: string;
transitionOutMs?: number;
showTransparentUnderlay?: boolean;
verticalOffset?: number;
horizontalOffset?: number;
};
// Props: is there a better way to do this?
type Options = {
isTransitioningOut: boolean;
onRequestClose: () => void;
};
export type Props =
| (SharedProps & {
content?: (options: Options) => React.ReactNode;
caret?: (options: Options) => React.ReactNode;
})
| (SharedProps & {
content?: React.ReactNode;
caret?: React.ReactNode;
})
| (SharedProps & {
content?: (options: Options) => React.ReactNode;
caret?: React.ReactNode;
})
| (SharedProps & {
content?: React.ReactNode;
caret?: (options: Options) => React.ReactNode;
});
export type State = {
isMounting: boolean;
isIdle: boolean;
isVisible: boolean;
isFocused: boolean;
isLeaving: boolean;
isDismissed: boolean;
isTransitioningOut: boolean;
};
export type Action =
| {
type: "TRIGGER_SHOW";
}
| {
type: "TRIGGER_HIDE";
}
| {
type: "PORTAL_MOUNTED";
}
| {
type: "TRANSITION_OUT_START";
}
| {
type: "TRANSITION_OUT_COMPLETE";
}
| {
type: "CANCEL_TRANSITIONING_OUT";
};
export type PlacementWithoutAuto =
| "top"
| "top-start"
| "top-end"
| "left"
| "right"
| "bottom"
| "bottom-start"
| "bottom-end";
export type Placement =
| "auto"
| "top"
| "top-start"
| "top-end"
| "left"
| "right"
| "bottom"
| "bottom-start"
| "bottom-end";
export type Trigger = "hover" | "click" | "mousedown";
export type HideTrigger = "mouseleave" | "click";
declare module "postel" {
export default function Postel(props: Props): any;
}