google-font-switcher 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +181 -0
- package/dist/a-KZ76CVVG.js +5 -0
- package/dist/b-R3AQK6YU.js +5 -0
- package/dist/c-4GUHUFZP.js +5 -0
- package/dist/chunk-WMU25H7I.js +140 -0
- package/dist/d-4YWKABEJ.js +5 -0
- package/dist/data.cjs +434 -0
- package/dist/data.d.ts +13 -0
- package/dist/data.js +78 -0
- package/dist/e-5ZV5WA2M.js +5 -0
- package/dist/f-CL3LC4CF.js +5 -0
- package/dist/g-CBR7PXHS.js +5 -0
- package/dist/google-font-picker-DX-D_mqh.d.ts +42 -0
- package/dist/h-VSR53KNJ.js +5 -0
- package/dist/i-DHSHY5GE.js +5 -0
- package/dist/index.cjs +189 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +29 -0
- package/dist/j-EX4QLXIE.js +5 -0
- package/dist/k-SJJK6ZNF.js +5 -0
- package/dist/l-R7J5DHCR.js +5 -0
- package/dist/m-WA3Y3Y4F.js +5 -0
- package/dist/n-J2736NOW.js +5 -0
- package/dist/o-SZPHGWHT.js +5 -0
- package/dist/p-KMPKHVYJ.js +5 -0
- package/dist/q-S2DUVQAK.js +5 -0
- package/dist/r-GSS2CDHM.js +5 -0
- package/dist/s-WENS5XEA.js +5 -0
- package/dist/style.css +14 -0
- package/dist/t-4QS36COO.js +5 -0
- package/dist/u-FRQLFDJR.js +5 -0
- package/dist/v-KY6JGF33.js +5 -0
- package/dist/w-JLQ4QTVU.js +5 -0
- package/dist/x-YAHWRCU5.js +5 -0
- package/dist/y-746DZM3E.js +5 -0
- package/dist/z-7R54UH5W.js +5 -0
- package/package.json +49 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// src/loader.ts
|
|
2
|
+
var loaded = /* @__PURE__ */ new Set();
|
|
3
|
+
var pending = /* @__PURE__ */ new Map();
|
|
4
|
+
function variantFor(weight, style) {
|
|
5
|
+
if (style === "italic") return weight === 400 ? "italic" : `${weight}italic`;
|
|
6
|
+
return weight === 400 ? "regular" : `${weight}`;
|
|
7
|
+
}
|
|
8
|
+
function key(family, weight, style, preview) {
|
|
9
|
+
return `${preview ? "preview" : "font"}:${family.toLowerCase()}:${weight}:${style}`;
|
|
10
|
+
}
|
|
11
|
+
function previewFamily(family) {
|
|
12
|
+
return `__google_font_menu__${family}`;
|
|
13
|
+
}
|
|
14
|
+
function register({ family, source, weight, style, cacheKey }) {
|
|
15
|
+
if (typeof document === "undefined" || loaded.has(cacheKey)) return Promise.resolve();
|
|
16
|
+
const current = pending.get(cacheKey);
|
|
17
|
+
if (current) return current;
|
|
18
|
+
const task = (async () => {
|
|
19
|
+
const face = new FontFace(family, `url("${source}") format("woff2")`, {
|
|
20
|
+
weight: String(weight),
|
|
21
|
+
style,
|
|
22
|
+
display: "swap"
|
|
23
|
+
});
|
|
24
|
+
document.fonts.add(await face.load());
|
|
25
|
+
loaded.add(cacheKey);
|
|
26
|
+
})();
|
|
27
|
+
pending.set(cacheKey, task);
|
|
28
|
+
return task.catch((error) => {
|
|
29
|
+
loaded.delete(cacheKey);
|
|
30
|
+
throw error;
|
|
31
|
+
}).finally(() => pending.delete(cacheKey));
|
|
32
|
+
}
|
|
33
|
+
async function loadGoogleFontPreview(font) {
|
|
34
|
+
if (!font.menu) throw new Error(`Google Fonts menu file is unavailable for ${font.family}.`);
|
|
35
|
+
const family = previewFamily(font.family);
|
|
36
|
+
await register({ family, source: font.menu, weight: 400, style: "normal", cacheKey: key(font.family, 400, "normal", true) });
|
|
37
|
+
return family;
|
|
38
|
+
}
|
|
39
|
+
async function loadGoogleFont(font, weight = 400, style = "normal") {
|
|
40
|
+
const source = font.files[variantFor(weight, style)] ?? (style === "italic" ? font.files.italic : void 0) ?? font.files.regular;
|
|
41
|
+
if (!source) throw new Error(`Google Fonts file is unavailable for ${font.family} (${weight}, ${style}).`);
|
|
42
|
+
await register({ family: font.family, source, weight, style, cacheKey: key(font.family, weight, style, false) });
|
|
43
|
+
}
|
|
44
|
+
function googleFontCssFamily(family) {
|
|
45
|
+
return `"${family.replace(/"/g, '\\"')}", system-ui, sans-serif`;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// src/google-font-picker.tsx
|
|
49
|
+
import { useDeferredValue, useEffect, useMemo, useRef, useState } from "react";
|
|
50
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
51
|
+
var defaults = { search: "Search Google Fonts", empty: "No fonts found", loading: "Loading font..." };
|
|
52
|
+
var rowHeight = 56;
|
|
53
|
+
var overscan = 3;
|
|
54
|
+
function GoogleFontPicker({ fonts, resolver, value, onChange, maxResults = 60, disabled = false, className, labels }) {
|
|
55
|
+
const root = useRef(null);
|
|
56
|
+
const [open, setOpen] = useState(false);
|
|
57
|
+
const [query, setQuery] = useState("");
|
|
58
|
+
const [loading, setLoading] = useState(false);
|
|
59
|
+
const [scrollTop, setScrollTop] = useState(0);
|
|
60
|
+
const deferredQuery = useDeferredValue(query);
|
|
61
|
+
const text = { ...defaults, ...labels };
|
|
62
|
+
const results = useMemo(() => {
|
|
63
|
+
const term = deferredQuery.trim().toLowerCase();
|
|
64
|
+
return fonts.filter((font) => !term || font.family.toLowerCase().includes(term)).slice(0, maxResults);
|
|
65
|
+
}, [deferredQuery, fonts, maxResults]);
|
|
66
|
+
const visibleRange = useMemo(() => {
|
|
67
|
+
const start = Math.max(0, Math.floor(scrollTop / rowHeight) - overscan);
|
|
68
|
+
const end = Math.min(results.length, Math.ceil((scrollTop + 320) / rowHeight) + overscan);
|
|
69
|
+
return { start, end };
|
|
70
|
+
}, [results.length, scrollTop]);
|
|
71
|
+
useEffect(() => setScrollTop(0), [deferredQuery]);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
function close(event) {
|
|
74
|
+
if (root.current && !root.current.contains(event.target)) setOpen(false);
|
|
75
|
+
}
|
|
76
|
+
document.addEventListener("mousedown", close);
|
|
77
|
+
return () => document.removeEventListener("mousedown", close);
|
|
78
|
+
}, []);
|
|
79
|
+
async function select(font) {
|
|
80
|
+
const variants = font.variants ?? [];
|
|
81
|
+
const weight = nearestWeight(variants, value.weight);
|
|
82
|
+
const style = value.style === "italic" && hasItalic(variants, weight) ? "italic" : "normal";
|
|
83
|
+
onChange({ family: font.family, weight, style });
|
|
84
|
+
setOpen(false);
|
|
85
|
+
setQuery("");
|
|
86
|
+
schedule(() => {
|
|
87
|
+
resolver(font.family).then((full) => loadGoogleFont(full, weight, style)).catch(() => void 0);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return /* @__PURE__ */ jsxs("div", { ref: root, className: ["gfs-picker", className].filter(Boolean).join(" "), children: [
|
|
91
|
+
/* @__PURE__ */ jsxs("button", { type: "button", className: "gfs-trigger", disabled: disabled || loading, "aria-expanded": open, "aria-haspopup": "listbox", onClick: () => setOpen((next) => !next), children: [
|
|
92
|
+
/* @__PURE__ */ jsx("span", { style: { fontFamily: googleFontCssFamily(value.family), fontWeight: value.weight, fontStyle: value.style }, children: value.family }),
|
|
93
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\u2304" })
|
|
94
|
+
] }),
|
|
95
|
+
open && /* @__PURE__ */ jsxs("div", { className: "gfs-popover", children: [
|
|
96
|
+
/* @__PURE__ */ jsx("input", { className: "gfs-search", autoFocus: true, value: query, placeholder: text.search, onChange: (event) => setQuery(event.target.value) }),
|
|
97
|
+
/* @__PURE__ */ jsxs("div", { className: "gfs-list", role: "listbox", onScroll: (event) => setScrollTop(event.currentTarget.scrollTop), children: [
|
|
98
|
+
results.length === 0 && /* @__PURE__ */ jsx("div", { className: "gfs-empty", children: text.empty }),
|
|
99
|
+
/* @__PURE__ */ jsx("div", { className: "gfs-virtual-content", style: { height: results.length * rowHeight }, children: results.slice(visibleRange.start, visibleRange.end).map((font, offset) => /* @__PURE__ */ jsx(FontOption, { top: (visibleRange.start + offset) * rowHeight, font, selected: font.family === value.family, disabled: loading, loadingLabel: text.loading, onSelect: () => void select(font) }, font.family)) })
|
|
100
|
+
] })
|
|
101
|
+
] })
|
|
102
|
+
] });
|
|
103
|
+
}
|
|
104
|
+
function schedule(task) {
|
|
105
|
+
const idleWindow = window;
|
|
106
|
+
if (idleWindow.requestIdleCallback) {
|
|
107
|
+
idleWindow.requestIdleCallback(task, { timeout: 500 });
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
window.setTimeout(task, 0);
|
|
111
|
+
}
|
|
112
|
+
function FontOption({ font, top, selected, disabled, loadingLabel, onSelect }) {
|
|
113
|
+
const [previewFamily2, setPreviewFamily] = useState();
|
|
114
|
+
useEffect(() => {
|
|
115
|
+
if (!font.menu) return;
|
|
116
|
+
let active = true;
|
|
117
|
+
loadGoogleFontPreview(font).then((family) => active && setPreviewFamily(family)).catch(() => void 0);
|
|
118
|
+
return () => {
|
|
119
|
+
active = false;
|
|
120
|
+
};
|
|
121
|
+
}, [font]);
|
|
122
|
+
return /* @__PURE__ */ jsxs("button", { type: "button", className: "gfs-option", style: { transform: `translateY(${top}px)` }, role: "option", "aria-selected": selected, disabled, onClick: onSelect, children: [
|
|
123
|
+
/* @__PURE__ */ jsx("span", { className: "gfs-preview", style: previewFamily2 ? { fontFamily: googleFontCssFamily(previewFamily2) } : void 0, children: font.family }),
|
|
124
|
+
/* @__PURE__ */ jsx("span", { className: "gfs-meta", children: disabled ? loadingLabel : selected ? "Selected" : font.category })
|
|
125
|
+
] });
|
|
126
|
+
}
|
|
127
|
+
function hasItalic(variants, weight) {
|
|
128
|
+
return variants.includes(weight === 400 ? "italic" : `${weight}italic`);
|
|
129
|
+
}
|
|
130
|
+
function nearestWeight(variants, target) {
|
|
131
|
+
const weights = [100, 200, 300, 400, 500, 600, 700, 800, 900].filter((weight) => variants.includes(weight === 400 ? "regular" : String(weight)) || hasItalic(variants, weight));
|
|
132
|
+
return weights.reduce((closest, weight) => Math.abs(weight - target) < Math.abs(closest - target) ? weight : closest, weights[0] ?? 400);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export {
|
|
136
|
+
loadGoogleFontPreview,
|
|
137
|
+
loadGoogleFont,
|
|
138
|
+
googleFontCssFamily,
|
|
139
|
+
GoogleFontPicker
|
|
140
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// src/data/groups/d.json
|
|
2
|
+
var d_default = [{ family: "DM Sans", files: { "100": "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAop1hS2f3ZGMZpg.woff2", "200": "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAIpxhS2f3ZGMZpg.woff2", "300": "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwA_JxhS2f3ZGMZpg.woff2", "500": "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAkJxhS2f3ZGMZpg.woff2", "600": "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAfJthS2f3ZGMZpg.woff2", "700": "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwARZthS2f3ZGMZpg.woff2", "800": "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAIpthS2f3ZGMZpg.woff2", "900": "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAC5thS2f3ZGMZpg.woff2", regular: "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxhS2f3ZGMZpg.woff2", "100italic": "https://fonts.gstatic.com/s/dmsans/v17/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat-JDG32RmYJpso5.woff2", "200italic": "https://fonts.gstatic.com/s/dmsans/v17/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat8JDW32RmYJpso5.woff2", "300italic": "https://fonts.gstatic.com/s/dmsans/v17/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat_XDW32RmYJpso5.woff2", italic: "https://fonts.gstatic.com/s/dmsans/v17/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat-JDW32RmYJpso5.woff2", "500italic": "https://fonts.gstatic.com/s/dmsans/v17/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat-7DW32RmYJpso5.woff2", "600italic": "https://fonts.gstatic.com/s/dmsans/v17/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat9XCm32RmYJpso5.woff2", "700italic": "https://fonts.gstatic.com/s/dmsans/v17/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat9uCm32RmYJpso5.woff2", "800italic": "https://fonts.gstatic.com/s/dmsans/v17/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat8JCm32RmYJpso5.woff2", "900italic": "https://fonts.gstatic.com/s/dmsans/v17/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat8gCm32RmYJpso5.woff2" }, menu: "https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRT232.woff2" }, { family: "Dancing Script", files: { "500": "https://fonts.gstatic.com/s/dancingscript/v29/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BAyoHSOB9ptDqpw.woff2", "600": "https://fonts.gstatic.com/s/dancingscript/v29/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B7y0HSOB9ptDqpw.woff2", "700": "https://fonts.gstatic.com/s/dancingscript/v29/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B1i0HSOB9ptDqpw.woff2", regular: "https://fonts.gstatic.com/s/dancingscript/v29/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSoHSOB9ptDqpw.woff2" }, menu: "https://fonts.gstatic.com/s/dancingscript/v29/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3TOp8.woff2" }, { family: "Dosis", files: { "200": "https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7MV2RkFTq4EPw.woff2", "300": "https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJabMV2RkFTq4EPw.woff2", "500": "https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJBbMV2RkFTq4EPw.woff2", "600": "https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ6bQV2RkFTq4EPw.woff2", "700": "https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ0LQV2RkFTq4EPw.woff2", "800": "https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7QV2RkFTq4EPw.woff2", regular: "https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJN7MV2RkFTq4EPw.woff2" }, menu: "https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJN7Ml3RME.woff2" }, { family: "DM Serif Display", files: { regular: "https://fonts.gstatic.com/s/dmserifdisplay/v17/-nFnOHM81r4j6k0gjAW3mujVU2B2K_J709jy92k.woff2", italic: "https://fonts.gstatic.com/s/dmserifdisplay/v17/-nFhOHM81r4j6k0gjAW3mujVU2B2G_Vx0vr352np3Q.woff2" }, menu: "https://fonts.gstatic.com/s/dmserifdisplay/v17/-nFnOHM81r4j6k0gjAW3mujVU2B2G_Zx0g.woff2" }, { family: "DM Mono", files: { "300": "https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvrGyIYGnbKX9Rlk.woff2", "500": "https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvumzIYGnbKX9Rlk.woff2", "300italic": "https://fonts.gstatic.com/s/dmmono/v16/aFTT7PB1QTsUX8KYth-orYatbYf4VllXuA.woff2", regular: "https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYhhiaBYyMcKw.woff2", italic: "https://fonts.gstatic.com/s/dmmono/v16/aFTW7PB1QTsUX8KYth-QBK6JYKzkXw.woff2", "500italic": "https://fonts.gstatic.com/s/dmmono/v16/aFTT7PB1QTsUX8KYth-o9YetbYf4VllXuA.woff2" }, menu: "https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthyQBA.woff2" }, { family: "Domine", files: { "500": "https://fonts.gstatic.com/s/domine/v25/L0xhDFMnlVwD4h3Lt9JWnbX3jG-2X0DAI1gVErGuW8Q.woff2", "600": "https://fonts.gstatic.com/s/domine/v25/L0xhDFMnlVwD4h3Lt9JWnbX3jG-2X6zHI1gVErGuW8Q.woff2", "700": "https://fonts.gstatic.com/s/domine/v25/L0xhDFMnlVwD4h3Lt9JWnbX3jG-2X5XHI1gVErGuW8Q.woff2", regular: "https://fonts.gstatic.com/s/domine/v25/L0xhDFMnlVwD4h3Lt9JWnbX3jG-2X3LAI1gVErGuW8Q.woff2" }, menu: "https://fonts.gstatic.com/s/domine/v25/L0xhDFMnlVwD4h3Lt9JWnbX3jG-2X3LAE1wfEw.woff2" }, { family: "DM Serif Text", files: { regular: "https://fonts.gstatic.com/s/dmseriftext/v13/rnCu-xZa_krGokauCeNq1wWyafaPXHIJErY.woff2", italic: "https://fonts.gstatic.com/s/dmseriftext/v13/rnCw-xZa_krGokauCeNq1wWyWfGFXVAMArZKqQ.woff2" }, menu: "https://fonts.gstatic.com/s/dmseriftext/v13/rnCu-xZa_krGokauCeNq1wWyWfKFXQ.woff2" }, { family: "Didact Gothic", files: { regular: "https://fonts.gstatic.com/s/didactgothic/v21/ahcfv8qz1zt6hCC5G4F_P4ASpUmSp0LlcyQ.woff2" }, menu: "https://fonts.gstatic.com/s/didactgothic/v21/ahcfv8qz1zt6hCC5G4F_P4ASlU2Ypg.woff2" }, { family: "Dela Gothic One", files: { regular: "https://fonts.gstatic.com/s/delagothicone/v19/hESp6XxvMDRA-2eD0lXpDa6QkBAGQEsJQAlbUA.woff2" }, menu: "https://fonts.gstatic.com/s/delagothicone/v19/hESp6XxvMDRA-2eD0lXpDa6QkBA2REEI.woff2" }, { family: "Delius", files: { regular: "https://fonts.gstatic.com/s/delius/v21/PN_xRfK0pW_9e1rtZMI-jT3L_w.woff2" }, menu: "https://fonts.gstatic.com/s/delius/v21/PN_xRfK0pW_9e1rdYMg_.woff2" }, { family: "Do Hyeon", files: { regular: "https://fonts.gstatic.com/s/dohyeon/v21/TwMN-I8CRRU2zM86HFEyZwaH__-C.woff2" }, menu: "https://fonts.gstatic.com/s/dohyeon/v21/TwMN-I8CRRU2zM86HGE2bQc.woff2" }, { family: "Damion", files: { regular: "https://fonts.gstatic.com/s/damion/v15/hv-XlzJ3KEUe_YZUaGY3MTFgVg.woff2" }, menu: "https://fonts.gstatic.com/s/damion/v15/hv-XlzJ3KEUe_YZkbGw2.woff2" }, { family: "Days One", files: { regular: "https://fonts.gstatic.com/s/daysone/v19/mem9YaCnxnKRiYZOCLYQeLkWVNBt.woff2" }, menu: "https://fonts.gstatic.com/s/daysone/v19/mem9YaCnxnKRiYZOCIYUcrg.woff2" }, { family: "Darker Grotesque", files: { "300": "https://fonts.gstatic.com/s/darkergrotesque/v10/U9MK6cuh-mLQlC4BKCtayOfARkSVgb381b-W8-QDqXxpqn73-XFyZFUB.woff2", "500": "https://fonts.gstatic.com/s/darkergrotesque/v10/U9MK6cuh-mLQlC4BKCtayOfARkSVgb381b-W8-QDqXwFqn73-XFyZFUB.woff2", "600": "https://fonts.gstatic.com/s/darkergrotesque/v10/U9MK6cuh-mLQlC4BKCtayOfARkSVgb381b-W8-QDqXzprX73-XFyZFUB.woff2", "700": "https://fonts.gstatic.com/s/darkergrotesque/v10/U9MK6cuh-mLQlC4BKCtayOfARkSVgb381b-W8-QDqXzQrX73-XFyZFUB.woff2", "800": "https://fonts.gstatic.com/s/darkergrotesque/v10/U9MK6cuh-mLQlC4BKCtayOfARkSVgb381b-W8-QDqXy3rX73-XFyZFUB.woff2", "900": "https://fonts.gstatic.com/s/darkergrotesque/v10/U9MK6cuh-mLQlC4BKCtayOfARkSVgb381b-W8-QDqXyerX73-XFyZFUB.woff2", regular: "https://fonts.gstatic.com/s/darkergrotesque/v10/U9MK6cuh-mLQlC4BKCtayOfARkSVgb381b-W8-QDqXw3qn73-XFyZFUB.woff2" }, menu: "https://fonts.gstatic.com/s/darkergrotesque/v10/U9MK6cuh-mLQlC4BKCtayOfARkSVgb381b-W8-QDqXw3qk7z83A.woff2" }, { family: "Dongle", files: { "300": "https://fonts.gstatic.com/s/dongle/v16/sJoG3Ltdjt6VPkqeEcxrZzWNzXvVPA.woff2", "700": "https://fonts.gstatic.com/s/dongle/v16/sJoG3Ltdjt6VPkqeActrZzWNzXvVPA.woff2", regular: "https://fonts.gstatic.com/s/dongle/v16/sJoF3Ltdjt6VPkqmuORPah6RxA.woff2" }, menu: "https://fonts.gstatic.com/s/dongle/v16/sJoF3Ltdjt6VPkqWvO5O.woff2" }, { family: "DotGothic16", files: { regular: "https://fonts.gstatic.com/s/dotgothic16/v21/v6-QGYjBJFKgyw5nSoDAGE7O435YPFrT.woff2" }, menu: "https://fonts.gstatic.com/s/dotgothic16/v21/v6-QGYjBJFKgyw5nSoDAGH7K6X8.woff2" }, { family: "DynaPuff", files: { "500": "https://fonts.gstatic.com/s/dynapuff/v9/z7N5dRvsZDIVHbYPMhZJ3HQ83UaSu4uhr7-ZFeoYkgAr1x8RSyQu6Y3rSRs4wn8.woff2", "600": "https://fonts.gstatic.com/s/dynapuff/v9/z7N5dRvsZDIVHbYPMhZJ3HQ83UaSu4uhr7-ZFeoYkgAr1x8RS8gp6Y3rSRs4wn8.woff2", "700": "https://fonts.gstatic.com/s/dynapuff/v9/z7N5dRvsZDIVHbYPMhZJ3HQ83UaSu4uhr7-ZFeoYkgAr1x8RS_Ep6Y3rSRs4wn8.woff2", regular: "https://fonts.gstatic.com/s/dynapuff/v9/z7N5dRvsZDIVHbYPMhZJ3HQ83UaSu4uhr7-ZFeoYkgAr1x8RSxYu6Y3rSRs4wn8.woff2" }, menu: "https://fonts.gstatic.com/s/dynapuff/v9/z7N5dRvsZDIVHbYPMhZJ3HQ83UaSu4uhr7-ZFeoYkgAr1x8RSxYu2YnhSA.woff2" }, { family: "Dawning of a New Day", files: { regular: "https://fonts.gstatic.com/s/dawningofanewday/v22/t5t_IQMbOp2SEwuncwLRjMfIg1yYit_nAz8ehWJGNoBE.woff2" }, menu: "https://fonts.gstatic.com/s/dawningofanewday/v22/t5t_IQMbOp2SEwuncwLRjMfIg1yYit_nAw8aj2M.woff2" }, { family: "Delius Unicase", files: { "700": "https://fonts.gstatic.com/s/deliusunicase/v30/845CNMEwEIOVT8BmgfSzIr_6mlp7WMr6BmmlS5aw.woff2", regular: "https://fonts.gstatic.com/s/deliusunicase/v30/845BNMEwEIOVT8BmgfSzIr_6mmLCd-73LXWs.woff2" }, menu: "https://fonts.gstatic.com/s/deliusunicase/v30/845BNMEwEIOVT8BmgfSzIr_6mlLGfe8.woff2" }, { family: "David Libre", files: { "500": "https://fonts.gstatic.com/s/davidlibre/v17/snfzs0W_99N64iuYSvp4W8GIw7qeSjORSo9W.woff2", "700": "https://fonts.gstatic.com/s/davidlibre/v17/snfzs0W_99N64iuYSvp4W8HAxbqeSjORSo9W.woff2", regular: "https://fonts.gstatic.com/s/davidlibre/v17/snfus0W_99N64iuYSvp4W_l56p6TYS-Y.woff2" }, menu: "https://fonts.gstatic.com/s/davidlibre/v17/snfus0W_99N64iuYSvp4W8l94J8.woff2" }, { family: "Doppio One", files: { regular: "https://fonts.gstatic.com/s/doppioone/v14/Gg8wN5gSaBfyBw2MqCh-lg4hKGpe5Fg.woff2" }, menu: "https://fonts.gstatic.com/s/doppioone/v14/Gg8wN5gSaBfyBw2MqCh-pgorKQ.woff2" }, { family: "Denk One", files: { regular: "https://fonts.gstatic.com/s/denkone/v21/dg4m_pzhrqcFb2IzROtCpbglShon.woff2" }, menu: "https://fonts.gstatic.com/s/denkone/v21/dg4m_pzhrqcFb2IzRNtGr7k.woff2" }, { family: "Della Respira", files: { regular: "https://fonts.gstatic.com/s/dellarespira/v24/RLp5K5v44KaueWI6iEJQBiGPRfwSu6EuTHo.woff2" }, menu: "https://fonts.gstatic.com/s/dellarespira/v24/RLp5K5v44KaueWI6iEJQBiGPdfgYug.woff2" }, { family: "Dynalight", files: { regular: "https://fonts.gstatic.com/s/dynalight/v24/1Ptsg8LOU_aOmQvTsF4IT4trDfGGxA.woff2" }, menu: "https://fonts.gstatic.com/s/dynalight/v24/1Ptsg8LOU_aOmQvTsF44S4Fq.woff2" }, { family: "Delicious Handrawn", files: { regular: "https://fonts.gstatic.com/s/delicioushandrawn/v10/wlpsgx_NAUNkpmKQifcxkQchDFo3fJ112ZpDd6u3AQ.woff2" }, menu: "https://fonts.gstatic.com/s/delicioushandrawn/v10/wlpsgx_NAUNkpmKQifcxkQchDFo3fJ1F3ZBC.woff2" }, { family: "Diplomata", files: { regular: "https://fonts.gstatic.com/s/diplomata/v33/Cn-0JtiMXwhNwp-wKxyfZWxYrdM9Sg.woff2" }, menu: "https://fonts.gstatic.com/s/diplomata/v33/Cn-0JtiMXwhNwp-wKxyvYWZZ.woff2" }, { family: "Dokdo", files: { regular: "https://fonts.gstatic.com/s/dokdo/v23/esDf315XNuCBLxLt4NaMlKcH.woff2" }, menu: "https://fonts.gstatic.com/s/dokdo/v23/esDf315XNuCBLyLp6tc.woff2" }, { family: "Duru Sans", files: { regular: "https://fonts.gstatic.com/s/durusans/v21/xn7iYH8xwmSyTvEV_HOxSvfYdN-WZw.woff2" }, menu: "https://fonts.gstatic.com/s/durusans/v21/xn7iYH8xwmSyTvEV_HOBTv3Z.woff2" }, { family: "Doto", files: { "100": "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphFOOOeykWSvrlpgw.woff2", "200": "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphFuOKeykWSvrlpgw.woff2", "300": "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphFZuKeykWSvrlpgw.woff2", "500": "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphFCuKeykWSvrlpgw.woff2", "600": "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphF5uWeykWSvrlpgw.woff2", "700": "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphF3-WeykWSvrlpgw.woff2", "800": "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphFuOWeykWSvrlpgw.woff2", "900": "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphFkeWeykWSvrlpgw.woff2", regular: "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphFOOKeykWSvrlpgw.woff2" }, menu: "https://fonts.gstatic.com/s/doto/v3/t5tJIRMbNJ6TQG7Il_EKPqP9zTnvqqGNcuvLMt1JIphFOOKuzk-T.woff2" }, { family: "Delius Swash Caps", files: { regular: "https://fonts.gstatic.com/s/deliusswashcaps/v25/oY1E8fPLr7v4JWCExZpWebxVKORpXXeYKmeBvEYs.woff2" }, menu: "https://fonts.gstatic.com/s/deliusswashcaps/v25/oY1E8fPLr7v4JWCExZpWebxVKORpXUecIGY.woff2" }, { family: "Dangrek", files: { regular: "https://fonts.gstatic.com/s/dangrek/v33/LYjCdG30nEgoH8E2gCZqqVIuTN4.woff2" }, menu: "https://fonts.gstatic.com/s/dangrek/v33/LYjCdG30nEgoH8E2sCJgqA.woff2" }, { family: "Devonshire", files: { regular: "https://fonts.gstatic.com/s/devonshire/v29/46kqlbDwWirWr4gtBD2BX0Bq01lYAZM.woff2" }, menu: "https://fonts.gstatic.com/s/devonshire/v29/46kqlbDwWirWr4gtBD2Bb0Rg0g.woff2" }, { family: "Dekko", files: { regular: "https://fonts.gstatic.com/s/dekko/v23/46khlb_wWjfSrttAR0vsfl1B.woff2" }, menu: "https://fonts.gstatic.com/s/dekko/v23/46khlb_wWjfSrutETUo.woff2" }, { family: "Darumadrop One", files: { regular: "https://fonts.gstatic.com/s/darumadropone/v14/cY9cfjeIW11dpCKgRLi675a87IhCBJOxZQPp.woff2" }, menu: "https://fonts.gstatic.com/s/darumadropone/v14/cY9cfjeIW11dpCKgRLi675a87LhGDpI.woff2" }, { family: "Donegal One", files: { regular: "https://fonts.gstatic.com/s/donegalone/v22/m8JWjfRYea-ZnFz6fsK9FZRARG-K3Mud.woff2" }, menu: "https://fonts.gstatic.com/s/donegalone/v22/m8JWjfRYea-ZnFz6fsK9FaRETm4.woff2" }, { family: "Dorsa", files: { regular: "https://fonts.gstatic.com/s/dorsa/v29/yYLn0hjd0OGwqo443XCFxAnQ.woff2" }, menu: "https://fonts.gstatic.com/s/dorsa/v29/yYLn0hjd0OGwqr4813E.woff2" }, { family: "Dhurjati", files: { regular: "https://fonts.gstatic.com/s/dhurjati/v27/_6_8ED3gSeatXfFiFX33SKQtuTA2.woff2" }, menu: "https://fonts.gstatic.com/s/dhurjati/v27/_6_8ED3gSeatXfFiFU3zQqU.woff2" }, { family: "Diplomata SC", files: { regular: "https://fonts.gstatic.com/s/diplomatasc/v30/buExpoi3ecvs3kidKgBJo2kf_f5Oaiw4cw.woff2" }, menu: "https://fonts.gstatic.com/s/diplomatasc/v30/buExpoi3ecvs3kidKgBJo2kv-fRP.woff2" }, { family: "Dai Banna SIL", files: { "300": "https://fonts.gstatic.com/s/daibannasil/v2/lW-lwj0AJWmpwGyJ2uEoA4I7tYKoDs_KOgMX95A.woff2", "500": "https://fonts.gstatic.com/s/daibannasil/v2/lW-lwj0AJWmpwGyJ2uEoA4I7tdqpDs_KOgMX95A.woff2", "600": "https://fonts.gstatic.com/s/daibannasil/v2/lW-lwj0AJWmpwGyJ2uEoA4I7tfauDs_KOgMX95A.woff2", "700": "https://fonts.gstatic.com/s/daibannasil/v2/lW-lwj0AJWmpwGyJ2uEoA4I7tZKvDs_KOgMX95A.woff2", "300italic": "https://fonts.gstatic.com/s/daibannasil/v2/lW-jwj0AJWmpwGyJ2uEoA4I7vSyygsjAOyES55D3Vg.woff2", regular: "https://fonts.gstatic.com/s/daibannasil/v2/lW-4wj0AJWmpwGyJ2uEoA4I7jSuAKsLhJgo.woff2", italic: "https://fonts.gstatic.com/s/daibannasil/v2/lW-mwj0AJWmpwGyJ2uEoA4I7vSyKK-DkNgoO7g.woff2", "500italic": "https://fonts.gstatic.com/s/daibannasil/v2/lW-jwj0AJWmpwGyJ2uEoA4I7vSyy2snAOyES55D3Vg.woff2", "600italic": "https://fonts.gstatic.com/s/daibannasil/v2/lW-jwj0AJWmpwGyJ2uEoA4I7vSyy9s7AOyES55D3Vg.woff2", "700italic": "https://fonts.gstatic.com/s/daibannasil/v2/lW-jwj0AJWmpwGyJ2uEoA4I7vSyyks_AOyES55D3Vg.woff2" }, menu: "https://fonts.gstatic.com/s/daibannasil/v2/lW-4wj0AJWmpwGyJ2uEoA4I7vS-KKw.woff2" }, { family: "Dr Sugiyama", files: { regular: "https://fonts.gstatic.com/s/drsugiyama/v30/HTxoL2k4N3O9n5I1boGI7abUM4-t-g7y.woff2" }, menu: "https://fonts.gstatic.com/s/drsugiyama/v30/HTxoL2k4N3O9n5I1boGI7ZbQOY4.woff2" }, { family: "Diphylleia", files: { regular: "https://fonts.gstatic.com/s/diphylleia/v2/DtVmJxCtRKMixK4_HXsIulkm6gDXvwE.woff2" }, menu: "https://fonts.gstatic.com/s/diphylleia/v2/DtVmJxCtRKMixK4_HXsIil0s6w.woff2" }, { family: "Danfo", files: { regular: "https://fonts.gstatic.com/s/danfo/v5/snf3s0u_98t16THfK1Csj3N41ZqbYDe5Tr1ToPrNKQ.woff2" }, menu: "https://fonts.gstatic.com/s/danfo/v5/snf3s0u_98t16THfK1Csj3N41ZqbYDeJSrdS.woff2" }, { family: "Datatype", files: { "100": "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHl6O9sz99u1eUcLE.woff2", "200": "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHlyO8sz99u1eUcLE.woff2", "300": "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHl_28sz99u1eUcLE.woff2", "500": "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHl5G8sz99u1eUcLE.woff2", "600": "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHl327sz99u1eUcLE.woff2", "700": "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHl0S7sz99u1eUcLE.woff2", "800": "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHlyO7sz99u1eUcLE.woff2", "900": "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHlwq7sz99u1eUcLE.woff2", regular: "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHl6O8sz99u1eUcLE.woff2" }, menu: "https://fonts.gstatic.com/s/datatype/v3/K2FcfZJQl-tDUlBEHaTYKmJIlpH1cGuNRqcCM4aUfKR9p6dHl6O8gzt3ug.woff2" }];
|
|
3
|
+
export {
|
|
4
|
+
d_default as default
|
|
5
|
+
};
|