-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathtypes.ts
92 lines (83 loc) · 1.67 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
87
88
89
90
91
92
export type Category = "sans-serif" | "serif" | "display" | "handwriting" | "monospace";
export type Script =
| "arabic"
| "bengali"
| "chinese-simplified"
| "chinese-traditional"
| "cyrillic"
| "cyrillic-ext"
| "devanagari"
| "greek"
| "greek-ext"
| "gujarati"
| "gurmukhi"
| "hebrew"
| "japanese"
| "kannada"
| "khmer"
| "korean"
| "latin"
| "latin-ext"
| "malayalam"
| "myanmar"
| "oriya"
| "sinhala"
| "tamil"
| "telugu"
| "thai"
| "vietnamese";
export type SortOption = "alphabet" | "popularity";
export type Variant =
| "100"
| "100italic"
| "200"
| "200italic"
| "300"
| "300italic"
| "regular"
| "italic"
| "500"
| "500italic"
| "600"
| "600italic"
| "700"
| "700italic"
| "800"
| "800italic"
| "900"
| "900italic";
export interface Font {
// Fields used by font-picker
family: string;
id: string;
category: Category;
scripts: Script[]; // Called "subsets" in Google Fonts API
variants: Variant[];
// Other fields specified by the API
kind?: string; // Usually "webfonts#webfont"
version?: string; // Version number
lastModified?: string; // Date of last modification (yyyy-MM-dd)
files?: Record<Variant, string>; // Font file for each variant
}
export const FONT_FAMILY_DEFAULT = "Open Sans";
export type FontList = Map<string, Font>;
export interface Options {
pickerId: string;
families: string[];
categories: Category[];
scripts: Script[];
variants: Variant[];
filter: (font: Font) => boolean;
limit: number;
sort: SortOption;
}
export const OPTIONS_DEFAULTS: Options = {
pickerId: "",
families: [],
categories: [],
scripts: ["latin"],
variants: ["regular"],
filter: () => true,
limit: 50,
sort: "alphabet",
};