-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathtypes.ts
86 lines (76 loc) · 1.41 KB
/
types.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
/**
* card-specific
*/
export type Card = {
title: string;
theme: string;
align: string;
titleAlign: string;
showBorder: boolean;
hideBg: boolean;
borderRadius: number;
fontWeight: string;
fontSize: number;
fontFamily: string;
gap: number;
lineHeight: number;
hideTitle: boolean;
lines: Line[];
backgroundColor?: string;
borderColor?: string;
titleColor?: string;
badgeColor?: string;
width: number;
};
export type Theme = {
backgroundColor: string;
borderColor: string;
titleColor: string;
badgeColor: string;
};
export type Badge = {
position: number;
icon: string;
label: string;
color: string;
};
export type Line = {
lineNumber: number;
badges: Badge[];
};
export type Align = "left" | "center" | "right";
export type TextAnchor = "start" | "middle" | "end";
export const enum FontWeight {
THIN = 200,
NORMAL = 400,
SEMIBOLD = 600,
BOLD = 800,
}
/**
* component-specific
*/
export type SelectOption = {
value: string;
label: string;
};
export type GithubResponse = {
stargazers_count: number;
forks_count: number;
description: string;
private: boolean;
};
/**
* context-specific
*/
export type BadgeDataTransfer = {
badgeWidth: number;
badge: Badge;
lineNumber: number;
};
/**
* utility
*/
export type OmitNull<T> = T extends null ? never : T;
export type OmitNullableKeys<T> = {
[Key in keyof T]: OmitNullableKeys<OmitNull<T[Key]>>;
};