vinext 0.0.33 → 0.0.35
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/README.md +1 -0
- package/dist/build/prerender.d.ts +9 -4
- package/dist/build/prerender.js +27 -9
- package/dist/build/prerender.js.map +1 -1
- package/dist/build/run-prerender.js +4 -1
- package/dist/build/run-prerender.js.map +1 -1
- package/dist/config/next-config.d.ts +7 -1
- package/dist/config/next-config.js +39 -26
- package/dist/config/next-config.js.map +1 -1
- package/dist/deploy.js +52 -4
- package/dist/deploy.js.map +1 -1
- package/dist/entries/app-rsc-entry.js +278 -740
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/pages-server-entry.js +60 -134
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +339 -26
- package/dist/index.js.map +1 -1
- package/dist/plugins/optimize-imports.js +28 -2
- package/dist/plugins/optimize-imports.js.map +1 -1
- package/dist/server/app-browser-entry.js +4 -5
- package/dist/server/app-browser-entry.js.map +1 -1
- package/dist/server/app-page-boundary-render.d.ts +63 -0
- package/dist/server/app-page-boundary-render.js +182 -0
- package/dist/server/app-page-boundary-render.js.map +1 -0
- package/dist/server/app-page-boundary.d.ts +57 -0
- package/dist/server/app-page-boundary.js +60 -0
- package/dist/server/app-page-boundary.js.map +1 -0
- package/dist/server/app-page-execution.d.ts +46 -0
- package/dist/server/app-page-execution.js +109 -0
- package/dist/server/app-page-execution.js.map +1 -0
- package/dist/server/app-page-probe.d.ts +17 -0
- package/dist/server/app-page-probe.js +35 -0
- package/dist/server/app-page-probe.js.map +1 -0
- package/dist/server/app-page-render.d.ts +59 -0
- package/dist/server/app-page-render.js +176 -0
- package/dist/server/app-page-render.js.map +1 -0
- package/dist/server/app-page-request.d.ts +58 -0
- package/dist/server/app-page-request.js +79 -0
- package/dist/server/app-page-request.js.map +1 -0
- package/dist/server/app-page-response.js +1 -1
- package/dist/server/app-page-response.js.map +1 -1
- package/dist/server/app-page-stream.d.ts +63 -0
- package/dist/server/app-page-stream.js +98 -0
- package/dist/server/app-page-stream.js.map +1 -0
- package/dist/server/app-ssr-stream.js +6 -4
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/pages-page-response.d.ts +54 -0
- package/dist/server/pages-page-response.js +140 -0
- package/dist/server/pages-page-response.js.map +1 -0
- package/dist/server/prod-server.d.ts +13 -1
- package/dist/server/prod-server.js +116 -19
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/seed-cache.d.ts +44 -0
- package/dist/server/seed-cache.js +127 -0
- package/dist/server/seed-cache.js.map +1 -0
- package/dist/server/worker-utils.d.ts +0 -6
- package/dist/server/worker-utils.js +41 -5
- package/dist/server/worker-utils.js.map +1 -1
- package/dist/shims/error-boundary.js +1 -1
- package/dist/shims/font-google-base.js +1 -1
- package/dist/shims/font-google-base.js.map +1 -1
- package/dist/shims/font-google.d.ts +2 -3
- package/dist/shims/font-google.js +2 -3
- package/dist/shims/image.js +4 -2
- package/dist/shims/image.js.map +1 -1
- package/package.json +1 -1
- package/dist/shims/font-google.generated.d.ts +0 -1929
- package/dist/shims/font-google.generated.js +0 -1929
- package/dist/shims/font-google.generated.js.map +0 -1
|
@@ -11,21 +11,57 @@
|
|
|
11
11
|
* Response headers take precedence over middleware headers for all headers
|
|
12
12
|
* except Set-Cookie, which is additive (both middleware and response cookies
|
|
13
13
|
* are preserved). Uses getSetCookie() to preserve multiple Set-Cookie values.
|
|
14
|
+
* Keep this in sync with prod-server.ts and the generated copy in deploy.ts.
|
|
14
15
|
*/
|
|
16
|
+
const NO_BODY_RESPONSE_STATUSES = new Set([
|
|
17
|
+
204,
|
|
18
|
+
205,
|
|
19
|
+
304
|
|
20
|
+
]);
|
|
21
|
+
function isVinextStreamedHtmlResponse(response) {
|
|
22
|
+
return response.__vinextStreamedHtmlResponse === true;
|
|
23
|
+
}
|
|
24
|
+
function isContentLengthHeader(name) {
|
|
25
|
+
return name.toLowerCase() === "content-length";
|
|
26
|
+
}
|
|
27
|
+
function cancelResponseBody(response) {
|
|
28
|
+
const body = response.body;
|
|
29
|
+
if (!body || body.locked) return;
|
|
30
|
+
body.cancel().catch(() => {});
|
|
31
|
+
}
|
|
15
32
|
function mergeHeaders(response, extraHeaders, statusOverride) {
|
|
16
|
-
|
|
33
|
+
const status = statusOverride ?? response.status;
|
|
17
34
|
const merged = new Headers();
|
|
18
|
-
for (const [k, v] of Object.entries(extraHeaders))
|
|
19
|
-
|
|
35
|
+
for (const [k, v] of Object.entries(extraHeaders)) {
|
|
36
|
+
if (isContentLengthHeader(k)) continue;
|
|
37
|
+
if (Array.isArray(v)) for (const item of v) merged.append(k, item);
|
|
38
|
+
else merged.set(k, v);
|
|
39
|
+
}
|
|
20
40
|
response.headers.forEach((v, k) => {
|
|
21
41
|
if (k === "set-cookie") return;
|
|
22
42
|
merged.set(k, v);
|
|
23
43
|
});
|
|
24
44
|
const responseCookies = response.headers.getSetCookie?.() ?? [];
|
|
25
45
|
for (const cookie of responseCookies) merged.append("set-cookie", cookie);
|
|
46
|
+
const shouldDropBody = NO_BODY_RESPONSE_STATUSES.has(status);
|
|
47
|
+
const shouldStripStreamLength = isVinextStreamedHtmlResponse(response) && merged.has("content-length");
|
|
48
|
+
if (!Object.keys(extraHeaders).some((key) => !isContentLengthHeader(key)) && statusOverride === void 0 && !shouldDropBody && !shouldStripStreamLength) return response;
|
|
49
|
+
if (shouldDropBody) {
|
|
50
|
+
cancelResponseBody(response);
|
|
51
|
+
merged.delete("content-encoding");
|
|
52
|
+
merged.delete("content-length");
|
|
53
|
+
merged.delete("content-type");
|
|
54
|
+
merged.delete("transfer-encoding");
|
|
55
|
+
return new Response(null, {
|
|
56
|
+
status,
|
|
57
|
+
statusText: status === response.status ? response.statusText : void 0,
|
|
58
|
+
headers: merged
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if (shouldStripStreamLength) merged.delete("content-length");
|
|
26
62
|
return new Response(response.body, {
|
|
27
|
-
status
|
|
28
|
-
statusText: response.statusText,
|
|
63
|
+
status,
|
|
64
|
+
statusText: status === response.status ? response.statusText : void 0,
|
|
29
65
|
headers: merged
|
|
30
66
|
});
|
|
31
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-utils.js","names":[],"sources":["../../src/server/worker-utils.ts"],"sourcesContent":["/**\n * Shared utilities for Cloudflare Worker entries.\n *\n * Used by hand-written example worker entries and can be imported as\n * \"vinext/server/worker-utils\". The generated worker entry (deploy.ts)\n * inlines these functions in its template string.\n */\n\n/**\n * Merge middleware/config headers into a response.\n * Response headers take precedence over middleware headers for all headers\n * except Set-Cookie, which is additive (both middleware and response cookies\n * are preserved). Uses getSetCookie() to preserve multiple Set-Cookie values.\n */\nexport function mergeHeaders(\n response: Response,\n extraHeaders: Record<string, string | string[]>,\n statusOverride?: number,\n): Response {\n
|
|
1
|
+
{"version":3,"file":"worker-utils.js","names":[],"sources":["../../src/server/worker-utils.ts"],"sourcesContent":["/**\n * Shared utilities for Cloudflare Worker entries.\n *\n * Used by hand-written example worker entries and can be imported as\n * \"vinext/server/worker-utils\". The generated worker entry (deploy.ts)\n * inlines these functions in its template string.\n */\n\n/**\n * Merge middleware/config headers into a response.\n * Response headers take precedence over middleware headers for all headers\n * except Set-Cookie, which is additive (both middleware and response cookies\n * are preserved). Uses getSetCookie() to preserve multiple Set-Cookie values.\n * Keep this in sync with prod-server.ts and the generated copy in deploy.ts.\n */\nconst NO_BODY_RESPONSE_STATUSES = new Set([204, 205, 304]);\n\ntype ResponseWithVinextStreamingMetadata = Response & {\n __vinextStreamedHtmlResponse?: boolean;\n};\n\nfunction isVinextStreamedHtmlResponse(response: Response): boolean {\n return (response as ResponseWithVinextStreamingMetadata).__vinextStreamedHtmlResponse === true;\n}\n\nfunction isContentLengthHeader(name: string): boolean {\n return name.toLowerCase() === \"content-length\";\n}\n\nfunction cancelResponseBody(response: Response): void {\n const body = response.body;\n if (!body || body.locked) return;\n void body.cancel().catch(() => {\n /* ignore cancellation failures on discarded bodies */\n });\n}\n\nexport function mergeHeaders(\n response: Response,\n extraHeaders: Record<string, string | string[]>,\n statusOverride?: number,\n): Response {\n const status = statusOverride ?? response.status;\n const merged = new Headers();\n for (const [k, v] of Object.entries(extraHeaders)) {\n if (isContentLengthHeader(k)) continue;\n if (Array.isArray(v)) {\n for (const item of v) merged.append(k, item);\n } else {\n merged.set(k, v);\n }\n }\n response.headers.forEach((v, k) => {\n if (k === \"set-cookie\") return;\n merged.set(k, v);\n });\n const responseCookies = response.headers.getSetCookie?.() ?? [];\n for (const cookie of responseCookies) merged.append(\"set-cookie\", cookie);\n\n const shouldDropBody = NO_BODY_RESPONSE_STATUSES.has(status);\n const shouldStripStreamLength =\n isVinextStreamedHtmlResponse(response) && merged.has(\"content-length\");\n\n if (\n !Object.keys(extraHeaders).some((key) => !isContentLengthHeader(key)) &&\n statusOverride === undefined &&\n !shouldDropBody &&\n !shouldStripStreamLength\n ) {\n return response;\n }\n\n if (shouldDropBody) {\n cancelResponseBody(response);\n merged.delete(\"content-encoding\");\n merged.delete(\"content-length\");\n merged.delete(\"content-type\");\n merged.delete(\"transfer-encoding\");\n return new Response(null, {\n status,\n statusText: status === response.status ? response.statusText : undefined,\n headers: merged,\n });\n }\n\n if (shouldStripStreamLength) {\n merged.delete(\"content-length\");\n }\n\n return new Response(response.body, {\n status,\n statusText: status === response.status ? response.statusText : undefined,\n headers: merged,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAM,4BAA4B,IAAI,IAAI;CAAC;CAAK;CAAK;CAAI,CAAC;AAM1D,SAAS,6BAA6B,UAA6B;AACjE,QAAQ,SAAiD,iCAAiC;;AAG5F,SAAS,sBAAsB,MAAuB;AACpD,QAAO,KAAK,aAAa,KAAK;;AAGhC,SAAS,mBAAmB,UAA0B;CACpD,MAAM,OAAO,SAAS;AACtB,KAAI,CAAC,QAAQ,KAAK,OAAQ;AACrB,MAAK,QAAQ,CAAC,YAAY,GAE7B;;AAGJ,SAAgB,aACd,UACA,cACA,gBACU;CACV,MAAM,SAAS,kBAAkB,SAAS;CAC1C,MAAM,SAAS,IAAI,SAAS;AAC5B,MAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,aAAa,EAAE;AACjD,MAAI,sBAAsB,EAAE,CAAE;AAC9B,MAAI,MAAM,QAAQ,EAAE,CAClB,MAAK,MAAM,QAAQ,EAAG,QAAO,OAAO,GAAG,KAAK;MAE5C,QAAO,IAAI,GAAG,EAAE;;AAGpB,UAAS,QAAQ,SAAS,GAAG,MAAM;AACjC,MAAI,MAAM,aAAc;AACxB,SAAO,IAAI,GAAG,EAAE;GAChB;CACF,MAAM,kBAAkB,SAAS,QAAQ,gBAAgB,IAAI,EAAE;AAC/D,MAAK,MAAM,UAAU,gBAAiB,QAAO,OAAO,cAAc,OAAO;CAEzE,MAAM,iBAAiB,0BAA0B,IAAI,OAAO;CAC5D,MAAM,0BACJ,6BAA6B,SAAS,IAAI,OAAO,IAAI,iBAAiB;AAExE,KACE,CAAC,OAAO,KAAK,aAAa,CAAC,MAAM,QAAQ,CAAC,sBAAsB,IAAI,CAAC,IACrE,mBAAmB,KAAA,KACnB,CAAC,kBACD,CAAC,wBAED,QAAO;AAGT,KAAI,gBAAgB;AAClB,qBAAmB,SAAS;AAC5B,SAAO,OAAO,mBAAmB;AACjC,SAAO,OAAO,iBAAiB;AAC/B,SAAO,OAAO,eAAe;AAC7B,SAAO,OAAO,oBAAoB;AAClC,SAAO,IAAI,SAAS,MAAM;GACxB;GACA,YAAY,WAAW,SAAS,SAAS,SAAS,aAAa,KAAA;GAC/D,SAAS;GACV,CAAC;;AAGJ,KAAI,wBACF,QAAO,OAAO,iBAAiB;AAGjC,QAAO,IAAI,SAAS,SAAS,MAAM;EACjC;EACA,YAAY,WAAW,SAAS,SAAS,SAAS,aAAa,KAAA;EAC/D,SAAS;EACV,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
3
|
import { usePathname } from "next/navigation";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region src/shims/error-boundary.tsx
|
|
6
6
|
/**
|
|
7
7
|
* Generic ErrorBoundary used to wrap route segments with error.tsx.
|
|
@@ -282,7 +282,7 @@ function createFontLoader(family) {
|
|
|
282
282
|
const googleFonts = new Proxy({}, { get(_target, prop) {
|
|
283
283
|
if (prop === "__esModule") return true;
|
|
284
284
|
if (prop === "default") return googleFonts;
|
|
285
|
-
return createFontLoader(prop.replace(/([a-z])([A-Z])/g, "$1 $2"));
|
|
285
|
+
return createFontLoader(prop.replace(/_/g, " ").replace(/([a-z])([A-Z])/g, "$1 $2"));
|
|
286
286
|
} });
|
|
287
287
|
//#endregion
|
|
288
288
|
export { buildGoogleFontsUrl, createFontLoader, googleFonts as default, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-google-base.js","names":[],"sources":["../../src/shims/font-google-base.ts"],"sourcesContent":["/**\n * next/font/google shim\n *\n * Provides a compatible shim for Next.js Google Fonts.\n *\n * Two modes:\n * 1. **Dev / CDN mode** (default): Loads fonts from Google Fonts CDN via <link> tags.\n * 2. **Self-hosted mode** (production build): The vinext:google-fonts Vite plugin\n * fetches font CSS + .woff2 files at build time, caches them locally, and injects\n * @font-face CSS pointing at local assets. No requests to Google at runtime.\n *\n * Usage:\n * import { Inter } from 'next/font/google';\n * const inter = Inter({ subsets: ['latin'], weight: ['400', '700'] });\n * // inter.className -> unique CSS class\n * // inter.style -> { fontFamily: \"'Inter', sans-serif\" }\n * // inter.variable -> CSS variable name like '--font-inter'\n */\n\n/**\n * Escape a string for safe interpolation inside a CSS single-quoted string.\n *\n * Prevents CSS injection by escaping characters that could break out of\n * a `'...'` CSS string context: backslashes, single quotes, and newlines.\n */\nfunction escapeCSSString(value: string): string {\n return value\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/'/g, \"\\\\'\")\n .replace(/\\n/g, \"\\\\a \")\n .replace(/\\r/g, \"\\\\d \");\n}\n\n/**\n * Validate a CSS custom property name (e.g. `--font-inter`).\n *\n * Custom properties must start with `--` and only contain alphanumeric\n * characters, hyphens, and underscores. Anything else could be used to\n * break out of the CSS declaration and inject arbitrary rules.\n *\n * Returns the name if valid, undefined otherwise.\n */\nfunction sanitizeCSSVarName(name: string): string | undefined {\n if (/^--[a-zA-Z0-9_-]+$/.test(name)) return name;\n return undefined;\n}\n\n/**\n * Sanitize a CSS font-family fallback name.\n *\n * Generic family names (sans-serif, serif, monospace, etc.) are used as-is.\n * Named families are wrapped in escaped quotes. This prevents injection via\n * crafted fallback values like `); } body { color: red; } .x {`.\n */\nfunction sanitizeFallback(name: string): string {\n // CSS generic font families — safe to use unquoted\n const generics = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"emoji\",\n \"math\",\n \"fangsong\",\n ]);\n const trimmed = name.trim();\n if (generics.has(trimmed)) return trimmed;\n // Wrap in single quotes with escaping to prevent CSS injection\n return `'${escapeCSSString(trimmed)}'`;\n}\n\n// Counter for generating unique class names\nlet classCounter = 0;\n\n// Track which font stylesheets have been injected (SSR + client)\nconst injectedFonts = new Set<string>();\n\nexport interface FontOptions {\n weight?: string | string[];\n style?: string | string[];\n subsets?: string[];\n display?: string;\n preload?: boolean;\n fallback?: string[];\n adjustFontFallback?: boolean | string;\n variable?: string;\n axes?: string[];\n}\n\nexport interface FontResult {\n className: string;\n style: { fontFamily: string };\n variable?: string;\n}\n\n/**\n * Convert a font family name to a CSS variable name.\n * e.g., \"Inter\" -> \"--font-inter\", \"Roboto Mono\" -> \"--font-roboto-mono\"\n */\nfunction toVarName(family: string): string {\n return \"--font-\" + family.toLowerCase().replace(/\\s+/g, \"-\");\n}\n\n/**\n * Build a Google Fonts CSS URL.\n */\nexport function buildGoogleFontsUrl(family: string, options: FontOptions): string {\n const params = new URLSearchParams();\n // Don't pre-replace spaces with \"+\". URLSearchParams handles encoding:\n // spaces become \"+\" in application/x-www-form-urlencoded format.\n // Pre-replacing would cause double-encoding: \"+\" -> \"%2B\" (400 error).\n let spec = family;\n\n // Build weight/style specs\n const weights = options.weight\n ? Array.isArray(options.weight)\n ? options.weight\n : [options.weight]\n : [];\n const styles = options.style\n ? Array.isArray(options.style)\n ? options.style\n : [options.style]\n : [];\n\n if (weights.length > 0 || styles.length > 0) {\n const hasItalic = styles.includes(\"italic\");\n if (weights.length > 0) {\n if (hasItalic) {\n // Use ital axis: ital,wght@0,400;0,700;1,400;1,700\n const pairs: string[] = [];\n for (const w of weights) {\n pairs.push(`0,${w}`);\n pairs.push(`1,${w}`);\n }\n spec += `:ital,wght@${pairs.join(\";\")}`;\n } else {\n spec += `:wght@${weights.join(\";\")}`;\n }\n }\n } else {\n // When no weight is specified, request the full variable weight range.\n // Without this, Google Fonts returns only weight 400 (the default).\n // Next.js loads the full variable font by default, so we match that\n // behavior to ensure all font weights render correctly.\n spec += `:wght@100..900`;\n }\n\n params.set(\"family\", spec);\n params.set(\"display\", options.display ?? \"swap\");\n\n return `https://fonts.googleapis.com/css2?${params.toString()}`;\n}\n\n/**\n * Inject a <link> tag for the font (client-side only).\n * On the server, we track font URLs for SSR head injection.\n */\nfunction injectFontStylesheet(url: string): void {\n if (injectedFonts.has(url)) return;\n injectedFonts.add(url);\n\n if (typeof document !== \"undefined\") {\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n }\n}\n\n/** Track which className CSS rules have been injected. */\nconst injectedClassRules = new Set<string>();\n\n/**\n * Inject a CSS rule that maps a className to a font-family.\n *\n * This is what makes `<div className={inter.className}>` apply the font.\n * Next.js generates equivalent rules at build time.\n *\n * In Next.js, the .className class ONLY sets font-family — it does NOT\n * set CSS variables. CSS variables are handled separately by the .variable class.\n */\nfunction injectClassNameRule(className: string, fontFamily: string): void {\n if (injectedClassRules.has(className)) return;\n injectedClassRules.add(className);\n\n const css = `.${className} { font-family: ${fontFamily}; }\\n`;\n\n // On server, store the CSS for SSR injection\n if (typeof document === \"undefined\") {\n ssrFontStyles.push(css);\n return;\n }\n\n // On client, inject a <style> tag\n const style = document.createElement(\"style\");\n style.textContent = css;\n style.setAttribute(\"data-vinext-font-class\", className);\n document.head.appendChild(style);\n}\n\n/** Track which variable class CSS rules have been injected. */\nconst injectedVariableRules = new Set<string>();\n\n/** Track which :root CSS variable rules have been injected. */\nconst injectedRootVariables = new Set<string>();\n\n/**\n * Inject a CSS rule that sets a CSS variable on an element.\n * This is what makes `<html className={inter.variable}>` set the CSS variable\n * that can be referenced by other styles (e.g., Tailwind's font-sans).\n *\n * In Next.js, the .variable class ONLY sets the CSS variable — it does NOT\n * set font-family. This is critical because apps commonly apply multiple\n * .variable classes to <body> (e.g., geistSans.variable + geistMono.variable).\n * If we also set font-family here, the last class wins due to CSS cascade,\n * causing all text to use that font (e.g., everything becomes monospace).\n */\nfunction injectVariableClassRule(\n variableClassName: string,\n cssVarName: string,\n fontFamily: string,\n): void {\n if (injectedVariableRules.has(variableClassName)) return;\n injectedVariableRules.add(variableClassName);\n\n // Only set the CSS variable — do NOT set font-family.\n // This matches Next.js behavior where .variable classes only define CSS variables.\n let css = `.${variableClassName} { ${cssVarName}: ${fontFamily}; }\\n`;\n\n // Also inject at :root so CSS variable inheritance works throughout the page.\n // This ensures Tailwind utilities like `font-sans` that reference these\n // variables via var(--font-geist-sans) work correctly.\n if (!injectedRootVariables.has(cssVarName)) {\n injectedRootVariables.add(cssVarName);\n css += `:root { ${cssVarName}: ${fontFamily}; }\\n`;\n }\n\n // On server, store the CSS for SSR injection\n if (typeof document === \"undefined\") {\n ssrFontStyles.push(css);\n return;\n }\n\n // On client, inject a <style> tag\n const style = document.createElement(\"style\");\n style.textContent = css;\n style.setAttribute(\"data-vinext-font-variable\", variableClassName);\n document.head.appendChild(style);\n}\n\n// SSR: collect font class CSS for injection in <head>\nconst ssrFontStyles: string[] = [];\n\n/**\n * Get collected SSR font class styles (used by the renderer).\n * Note: We don't clear the arrays because fonts are loaded at module import\n * time and need to persist across all requests in the Workers environment.\n */\nexport function getSSRFontStyles(): string[] {\n return [...ssrFontStyles];\n}\n\n// SSR: collect font URLs to inject in <head>\nconst ssrFontUrls: string[] = [];\n\n/**\n * Get collected SSR font URLs (used by the renderer).\n * Note: We don't clear the arrays because fonts are loaded at module import\n * time and need to persist across all requests in the Workers environment.\n */\nexport function getSSRFontLinks(): string[] {\n return [...ssrFontUrls];\n}\n\n// SSR: collect font file URLs for <link rel=\"preload\"> injection (self-hosted Google fonts)\nconst ssrFontPreloads: Array<{ href: string; type: string }> = [];\nconst ssrFontPreloadHrefs = new Set<string>();\n\n/**\n * Get collected SSR font preload data (used by the renderer).\n * Returns an array of { href, type } objects for emitting\n * <link rel=\"preload\" as=\"font\" ...> tags.\n */\nexport function getSSRFontPreloads(): Array<{ href: string; type: string }> {\n return [...ssrFontPreloads];\n}\n\n/**\n * Determine the MIME type for a font file based on its extension.\n */\nfunction getFontMimeType(pathOrUrl: string): string {\n if (pathOrUrl.endsWith(\".woff2\")) return \"font/woff2\";\n if (pathOrUrl.endsWith(\".woff\")) return \"font/woff\";\n if (pathOrUrl.endsWith(\".ttf\")) return \"font/ttf\";\n if (pathOrUrl.endsWith(\".otf\")) return \"font/opentype\";\n return \"font/woff2\";\n}\n\n/**\n * Extract font file URLs from @font-face CSS rules.\n * Parses url('...') references from the CSS text.\n */\nfunction extractFontUrlsFromCSS(css: string): string[] {\n const urls: string[] = [];\n const urlRegex = /url\\(['\"]?([^'\")]+)['\"]?\\)/g;\n let match: RegExpExecArray | null;\n while ((match = urlRegex.exec(css)) !== null) {\n const url = match[1];\n // Only collect absolute paths (starting with /) — these are self-hosted font files\n if (url && url.startsWith(\"/\")) {\n urls.push(url);\n }\n }\n return urls;\n}\n\n/**\n * Collect font file URLs from self-hosted CSS for preload link generation.\n * Only collects on the server (SSR). Deduplicates by href using a Set for O(1) lookups.\n */\nfunction collectFontPreloadsFromCSS(css: string): void {\n if (typeof document !== \"undefined\") return; // client-side, skip\n\n const urls = extractFontUrlsFromCSS(css);\n for (const href of urls) {\n if (!ssrFontPreloadHrefs.has(href)) {\n ssrFontPreloadHrefs.add(href);\n ssrFontPreloads.push({ href, type: getFontMimeType(href) });\n }\n }\n}\n\n/** Track injected self-hosted @font-face blocks (deduplicate) */\nconst injectedSelfHosted = new Set<string>();\n\n/**\n * Inject self-hosted @font-face CSS (from the build plugin).\n * This replaces the CDN <link> tag with inline CSS.\n */\nfunction injectSelfHostedCSS(css: string): void {\n if (injectedSelfHosted.has(css)) return;\n injectedSelfHosted.add(css);\n\n // Extract font file URLs for preload hints (SSR only)\n collectFontPreloadsFromCSS(css);\n\n if (typeof document === \"undefined\") {\n // SSR: add to collected styles\n ssrFontStyles.push(css);\n return;\n }\n\n // Client: inject <style> tag\n const style = document.createElement(\"style\");\n style.textContent = css;\n style.setAttribute(\"data-vinext-font-selfhosted\", \"true\");\n document.head.appendChild(style);\n}\n\nexport type FontLoader = (options?: FontOptions & { _selfHostedCSS?: string }) => FontResult;\n\nexport function createFontLoader(family: string): FontLoader {\n return function fontLoader(options: FontOptions & { _selfHostedCSS?: string } = {}): FontResult {\n const id = classCounter++;\n const className = `__font_${family.toLowerCase().replace(/\\s+/g, \"_\")}_${id}`;\n const fallback = options.fallback ?? [\"sans-serif\"];\n // Sanitize each fallback name to prevent CSS injection via crafted values\n const fontFamily = `'${escapeCSSString(family)}', ${fallback.map(sanitizeFallback).join(\", \")}`;\n // Validate CSS variable name — reject anything that could inject CSS.\n // Fall back to auto-generated name if invalid.\n const defaultVarName = toVarName(family);\n const cssVarName = options.variable\n ? (sanitizeCSSVarName(options.variable) ?? defaultVarName)\n : defaultVarName;\n // In Next.js, `variable` returns a CLASS NAME that sets the CSS variable.\n // Users apply this class to set the CSS variable on that element.\n const variableClassName = `__variable_${family.toLowerCase().replace(/\\s+/g, \"_\")}_${id}`;\n\n if (options._selfHostedCSS) {\n // Self-hosted mode: inject local @font-face CSS instead of CDN link\n injectSelfHostedCSS(options._selfHostedCSS);\n } else {\n // CDN mode: inject <link> to Google Fonts\n const url = buildGoogleFontsUrl(family, options);\n injectFontStylesheet(url);\n\n // On SSR, collect the URL for head injection\n if (typeof document === \"undefined\") {\n if (!ssrFontUrls.includes(url)) {\n ssrFontUrls.push(url);\n }\n }\n }\n\n // Inject a CSS rule that maps className to font-family.\n // This is what makes `<div className={inter.className}>` work.\n injectClassNameRule(className, fontFamily);\n\n // Inject a CSS rule for the variable class name.\n // This is what makes `<html className={inter.variable}>` set the CSS variable.\n injectVariableClassRule(variableClassName, cssVarName, fontFamily);\n\n return {\n className,\n style: { fontFamily },\n variable: variableClassName,\n };\n };\n}\n\n// Export a Proxy that creates font loaders for any Google Font family.\n// Usage: import { Inter } from 'next/font/google'\n// The proxy intercepts property access and returns a loader for that font.\nconst googleFonts = new Proxy({} as Record<string, (options?: FontOptions) => FontResult>, {\n get(_target, prop: string) {\n if (prop === \"__esModule\") return true;\n if (prop === \"default\") return googleFonts;\n // Convert camelCase/PascalCase to proper font family name\n // e.g., \"Inter\" -> \"Inter\", \"RobotoMono\" -> \"Roboto Mono\"\n const family = prop.replace(/([a-z])([A-Z])/g, \"$1 $2\");\n return createFontLoader(family);\n },\n});\n\nexport default googleFonts;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,SAAS,gBAAgB,OAAuB;AAC9C,QAAO,MACJ,QAAQ,OAAO,OAAO,CACtB,QAAQ,MAAM,MAAM,CACpB,QAAQ,OAAO,OAAO,CACtB,QAAQ,OAAO,OAAO;;;;;;;;;;;AAY3B,SAAS,mBAAmB,MAAkC;AAC5D,KAAI,qBAAqB,KAAK,KAAK,CAAE,QAAO;;;;;;;;;AAW9C,SAAS,iBAAiB,MAAsB;CAE9C,MAAM,WAAW,IAAI,IAAI;EACvB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CACF,MAAM,UAAU,KAAK,MAAM;AAC3B,KAAI,SAAS,IAAI,QAAQ,CAAE,QAAO;AAElC,QAAO,IAAI,gBAAgB,QAAQ,CAAC;;AAItC,IAAI,eAAe;AAGnB,MAAM,gCAAgB,IAAI,KAAa;;;;;AAwBvC,SAAS,UAAU,QAAwB;AACzC,QAAO,YAAY,OAAO,aAAa,CAAC,QAAQ,QAAQ,IAAI;;;;;AAM9D,SAAgB,oBAAoB,QAAgB,SAA8B;CAChF,MAAM,SAAS,IAAI,iBAAiB;CAIpC,IAAI,OAAO;CAGX,MAAM,UAAU,QAAQ,SACpB,MAAM,QAAQ,QAAQ,OAAO,GAC3B,QAAQ,SACR,CAAC,QAAQ,OAAO,GAClB,EAAE;CACN,MAAM,SAAS,QAAQ,QACnB,MAAM,QAAQ,QAAQ,MAAM,GAC1B,QAAQ,QACR,CAAC,QAAQ,MAAM,GACjB,EAAE;AAEN,KAAI,QAAQ,SAAS,KAAK,OAAO,SAAS,GAAG;EAC3C,MAAM,YAAY,OAAO,SAAS,SAAS;AAC3C,MAAI,QAAQ,SAAS,EACnB,KAAI,WAAW;GAEb,MAAM,QAAkB,EAAE;AAC1B,QAAK,MAAM,KAAK,SAAS;AACvB,UAAM,KAAK,KAAK,IAAI;AACpB,UAAM,KAAK,KAAK,IAAI;;AAEtB,WAAQ,cAAc,MAAM,KAAK,IAAI;QAErC,SAAQ,SAAS,QAAQ,KAAK,IAAI;OAQtC,SAAQ;AAGV,QAAO,IAAI,UAAU,KAAK;AAC1B,QAAO,IAAI,WAAW,QAAQ,WAAW,OAAO;AAEhD,QAAO,qCAAqC,OAAO,UAAU;;;;;;AAO/D,SAAS,qBAAqB,KAAmB;AAC/C,KAAI,cAAc,IAAI,IAAI,CAAE;AAC5B,eAAc,IAAI,IAAI;AAEtB,KAAI,OAAO,aAAa,aAAa;EACnC,MAAM,OAAO,SAAS,cAAc,OAAO;AAC3C,OAAK,MAAM;AACX,OAAK,OAAO;AACZ,WAAS,KAAK,YAAY,KAAK;;;;AAKnC,MAAM,qCAAqB,IAAI,KAAa;;;;;;;;;;AAW5C,SAAS,oBAAoB,WAAmB,YAA0B;AACxE,KAAI,mBAAmB,IAAI,UAAU,CAAE;AACvC,oBAAmB,IAAI,UAAU;CAEjC,MAAM,MAAM,IAAI,UAAU,kBAAkB,WAAW;AAGvD,KAAI,OAAO,aAAa,aAAa;AACnC,gBAAc,KAAK,IAAI;AACvB;;CAIF,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAC7C,OAAM,cAAc;AACpB,OAAM,aAAa,0BAA0B,UAAU;AACvD,UAAS,KAAK,YAAY,MAAM;;;AAIlC,MAAM,wCAAwB,IAAI,KAAa;;AAG/C,MAAM,wCAAwB,IAAI,KAAa;;;;;;;;;;;;AAa/C,SAAS,wBACP,mBACA,YACA,YACM;AACN,KAAI,sBAAsB,IAAI,kBAAkB,CAAE;AAClD,uBAAsB,IAAI,kBAAkB;CAI5C,IAAI,MAAM,IAAI,kBAAkB,KAAK,WAAW,IAAI,WAAW;AAK/D,KAAI,CAAC,sBAAsB,IAAI,WAAW,EAAE;AAC1C,wBAAsB,IAAI,WAAW;AACrC,SAAO,WAAW,WAAW,IAAI,WAAW;;AAI9C,KAAI,OAAO,aAAa,aAAa;AACnC,gBAAc,KAAK,IAAI;AACvB;;CAIF,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAC7C,OAAM,cAAc;AACpB,OAAM,aAAa,6BAA6B,kBAAkB;AAClE,UAAS,KAAK,YAAY,MAAM;;AAIlC,MAAM,gBAA0B,EAAE;;;;;;AAOlC,SAAgB,mBAA6B;AAC3C,QAAO,CAAC,GAAG,cAAc;;AAI3B,MAAM,cAAwB,EAAE;;;;;;AAOhC,SAAgB,kBAA4B;AAC1C,QAAO,CAAC,GAAG,YAAY;;AAIzB,MAAM,kBAAyD,EAAE;AACjE,MAAM,sCAAsB,IAAI,KAAa;;;;;;AAO7C,SAAgB,qBAA4D;AAC1E,QAAO,CAAC,GAAG,gBAAgB;;;;;AAM7B,SAAS,gBAAgB,WAA2B;AAClD,KAAI,UAAU,SAAS,SAAS,CAAE,QAAO;AACzC,KAAI,UAAU,SAAS,QAAQ,CAAE,QAAO;AACxC,KAAI,UAAU,SAAS,OAAO,CAAE,QAAO;AACvC,KAAI,UAAU,SAAS,OAAO,CAAE,QAAO;AACvC,QAAO;;;;;;AAOT,SAAS,uBAAuB,KAAuB;CACrD,MAAM,OAAiB,EAAE;CACzB,MAAM,WAAW;CACjB,IAAI;AACJ,SAAQ,QAAQ,SAAS,KAAK,IAAI,MAAM,MAAM;EAC5C,MAAM,MAAM,MAAM;AAElB,MAAI,OAAO,IAAI,WAAW,IAAI,CAC5B,MAAK,KAAK,IAAI;;AAGlB,QAAO;;;;;;AAOT,SAAS,2BAA2B,KAAmB;AACrD,KAAI,OAAO,aAAa,YAAa;CAErC,MAAM,OAAO,uBAAuB,IAAI;AACxC,MAAK,MAAM,QAAQ,KACjB,KAAI,CAAC,oBAAoB,IAAI,KAAK,EAAE;AAClC,sBAAoB,IAAI,KAAK;AAC7B,kBAAgB,KAAK;GAAE;GAAM,MAAM,gBAAgB,KAAK;GAAE,CAAC;;;;AAMjE,MAAM,qCAAqB,IAAI,KAAa;;;;;AAM5C,SAAS,oBAAoB,KAAmB;AAC9C,KAAI,mBAAmB,IAAI,IAAI,CAAE;AACjC,oBAAmB,IAAI,IAAI;AAG3B,4BAA2B,IAAI;AAE/B,KAAI,OAAO,aAAa,aAAa;AAEnC,gBAAc,KAAK,IAAI;AACvB;;CAIF,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAC7C,OAAM,cAAc;AACpB,OAAM,aAAa,+BAA+B,OAAO;AACzD,UAAS,KAAK,YAAY,MAAM;;AAKlC,SAAgB,iBAAiB,QAA4B;AAC3D,QAAO,SAAS,WAAW,UAAqD,EAAE,EAAc;EAC9F,MAAM,KAAK;EACX,MAAM,YAAY,UAAU,OAAO,aAAa,CAAC,QAAQ,QAAQ,IAAI,CAAC,GAAG;EACzE,MAAM,WAAW,QAAQ,YAAY,CAAC,aAAa;EAEnD,MAAM,aAAa,IAAI,gBAAgB,OAAO,CAAC,KAAK,SAAS,IAAI,iBAAiB,CAAC,KAAK,KAAK;EAG7F,MAAM,iBAAiB,UAAU,OAAO;EACxC,MAAM,aAAa,QAAQ,WACtB,mBAAmB,QAAQ,SAAS,IAAI,iBACzC;EAGJ,MAAM,oBAAoB,cAAc,OAAO,aAAa,CAAC,QAAQ,QAAQ,IAAI,CAAC,GAAG;AAErF,MAAI,QAAQ,eAEV,qBAAoB,QAAQ,eAAe;OACtC;GAEL,MAAM,MAAM,oBAAoB,QAAQ,QAAQ;AAChD,wBAAqB,IAAI;AAGzB,OAAI,OAAO,aAAa;QAClB,CAAC,YAAY,SAAS,IAAI,CAC5B,aAAY,KAAK,IAAI;;;AAO3B,sBAAoB,WAAW,WAAW;AAI1C,0BAAwB,mBAAmB,YAAY,WAAW;AAElE,SAAO;GACL;GACA,OAAO,EAAE,YAAY;GACrB,UAAU;GACX;;;AAOL,MAAM,cAAc,IAAI,MAAM,EAAE,EAA2D,EACzF,IAAI,SAAS,MAAc;AACzB,KAAI,SAAS,aAAc,QAAO;AAClC,KAAI,SAAS,UAAW,QAAO;AAI/B,QAAO,iBADQ,KAAK,QAAQ,mBAAmB,QAAQ,CACxB;GAElC,CAAC"}
|
|
1
|
+
{"version":3,"file":"font-google-base.js","names":[],"sources":["../../src/shims/font-google-base.ts"],"sourcesContent":["/**\n * next/font/google shim\n *\n * Provides a compatible shim for Next.js Google Fonts.\n *\n * Two modes:\n * 1. **Dev / CDN mode** (default): Loads fonts from Google Fonts CDN via <link> tags.\n * 2. **Self-hosted mode** (production build): The vinext:google-fonts Vite plugin\n * fetches font CSS + .woff2 files at build time, caches them locally, and injects\n * @font-face CSS pointing at local assets. No requests to Google at runtime.\n *\n * Usage:\n * import { Inter } from 'next/font/google';\n * const inter = Inter({ subsets: ['latin'], weight: ['400', '700'] });\n * // inter.className -> unique CSS class\n * // inter.style -> { fontFamily: \"'Inter', sans-serif\" }\n * // inter.variable -> CSS variable name like '--font-inter'\n */\n\n/**\n * Escape a string for safe interpolation inside a CSS single-quoted string.\n *\n * Prevents CSS injection by escaping characters that could break out of\n * a `'...'` CSS string context: backslashes, single quotes, and newlines.\n */\nfunction escapeCSSString(value: string): string {\n return value\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/'/g, \"\\\\'\")\n .replace(/\\n/g, \"\\\\a \")\n .replace(/\\r/g, \"\\\\d \");\n}\n\n/**\n * Validate a CSS custom property name (e.g. `--font-inter`).\n *\n * Custom properties must start with `--` and only contain alphanumeric\n * characters, hyphens, and underscores. Anything else could be used to\n * break out of the CSS declaration and inject arbitrary rules.\n *\n * Returns the name if valid, undefined otherwise.\n */\nfunction sanitizeCSSVarName(name: string): string | undefined {\n if (/^--[a-zA-Z0-9_-]+$/.test(name)) return name;\n return undefined;\n}\n\n/**\n * Sanitize a CSS font-family fallback name.\n *\n * Generic family names (sans-serif, serif, monospace, etc.) are used as-is.\n * Named families are wrapped in escaped quotes. This prevents injection via\n * crafted fallback values like `); } body { color: red; } .x {`.\n */\nfunction sanitizeFallback(name: string): string {\n // CSS generic font families — safe to use unquoted\n const generics = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"emoji\",\n \"math\",\n \"fangsong\",\n ]);\n const trimmed = name.trim();\n if (generics.has(trimmed)) return trimmed;\n // Wrap in single quotes with escaping to prevent CSS injection\n return `'${escapeCSSString(trimmed)}'`;\n}\n\n// Counter for generating unique class names\nlet classCounter = 0;\n\n// Track which font stylesheets have been injected (SSR + client)\nconst injectedFonts = new Set<string>();\n\nexport interface FontOptions {\n weight?: string | string[];\n style?: string | string[];\n subsets?: string[];\n display?: string;\n preload?: boolean;\n fallback?: string[];\n adjustFontFallback?: boolean | string;\n variable?: string;\n axes?: string[];\n}\n\nexport interface FontResult {\n className: string;\n style: { fontFamily: string };\n variable?: string;\n}\n\n/**\n * Convert a font family name to a CSS variable name.\n * e.g., \"Inter\" -> \"--font-inter\", \"Roboto Mono\" -> \"--font-roboto-mono\"\n */\nfunction toVarName(family: string): string {\n return \"--font-\" + family.toLowerCase().replace(/\\s+/g, \"-\");\n}\n\n/**\n * Build a Google Fonts CSS URL.\n */\nexport function buildGoogleFontsUrl(family: string, options: FontOptions): string {\n const params = new URLSearchParams();\n // Don't pre-replace spaces with \"+\". URLSearchParams handles encoding:\n // spaces become \"+\" in application/x-www-form-urlencoded format.\n // Pre-replacing would cause double-encoding: \"+\" -> \"%2B\" (400 error).\n let spec = family;\n\n // Build weight/style specs\n const weights = options.weight\n ? Array.isArray(options.weight)\n ? options.weight\n : [options.weight]\n : [];\n const styles = options.style\n ? Array.isArray(options.style)\n ? options.style\n : [options.style]\n : [];\n\n if (weights.length > 0 || styles.length > 0) {\n const hasItalic = styles.includes(\"italic\");\n if (weights.length > 0) {\n if (hasItalic) {\n // Use ital axis: ital,wght@0,400;0,700;1,400;1,700\n const pairs: string[] = [];\n for (const w of weights) {\n pairs.push(`0,${w}`);\n pairs.push(`1,${w}`);\n }\n spec += `:ital,wght@${pairs.join(\";\")}`;\n } else {\n spec += `:wght@${weights.join(\";\")}`;\n }\n }\n } else {\n // When no weight is specified, request the full variable weight range.\n // Without this, Google Fonts returns only weight 400 (the default).\n // Next.js loads the full variable font by default, so we match that\n // behavior to ensure all font weights render correctly.\n spec += `:wght@100..900`;\n }\n\n params.set(\"family\", spec);\n params.set(\"display\", options.display ?? \"swap\");\n\n return `https://fonts.googleapis.com/css2?${params.toString()}`;\n}\n\n/**\n * Inject a <link> tag for the font (client-side only).\n * On the server, we track font URLs for SSR head injection.\n */\nfunction injectFontStylesheet(url: string): void {\n if (injectedFonts.has(url)) return;\n injectedFonts.add(url);\n\n if (typeof document !== \"undefined\") {\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n document.head.appendChild(link);\n }\n}\n\n/** Track which className CSS rules have been injected. */\nconst injectedClassRules = new Set<string>();\n\n/**\n * Inject a CSS rule that maps a className to a font-family.\n *\n * This is what makes `<div className={inter.className}>` apply the font.\n * Next.js generates equivalent rules at build time.\n *\n * In Next.js, the .className class ONLY sets font-family — it does NOT\n * set CSS variables. CSS variables are handled separately by the .variable class.\n */\nfunction injectClassNameRule(className: string, fontFamily: string): void {\n if (injectedClassRules.has(className)) return;\n injectedClassRules.add(className);\n\n const css = `.${className} { font-family: ${fontFamily}; }\\n`;\n\n // On server, store the CSS for SSR injection\n if (typeof document === \"undefined\") {\n ssrFontStyles.push(css);\n return;\n }\n\n // On client, inject a <style> tag\n const style = document.createElement(\"style\");\n style.textContent = css;\n style.setAttribute(\"data-vinext-font-class\", className);\n document.head.appendChild(style);\n}\n\n/** Track which variable class CSS rules have been injected. */\nconst injectedVariableRules = new Set<string>();\n\n/** Track which :root CSS variable rules have been injected. */\nconst injectedRootVariables = new Set<string>();\n\n/**\n * Inject a CSS rule that sets a CSS variable on an element.\n * This is what makes `<html className={inter.variable}>` set the CSS variable\n * that can be referenced by other styles (e.g., Tailwind's font-sans).\n *\n * In Next.js, the .variable class ONLY sets the CSS variable — it does NOT\n * set font-family. This is critical because apps commonly apply multiple\n * .variable classes to <body> (e.g., geistSans.variable + geistMono.variable).\n * If we also set font-family here, the last class wins due to CSS cascade,\n * causing all text to use that font (e.g., everything becomes monospace).\n */\nfunction injectVariableClassRule(\n variableClassName: string,\n cssVarName: string,\n fontFamily: string,\n): void {\n if (injectedVariableRules.has(variableClassName)) return;\n injectedVariableRules.add(variableClassName);\n\n // Only set the CSS variable — do NOT set font-family.\n // This matches Next.js behavior where .variable classes only define CSS variables.\n let css = `.${variableClassName} { ${cssVarName}: ${fontFamily}; }\\n`;\n\n // Also inject at :root so CSS variable inheritance works throughout the page.\n // This ensures Tailwind utilities like `font-sans` that reference these\n // variables via var(--font-geist-sans) work correctly.\n if (!injectedRootVariables.has(cssVarName)) {\n injectedRootVariables.add(cssVarName);\n css += `:root { ${cssVarName}: ${fontFamily}; }\\n`;\n }\n\n // On server, store the CSS for SSR injection\n if (typeof document === \"undefined\") {\n ssrFontStyles.push(css);\n return;\n }\n\n // On client, inject a <style> tag\n const style = document.createElement(\"style\");\n style.textContent = css;\n style.setAttribute(\"data-vinext-font-variable\", variableClassName);\n document.head.appendChild(style);\n}\n\n// SSR: collect font class CSS for injection in <head>\nconst ssrFontStyles: string[] = [];\n\n/**\n * Get collected SSR font class styles (used by the renderer).\n * Note: We don't clear the arrays because fonts are loaded at module import\n * time and need to persist across all requests in the Workers environment.\n */\nexport function getSSRFontStyles(): string[] {\n return [...ssrFontStyles];\n}\n\n// SSR: collect font URLs to inject in <head>\nconst ssrFontUrls: string[] = [];\n\n/**\n * Get collected SSR font URLs (used by the renderer).\n * Note: We don't clear the arrays because fonts are loaded at module import\n * time and need to persist across all requests in the Workers environment.\n */\nexport function getSSRFontLinks(): string[] {\n return [...ssrFontUrls];\n}\n\n// SSR: collect font file URLs for <link rel=\"preload\"> injection (self-hosted Google fonts)\nconst ssrFontPreloads: Array<{ href: string; type: string }> = [];\nconst ssrFontPreloadHrefs = new Set<string>();\n\n/**\n * Get collected SSR font preload data (used by the renderer).\n * Returns an array of { href, type } objects for emitting\n * <link rel=\"preload\" as=\"font\" ...> tags.\n */\nexport function getSSRFontPreloads(): Array<{ href: string; type: string }> {\n return [...ssrFontPreloads];\n}\n\n/**\n * Determine the MIME type for a font file based on its extension.\n */\nfunction getFontMimeType(pathOrUrl: string): string {\n if (pathOrUrl.endsWith(\".woff2\")) return \"font/woff2\";\n if (pathOrUrl.endsWith(\".woff\")) return \"font/woff\";\n if (pathOrUrl.endsWith(\".ttf\")) return \"font/ttf\";\n if (pathOrUrl.endsWith(\".otf\")) return \"font/opentype\";\n return \"font/woff2\";\n}\n\n/**\n * Extract font file URLs from @font-face CSS rules.\n * Parses url('...') references from the CSS text.\n */\nfunction extractFontUrlsFromCSS(css: string): string[] {\n const urls: string[] = [];\n const urlRegex = /url\\(['\"]?([^'\")]+)['\"]?\\)/g;\n let match: RegExpExecArray | null;\n while ((match = urlRegex.exec(css)) !== null) {\n const url = match[1];\n // Only collect absolute paths (starting with /) — these are self-hosted font files\n if (url && url.startsWith(\"/\")) {\n urls.push(url);\n }\n }\n return urls;\n}\n\n/**\n * Collect font file URLs from self-hosted CSS for preload link generation.\n * Only collects on the server (SSR). Deduplicates by href using a Set for O(1) lookups.\n */\nfunction collectFontPreloadsFromCSS(css: string): void {\n if (typeof document !== \"undefined\") return; // client-side, skip\n\n const urls = extractFontUrlsFromCSS(css);\n for (const href of urls) {\n if (!ssrFontPreloadHrefs.has(href)) {\n ssrFontPreloadHrefs.add(href);\n ssrFontPreloads.push({ href, type: getFontMimeType(href) });\n }\n }\n}\n\n/** Track injected self-hosted @font-face blocks (deduplicate) */\nconst injectedSelfHosted = new Set<string>();\n\n/**\n * Inject self-hosted @font-face CSS (from the build plugin).\n * This replaces the CDN <link> tag with inline CSS.\n */\nfunction injectSelfHostedCSS(css: string): void {\n if (injectedSelfHosted.has(css)) return;\n injectedSelfHosted.add(css);\n\n // Extract font file URLs for preload hints (SSR only)\n collectFontPreloadsFromCSS(css);\n\n if (typeof document === \"undefined\") {\n // SSR: add to collected styles\n ssrFontStyles.push(css);\n return;\n }\n\n // Client: inject <style> tag\n const style = document.createElement(\"style\");\n style.textContent = css;\n style.setAttribute(\"data-vinext-font-selfhosted\", \"true\");\n document.head.appendChild(style);\n}\n\nexport type FontLoader = (options?: FontOptions & { _selfHostedCSS?: string }) => FontResult;\n\nexport function createFontLoader(family: string): FontLoader {\n return function fontLoader(options: FontOptions & { _selfHostedCSS?: string } = {}): FontResult {\n const id = classCounter++;\n const className = `__font_${family.toLowerCase().replace(/\\s+/g, \"_\")}_${id}`;\n const fallback = options.fallback ?? [\"sans-serif\"];\n // Sanitize each fallback name to prevent CSS injection via crafted values\n const fontFamily = `'${escapeCSSString(family)}', ${fallback.map(sanitizeFallback).join(\", \")}`;\n // Validate CSS variable name — reject anything that could inject CSS.\n // Fall back to auto-generated name if invalid.\n const defaultVarName = toVarName(family);\n const cssVarName = options.variable\n ? (sanitizeCSSVarName(options.variable) ?? defaultVarName)\n : defaultVarName;\n // In Next.js, `variable` returns a CLASS NAME that sets the CSS variable.\n // Users apply this class to set the CSS variable on that element.\n const variableClassName = `__variable_${family.toLowerCase().replace(/\\s+/g, \"_\")}_${id}`;\n\n if (options._selfHostedCSS) {\n // Self-hosted mode: inject local @font-face CSS instead of CDN link\n injectSelfHostedCSS(options._selfHostedCSS);\n } else {\n // CDN mode: inject <link> to Google Fonts\n const url = buildGoogleFontsUrl(family, options);\n injectFontStylesheet(url);\n\n // On SSR, collect the URL for head injection\n if (typeof document === \"undefined\") {\n if (!ssrFontUrls.includes(url)) {\n ssrFontUrls.push(url);\n }\n }\n }\n\n // Inject a CSS rule that maps className to font-family.\n // This is what makes `<div className={inter.className}>` work.\n injectClassNameRule(className, fontFamily);\n\n // Inject a CSS rule for the variable class name.\n // This is what makes `<html className={inter.variable}>` set the CSS variable.\n injectVariableClassRule(variableClassName, cssVarName, fontFamily);\n\n return {\n className,\n style: { fontFamily },\n variable: variableClassName,\n };\n };\n}\n\n// Export a Proxy that creates font loaders for any Google Font family.\n// Usage: import { Inter } from 'next/font/google'\n// The proxy intercepts property access and returns a loader for that font.\nconst googleFonts = new Proxy({} as Record<string, (options?: FontOptions) => FontResult>, {\n get(_target, prop: string) {\n if (prop === \"__esModule\") return true;\n if (prop === \"default\") return googleFonts;\n // Convert export-style names to proper font family names:\n // - Underscores to spaces: \"Roboto_Mono\" -> \"Roboto Mono\"\n // - PascalCase to spaces: \"RobotoMono\" -> \"Roboto Mono\"\n const family = prop.replace(/_/g, \" \").replace(/([a-z])([A-Z])/g, \"$1 $2\");\n return createFontLoader(family);\n },\n});\n\nexport default googleFonts;\n"],"mappings":"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"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import googleFonts, { buildGoogleFontsUrl, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles } from "./font-google-base.js";
|
|
2
|
-
import { ABeeZee, ADLaM_Display, AR_One_Sans, Abel, Abhaya_Libre, Aboreto, Abril_Fatface, Abyssinica_SIL, Aclonica, Acme, Actor, Adamina, Advent_Pro, Afacad, Afacad_Flux, Agbalumo, Agdasima, Agu_Display, Aguafina_Script, Akatab, Akaya_Kanadaka, Akaya_Telivigala, Akronim, Akshar, Aladin, Alan_Sans, Alata, Alatsi, Albert_Sans, Aldrich, Alef, Alegreya, Alegreya_SC, Alegreya_Sans, Alegreya_Sans_SC, Aleo, Alex_Brush, Alexandria, Alfa_Slab_One, Alice, Alike, Alike_Angular, Alkalami, Alkatra, Allan, Allerta, Allerta_Stencil, Allison, Allkin, Allura, Almarai, Almendra, Almendra_Display, Almendra_SC, Alumni_Sans, Alumni_Sans_Collegiate_One, Alumni_Sans_Inline_One, Alumni_Sans_Pinstripe, Alumni_Sans_SC, Alyamama, Amarante, Amaranth, Amarna, Amatic_SC, Amethysta, Amiko, Amiri, Amiri_Quran, Amita, Anaheim, Ancizar_Sans, Ancizar_Serif, Andada_Pro, Andika, Anek_Bangla, Anek_Devanagari, Anek_Gujarati, Anek_Gurmukhi, Anek_Kannada, Anek_Latin, Anek_Malayalam, Anek_Odia, Anek_Tamil, Anek_Telugu, Angkor, Annapurna_SIL, Annie_Use_Your_Telescope, Anonymous_Pro, Anta, Antic, Antic_Didone, Antic_Slab, Anton, Anton_SC, Antonio, Anuphan, Anybody, Aoboshi_One, Arapey, Arbutus, Arbutus_Slab, Architects_Daughter, Archivo, Archivo_Black, Archivo_Narrow, Are_You_Serious, Aref_Ruqaa, Aref_Ruqaa_Ink, Arima, Arimo, Arizonia, Armata, Arsenal, Arsenal_SC, Artifika, Arvo, Arya, Asap, Asap_Condensed, Asar, Asimovian, Asset, Assistant, Asta_Sans, Astloch, Asul, Athiti, Atkinson_Hyperlegible, Atkinson_Hyperlegible_Mono, Atkinson_Hyperlegible_Next, Atma, Atomic_Age, Aubrey, Audiowide, Autour_One, Average, Average_Sans, Averia_Gruesa_Libre, Averia_Libre, Averia_Sans_Libre, Averia_Serif_Libre, Azeret_Mono, B612, B612_Mono, BBH_Bartle, BBH_Bogle, BBH_Hegarty, BIZ_UDGothic, BIZ_UDMincho, BIZ_UDPGothic, BIZ_UDPMincho, Babylonica, Bacasime_Antique, Bad_Script, Badeen_Display, Bagel_Fat_One, Bahiana, Bahianita, Bai_Jamjuree, Bakbak_One, Ballet, Baloo_2, Baloo_Bhai_2, Baloo_Bhaijaan_2, Baloo_Bhaina_2, Baloo_Chettan_2, Baloo_Da_2, Baloo_Paaji_2, Baloo_Tamma_2, Baloo_Tammudu_2, Baloo_Thambi_2, Balsamiq_Sans, Balthazar, Bangers, Barlow, Barlow_Condensed, Barlow_Semi_Condensed, Barriecito, Barrio, Basic, Baskervville, Baskervville_SC, Battambang, Baumans, Bayon, Be_Vietnam_Pro, Beau_Rivage, Bebas_Neue, Beiruti, Belanosima, Belgrano, Bellefair, Belleza, Bellota, Bellota_Text, BenchNine, Benne, Bentham, Berkshire_Swash, Besley, Betania_Patmos, Betania_Patmos_GDL, Betania_Patmos_In, Betania_Patmos_In_GDL, Beth_Ellen, Bevan, BhuTuka_Expanded_One, Big_Shoulders, Big_Shoulders_Inline, Big_Shoulders_Stencil, Bigelow_Rules, Bigshot_One, Bilbo, Bilbo_Swash_Caps, BioRhyme, BioRhyme_Expanded, Birthstone, Birthstone_Bounce, Biryani, Bitcount, Bitcount_Grid_Double, Bitcount_Grid_Double_Ink, Bitcount_Grid_Single, Bitcount_Grid_Single_Ink, Bitcount_Ink, Bitcount_Prop_Double, Bitcount_Prop_Double_Ink, Bitcount_Prop_Single, Bitcount_Prop_Single_Ink, Bitcount_Single, Bitcount_Single_Ink, Bitter, Black_And_White_Picture, Black_Han_Sans, Black_Ops_One, Blaka, Blaka_Hollow, Blaka_Ink, Blinker, Bodoni_Moda, Bodoni_Moda_SC, Bokor, Boldonse, Bona_Nova, Bona_Nova_SC, Bonbon, Bonheur_Royale, Boogaloo, Borel, Bowlby_One, Bowlby_One_SC, Bpmf_Huninn, Bpmf_Iansui, Bpmf_Zihi_Kai_Std, Braah_One, Brawler, Bree_Serif, Bricolage_Grotesque, Bruno_Ace, Bruno_Ace_SC, Brygada_1918, Bubblegum_Sans, Bubbler_One, Buda, Buenard, Bungee, Bungee_Hairline, Bungee_Inline, Bungee_Outline, Bungee_Shade, Bungee_Spice, Bungee_Tint, Butcherman, Butterfly_Kids, Bytesized, Cabin, Cabin_Condensed, Cabin_Sketch, Cactus_Classical_Serif, Caesar_Dressing, Cagliostro, Cairo, Cairo_Play, Cal_Sans, Caladea, Calistoga, Calligraffitti, Cambay, Cambo, Candal, Cantarell, Cantata_One, Cantora_One, Caprasimo, Capriola, Caramel, Carattere, Cardo, Carlito, Carme, Carrois_Gothic, Carrois_Gothic_SC, Carter_One, Cascadia_Code, Cascadia_Mono, Castoro, Castoro_Titling, Catamaran, Caudex, Cause, Caveat, Caveat_Brush, Cedarville_Cursive, Ceviche_One, Chakra_Petch, Changa, Changa_One, Chango, Charis_SIL, Charm, Charmonman, Chathura, Chau_Philomene_One, Chela_One, Chelsea_Market, Chenla, Cherish, Cherry_Bomb_One, Cherry_Cream_Soda, Cherry_Swash, Chewy, Chicle, Chilanka, Chiron_GoRound_TC, Chiron_Hei_HK, Chiron_Sung_HK, Chivo, Chivo_Mono, Chocolate_Classical_Sans, Chokokutai, Chonburi, Cinzel, Cinzel_Decorative, Clicker_Script, Climate_Crisis, Coda, Codystar, Coiny, Combo, Comfortaa, Comforter, Comforter_Brush, Comic_Neue, Comic_Relief, Coming_Soon, Comme, Commissioner, Concert_One, Condiment, Content, Contrail_One, Convergence, Cookie, Copse, Coral_Pixels, Corben, Corinthia, Cormorant, Cormorant_Garamond, Cormorant_Infant, Cormorant_SC, Cormorant_Unicase, Cormorant_Upright, Cossette_Texte, Cossette_Titre, Courgette, Courier_Prime, Cousine, Coustard, Covered_By_Your_Grace, Crafty_Girls, Creepster, Crete_Round, Crimson_Pro, Crimson_Text, Croissant_One, Crushed, Cuprum, Cute_Font, Cutive, Cutive_Mono, DM_Mono, DM_Sans, DM_Serif_Display, DM_Serif_Text, Dai_Banna_SIL, Damion, Dancing_Script, Danfo, Dangrek, Darker_Grotesque, Darumadrop_One, David_Libre, Dawning_of_a_New_Day, Days_One, Dekko, Dela_Gothic_One, Delicious_Handrawn, Delius, Delius_Swash_Caps, Delius_Unicase, Della_Respira, Denk_One, Devonshire, Dhurjati, Didact_Gothic, Diphylleia, Diplomata, Diplomata_SC, Do_Hyeon, Dokdo, Domine, Donegal_One, Dongle, Doppio_One, Dorsa, Dosis, DotGothic16, Doto, Dr_Sugiyama, Duru_Sans, DynaPuff, Dynalight, EB_Garamond, Eagle_Lake, East_Sea_Dokdo, Eater, Economica, Eczar, Edu_AU_VIC_WA_NT_Arrows, Edu_AU_VIC_WA_NT_Dots, Edu_AU_VIC_WA_NT_Guides, Edu_AU_VIC_WA_NT_Hand, Edu_AU_VIC_WA_NT_Pre, Edu_NSW_ACT_Cursive, Edu_NSW_ACT_Foundation, Edu_NSW_ACT_Hand_Pre, Edu_QLD_Beginner, Edu_QLD_Hand, Edu_SA_Beginner, Edu_SA_Hand, Edu_TAS_Beginner, Edu_VIC_WA_NT_Beginner, Edu_VIC_WA_NT_Hand, Edu_VIC_WA_NT_Hand_Pre, El_Messiri, Electrolize, Elms_Sans, Elsie, Elsie_Swash_Caps, Emblema_One, Emilys_Candy, Encode_Sans, Encode_Sans_Condensed, Encode_Sans_Expanded, Encode_Sans_SC, Encode_Sans_Semi_Condensed, Encode_Sans_Semi_Expanded, Engagement, Englebert, Enriqueta, Ephesis, Epilogue, Epunda_Sans, Epunda_Slab, Erica_One, Esteban, Estonia, Euphoria_Script, Ewert, Exile, Exo, Exo_2, Expletus_Sans, Explora, Faculty_Glyphic, Fahkwang, Familjen_Grotesk, Fanwood_Text, Farro, Farsan, Fascinate, Fascinate_Inline, Faster_One, Fasthand, Fauna_One, Faustina, Federant, Federo, Felipa, Fenix, Festive, Figtree, Finger_Paint, Finlandica, Fira_Code, Fira_Mono, Fira_Sans, Fira_Sans_Condensed, Fira_Sans_Extra_Condensed, Fjalla_One, Fjord_One, Flamenco, Flavors, Fleur_De_Leah, Flow_Block, Flow_Circular, Flow_Rounded, Foldit, Fondamento, Fontdiner_Swanky, Forum, Fragment_Mono, Francois_One, Frank_Ruhl_Libre, Fraunces, Freckle_Face, Fredericka_the_Great, Fredoka, Freehand, Freeman, Fresca, Frijole, Fruktur, Fugaz_One, Fuggles, Funnel_Display, Funnel_Sans, Fustat, Fuzzy_Bubbles, GFS_Didot, GFS_Neohellenic, Ga_Maamli, Gabarito, Gabriela, Gaegu, Gafata, Gajraj_One, Galada, Galdeano, Galindo, Gamja_Flower, Gantari, Gasoek_One, Gayathri, Geist, Geist_Mono, Gelasio, Gemunu_Libre, Genos, Gentium_Book_Plus, Gentium_Plus, Geo, Geologica, Geom, Georama, Geostar, Geostar_Fill, Germania_One, Gideon_Roman, Gidole, Gidugu, Gilda_Display, Girassol, Give_You_Glory, Glass_Antiqua, Glegoo, Gloock, Gloria_Hallelujah, Glory, Gluten, Goblin_One, Gochi_Hand, Goldman, Golos_Text, Google_Sans, Google_Sans_Code, Google_Sans_Flex, Gorditas, Gothic_A1, Gotu, Goudy_Bookletter_1911, Gowun_Batang, Gowun_Dodum, Graduate, Grand_Hotel, Grandiflora_One, Grandstander, Grape_Nuts, Gravitas_One, Great_Vibes, Grechen_Fuemen, Grenze, Grenze_Gotisch, Grey_Qo, Griffy, Gruppo, Gudea, Gugi, Gulzar, Gupter, Gurajada, Gveret_Levin, Gwendolyn, Habibi, Hachi_Maru_Pop, Hahmlet, Halant, Hammersmith_One, Hanalei, Hanalei_Fill, Handjet, Handlee, Hanken_Grotesk, Hanuman, Happy_Monkey, Harmattan, Headland_One, Hedvig_Letters_Sans, Hedvig_Letters_Serif, Heebo, Henny_Penny, Hepta_Slab, Herr_Von_Muellerhoff, Hi_Melody, Hina_Mincho, Hind, Hind_Guntur, Hind_Madurai, Hind_Mysuru, Hind_Siliguri, Hind_Vadodara, Holtwood_One_SC, Homemade_Apple, Homenaje, Honk, Host_Grotesk, Hubballi, Hubot_Sans, Huninn, Hurricane, IBM_Plex_Mono, IBM_Plex_Sans, IBM_Plex_Sans_Arabic, IBM_Plex_Sans_Condensed, IBM_Plex_Sans_Devanagari, IBM_Plex_Sans_Hebrew, IBM_Plex_Sans_JP, IBM_Plex_Sans_KR, IBM_Plex_Sans_Thai, IBM_Plex_Sans_Thai_Looped, IBM_Plex_Serif, IM_Fell_DW_Pica, IM_Fell_DW_Pica_SC, IM_Fell_Double_Pica, IM_Fell_Double_Pica_SC, IM_Fell_English, IM_Fell_English_SC, IM_Fell_French_Canon, IM_Fell_French_Canon_SC, IM_Fell_Great_Primer, IM_Fell_Great_Primer_SC, Iansui, Ibarra_Real_Nova, Iceberg, Iceland, Idiqlat, Imbue, Imperial_Script, Imprima, Inclusive_Sans, Inconsolata, Inder, Indie_Flower, Ingrid_Darling, Inika, Inknut_Antiqua, Inria_Sans, Inria_Serif, Inspiration, Instrument_Sans, Instrument_Serif, Intel_One_Mono, Inter, Inter_Tight, Irish_Grover, Island_Moments, Istok_Web, Italiana, Italianno, Itim, Jacquard_12, Jacquard_12_Charted, Jacquard_24, Jacquard_24_Charted, Jacquarda_Bastarda_9, Jacquarda_Bastarda_9_Charted, Jacques_Francois, Jacques_Francois_Shadow, Jaini, Jaini_Purva, Jaldi, Jaro, Jersey_10, Jersey_10_Charted, Jersey_15, Jersey_15_Charted, Jersey_20, Jersey_20_Charted, Jersey_25, Jersey_25_Charted, JetBrains_Mono, Jim_Nightshade, Joan, Jockey_One, Jolly_Lodger, Jomhuria, Jomolhari, Josefin_Sans, Josefin_Slab, Jost, Joti_One, Jua, Judson, Julee, Julius_Sans_One, Junge, Jura, Just_Another_Hand, Just_Me_Again_Down_Here, K2D, Kablammo, Kadwa, Kaisei_Decol, Kaisei_HarunoUmi, Kaisei_Opti, Kaisei_Tokumin, Kalam, Kalnia, Kalnia_Glaze, Kameron, Kanchenjunga, Kanit, Kantumruy_Pro, Kapakana, Karantina, Karla, Karla_Tamil_Inclined, Karla_Tamil_Upright, Karma, Katibeh, Kaushan_Script, Kavivanar, Kavoon, Kay_Pho_Du, Kdam_Thmor_Pro, Keania_One, Kedebideri, Kelly_Slab, Kenia, Khand, Khmer, Khula, Kings, Kirang_Haerang, Kite_One, Kiwi_Maru, Klee_One, Knewave, KoHo, Kodchasan, Kode_Mono, Koh_Santepheap, Kolker_Brush, Konkhmer_Sleokchher, Kosugi, Kosugi_Maru, Kotta_One, Koulen, Kranky, Kreon, Kristi, Krona_One, Krub, Kufam, Kulim_Park, Kumar_One, Kumar_One_Outline, Kumbh_Sans, Kurale, LINE_Seed_JP, LXGW_Marker_Gothic, LXGW_WenKai_Mono_TC, LXGW_WenKai_TC, La_Belle_Aurore, Labrada, Lacquer, Laila, Lakki_Reddy, Lalezar, Lancelot, Langar, Lateef, Lato, Lavishly_Yours, League_Gothic, League_Script, League_Spartan, Leckerli_One, Ledger, Lekton, Lemon, Lemonada, Lexend, Lexend_Deca, Lexend_Exa, Lexend_Giga, Lexend_Mega, Lexend_Peta, Lexend_Tera, Lexend_Zetta, Libertinus_Keyboard, Libertinus_Math, Libertinus_Mono, Libertinus_Sans, Libertinus_Serif, Libertinus_Serif_Display, Libre_Barcode_128, Libre_Barcode_128_Text, Libre_Barcode_39, Libre_Barcode_39_Extended, Libre_Barcode_39_Extended_Text, Libre_Barcode_39_Text, Libre_Barcode_EAN13_Text, Libre_Baskerville, Libre_Bodoni, Libre_Caslon_Display, Libre_Caslon_Text, Libre_Franklin, Licorice, Life_Savers, Lilex, Lilita_One, Lily_Script_One, Limelight, Linden_Hill, Linefont, Lisu_Bosa, Liter, Literata, Liu_Jian_Mao_Cao, Livvic, Lobster, Lobster_Two, Londrina_Outline, Londrina_Shadow, Londrina_Sketch, Londrina_Solid, Long_Cang, Lora, Love_Light, Love_Ya_Like_A_Sister, Loved_by_the_King, Lovers_Quarrel, Luckiest_Guy, Lugrasimo, Lumanosimo, Lunasima, Lusitana, Lustria, Luxurious_Roman, Luxurious_Script, M_PLUS_1, M_PLUS_1_Code, M_PLUS_1p, M_PLUS_2, M_PLUS_Code_Latin, M_PLUS_Rounded_1c, Ma_Shan_Zheng, Macondo, Macondo_Swash_Caps, Mada, Madimi_One, Magra, Maiden_Orange, Maitree, Major_Mono_Display, Mako, Mali, Mallanna, Maname, Mandali, Manjari, Manrope, Mansalva, Manuale, Manufacturing_Consent, Marcellus, Marcellus_SC, Marck_Script, Margarine, Marhey, Markazi_Text, Marko_One, Marmelad, Martel, Martel_Sans, Martian_Mono, Marvel, Matangi, Mate, Mate_SC, Matemasie, Maven_Pro, McLaren, Mea_Culpa, Meddon, MedievalSharp, Medula_One, Meera_Inimai, Megrim, Meie_Script, Menbere, Meow_Script, Merienda, Merriweather, Merriweather_Sans, Metal, Metal_Mania, Metamorphous, Metrophobic, Michroma, Micro_5, Micro_5_Charted, Milonga, Miltonian, Miltonian_Tattoo, Mina, Mingzat, Miniver, Miriam_Libre, Mirza, Miss_Fajardose, Mitr, Mochiy_Pop_One, Mochiy_Pop_P_One, Modak, Modern_Antiqua, Moderustic, Mogra, Mohave, Moirai_One, Molengo, Molle, Momo_Signature, Momo_Trust_Display, Momo_Trust_Sans, Mona_Sans, Monda, Monofett, Monomakh, Monomaniac_One, Monoton, Monsieur_La_Doulaise, Montaga, Montagu_Slab, MonteCarlo, Montez, Montserrat, Montserrat_Alternates, Montserrat_Underline, Moo_Lah_Lah, Mooli, Moon_Dance, Moul, Moulpali, Mountains_of_Christmas, Mouse_Memoirs, Mozilla_Headline, Mozilla_Text, Mr_Bedfort, Mr_Dafoe, Mr_De_Haviland, Mrs_Saint_Delafield, Mrs_Sheppards, Ms_Madi, Mukta, Mukta_Mahee, Mukta_Malar, Mukta_Vaani, Mulish, Murecho, MuseoModerno, My_Soul, Mynerve, Mystery_Quest, NTR, Nabla, Namdhinggo, Nanum_Brush_Script, Nanum_Gothic, Nanum_Gothic_Coding, Nanum_Myeongjo, Nanum_Pen_Script, Narnoor, Nata_Sans, National_Park, Neonderthaw, Nerko_One, Neucha, Neuton, New_Amsterdam, New_Rocker, New_Tegomin, News_Cycle, Newsreader, Niconne, Niramit, Nixie_One, Nobile, Nokora, Norican, Nosifer, Notable, Nothing_You_Could_Do, Noticia_Text, Noto_Color_Emoji, Noto_Emoji, Noto_Kufi_Arabic, Noto_Music, Noto_Naskh_Arabic, Noto_Nastaliq_Urdu, Noto_Rashi_Hebrew, Noto_Sans, Noto_Sans_Adlam, Noto_Sans_Adlam_Unjoined, Noto_Sans_Anatolian_Hieroglyphs, Noto_Sans_Arabic, Noto_Sans_Armenian, Noto_Sans_Avestan, Noto_Sans_Balinese, Noto_Sans_Bamum, Noto_Sans_Bassa_Vah, Noto_Sans_Batak, Noto_Sans_Bengali, Noto_Sans_Bhaiksuki, Noto_Sans_Brahmi, Noto_Sans_Buginese, Noto_Sans_Buhid, Noto_Sans_Canadian_Aboriginal, Noto_Sans_Carian, Noto_Sans_Caucasian_Albanian, Noto_Sans_Chakma, Noto_Sans_Cham, Noto_Sans_Cherokee, Noto_Sans_Chorasmian, Noto_Sans_Coptic, Noto_Sans_Cuneiform, Noto_Sans_Cypriot, Noto_Sans_Cypro_Minoan, Noto_Sans_Deseret, Noto_Sans_Devanagari, Noto_Sans_Display, Noto_Sans_Duployan, Noto_Sans_Egyptian_Hieroglyphs, Noto_Sans_Elbasan, Noto_Sans_Elymaic, Noto_Sans_Ethiopic, Noto_Sans_Georgian, Noto_Sans_Glagolitic, Noto_Sans_Gothic, Noto_Sans_Grantha, Noto_Sans_Gujarati, Noto_Sans_Gunjala_Gondi, Noto_Sans_Gurmukhi, Noto_Sans_HK, Noto_Sans_Hanifi_Rohingya, Noto_Sans_Hanunoo, Noto_Sans_Hatran, Noto_Sans_Hebrew, Noto_Sans_Imperial_Aramaic, Noto_Sans_Indic_Siyaq_Numbers, Noto_Sans_Inscriptional_Pahlavi, Noto_Sans_Inscriptional_Parthian, Noto_Sans_JP, Noto_Sans_Javanese, Noto_Sans_KR, Noto_Sans_Kaithi, Noto_Sans_Kannada, Noto_Sans_Kawi, Noto_Sans_Kayah_Li, Noto_Sans_Kharoshthi, Noto_Sans_Khmer, Noto_Sans_Khojki, Noto_Sans_Khudawadi, Noto_Sans_Lao, Noto_Sans_Lao_Looped, Noto_Sans_Lepcha, Noto_Sans_Limbu, Noto_Sans_Linear_A, Noto_Sans_Linear_B, Noto_Sans_Lisu, Noto_Sans_Lycian, Noto_Sans_Lydian, Noto_Sans_Mahajani, Noto_Sans_Malayalam, Noto_Sans_Mandaic, Noto_Sans_Manichaean, Noto_Sans_Marchen, Noto_Sans_Masaram_Gondi, Noto_Sans_Math, Noto_Sans_Mayan_Numerals, Noto_Sans_Medefaidrin, Noto_Sans_Meetei_Mayek, Noto_Sans_Mende_Kikakui, Noto_Sans_Meroitic, Noto_Sans_Miao, Noto_Sans_Modi, Noto_Sans_Mongolian, Noto_Sans_Mono, Noto_Sans_Mro, Noto_Sans_Multani, Noto_Sans_Myanmar, Noto_Sans_NKo, Noto_Sans_NKo_Unjoined, Noto_Sans_Nabataean, Noto_Sans_Nag_Mundari, Noto_Sans_Nandinagari, Noto_Sans_New_Tai_Lue, Noto_Sans_Newa, Noto_Sans_Nushu, Noto_Sans_Ogham, Noto_Sans_Ol_Chiki, Noto_Sans_Old_Hungarian, Noto_Sans_Old_Italic, Noto_Sans_Old_North_Arabian, Noto_Sans_Old_Permic, Noto_Sans_Old_Persian, Noto_Sans_Old_Sogdian, Noto_Sans_Old_South_Arabian, Noto_Sans_Old_Turkic, Noto_Sans_Oriya, Noto_Sans_Osage, Noto_Sans_Osmanya, Noto_Sans_Pahawh_Hmong, Noto_Sans_Palmyrene, Noto_Sans_Pau_Cin_Hau, Noto_Sans_PhagsPa, Noto_Sans_Phoenician, Noto_Sans_Psalter_Pahlavi, Noto_Sans_Rejang, Noto_Sans_Runic, Noto_Sans_SC, Noto_Sans_Samaritan, Noto_Sans_Saurashtra, Noto_Sans_Sharada, Noto_Sans_Shavian, Noto_Sans_Siddham, Noto_Sans_SignWriting, Noto_Sans_Sinhala, Noto_Sans_Sogdian, Noto_Sans_Sora_Sompeng, Noto_Sans_Soyombo, Noto_Sans_Sundanese, Noto_Sans_Sunuwar, Noto_Sans_Syloti_Nagri, Noto_Sans_Symbols, Noto_Sans_Symbols_2, Noto_Sans_Syriac, Noto_Sans_Syriac_Eastern, Noto_Sans_Syriac_Western, Noto_Sans_TC, Noto_Sans_Tagalog, Noto_Sans_Tagbanwa, Noto_Sans_Tai_Le, Noto_Sans_Tai_Tham, Noto_Sans_Tai_Viet, Noto_Sans_Takri, Noto_Sans_Tamil, Noto_Sans_Tamil_Supplement, Noto_Sans_Tangsa, Noto_Sans_Telugu, Noto_Sans_Thaana, Noto_Sans_Thai, Noto_Sans_Thai_Looped, Noto_Sans_Tifinagh, Noto_Sans_Tirhuta, Noto_Sans_Ugaritic, Noto_Sans_Vai, Noto_Sans_Vithkuqi, Noto_Sans_Wancho, Noto_Sans_Warang_Citi, Noto_Sans_Yi, Noto_Sans_Zanabazar_Square, Noto_Serif, Noto_Serif_Ahom, Noto_Serif_Armenian, Noto_Serif_Balinese, Noto_Serif_Bengali, Noto_Serif_Devanagari, Noto_Serif_Display, Noto_Serif_Dives_Akuru, Noto_Serif_Dogra, Noto_Serif_Ethiopic, Noto_Serif_Georgian, Noto_Serif_Grantha, Noto_Serif_Gujarati, Noto_Serif_Gurmukhi, Noto_Serif_HK, Noto_Serif_Hebrew, Noto_Serif_Hentaigana, Noto_Serif_JP, Noto_Serif_KR, Noto_Serif_Kannada, Noto_Serif_Khitan_Small_Script, Noto_Serif_Khmer, Noto_Serif_Khojki, Noto_Serif_Lao, Noto_Serif_Makasar, Noto_Serif_Malayalam, Noto_Serif_Myanmar, Noto_Serif_NP_Hmong, Noto_Serif_Old_Uyghur, Noto_Serif_Oriya, Noto_Serif_Ottoman_Siyaq, Noto_Serif_SC, Noto_Serif_Sinhala, Noto_Serif_TC, Noto_Serif_Tamil, Noto_Serif_Tangut, Noto_Serif_Telugu, Noto_Serif_Thai, Noto_Serif_Tibetan, Noto_Serif_Todhri, Noto_Serif_Toto, Noto_Serif_Vithkuqi, Noto_Serif_Yezidi, Noto_Traditional_Nushu, Noto_Znamenny_Musical_Notation, Nova_Cut, Nova_Flat, Nova_Mono, Nova_Oval, Nova_Round, Nova_Script, Nova_Slim, Nova_Square, Numans, Nunito, Nunito_Sans, Nuosu_SIL, Odibee_Sans, Odor_Mean_Chey, Offside, Oi, Ojuju, Old_Standard_TT, Oldenburg, Ole, Oleo_Script, Oleo_Script_Swash_Caps, Onest, Oooh_Baby, Open_Sans, Oranienbaum, Orbit, Orbitron, Oregano, Orelega_One, Orienta, Original_Surfer, Oswald, Outfit, Over_the_Rainbow, Overlock, Overlock_SC, Overpass, Overpass_Mono, Ovo, Oxanium, Oxygen, Oxygen_Mono, PT_Mono, PT_Sans, PT_Sans_Caption, PT_Sans_Narrow, PT_Serif, PT_Serif_Caption, Pacifico, Padauk, Padyakke_Expanded_One, Palanquin, Palanquin_Dark, Palette_Mosaic, Pangolin, Paprika, Parastoo, Parisienne, Parkinsans, Passero_One, Passion_One, Passions_Conflict, Pathway_Extreme, Pathway_Gothic_One, Patrick_Hand, Patrick_Hand_SC, Pattaya, Patua_One, Pavanam, Paytone_One, Peddana, Peralta, Permanent_Marker, Petemoss, Petit_Formal_Script, Petrona, Phetsarath, Philosopher, Phudu, Piazzolla, Piedra, Pinyon_Script, Pirata_One, Pixelify_Sans, Plaster, Platypi, Play, Playball, Playfair, Playfair_Display, Playfair_Display_SC, Playpen_Sans, Playpen_Sans_Arabic, Playpen_Sans_Deva, Playpen_Sans_Hebrew, Playpen_Sans_Thai, Playwrite_AR, Playwrite_AR_Guides, Playwrite_AT, Playwrite_AT_Guides, Playwrite_AU_NSW, Playwrite_AU_NSW_Guides, Playwrite_AU_QLD, Playwrite_AU_QLD_Guides, Playwrite_AU_SA, Playwrite_AU_SA_Guides, Playwrite_AU_TAS, Playwrite_AU_TAS_Guides, Playwrite_AU_VIC, Playwrite_AU_VIC_Guides, Playwrite_BE_VLG, Playwrite_BE_VLG_Guides, Playwrite_BE_WAL, Playwrite_BE_WAL_Guides, Playwrite_BR, Playwrite_BR_Guides, Playwrite_CA, Playwrite_CA_Guides, Playwrite_CL, Playwrite_CL_Guides, Playwrite_CO, Playwrite_CO_Guides, Playwrite_CU, Playwrite_CU_Guides, Playwrite_CZ, Playwrite_CZ_Guides, Playwrite_DE_Grund, Playwrite_DE_Grund_Guides, Playwrite_DE_LA, Playwrite_DE_LA_Guides, Playwrite_DE_SAS, Playwrite_DE_SAS_Guides, Playwrite_DE_VA, Playwrite_DE_VA_Guides, Playwrite_DK_Loopet, Playwrite_DK_Loopet_Guides, Playwrite_DK_Uloopet, Playwrite_DK_Uloopet_Guides, Playwrite_ES, Playwrite_ES_Deco, Playwrite_ES_Deco_Guides, Playwrite_ES_Guides, Playwrite_FR_Moderne, Playwrite_FR_Moderne_Guides, Playwrite_FR_Trad, Playwrite_FR_Trad_Guides, Playwrite_GB_J, Playwrite_GB_J_Guides, Playwrite_GB_S, Playwrite_GB_S_Guides, Playwrite_HR, Playwrite_HR_Guides, Playwrite_HR_Lijeva, Playwrite_HR_Lijeva_Guides, Playwrite_HU, Playwrite_HU_Guides, Playwrite_ID, Playwrite_ID_Guides, Playwrite_IE, Playwrite_IE_Guides, Playwrite_IN, Playwrite_IN_Guides, Playwrite_IS, Playwrite_IS_Guides, Playwrite_IT_Moderna, Playwrite_IT_Moderna_Guides, Playwrite_IT_Trad, Playwrite_IT_Trad_Guides, Playwrite_MX, Playwrite_MX_Guides, Playwrite_NG_Modern, Playwrite_NG_Modern_Guides, Playwrite_NL, Playwrite_NL_Guides, Playwrite_NO, Playwrite_NO_Guides, Playwrite_NZ, Playwrite_NZ_Basic, Playwrite_NZ_Basic_Guides, Playwrite_NZ_Guides, Playwrite_PE, Playwrite_PE_Guides, Playwrite_PL, Playwrite_PL_Guides, Playwrite_PT, Playwrite_PT_Guides, Playwrite_RO, Playwrite_RO_Guides, Playwrite_SK, Playwrite_SK_Guides, Playwrite_TZ, Playwrite_TZ_Guides, Playwrite_US_Modern, Playwrite_US_Modern_Guides, Playwrite_US_Trad, Playwrite_US_Trad_Guides, Playwrite_VN, Playwrite_VN_Guides, Playwrite_ZA, Playwrite_ZA_Guides, Plus_Jakarta_Sans, Pochaevsk, Podkova, Poetsen_One, Poiret_One, Poller_One, Poltawski_Nowy, Poly, Pompiere, Ponnala, Ponomar, Pontano_Sans, Poor_Story, Poppins, Port_Lligat_Sans, Port_Lligat_Slab, Potta_One, Pragati_Narrow, Praise, Prata, Preahvihear, Press_Start_2P, Pridi, Princess_Sofia, Prociono, Prompt, Prosto_One, Protest_Guerrilla, Protest_Revolution, Protest_Riot, Protest_Strike, Proza_Libre, Public_Sans, Puppies_Play, Puritan, Purple_Purse, Qahiri, Quando, Quantico, Quattrocento, Quattrocento_Sans, Questrial, Quicksand, Quintessential, Qwigley, Qwitcher_Grypen, REM, Racing_Sans_One, Radio_Canada, Radio_Canada_Big, Radley, Rajdhani, Rakkas, Raleway, Raleway_Dots, Ramabhadra, Ramaraja, Rambla, Rammetto_One, Rampart_One, Ramsina, Ranchers, Rancho, Ranga, Rasa, Rationale, Ravi_Prakash, Readex_Pro, Recursive, Red_Hat_Display, Red_Hat_Mono, Red_Hat_Text, Red_Rose, Redacted, Redacted_Script, Reddit_Mono, Reddit_Sans, Reddit_Sans_Condensed, Redressed, Reem_Kufi, Reem_Kufi_Fun, Reem_Kufi_Ink, Reenie_Beanie, Reggae_One, Rethink_Sans, Revalia, Rhodium_Libre, Ribeye, Ribeye_Marrow, Righteous, Risque, Road_Rage, Roboto, Roboto_Condensed, Roboto_Flex, Roboto_Mono, Roboto_Serif, Roboto_Slab, Rochester, Rock_3D, Rock_Salt, RocknRoll_One, Rokkitt, Romanesco, Ropa_Sans, Rosario, Rosarivo, Rouge_Script, Rowdies, Rozha_One, Rubik, Rubik_80s_Fade, Rubik_Beastly, Rubik_Broken_Fax, Rubik_Bubbles, Rubik_Burned, Rubik_Dirt, Rubik_Distressed, Rubik_Doodle_Shadow, Rubik_Doodle_Triangles, Rubik_Gemstones, Rubik_Glitch, Rubik_Glitch_Pop, Rubik_Iso, Rubik_Lines, Rubik_Maps, Rubik_Marker_Hatch, Rubik_Maze, Rubik_Microbe, Rubik_Mono_One, Rubik_Moonrocks, Rubik_Pixels, Rubik_Puddles, Rubik_Scribble, Rubik_Spray_Paint, Rubik_Storm, Rubik_Vinyl, Rubik_Wet_Paint, Ruda, Rufina, Ruge_Boogie, Ruluko, Rum_Raisin, Ruslan_Display, Russo_One, Ruthie, Ruwudu, Rye, SN_Pro, STIX_Two_Text, SUSE, SUSE_Mono, Sacramento, Sahitya, Sail, Saira, Saira_Condensed, Saira_Extra_Condensed, Saira_Semi_Condensed, Saira_Stencil_One, Salsa, Sanchez, Sancreek, Sankofa_Display, Sansation, Sansita, Sansita_Swashed, Sarabun, Sarala, Sarina, Sarpanch, Sassy_Frass, Satisfy, Savate, Sawarabi_Gothic, Sawarabi_Mincho, Scada, Scheherazade_New, Schibsted_Grotesk, Schoolbell, Science_Gothic, Scope_One, Seaweed_Script, Secular_One, Sedan, Sedan_SC, Sedgwick_Ave, Sedgwick_Ave_Display, Sekuya, Sen, Send_Flowers, Sevillana, Seymour_One, Shadows_Into_Light, Shadows_Into_Light_Two, Shafarik, Shalimar, Shantell_Sans, Shanti, Share, Share_Tech, Share_Tech_Mono, Shippori_Antique, Shippori_Antique_B1, Shippori_Mincho, Shippori_Mincho_B1, Shizuru, Shojumaru, Short_Stack, Shrikhand, Siemreap, Sigmar, Sigmar_One, Signika, Signika_Negative, Silkscreen, Simonetta, Single_Day, Sintony, Sirin_Stencil, Sirivennela, Six_Caps, Sixtyfour, Sixtyfour_Convergence, Skranji, Slabo_13px, Slabo_27px, Slackey, Slackside_One, Smokum, Smooch, Smooch_Sans, Smythe, Sniglet, Snippet, Snowburst_One, Sofadi_One, Sofia, Sofia_Sans, Sofia_Sans_Condensed, Sofia_Sans_Extra_Condensed, Sofia_Sans_Semi_Condensed, Solitreo, Solway, Sometype_Mono, Song_Myung, Sono, Sonsie_One, Sora, Sorts_Mill_Goudy, Sour_Gummy, Source_Code_Pro, Source_Sans_3, Source_Serif_4, Space_Grotesk, Space_Mono, Special_Elite, Special_Gothic, Special_Gothic_Condensed_One, Special_Gothic_Expanded_One, Spectral, Spectral_SC, Spicy_Rice, Spinnaker, Spirax, Splash, Spline_Sans, Spline_Sans_Mono, Squada_One, Square_Peg, Sree_Krushnadevaraya, Sriracha, Srisakdi, Staatliches, Stack_Sans_Headline, Stack_Sans_Notch, Stack_Sans_Text, Stalemate, Stalinist_One, Stardos_Stencil, Stick, Stick_No_Bills, Stint_Ultra_Condensed, Stint_Ultra_Expanded, Stoke, Story_Script, Strait, Style_Script, Stylish, Sue_Ellen_Francisco, Suez_One, Sulphur_Point, Sumana, Sunflower, Sunshiney, Supermercado_One, Sura, Suranna, Suravaram, Suwannaphum, Swanky_and_Moo_Moo, Syncopate, Syne, Syne_Mono, Syne_Tactile, TASA_Explorer, TASA_Orbiter, Tac_One, Tagesschrift, Tai_Heritage_Pro, Tajawal, Tangerine, Tapestry, Taprom, Tauri, Taviraj, Teachers, Teko, Tektur, Telex, Tenali_Ramakrishna, Tenor_Sans, Text_Me_One, Texturina, Thasadith, The_Girl_Next_Door, The_Nautigal, Tienne, TikTok_Sans, Tillana, Tilt_Neon, Tilt_Prism, Tilt_Warp, Timmana, Tinos, Tiny5, Tiro_Bangla, Tiro_Devanagari_Hindi, Tiro_Devanagari_Marathi, Tiro_Devanagari_Sanskrit, Tiro_Gurmukhi, Tiro_Kannada, Tiro_Tamil, Tiro_Telugu, Tirra, Titan_One, Titillium_Web, Tomorrow, Tourney, Trade_Winds, Train_One, Triodion, Trirong, Trispace, Trocchi, Trochut, Truculenta, Trykker, Tsukimi_Rounded, Tuffy, Tulpen_One, Turret_Road, Twinkle_Star, Ubuntu, Ubuntu_Condensed, Ubuntu_Mono, Ubuntu_Sans, Ubuntu_Sans_Mono, Uchen, Ultra, Unbounded, Uncial_Antiqua, Underdog, Unica_One, UnifrakturCook, UnifrakturMaguntia, Unkempt, Unlock, Unna, UoqMunThenKhung, Updock, Urbanist, VT323, Vampiro_One, Varela, Varela_Round, Varta, Vast_Shadow, Vazirmatn, Vend_Sans, Vesper_Libre, Viaoda_Libre, Vibes, Vibur, Victor_Mono, Vidaloka, Viga, Vina_Sans, Voces, Volkhov, Vollkorn, Vollkorn_SC, Voltaire, Vujahday_Script, WDXL_Lubrifont_JP_N, WDXL_Lubrifont_SC, WDXL_Lubrifont_TC, Waiting_for_the_Sunrise, Wallpoet, Walter_Turncoat, Warnes, Water_Brush, Waterfall, Wavefont, Wellfleet, Wendy_One, Whisper, WindSong, Winky_Rough, Winky_Sans, Wire_One, Wittgenstein, Wix_Madefor_Display, Wix_Madefor_Text, Work_Sans, Workbench, Xanh_Mono, Yaldevi, Yanone_Kaffeesatz, Yantramanav, Yarndings_12, Yarndings_12_Charted, Yarndings_20, Yarndings_20_Charted, Yatra_One, Yellowtail, Yeon_Sung, Yeseva_One, Yesteryear, Yomogi, Young_Serif, Yrsa, Ysabeau, Ysabeau_Infant, Ysabeau_Office, Ysabeau_SC, Yuji_Boku, Yuji_Hentaigana_Akari, Yuji_Hentaigana_Akebono, Yuji_Mai, Yuji_Syuku, Yusei_Magic, ZCOOL_KuaiLe, ZCOOL_QingKe_HuangYou, ZCOOL_XiaoWei, Zain, Zalando_Sans, Zalando_Sans_Expanded, Zalando_Sans_SemiExpanded, Zen_Antique, Zen_Antique_Soft, Zen_Dots, Zen_Kaku_Gothic_Antique, Zen_Kaku_Gothic_New, Zen_Kurenaido, Zen_Loop, Zen_Maru_Gothic, Zen_Old_Mincho, Zen_Tokyo_Zoo, Zeyada, Zhi_Mang_Xing, Zilla_Slab, Zilla_Slab_Highlight } from "./font-google.generated.js";
|
|
3
|
-
export { ABeeZee, ADLaM_Display, AR_One_Sans, Abel, Abhaya_Libre, Aboreto, Abril_Fatface, Abyssinica_SIL, Aclonica, Acme, Actor, Adamina, Advent_Pro, Afacad, Afacad_Flux, Agbalumo, Agdasima, Agu_Display, Aguafina_Script, Akatab, Akaya_Kanadaka, Akaya_Telivigala, Akronim, Akshar, Aladin, Alan_Sans, Alata, Alatsi, Albert_Sans, Aldrich, Alef, Alegreya, Alegreya_SC, Alegreya_Sans, Alegreya_Sans_SC, Aleo, Alex_Brush, Alexandria, Alfa_Slab_One, Alice, Alike, Alike_Angular, Alkalami, Alkatra, Allan, Allerta, Allerta_Stencil, Allison, Allkin, Allura, Almarai, Almendra, Almendra_Display, Almendra_SC, Alumni_Sans, Alumni_Sans_Collegiate_One, Alumni_Sans_Inline_One, Alumni_Sans_Pinstripe, Alumni_Sans_SC, Alyamama, Amarante, Amaranth, Amarna, Amatic_SC, Amethysta, Amiko, Amiri, Amiri_Quran, Amita, Anaheim, Ancizar_Sans, Ancizar_Serif, Andada_Pro, Andika, Anek_Bangla, Anek_Devanagari, Anek_Gujarati, Anek_Gurmukhi, Anek_Kannada, Anek_Latin, Anek_Malayalam, Anek_Odia, Anek_Tamil, Anek_Telugu, Angkor, Annapurna_SIL, Annie_Use_Your_Telescope, Anonymous_Pro, Anta, Antic, Antic_Didone, Antic_Slab, Anton, Anton_SC, Antonio, Anuphan, Anybody, Aoboshi_One, Arapey, Arbutus, Arbutus_Slab, Architects_Daughter, Archivo, Archivo_Black, Archivo_Narrow, Are_You_Serious, Aref_Ruqaa, Aref_Ruqaa_Ink, Arima, Arimo, Arizonia, Armata, Arsenal, Arsenal_SC, Artifika, Arvo, Arya, Asap, Asap_Condensed, Asar, Asimovian, Asset, Assistant, Asta_Sans, Astloch, Asul, Athiti, Atkinson_Hyperlegible, Atkinson_Hyperlegible_Mono, Atkinson_Hyperlegible_Next, Atma, Atomic_Age, Aubrey, Audiowide, Autour_One, Average, Average_Sans, Averia_Gruesa_Libre, Averia_Libre, Averia_Sans_Libre, Averia_Serif_Libre, Azeret_Mono, B612, B612_Mono, BBH_Bartle, BBH_Bogle, BBH_Hegarty, BIZ_UDGothic, BIZ_UDMincho, BIZ_UDPGothic, BIZ_UDPMincho, Babylonica, Bacasime_Antique, Bad_Script, Badeen_Display, Bagel_Fat_One, Bahiana, Bahianita, Bai_Jamjuree, Bakbak_One, Ballet, Baloo_2, Baloo_Bhai_2, Baloo_Bhaijaan_2, Baloo_Bhaina_2, Baloo_Chettan_2, Baloo_Da_2, Baloo_Paaji_2, Baloo_Tamma_2, Baloo_Tammudu_2, Baloo_Thambi_2, Balsamiq_Sans, Balthazar, Bangers, Barlow, Barlow_Condensed, Barlow_Semi_Condensed, Barriecito, Barrio, Basic, Baskervville, Baskervville_SC, Battambang, Baumans, Bayon, Be_Vietnam_Pro, Beau_Rivage, Bebas_Neue, Beiruti, Belanosima, Belgrano, Bellefair, Belleza, Bellota, Bellota_Text, BenchNine, Benne, Bentham, Berkshire_Swash, Besley, Betania_Patmos, Betania_Patmos_GDL, Betania_Patmos_In, Betania_Patmos_In_GDL, Beth_Ellen, Bevan, BhuTuka_Expanded_One, Big_Shoulders, Big_Shoulders_Inline, Big_Shoulders_Stencil, Bigelow_Rules, Bigshot_One, Bilbo, Bilbo_Swash_Caps, BioRhyme, BioRhyme_Expanded, Birthstone, Birthstone_Bounce, Biryani, Bitcount, Bitcount_Grid_Double, Bitcount_Grid_Double_Ink, Bitcount_Grid_Single, Bitcount_Grid_Single_Ink, Bitcount_Ink, Bitcount_Prop_Double, Bitcount_Prop_Double_Ink, Bitcount_Prop_Single, Bitcount_Prop_Single_Ink, Bitcount_Single, Bitcount_Single_Ink, Bitter, Black_And_White_Picture, Black_Han_Sans, Black_Ops_One, Blaka, Blaka_Hollow, Blaka_Ink, Blinker, Bodoni_Moda, Bodoni_Moda_SC, Bokor, Boldonse, Bona_Nova, Bona_Nova_SC, Bonbon, Bonheur_Royale, Boogaloo, Borel, Bowlby_One, Bowlby_One_SC, Bpmf_Huninn, Bpmf_Iansui, Bpmf_Zihi_Kai_Std, Braah_One, Brawler, Bree_Serif, Bricolage_Grotesque, Bruno_Ace, Bruno_Ace_SC, Brygada_1918, Bubblegum_Sans, Bubbler_One, Buda, Buenard, Bungee, Bungee_Hairline, Bungee_Inline, Bungee_Outline, Bungee_Shade, Bungee_Spice, Bungee_Tint, Butcherman, Butterfly_Kids, Bytesized, Cabin, Cabin_Condensed, Cabin_Sketch, Cactus_Classical_Serif, Caesar_Dressing, Cagliostro, Cairo, Cairo_Play, Cal_Sans, Caladea, Calistoga, Calligraffitti, Cambay, Cambo, Candal, Cantarell, Cantata_One, Cantora_One, Caprasimo, Capriola, Caramel, Carattere, Cardo, Carlito, Carme, Carrois_Gothic, Carrois_Gothic_SC, Carter_One, Cascadia_Code, Cascadia_Mono, Castoro, Castoro_Titling, Catamaran, Caudex, Cause, Caveat, Caveat_Brush, Cedarville_Cursive, Ceviche_One, Chakra_Petch, Changa, Changa_One, Chango, Charis_SIL, Charm, Charmonman, Chathura, Chau_Philomene_One, Chela_One, Chelsea_Market, Chenla, Cherish, Cherry_Bomb_One, Cherry_Cream_Soda, Cherry_Swash, Chewy, Chicle, Chilanka, Chiron_GoRound_TC, Chiron_Hei_HK, Chiron_Sung_HK, Chivo, Chivo_Mono, Chocolate_Classical_Sans, Chokokutai, Chonburi, Cinzel, Cinzel_Decorative, Clicker_Script, Climate_Crisis, Coda, Codystar, Coiny, Combo, Comfortaa, Comforter, Comforter_Brush, Comic_Neue, Comic_Relief, Coming_Soon, Comme, Commissioner, Concert_One, Condiment, Content, Contrail_One, Convergence, Cookie, Copse, Coral_Pixels, Corben, Corinthia, Cormorant, Cormorant_Garamond, Cormorant_Infant, Cormorant_SC, Cormorant_Unicase, Cormorant_Upright, Cossette_Texte, Cossette_Titre, Courgette, Courier_Prime, Cousine, Coustard, Covered_By_Your_Grace, Crafty_Girls, Creepster, Crete_Round, Crimson_Pro, Crimson_Text, Croissant_One, Crushed, Cuprum, Cute_Font, Cutive, Cutive_Mono, DM_Mono, DM_Sans, DM_Serif_Display, DM_Serif_Text, Dai_Banna_SIL, Damion, Dancing_Script, Danfo, Dangrek, Darker_Grotesque, Darumadrop_One, David_Libre, Dawning_of_a_New_Day, Days_One, Dekko, Dela_Gothic_One, Delicious_Handrawn, Delius, Delius_Swash_Caps, Delius_Unicase, Della_Respira, Denk_One, Devonshire, Dhurjati, Didact_Gothic, Diphylleia, Diplomata, Diplomata_SC, Do_Hyeon, Dokdo, Domine, Donegal_One, Dongle, Doppio_One, Dorsa, Dosis, DotGothic16, Doto, Dr_Sugiyama, Duru_Sans, DynaPuff, Dynalight, EB_Garamond, Eagle_Lake, East_Sea_Dokdo, Eater, Economica, Eczar, Edu_AU_VIC_WA_NT_Arrows, Edu_AU_VIC_WA_NT_Dots, Edu_AU_VIC_WA_NT_Guides, Edu_AU_VIC_WA_NT_Hand, Edu_AU_VIC_WA_NT_Pre, Edu_NSW_ACT_Cursive, Edu_NSW_ACT_Foundation, Edu_NSW_ACT_Hand_Pre, Edu_QLD_Beginner, Edu_QLD_Hand, Edu_SA_Beginner, Edu_SA_Hand, Edu_TAS_Beginner, Edu_VIC_WA_NT_Beginner, Edu_VIC_WA_NT_Hand, Edu_VIC_WA_NT_Hand_Pre, El_Messiri, Electrolize, Elms_Sans, Elsie, Elsie_Swash_Caps, Emblema_One, Emilys_Candy, Encode_Sans, Encode_Sans_Condensed, Encode_Sans_Expanded, Encode_Sans_SC, Encode_Sans_Semi_Condensed, Encode_Sans_Semi_Expanded, Engagement, Englebert, Enriqueta, Ephesis, Epilogue, Epunda_Sans, Epunda_Slab, Erica_One, Esteban, Estonia, Euphoria_Script, Ewert, Exile, Exo, Exo_2, Expletus_Sans, Explora, Faculty_Glyphic, Fahkwang, Familjen_Grotesk, Fanwood_Text, Farro, Farsan, Fascinate, Fascinate_Inline, Faster_One, Fasthand, Fauna_One, Faustina, Federant, Federo, Felipa, Fenix, Festive, Figtree, Finger_Paint, Finlandica, Fira_Code, Fira_Mono, Fira_Sans, Fira_Sans_Condensed, Fira_Sans_Extra_Condensed, Fjalla_One, Fjord_One, Flamenco, Flavors, Fleur_De_Leah, Flow_Block, Flow_Circular, Flow_Rounded, Foldit, Fondamento, Fontdiner_Swanky, Forum, Fragment_Mono, Francois_One, Frank_Ruhl_Libre, Fraunces, Freckle_Face, Fredericka_the_Great, Fredoka, Freehand, Freeman, Fresca, Frijole, Fruktur, Fugaz_One, Fuggles, Funnel_Display, Funnel_Sans, Fustat, Fuzzy_Bubbles, GFS_Didot, GFS_Neohellenic, Ga_Maamli, Gabarito, Gabriela, Gaegu, Gafata, Gajraj_One, Galada, Galdeano, Galindo, Gamja_Flower, Gantari, Gasoek_One, Gayathri, Geist, Geist_Mono, Gelasio, Gemunu_Libre, Genos, Gentium_Book_Plus, Gentium_Plus, Geo, Geologica, Geom, Georama, Geostar, Geostar_Fill, Germania_One, Gideon_Roman, Gidole, Gidugu, Gilda_Display, Girassol, Give_You_Glory, Glass_Antiqua, Glegoo, Gloock, Gloria_Hallelujah, Glory, Gluten, Goblin_One, Gochi_Hand, Goldman, Golos_Text, Google_Sans, Google_Sans_Code, Google_Sans_Flex, Gorditas, Gothic_A1, Gotu, Goudy_Bookletter_1911, Gowun_Batang, Gowun_Dodum, Graduate, Grand_Hotel, Grandiflora_One, Grandstander, Grape_Nuts, Gravitas_One, Great_Vibes, Grechen_Fuemen, Grenze, Grenze_Gotisch, Grey_Qo, Griffy, Gruppo, Gudea, Gugi, Gulzar, Gupter, Gurajada, Gveret_Levin, Gwendolyn, Habibi, Hachi_Maru_Pop, Hahmlet, Halant, Hammersmith_One, Hanalei, Hanalei_Fill, Handjet, Handlee, Hanken_Grotesk, Hanuman, Happy_Monkey, Harmattan, Headland_One, Hedvig_Letters_Sans, Hedvig_Letters_Serif, Heebo, Henny_Penny, Hepta_Slab, Herr_Von_Muellerhoff, Hi_Melody, Hina_Mincho, Hind, Hind_Guntur, Hind_Madurai, Hind_Mysuru, Hind_Siliguri, Hind_Vadodara, Holtwood_One_SC, Homemade_Apple, Homenaje, Honk, Host_Grotesk, Hubballi, Hubot_Sans, Huninn, Hurricane, IBM_Plex_Mono, IBM_Plex_Sans, IBM_Plex_Sans_Arabic, IBM_Plex_Sans_Condensed, IBM_Plex_Sans_Devanagari, IBM_Plex_Sans_Hebrew, IBM_Plex_Sans_JP, IBM_Plex_Sans_KR, IBM_Plex_Sans_Thai, IBM_Plex_Sans_Thai_Looped, IBM_Plex_Serif, IM_Fell_DW_Pica, IM_Fell_DW_Pica_SC, IM_Fell_Double_Pica, IM_Fell_Double_Pica_SC, IM_Fell_English, IM_Fell_English_SC, IM_Fell_French_Canon, IM_Fell_French_Canon_SC, IM_Fell_Great_Primer, IM_Fell_Great_Primer_SC, Iansui, Ibarra_Real_Nova, Iceberg, Iceland, Idiqlat, Imbue, Imperial_Script, Imprima, Inclusive_Sans, Inconsolata, Inder, Indie_Flower, Ingrid_Darling, Inika, Inknut_Antiqua, Inria_Sans, Inria_Serif, Inspiration, Instrument_Sans, Instrument_Serif, Intel_One_Mono, Inter, Inter_Tight, Irish_Grover, Island_Moments, Istok_Web, Italiana, Italianno, Itim, Jacquard_12, Jacquard_12_Charted, Jacquard_24, Jacquard_24_Charted, Jacquarda_Bastarda_9, Jacquarda_Bastarda_9_Charted, Jacques_Francois, Jacques_Francois_Shadow, Jaini, Jaini_Purva, Jaldi, Jaro, Jersey_10, Jersey_10_Charted, Jersey_15, Jersey_15_Charted, Jersey_20, Jersey_20_Charted, Jersey_25, Jersey_25_Charted, JetBrains_Mono, Jim_Nightshade, Joan, Jockey_One, Jolly_Lodger, Jomhuria, Jomolhari, Josefin_Sans, Josefin_Slab, Jost, Joti_One, Jua, Judson, Julee, Julius_Sans_One, Junge, Jura, Just_Another_Hand, Just_Me_Again_Down_Here, K2D, Kablammo, Kadwa, Kaisei_Decol, Kaisei_HarunoUmi, Kaisei_Opti, Kaisei_Tokumin, Kalam, Kalnia, Kalnia_Glaze, Kameron, Kanchenjunga, Kanit, Kantumruy_Pro, Kapakana, Karantina, Karla, Karla_Tamil_Inclined, Karla_Tamil_Upright, Karma, Katibeh, Kaushan_Script, Kavivanar, Kavoon, Kay_Pho_Du, Kdam_Thmor_Pro, Keania_One, Kedebideri, Kelly_Slab, Kenia, Khand, Khmer, Khula, Kings, Kirang_Haerang, Kite_One, Kiwi_Maru, Klee_One, Knewave, KoHo, Kodchasan, Kode_Mono, Koh_Santepheap, Kolker_Brush, Konkhmer_Sleokchher, Kosugi, Kosugi_Maru, Kotta_One, Koulen, Kranky, Kreon, Kristi, Krona_One, Krub, Kufam, Kulim_Park, Kumar_One, Kumar_One_Outline, Kumbh_Sans, Kurale, LINE_Seed_JP, LXGW_Marker_Gothic, LXGW_WenKai_Mono_TC, LXGW_WenKai_TC, La_Belle_Aurore, Labrada, Lacquer, Laila, Lakki_Reddy, Lalezar, Lancelot, Langar, Lateef, Lato, Lavishly_Yours, League_Gothic, League_Script, League_Spartan, Leckerli_One, Ledger, Lekton, Lemon, Lemonada, Lexend, Lexend_Deca, Lexend_Exa, Lexend_Giga, Lexend_Mega, Lexend_Peta, Lexend_Tera, Lexend_Zetta, Libertinus_Keyboard, Libertinus_Math, Libertinus_Mono, Libertinus_Sans, Libertinus_Serif, Libertinus_Serif_Display, Libre_Barcode_128, Libre_Barcode_128_Text, Libre_Barcode_39, Libre_Barcode_39_Extended, Libre_Barcode_39_Extended_Text, Libre_Barcode_39_Text, Libre_Barcode_EAN13_Text, Libre_Baskerville, Libre_Bodoni, Libre_Caslon_Display, Libre_Caslon_Text, Libre_Franklin, Licorice, Life_Savers, Lilex, Lilita_One, Lily_Script_One, Limelight, Linden_Hill, Linefont, Lisu_Bosa, Liter, Literata, Liu_Jian_Mao_Cao, Livvic, Lobster, Lobster_Two, Londrina_Outline, Londrina_Shadow, Londrina_Sketch, Londrina_Solid, Long_Cang, Lora, Love_Light, Love_Ya_Like_A_Sister, Loved_by_the_King, Lovers_Quarrel, Luckiest_Guy, Lugrasimo, Lumanosimo, Lunasima, Lusitana, Lustria, Luxurious_Roman, Luxurious_Script, M_PLUS_1, M_PLUS_1_Code, M_PLUS_1p, M_PLUS_2, M_PLUS_Code_Latin, M_PLUS_Rounded_1c, Ma_Shan_Zheng, Macondo, Macondo_Swash_Caps, Mada, Madimi_One, Magra, Maiden_Orange, Maitree, Major_Mono_Display, Mako, Mali, Mallanna, Maname, Mandali, Manjari, Manrope, Mansalva, Manuale, Manufacturing_Consent, Marcellus, Marcellus_SC, Marck_Script, Margarine, Marhey, Markazi_Text, Marko_One, Marmelad, Martel, Martel_Sans, Martian_Mono, Marvel, Matangi, Mate, Mate_SC, Matemasie, Maven_Pro, McLaren, Mea_Culpa, Meddon, MedievalSharp, Medula_One, Meera_Inimai, Megrim, Meie_Script, Menbere, Meow_Script, Merienda, Merriweather, Merriweather_Sans, Metal, Metal_Mania, Metamorphous, Metrophobic, Michroma, Micro_5, Micro_5_Charted, Milonga, Miltonian, Miltonian_Tattoo, Mina, Mingzat, Miniver, Miriam_Libre, Mirza, Miss_Fajardose, Mitr, Mochiy_Pop_One, Mochiy_Pop_P_One, Modak, Modern_Antiqua, Moderustic, Mogra, Mohave, Moirai_One, Molengo, Molle, Momo_Signature, Momo_Trust_Display, Momo_Trust_Sans, Mona_Sans, Monda, Monofett, Monomakh, Monomaniac_One, Monoton, Monsieur_La_Doulaise, Montaga, Montagu_Slab, MonteCarlo, Montez, Montserrat, Montserrat_Alternates, Montserrat_Underline, Moo_Lah_Lah, Mooli, Moon_Dance, Moul, Moulpali, Mountains_of_Christmas, Mouse_Memoirs, Mozilla_Headline, Mozilla_Text, Mr_Bedfort, Mr_Dafoe, Mr_De_Haviland, Mrs_Saint_Delafield, Mrs_Sheppards, Ms_Madi, Mukta, Mukta_Mahee, Mukta_Malar, Mukta_Vaani, Mulish, Murecho, MuseoModerno, My_Soul, Mynerve, Mystery_Quest, NTR, Nabla, Namdhinggo, Nanum_Brush_Script, Nanum_Gothic, Nanum_Gothic_Coding, Nanum_Myeongjo, Nanum_Pen_Script, Narnoor, Nata_Sans, National_Park, Neonderthaw, Nerko_One, Neucha, Neuton, New_Amsterdam, New_Rocker, New_Tegomin, News_Cycle, Newsreader, Niconne, Niramit, Nixie_One, Nobile, Nokora, Norican, Nosifer, Notable, Nothing_You_Could_Do, Noticia_Text, Noto_Color_Emoji, Noto_Emoji, Noto_Kufi_Arabic, Noto_Music, Noto_Naskh_Arabic, Noto_Nastaliq_Urdu, Noto_Rashi_Hebrew, Noto_Sans, Noto_Sans_Adlam, Noto_Sans_Adlam_Unjoined, Noto_Sans_Anatolian_Hieroglyphs, Noto_Sans_Arabic, Noto_Sans_Armenian, Noto_Sans_Avestan, Noto_Sans_Balinese, Noto_Sans_Bamum, Noto_Sans_Bassa_Vah, Noto_Sans_Batak, Noto_Sans_Bengali, Noto_Sans_Bhaiksuki, Noto_Sans_Brahmi, Noto_Sans_Buginese, Noto_Sans_Buhid, Noto_Sans_Canadian_Aboriginal, Noto_Sans_Carian, Noto_Sans_Caucasian_Albanian, Noto_Sans_Chakma, Noto_Sans_Cham, Noto_Sans_Cherokee, Noto_Sans_Chorasmian, Noto_Sans_Coptic, Noto_Sans_Cuneiform, Noto_Sans_Cypriot, Noto_Sans_Cypro_Minoan, Noto_Sans_Deseret, Noto_Sans_Devanagari, Noto_Sans_Display, Noto_Sans_Duployan, Noto_Sans_Egyptian_Hieroglyphs, Noto_Sans_Elbasan, Noto_Sans_Elymaic, Noto_Sans_Ethiopic, Noto_Sans_Georgian, Noto_Sans_Glagolitic, Noto_Sans_Gothic, Noto_Sans_Grantha, Noto_Sans_Gujarati, Noto_Sans_Gunjala_Gondi, Noto_Sans_Gurmukhi, Noto_Sans_HK, Noto_Sans_Hanifi_Rohingya, Noto_Sans_Hanunoo, Noto_Sans_Hatran, Noto_Sans_Hebrew, Noto_Sans_Imperial_Aramaic, Noto_Sans_Indic_Siyaq_Numbers, Noto_Sans_Inscriptional_Pahlavi, Noto_Sans_Inscriptional_Parthian, Noto_Sans_JP, Noto_Sans_Javanese, Noto_Sans_KR, Noto_Sans_Kaithi, Noto_Sans_Kannada, Noto_Sans_Kawi, Noto_Sans_Kayah_Li, Noto_Sans_Kharoshthi, Noto_Sans_Khmer, Noto_Sans_Khojki, Noto_Sans_Khudawadi, Noto_Sans_Lao, Noto_Sans_Lao_Looped, Noto_Sans_Lepcha, Noto_Sans_Limbu, Noto_Sans_Linear_A, Noto_Sans_Linear_B, Noto_Sans_Lisu, Noto_Sans_Lycian, Noto_Sans_Lydian, Noto_Sans_Mahajani, Noto_Sans_Malayalam, Noto_Sans_Mandaic, Noto_Sans_Manichaean, Noto_Sans_Marchen, Noto_Sans_Masaram_Gondi, Noto_Sans_Math, Noto_Sans_Mayan_Numerals, Noto_Sans_Medefaidrin, Noto_Sans_Meetei_Mayek, Noto_Sans_Mende_Kikakui, Noto_Sans_Meroitic, Noto_Sans_Miao, Noto_Sans_Modi, Noto_Sans_Mongolian, Noto_Sans_Mono, Noto_Sans_Mro, Noto_Sans_Multani, Noto_Sans_Myanmar, Noto_Sans_NKo, Noto_Sans_NKo_Unjoined, Noto_Sans_Nabataean, Noto_Sans_Nag_Mundari, Noto_Sans_Nandinagari, Noto_Sans_New_Tai_Lue, Noto_Sans_Newa, Noto_Sans_Nushu, Noto_Sans_Ogham, Noto_Sans_Ol_Chiki, Noto_Sans_Old_Hungarian, Noto_Sans_Old_Italic, Noto_Sans_Old_North_Arabian, Noto_Sans_Old_Permic, Noto_Sans_Old_Persian, Noto_Sans_Old_Sogdian, Noto_Sans_Old_South_Arabian, Noto_Sans_Old_Turkic, Noto_Sans_Oriya, Noto_Sans_Osage, Noto_Sans_Osmanya, Noto_Sans_Pahawh_Hmong, Noto_Sans_Palmyrene, Noto_Sans_Pau_Cin_Hau, Noto_Sans_PhagsPa, Noto_Sans_Phoenician, Noto_Sans_Psalter_Pahlavi, Noto_Sans_Rejang, Noto_Sans_Runic, Noto_Sans_SC, Noto_Sans_Samaritan, Noto_Sans_Saurashtra, Noto_Sans_Sharada, Noto_Sans_Shavian, Noto_Sans_Siddham, Noto_Sans_SignWriting, Noto_Sans_Sinhala, Noto_Sans_Sogdian, Noto_Sans_Sora_Sompeng, Noto_Sans_Soyombo, Noto_Sans_Sundanese, Noto_Sans_Sunuwar, Noto_Sans_Syloti_Nagri, Noto_Sans_Symbols, Noto_Sans_Symbols_2, Noto_Sans_Syriac, Noto_Sans_Syriac_Eastern, Noto_Sans_Syriac_Western, Noto_Sans_TC, Noto_Sans_Tagalog, Noto_Sans_Tagbanwa, Noto_Sans_Tai_Le, Noto_Sans_Tai_Tham, Noto_Sans_Tai_Viet, Noto_Sans_Takri, Noto_Sans_Tamil, Noto_Sans_Tamil_Supplement, Noto_Sans_Tangsa, Noto_Sans_Telugu, Noto_Sans_Thaana, Noto_Sans_Thai, Noto_Sans_Thai_Looped, Noto_Sans_Tifinagh, Noto_Sans_Tirhuta, Noto_Sans_Ugaritic, Noto_Sans_Vai, Noto_Sans_Vithkuqi, Noto_Sans_Wancho, Noto_Sans_Warang_Citi, Noto_Sans_Yi, Noto_Sans_Zanabazar_Square, Noto_Serif, Noto_Serif_Ahom, Noto_Serif_Armenian, Noto_Serif_Balinese, Noto_Serif_Bengali, Noto_Serif_Devanagari, Noto_Serif_Display, Noto_Serif_Dives_Akuru, Noto_Serif_Dogra, Noto_Serif_Ethiopic, Noto_Serif_Georgian, Noto_Serif_Grantha, Noto_Serif_Gujarati, Noto_Serif_Gurmukhi, Noto_Serif_HK, Noto_Serif_Hebrew, Noto_Serif_Hentaigana, Noto_Serif_JP, Noto_Serif_KR, Noto_Serif_Kannada, Noto_Serif_Khitan_Small_Script, Noto_Serif_Khmer, Noto_Serif_Khojki, Noto_Serif_Lao, Noto_Serif_Makasar, Noto_Serif_Malayalam, Noto_Serif_Myanmar, Noto_Serif_NP_Hmong, Noto_Serif_Old_Uyghur, Noto_Serif_Oriya, Noto_Serif_Ottoman_Siyaq, Noto_Serif_SC, Noto_Serif_Sinhala, Noto_Serif_TC, Noto_Serif_Tamil, Noto_Serif_Tangut, Noto_Serif_Telugu, Noto_Serif_Thai, Noto_Serif_Tibetan, Noto_Serif_Todhri, Noto_Serif_Toto, Noto_Serif_Vithkuqi, Noto_Serif_Yezidi, Noto_Traditional_Nushu, Noto_Znamenny_Musical_Notation, Nova_Cut, Nova_Flat, Nova_Mono, Nova_Oval, Nova_Round, Nova_Script, Nova_Slim, Nova_Square, Numans, Nunito, Nunito_Sans, Nuosu_SIL, Odibee_Sans, Odor_Mean_Chey, Offside, Oi, Ojuju, Old_Standard_TT, Oldenburg, Ole, Oleo_Script, Oleo_Script_Swash_Caps, Onest, Oooh_Baby, Open_Sans, Oranienbaum, Orbit, Orbitron, Oregano, Orelega_One, Orienta, Original_Surfer, Oswald, Outfit, Over_the_Rainbow, Overlock, Overlock_SC, Overpass, Overpass_Mono, Ovo, Oxanium, Oxygen, Oxygen_Mono, PT_Mono, PT_Sans, PT_Sans_Caption, PT_Sans_Narrow, PT_Serif, PT_Serif_Caption, Pacifico, Padauk, Padyakke_Expanded_One, Palanquin, Palanquin_Dark, Palette_Mosaic, Pangolin, Paprika, Parastoo, Parisienne, Parkinsans, Passero_One, Passion_One, Passions_Conflict, Pathway_Extreme, Pathway_Gothic_One, Patrick_Hand, Patrick_Hand_SC, Pattaya, Patua_One, Pavanam, Paytone_One, Peddana, Peralta, Permanent_Marker, Petemoss, Petit_Formal_Script, Petrona, Phetsarath, Philosopher, Phudu, Piazzolla, Piedra, Pinyon_Script, Pirata_One, Pixelify_Sans, Plaster, Platypi, Play, Playball, Playfair, Playfair_Display, Playfair_Display_SC, Playpen_Sans, Playpen_Sans_Arabic, Playpen_Sans_Deva, Playpen_Sans_Hebrew, Playpen_Sans_Thai, Playwrite_AR, Playwrite_AR_Guides, Playwrite_AT, Playwrite_AT_Guides, Playwrite_AU_NSW, Playwrite_AU_NSW_Guides, Playwrite_AU_QLD, Playwrite_AU_QLD_Guides, Playwrite_AU_SA, Playwrite_AU_SA_Guides, Playwrite_AU_TAS, Playwrite_AU_TAS_Guides, Playwrite_AU_VIC, Playwrite_AU_VIC_Guides, Playwrite_BE_VLG, Playwrite_BE_VLG_Guides, Playwrite_BE_WAL, Playwrite_BE_WAL_Guides, Playwrite_BR, Playwrite_BR_Guides, Playwrite_CA, Playwrite_CA_Guides, Playwrite_CL, Playwrite_CL_Guides, Playwrite_CO, Playwrite_CO_Guides, Playwrite_CU, Playwrite_CU_Guides, Playwrite_CZ, Playwrite_CZ_Guides, Playwrite_DE_Grund, Playwrite_DE_Grund_Guides, Playwrite_DE_LA, Playwrite_DE_LA_Guides, Playwrite_DE_SAS, Playwrite_DE_SAS_Guides, Playwrite_DE_VA, Playwrite_DE_VA_Guides, Playwrite_DK_Loopet, Playwrite_DK_Loopet_Guides, Playwrite_DK_Uloopet, Playwrite_DK_Uloopet_Guides, Playwrite_ES, Playwrite_ES_Deco, Playwrite_ES_Deco_Guides, Playwrite_ES_Guides, Playwrite_FR_Moderne, Playwrite_FR_Moderne_Guides, Playwrite_FR_Trad, Playwrite_FR_Trad_Guides, Playwrite_GB_J, Playwrite_GB_J_Guides, Playwrite_GB_S, Playwrite_GB_S_Guides, Playwrite_HR, Playwrite_HR_Guides, Playwrite_HR_Lijeva, Playwrite_HR_Lijeva_Guides, Playwrite_HU, Playwrite_HU_Guides, Playwrite_ID, Playwrite_ID_Guides, Playwrite_IE, Playwrite_IE_Guides, Playwrite_IN, Playwrite_IN_Guides, Playwrite_IS, Playwrite_IS_Guides, Playwrite_IT_Moderna, Playwrite_IT_Moderna_Guides, Playwrite_IT_Trad, Playwrite_IT_Trad_Guides, Playwrite_MX, Playwrite_MX_Guides, Playwrite_NG_Modern, Playwrite_NG_Modern_Guides, Playwrite_NL, Playwrite_NL_Guides, Playwrite_NO, Playwrite_NO_Guides, Playwrite_NZ, Playwrite_NZ_Basic, Playwrite_NZ_Basic_Guides, Playwrite_NZ_Guides, Playwrite_PE, Playwrite_PE_Guides, Playwrite_PL, Playwrite_PL_Guides, Playwrite_PT, Playwrite_PT_Guides, Playwrite_RO, Playwrite_RO_Guides, Playwrite_SK, Playwrite_SK_Guides, Playwrite_TZ, Playwrite_TZ_Guides, Playwrite_US_Modern, Playwrite_US_Modern_Guides, Playwrite_US_Trad, Playwrite_US_Trad_Guides, Playwrite_VN, Playwrite_VN_Guides, Playwrite_ZA, Playwrite_ZA_Guides, Plus_Jakarta_Sans, Pochaevsk, Podkova, Poetsen_One, Poiret_One, Poller_One, Poltawski_Nowy, Poly, Pompiere, Ponnala, Ponomar, Pontano_Sans, Poor_Story, Poppins, Port_Lligat_Sans, Port_Lligat_Slab, Potta_One, Pragati_Narrow, Praise, Prata, Preahvihear, Press_Start_2P, Pridi, Princess_Sofia, Prociono, Prompt, Prosto_One, Protest_Guerrilla, Protest_Revolution, Protest_Riot, Protest_Strike, Proza_Libre, Public_Sans, Puppies_Play, Puritan, Purple_Purse, Qahiri, Quando, Quantico, Quattrocento, Quattrocento_Sans, Questrial, Quicksand, Quintessential, Qwigley, Qwitcher_Grypen, REM, Racing_Sans_One, Radio_Canada, Radio_Canada_Big, Radley, Rajdhani, Rakkas, Raleway, Raleway_Dots, Ramabhadra, Ramaraja, Rambla, Rammetto_One, Rampart_One, Ramsina, Ranchers, Rancho, Ranga, Rasa, Rationale, Ravi_Prakash, Readex_Pro, Recursive, Red_Hat_Display, Red_Hat_Mono, Red_Hat_Text, Red_Rose, Redacted, Redacted_Script, Reddit_Mono, Reddit_Sans, Reddit_Sans_Condensed, Redressed, Reem_Kufi, Reem_Kufi_Fun, Reem_Kufi_Ink, Reenie_Beanie, Reggae_One, Rethink_Sans, Revalia, Rhodium_Libre, Ribeye, Ribeye_Marrow, Righteous, Risque, Road_Rage, Roboto, Roboto_Condensed, Roboto_Flex, Roboto_Mono, Roboto_Serif, Roboto_Slab, Rochester, Rock_3D, Rock_Salt, RocknRoll_One, Rokkitt, Romanesco, Ropa_Sans, Rosario, Rosarivo, Rouge_Script, Rowdies, Rozha_One, Rubik, Rubik_80s_Fade, Rubik_Beastly, Rubik_Broken_Fax, Rubik_Bubbles, Rubik_Burned, Rubik_Dirt, Rubik_Distressed, Rubik_Doodle_Shadow, Rubik_Doodle_Triangles, Rubik_Gemstones, Rubik_Glitch, Rubik_Glitch_Pop, Rubik_Iso, Rubik_Lines, Rubik_Maps, Rubik_Marker_Hatch, Rubik_Maze, Rubik_Microbe, Rubik_Mono_One, Rubik_Moonrocks, Rubik_Pixels, Rubik_Puddles, Rubik_Scribble, Rubik_Spray_Paint, Rubik_Storm, Rubik_Vinyl, Rubik_Wet_Paint, Ruda, Rufina, Ruge_Boogie, Ruluko, Rum_Raisin, Ruslan_Display, Russo_One, Ruthie, Ruwudu, Rye, SN_Pro, STIX_Two_Text, SUSE, SUSE_Mono, Sacramento, Sahitya, Sail, Saira, Saira_Condensed, Saira_Extra_Condensed, Saira_Semi_Condensed, Saira_Stencil_One, Salsa, Sanchez, Sancreek, Sankofa_Display, Sansation, Sansita, Sansita_Swashed, Sarabun, Sarala, Sarina, Sarpanch, Sassy_Frass, Satisfy, Savate, Sawarabi_Gothic, Sawarabi_Mincho, Scada, Scheherazade_New, Schibsted_Grotesk, Schoolbell, Science_Gothic, Scope_One, Seaweed_Script, Secular_One, Sedan, Sedan_SC, Sedgwick_Ave, Sedgwick_Ave_Display, Sekuya, Sen, Send_Flowers, Sevillana, Seymour_One, Shadows_Into_Light, Shadows_Into_Light_Two, Shafarik, Shalimar, Shantell_Sans, Shanti, Share, Share_Tech, Share_Tech_Mono, Shippori_Antique, Shippori_Antique_B1, Shippori_Mincho, Shippori_Mincho_B1, Shizuru, Shojumaru, Short_Stack, Shrikhand, Siemreap, Sigmar, Sigmar_One, Signika, Signika_Negative, Silkscreen, Simonetta, Single_Day, Sintony, Sirin_Stencil, Sirivennela, Six_Caps, Sixtyfour, Sixtyfour_Convergence, Skranji, Slabo_13px, Slabo_27px, Slackey, Slackside_One, Smokum, Smooch, Smooch_Sans, Smythe, Sniglet, Snippet, Snowburst_One, Sofadi_One, Sofia, Sofia_Sans, Sofia_Sans_Condensed, Sofia_Sans_Extra_Condensed, Sofia_Sans_Semi_Condensed, Solitreo, Solway, Sometype_Mono, Song_Myung, Sono, Sonsie_One, Sora, Sorts_Mill_Goudy, Sour_Gummy, Source_Code_Pro, Source_Sans_3, Source_Serif_4, Space_Grotesk, Space_Mono, Special_Elite, Special_Gothic, Special_Gothic_Condensed_One, Special_Gothic_Expanded_One, Spectral, Spectral_SC, Spicy_Rice, Spinnaker, Spirax, Splash, Spline_Sans, Spline_Sans_Mono, Squada_One, Square_Peg, Sree_Krushnadevaraya, Sriracha, Srisakdi, Staatliches, Stack_Sans_Headline, Stack_Sans_Notch, Stack_Sans_Text, Stalemate, Stalinist_One, Stardos_Stencil, Stick, Stick_No_Bills, Stint_Ultra_Condensed, Stint_Ultra_Expanded, Stoke, Story_Script, Strait, Style_Script, Stylish, Sue_Ellen_Francisco, Suez_One, Sulphur_Point, Sumana, Sunflower, Sunshiney, Supermercado_One, Sura, Suranna, Suravaram, Suwannaphum, Swanky_and_Moo_Moo, Syncopate, Syne, Syne_Mono, Syne_Tactile, TASA_Explorer, TASA_Orbiter, Tac_One, Tagesschrift, Tai_Heritage_Pro, Tajawal, Tangerine, Tapestry, Taprom, Tauri, Taviraj, Teachers, Teko, Tektur, Telex, Tenali_Ramakrishna, Tenor_Sans, Text_Me_One, Texturina, Thasadith, The_Girl_Next_Door, The_Nautigal, Tienne, TikTok_Sans, Tillana, Tilt_Neon, Tilt_Prism, Tilt_Warp, Timmana, Tinos, Tiny5, Tiro_Bangla, Tiro_Devanagari_Hindi, Tiro_Devanagari_Marathi, Tiro_Devanagari_Sanskrit, Tiro_Gurmukhi, Tiro_Kannada, Tiro_Tamil, Tiro_Telugu, Tirra, Titan_One, Titillium_Web, Tomorrow, Tourney, Trade_Winds, Train_One, Triodion, Trirong, Trispace, Trocchi, Trochut, Truculenta, Trykker, Tsukimi_Rounded, Tuffy, Tulpen_One, Turret_Road, Twinkle_Star, Ubuntu, Ubuntu_Condensed, Ubuntu_Mono, Ubuntu_Sans, Ubuntu_Sans_Mono, Uchen, Ultra, Unbounded, Uncial_Antiqua, Underdog, Unica_One, UnifrakturCook, UnifrakturMaguntia, Unkempt, Unlock, Unna, UoqMunThenKhung, Updock, Urbanist, VT323, Vampiro_One, Varela, Varela_Round, Varta, Vast_Shadow, Vazirmatn, Vend_Sans, Vesper_Libre, Viaoda_Libre, Vibes, Vibur, Victor_Mono, Vidaloka, Viga, Vina_Sans, Voces, Volkhov, Vollkorn, Vollkorn_SC, Voltaire, Vujahday_Script, WDXL_Lubrifont_JP_N, WDXL_Lubrifont_SC, WDXL_Lubrifont_TC, Waiting_for_the_Sunrise, Wallpoet, Walter_Turncoat, Warnes, Water_Brush, Waterfall, Wavefont, Wellfleet, Wendy_One, Whisper, WindSong, Winky_Rough, Winky_Sans, Wire_One, Wittgenstein, Wix_Madefor_Display, Wix_Madefor_Text, Work_Sans, Workbench, Xanh_Mono, Yaldevi, Yanone_Kaffeesatz, Yantramanav, Yarndings_12, Yarndings_12_Charted, Yarndings_20, Yarndings_20_Charted, Yatra_One, Yellowtail, Yeon_Sung, Yeseva_One, Yesteryear, Yomogi, Young_Serif, Yrsa, Ysabeau, Ysabeau_Infant, Ysabeau_Office, Ysabeau_SC, Yuji_Boku, Yuji_Hentaigana_Akari, Yuji_Hentaigana_Akebono, Yuji_Mai, Yuji_Syuku, Yusei_Magic, ZCOOL_KuaiLe, ZCOOL_QingKe_HuangYou, ZCOOL_XiaoWei, Zain, Zalando_Sans, Zalando_Sans_Expanded, Zalando_Sans_SemiExpanded, Zen_Antique, Zen_Antique_Soft, Zen_Dots, Zen_Kaku_Gothic_Antique, Zen_Kaku_Gothic_New, Zen_Kurenaido, Zen_Loop, Zen_Maru_Gothic, Zen_Old_Mincho, Zen_Tokyo_Zoo, Zeyada, Zhi_Mang_Xing, Zilla_Slab, Zilla_Slab_Highlight, buildGoogleFontsUrl, googleFonts as default, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles };
|
|
1
|
+
import googleFonts, { buildGoogleFontsUrl, createFontLoader, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles } from "./font-google-base.js";
|
|
2
|
+
export { buildGoogleFontsUrl, createFontLoader, googleFonts as default, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles };
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import googleFonts, { buildGoogleFontsUrl, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles } from "./font-google-base.js";
|
|
2
|
-
import { ABeeZee, ADLaM_Display, AR_One_Sans, Abel, Abhaya_Libre, Aboreto, Abril_Fatface, Abyssinica_SIL, Aclonica, Acme, Actor, Adamina, Advent_Pro, Afacad, Afacad_Flux, Agbalumo, Agdasima, Agu_Display, Aguafina_Script, Akatab, Akaya_Kanadaka, Akaya_Telivigala, Akronim, Akshar, Aladin, Alan_Sans, Alata, Alatsi, Albert_Sans, Aldrich, Alef, Alegreya, Alegreya_SC, Alegreya_Sans, Alegreya_Sans_SC, Aleo, Alex_Brush, Alexandria, Alfa_Slab_One, Alice, Alike, Alike_Angular, Alkalami, Alkatra, Allan, Allerta, Allerta_Stencil, Allison, Allkin, Allura, Almarai, Almendra, Almendra_Display, Almendra_SC, Alumni_Sans, Alumni_Sans_Collegiate_One, Alumni_Sans_Inline_One, Alumni_Sans_Pinstripe, Alumni_Sans_SC, Alyamama, Amarante, Amaranth, Amarna, Amatic_SC, Amethysta, Amiko, Amiri, Amiri_Quran, Amita, Anaheim, Ancizar_Sans, Ancizar_Serif, Andada_Pro, Andika, Anek_Bangla, Anek_Devanagari, Anek_Gujarati, Anek_Gurmukhi, Anek_Kannada, Anek_Latin, Anek_Malayalam, Anek_Odia, Anek_Tamil, Anek_Telugu, Angkor, Annapurna_SIL, Annie_Use_Your_Telescope, Anonymous_Pro, Anta, Antic, Antic_Didone, Antic_Slab, Anton, Anton_SC, Antonio, Anuphan, Anybody, Aoboshi_One, Arapey, Arbutus, Arbutus_Slab, Architects_Daughter, Archivo, Archivo_Black, Archivo_Narrow, Are_You_Serious, Aref_Ruqaa, Aref_Ruqaa_Ink, Arima, Arimo, Arizonia, Armata, Arsenal, Arsenal_SC, Artifika, Arvo, Arya, Asap, Asap_Condensed, Asar, Asimovian, Asset, Assistant, Asta_Sans, Astloch, Asul, Athiti, Atkinson_Hyperlegible, Atkinson_Hyperlegible_Mono, Atkinson_Hyperlegible_Next, Atma, Atomic_Age, Aubrey, Audiowide, Autour_One, Average, Average_Sans, Averia_Gruesa_Libre, Averia_Libre, Averia_Sans_Libre, Averia_Serif_Libre, Azeret_Mono, B612, B612_Mono, BBH_Bartle, BBH_Bogle, BBH_Hegarty, BIZ_UDGothic, BIZ_UDMincho, BIZ_UDPGothic, BIZ_UDPMincho, Babylonica, Bacasime_Antique, Bad_Script, Badeen_Display, Bagel_Fat_One, Bahiana, Bahianita, Bai_Jamjuree, Bakbak_One, Ballet, Baloo_2, Baloo_Bhai_2, Baloo_Bhaijaan_2, Baloo_Bhaina_2, Baloo_Chettan_2, Baloo_Da_2, Baloo_Paaji_2, Baloo_Tamma_2, Baloo_Tammudu_2, Baloo_Thambi_2, Balsamiq_Sans, Balthazar, Bangers, Barlow, Barlow_Condensed, Barlow_Semi_Condensed, Barriecito, Barrio, Basic, Baskervville, Baskervville_SC, Battambang, Baumans, Bayon, Be_Vietnam_Pro, Beau_Rivage, Bebas_Neue, Beiruti, Belanosima, Belgrano, Bellefair, Belleza, Bellota, Bellota_Text, BenchNine, Benne, Bentham, Berkshire_Swash, Besley, Betania_Patmos, Betania_Patmos_GDL, Betania_Patmos_In, Betania_Patmos_In_GDL, Beth_Ellen, Bevan, BhuTuka_Expanded_One, Big_Shoulders, Big_Shoulders_Inline, Big_Shoulders_Stencil, Bigelow_Rules, Bigshot_One, Bilbo, Bilbo_Swash_Caps, BioRhyme, BioRhyme_Expanded, Birthstone, Birthstone_Bounce, Biryani, Bitcount, Bitcount_Grid_Double, Bitcount_Grid_Double_Ink, Bitcount_Grid_Single, Bitcount_Grid_Single_Ink, Bitcount_Ink, Bitcount_Prop_Double, Bitcount_Prop_Double_Ink, Bitcount_Prop_Single, Bitcount_Prop_Single_Ink, Bitcount_Single, Bitcount_Single_Ink, Bitter, Black_And_White_Picture, Black_Han_Sans, Black_Ops_One, Blaka, Blaka_Hollow, Blaka_Ink, Blinker, Bodoni_Moda, Bodoni_Moda_SC, Bokor, Boldonse, Bona_Nova, Bona_Nova_SC, Bonbon, Bonheur_Royale, Boogaloo, Borel, Bowlby_One, Bowlby_One_SC, Bpmf_Huninn, Bpmf_Iansui, Bpmf_Zihi_Kai_Std, Braah_One, Brawler, Bree_Serif, Bricolage_Grotesque, Bruno_Ace, Bruno_Ace_SC, Brygada_1918, Bubblegum_Sans, Bubbler_One, Buda, Buenard, Bungee, Bungee_Hairline, Bungee_Inline, Bungee_Outline, Bungee_Shade, Bungee_Spice, Bungee_Tint, Butcherman, Butterfly_Kids, Bytesized, Cabin, Cabin_Condensed, Cabin_Sketch, Cactus_Classical_Serif, Caesar_Dressing, Cagliostro, Cairo, Cairo_Play, Cal_Sans, Caladea, Calistoga, Calligraffitti, Cambay, Cambo, Candal, Cantarell, Cantata_One, Cantora_One, Caprasimo, Capriola, Caramel, Carattere, Cardo, Carlito, Carme, Carrois_Gothic, Carrois_Gothic_SC, Carter_One, Cascadia_Code, Cascadia_Mono, Castoro, Castoro_Titling, Catamaran, Caudex, Cause, Caveat, Caveat_Brush, Cedarville_Cursive, Ceviche_One, Chakra_Petch, Changa, Changa_One, Chango, Charis_SIL, Charm, Charmonman, Chathura, Chau_Philomene_One, Chela_One, Chelsea_Market, Chenla, Cherish, Cherry_Bomb_One, Cherry_Cream_Soda, Cherry_Swash, Chewy, Chicle, Chilanka, Chiron_GoRound_TC, Chiron_Hei_HK, Chiron_Sung_HK, Chivo, Chivo_Mono, Chocolate_Classical_Sans, Chokokutai, Chonburi, Cinzel, Cinzel_Decorative, Clicker_Script, Climate_Crisis, Coda, Codystar, Coiny, Combo, Comfortaa, Comforter, Comforter_Brush, Comic_Neue, Comic_Relief, Coming_Soon, Comme, Commissioner, Concert_One, Condiment, Content, Contrail_One, Convergence, Cookie, Copse, Coral_Pixels, Corben, Corinthia, Cormorant, Cormorant_Garamond, Cormorant_Infant, Cormorant_SC, Cormorant_Unicase, Cormorant_Upright, Cossette_Texte, Cossette_Titre, Courgette, Courier_Prime, Cousine, Coustard, Covered_By_Your_Grace, Crafty_Girls, Creepster, Crete_Round, Crimson_Pro, Crimson_Text, Croissant_One, Crushed, Cuprum, Cute_Font, Cutive, Cutive_Mono, DM_Mono, DM_Sans, DM_Serif_Display, DM_Serif_Text, Dai_Banna_SIL, Damion, Dancing_Script, Danfo, Dangrek, Darker_Grotesque, Darumadrop_One, David_Libre, Dawning_of_a_New_Day, Days_One, Dekko, Dela_Gothic_One, Delicious_Handrawn, Delius, Delius_Swash_Caps, Delius_Unicase, Della_Respira, Denk_One, Devonshire, Dhurjati, Didact_Gothic, Diphylleia, Diplomata, Diplomata_SC, Do_Hyeon, Dokdo, Domine, Donegal_One, Dongle, Doppio_One, Dorsa, Dosis, DotGothic16, Doto, Dr_Sugiyama, Duru_Sans, DynaPuff, Dynalight, EB_Garamond, Eagle_Lake, East_Sea_Dokdo, Eater, Economica, Eczar, Edu_AU_VIC_WA_NT_Arrows, Edu_AU_VIC_WA_NT_Dots, Edu_AU_VIC_WA_NT_Guides, Edu_AU_VIC_WA_NT_Hand, Edu_AU_VIC_WA_NT_Pre, Edu_NSW_ACT_Cursive, Edu_NSW_ACT_Foundation, Edu_NSW_ACT_Hand_Pre, Edu_QLD_Beginner, Edu_QLD_Hand, Edu_SA_Beginner, Edu_SA_Hand, Edu_TAS_Beginner, Edu_VIC_WA_NT_Beginner, Edu_VIC_WA_NT_Hand, Edu_VIC_WA_NT_Hand_Pre, El_Messiri, Electrolize, Elms_Sans, Elsie, Elsie_Swash_Caps, Emblema_One, Emilys_Candy, Encode_Sans, Encode_Sans_Condensed, Encode_Sans_Expanded, Encode_Sans_SC, Encode_Sans_Semi_Condensed, Encode_Sans_Semi_Expanded, Engagement, Englebert, Enriqueta, Ephesis, Epilogue, Epunda_Sans, Epunda_Slab, Erica_One, Esteban, Estonia, Euphoria_Script, Ewert, Exile, Exo, Exo_2, Expletus_Sans, Explora, Faculty_Glyphic, Fahkwang, Familjen_Grotesk, Fanwood_Text, Farro, Farsan, Fascinate, Fascinate_Inline, Faster_One, Fasthand, Fauna_One, Faustina, Federant, Federo, Felipa, Fenix, Festive, Figtree, Finger_Paint, Finlandica, Fira_Code, Fira_Mono, Fira_Sans, Fira_Sans_Condensed, Fira_Sans_Extra_Condensed, Fjalla_One, Fjord_One, Flamenco, Flavors, Fleur_De_Leah, Flow_Block, Flow_Circular, Flow_Rounded, Foldit, Fondamento, Fontdiner_Swanky, Forum, Fragment_Mono, Francois_One, Frank_Ruhl_Libre, Fraunces, Freckle_Face, Fredericka_the_Great, Fredoka, Freehand, Freeman, Fresca, Frijole, Fruktur, Fugaz_One, Fuggles, Funnel_Display, Funnel_Sans, Fustat, Fuzzy_Bubbles, GFS_Didot, GFS_Neohellenic, Ga_Maamli, Gabarito, Gabriela, Gaegu, Gafata, Gajraj_One, Galada, Galdeano, Galindo, Gamja_Flower, Gantari, Gasoek_One, Gayathri, Geist, Geist_Mono, Gelasio, Gemunu_Libre, Genos, Gentium_Book_Plus, Gentium_Plus, Geo, Geologica, Geom, Georama, Geostar, Geostar_Fill, Germania_One, Gideon_Roman, Gidole, Gidugu, Gilda_Display, Girassol, Give_You_Glory, Glass_Antiqua, Glegoo, Gloock, Gloria_Hallelujah, Glory, Gluten, Goblin_One, Gochi_Hand, Goldman, Golos_Text, Google_Sans, Google_Sans_Code, Google_Sans_Flex, Gorditas, Gothic_A1, Gotu, Goudy_Bookletter_1911, Gowun_Batang, Gowun_Dodum, Graduate, Grand_Hotel, Grandiflora_One, Grandstander, Grape_Nuts, Gravitas_One, Great_Vibes, Grechen_Fuemen, Grenze, Grenze_Gotisch, Grey_Qo, Griffy, Gruppo, Gudea, Gugi, Gulzar, Gupter, Gurajada, Gveret_Levin, Gwendolyn, Habibi, Hachi_Maru_Pop, Hahmlet, Halant, Hammersmith_One, Hanalei, Hanalei_Fill, Handjet, Handlee, Hanken_Grotesk, Hanuman, Happy_Monkey, Harmattan, Headland_One, Hedvig_Letters_Sans, Hedvig_Letters_Serif, Heebo, Henny_Penny, Hepta_Slab, Herr_Von_Muellerhoff, Hi_Melody, Hina_Mincho, Hind, Hind_Guntur, Hind_Madurai, Hind_Mysuru, Hind_Siliguri, Hind_Vadodara, Holtwood_One_SC, Homemade_Apple, Homenaje, Honk, Host_Grotesk, Hubballi, Hubot_Sans, Huninn, Hurricane, IBM_Plex_Mono, IBM_Plex_Sans, IBM_Plex_Sans_Arabic, IBM_Plex_Sans_Condensed, IBM_Plex_Sans_Devanagari, IBM_Plex_Sans_Hebrew, IBM_Plex_Sans_JP, IBM_Plex_Sans_KR, IBM_Plex_Sans_Thai, IBM_Plex_Sans_Thai_Looped, IBM_Plex_Serif, IM_Fell_DW_Pica, IM_Fell_DW_Pica_SC, IM_Fell_Double_Pica, IM_Fell_Double_Pica_SC, IM_Fell_English, IM_Fell_English_SC, IM_Fell_French_Canon, IM_Fell_French_Canon_SC, IM_Fell_Great_Primer, IM_Fell_Great_Primer_SC, Iansui, Ibarra_Real_Nova, Iceberg, Iceland, Idiqlat, Imbue, Imperial_Script, Imprima, Inclusive_Sans, Inconsolata, Inder, Indie_Flower, Ingrid_Darling, Inika, Inknut_Antiqua, Inria_Sans, Inria_Serif, Inspiration, Instrument_Sans, Instrument_Serif, Intel_One_Mono, Inter, Inter_Tight, Irish_Grover, Island_Moments, Istok_Web, Italiana, Italianno, Itim, Jacquard_12, Jacquard_12_Charted, Jacquard_24, Jacquard_24_Charted, Jacquarda_Bastarda_9, Jacquarda_Bastarda_9_Charted, Jacques_Francois, Jacques_Francois_Shadow, Jaini, Jaini_Purva, Jaldi, Jaro, Jersey_10, Jersey_10_Charted, Jersey_15, Jersey_15_Charted, Jersey_20, Jersey_20_Charted, Jersey_25, Jersey_25_Charted, JetBrains_Mono, Jim_Nightshade, Joan, Jockey_One, Jolly_Lodger, Jomhuria, Jomolhari, Josefin_Sans, Josefin_Slab, Jost, Joti_One, Jua, Judson, Julee, Julius_Sans_One, Junge, Jura, Just_Another_Hand, Just_Me_Again_Down_Here, K2D, Kablammo, Kadwa, Kaisei_Decol, Kaisei_HarunoUmi, Kaisei_Opti, Kaisei_Tokumin, Kalam, Kalnia, Kalnia_Glaze, Kameron, Kanchenjunga, Kanit, Kantumruy_Pro, Kapakana, Karantina, Karla, Karla_Tamil_Inclined, Karla_Tamil_Upright, Karma, Katibeh, Kaushan_Script, Kavivanar, Kavoon, Kay_Pho_Du, Kdam_Thmor_Pro, Keania_One, Kedebideri, Kelly_Slab, Kenia, Khand, Khmer, Khula, Kings, Kirang_Haerang, Kite_One, Kiwi_Maru, Klee_One, Knewave, KoHo, Kodchasan, Kode_Mono, Koh_Santepheap, Kolker_Brush, Konkhmer_Sleokchher, Kosugi, Kosugi_Maru, Kotta_One, Koulen, Kranky, Kreon, Kristi, Krona_One, Krub, Kufam, Kulim_Park, Kumar_One, Kumar_One_Outline, Kumbh_Sans, Kurale, LINE_Seed_JP, LXGW_Marker_Gothic, LXGW_WenKai_Mono_TC, LXGW_WenKai_TC, La_Belle_Aurore, Labrada, Lacquer, Laila, Lakki_Reddy, Lalezar, Lancelot, Langar, Lateef, Lato, Lavishly_Yours, League_Gothic, League_Script, League_Spartan, Leckerli_One, Ledger, Lekton, Lemon, Lemonada, Lexend, Lexend_Deca, Lexend_Exa, Lexend_Giga, Lexend_Mega, Lexend_Peta, Lexend_Tera, Lexend_Zetta, Libertinus_Keyboard, Libertinus_Math, Libertinus_Mono, Libertinus_Sans, Libertinus_Serif, Libertinus_Serif_Display, Libre_Barcode_128, Libre_Barcode_128_Text, Libre_Barcode_39, Libre_Barcode_39_Extended, Libre_Barcode_39_Extended_Text, Libre_Barcode_39_Text, Libre_Barcode_EAN13_Text, Libre_Baskerville, Libre_Bodoni, Libre_Caslon_Display, Libre_Caslon_Text, Libre_Franklin, Licorice, Life_Savers, Lilex, Lilita_One, Lily_Script_One, Limelight, Linden_Hill, Linefont, Lisu_Bosa, Liter, Literata, Liu_Jian_Mao_Cao, Livvic, Lobster, Lobster_Two, Londrina_Outline, Londrina_Shadow, Londrina_Sketch, Londrina_Solid, Long_Cang, Lora, Love_Light, Love_Ya_Like_A_Sister, Loved_by_the_King, Lovers_Quarrel, Luckiest_Guy, Lugrasimo, Lumanosimo, Lunasima, Lusitana, Lustria, Luxurious_Roman, Luxurious_Script, M_PLUS_1, M_PLUS_1_Code, M_PLUS_1p, M_PLUS_2, M_PLUS_Code_Latin, M_PLUS_Rounded_1c, Ma_Shan_Zheng, Macondo, Macondo_Swash_Caps, Mada, Madimi_One, Magra, Maiden_Orange, Maitree, Major_Mono_Display, Mako, Mali, Mallanna, Maname, Mandali, Manjari, Manrope, Mansalva, Manuale, Manufacturing_Consent, Marcellus, Marcellus_SC, Marck_Script, Margarine, Marhey, Markazi_Text, Marko_One, Marmelad, Martel, Martel_Sans, Martian_Mono, Marvel, Matangi, Mate, Mate_SC, Matemasie, Maven_Pro, McLaren, Mea_Culpa, Meddon, MedievalSharp, Medula_One, Meera_Inimai, Megrim, Meie_Script, Menbere, Meow_Script, Merienda, Merriweather, Merriweather_Sans, Metal, Metal_Mania, Metamorphous, Metrophobic, Michroma, Micro_5, Micro_5_Charted, Milonga, Miltonian, Miltonian_Tattoo, Mina, Mingzat, Miniver, Miriam_Libre, Mirza, Miss_Fajardose, Mitr, Mochiy_Pop_One, Mochiy_Pop_P_One, Modak, Modern_Antiqua, Moderustic, Mogra, Mohave, Moirai_One, Molengo, Molle, Momo_Signature, Momo_Trust_Display, Momo_Trust_Sans, Mona_Sans, Monda, Monofett, Monomakh, Monomaniac_One, Monoton, Monsieur_La_Doulaise, Montaga, Montagu_Slab, MonteCarlo, Montez, Montserrat, Montserrat_Alternates, Montserrat_Underline, Moo_Lah_Lah, Mooli, Moon_Dance, Moul, Moulpali, Mountains_of_Christmas, Mouse_Memoirs, Mozilla_Headline, Mozilla_Text, Mr_Bedfort, Mr_Dafoe, Mr_De_Haviland, Mrs_Saint_Delafield, Mrs_Sheppards, Ms_Madi, Mukta, Mukta_Mahee, Mukta_Malar, Mukta_Vaani, Mulish, Murecho, MuseoModerno, My_Soul, Mynerve, Mystery_Quest, NTR, Nabla, Namdhinggo, Nanum_Brush_Script, Nanum_Gothic, Nanum_Gothic_Coding, Nanum_Myeongjo, Nanum_Pen_Script, Narnoor, Nata_Sans, National_Park, Neonderthaw, Nerko_One, Neucha, Neuton, New_Amsterdam, New_Rocker, New_Tegomin, News_Cycle, Newsreader, Niconne, Niramit, Nixie_One, Nobile, Nokora, Norican, Nosifer, Notable, Nothing_You_Could_Do, Noticia_Text, Noto_Color_Emoji, Noto_Emoji, Noto_Kufi_Arabic, Noto_Music, Noto_Naskh_Arabic, Noto_Nastaliq_Urdu, Noto_Rashi_Hebrew, Noto_Sans, Noto_Sans_Adlam, Noto_Sans_Adlam_Unjoined, Noto_Sans_Anatolian_Hieroglyphs, Noto_Sans_Arabic, Noto_Sans_Armenian, Noto_Sans_Avestan, Noto_Sans_Balinese, Noto_Sans_Bamum, Noto_Sans_Bassa_Vah, Noto_Sans_Batak, Noto_Sans_Bengali, Noto_Sans_Bhaiksuki, Noto_Sans_Brahmi, Noto_Sans_Buginese, Noto_Sans_Buhid, Noto_Sans_Canadian_Aboriginal, Noto_Sans_Carian, Noto_Sans_Caucasian_Albanian, Noto_Sans_Chakma, Noto_Sans_Cham, Noto_Sans_Cherokee, Noto_Sans_Chorasmian, Noto_Sans_Coptic, Noto_Sans_Cuneiform, Noto_Sans_Cypriot, Noto_Sans_Cypro_Minoan, Noto_Sans_Deseret, Noto_Sans_Devanagari, Noto_Sans_Display, Noto_Sans_Duployan, Noto_Sans_Egyptian_Hieroglyphs, Noto_Sans_Elbasan, Noto_Sans_Elymaic, Noto_Sans_Ethiopic, Noto_Sans_Georgian, Noto_Sans_Glagolitic, Noto_Sans_Gothic, Noto_Sans_Grantha, Noto_Sans_Gujarati, Noto_Sans_Gunjala_Gondi, Noto_Sans_Gurmukhi, Noto_Sans_HK, Noto_Sans_Hanifi_Rohingya, Noto_Sans_Hanunoo, Noto_Sans_Hatran, Noto_Sans_Hebrew, Noto_Sans_Imperial_Aramaic, Noto_Sans_Indic_Siyaq_Numbers, Noto_Sans_Inscriptional_Pahlavi, Noto_Sans_Inscriptional_Parthian, Noto_Sans_JP, Noto_Sans_Javanese, Noto_Sans_KR, Noto_Sans_Kaithi, Noto_Sans_Kannada, Noto_Sans_Kawi, Noto_Sans_Kayah_Li, Noto_Sans_Kharoshthi, Noto_Sans_Khmer, Noto_Sans_Khojki, Noto_Sans_Khudawadi, Noto_Sans_Lao, Noto_Sans_Lao_Looped, Noto_Sans_Lepcha, Noto_Sans_Limbu, Noto_Sans_Linear_A, Noto_Sans_Linear_B, Noto_Sans_Lisu, Noto_Sans_Lycian, Noto_Sans_Lydian, Noto_Sans_Mahajani, Noto_Sans_Malayalam, Noto_Sans_Mandaic, Noto_Sans_Manichaean, Noto_Sans_Marchen, Noto_Sans_Masaram_Gondi, Noto_Sans_Math, Noto_Sans_Mayan_Numerals, Noto_Sans_Medefaidrin, Noto_Sans_Meetei_Mayek, Noto_Sans_Mende_Kikakui, Noto_Sans_Meroitic, Noto_Sans_Miao, Noto_Sans_Modi, Noto_Sans_Mongolian, Noto_Sans_Mono, Noto_Sans_Mro, Noto_Sans_Multani, Noto_Sans_Myanmar, Noto_Sans_NKo, Noto_Sans_NKo_Unjoined, Noto_Sans_Nabataean, Noto_Sans_Nag_Mundari, Noto_Sans_Nandinagari, Noto_Sans_New_Tai_Lue, Noto_Sans_Newa, Noto_Sans_Nushu, Noto_Sans_Ogham, Noto_Sans_Ol_Chiki, Noto_Sans_Old_Hungarian, Noto_Sans_Old_Italic, Noto_Sans_Old_North_Arabian, Noto_Sans_Old_Permic, Noto_Sans_Old_Persian, Noto_Sans_Old_Sogdian, Noto_Sans_Old_South_Arabian, Noto_Sans_Old_Turkic, Noto_Sans_Oriya, Noto_Sans_Osage, Noto_Sans_Osmanya, Noto_Sans_Pahawh_Hmong, Noto_Sans_Palmyrene, Noto_Sans_Pau_Cin_Hau, Noto_Sans_PhagsPa, Noto_Sans_Phoenician, Noto_Sans_Psalter_Pahlavi, Noto_Sans_Rejang, Noto_Sans_Runic, Noto_Sans_SC, Noto_Sans_Samaritan, Noto_Sans_Saurashtra, Noto_Sans_Sharada, Noto_Sans_Shavian, Noto_Sans_Siddham, Noto_Sans_SignWriting, Noto_Sans_Sinhala, Noto_Sans_Sogdian, Noto_Sans_Sora_Sompeng, Noto_Sans_Soyombo, Noto_Sans_Sundanese, Noto_Sans_Sunuwar, Noto_Sans_Syloti_Nagri, Noto_Sans_Symbols, Noto_Sans_Symbols_2, Noto_Sans_Syriac, Noto_Sans_Syriac_Eastern, Noto_Sans_Syriac_Western, Noto_Sans_TC, Noto_Sans_Tagalog, Noto_Sans_Tagbanwa, Noto_Sans_Tai_Le, Noto_Sans_Tai_Tham, Noto_Sans_Tai_Viet, Noto_Sans_Takri, Noto_Sans_Tamil, Noto_Sans_Tamil_Supplement, Noto_Sans_Tangsa, Noto_Sans_Telugu, Noto_Sans_Thaana, Noto_Sans_Thai, Noto_Sans_Thai_Looped, Noto_Sans_Tifinagh, Noto_Sans_Tirhuta, Noto_Sans_Ugaritic, Noto_Sans_Vai, Noto_Sans_Vithkuqi, Noto_Sans_Wancho, Noto_Sans_Warang_Citi, Noto_Sans_Yi, Noto_Sans_Zanabazar_Square, Noto_Serif, Noto_Serif_Ahom, Noto_Serif_Armenian, Noto_Serif_Balinese, Noto_Serif_Bengali, Noto_Serif_Devanagari, Noto_Serif_Display, Noto_Serif_Dives_Akuru, Noto_Serif_Dogra, Noto_Serif_Ethiopic, Noto_Serif_Georgian, Noto_Serif_Grantha, Noto_Serif_Gujarati, Noto_Serif_Gurmukhi, Noto_Serif_HK, Noto_Serif_Hebrew, Noto_Serif_Hentaigana, Noto_Serif_JP, Noto_Serif_KR, Noto_Serif_Kannada, Noto_Serif_Khitan_Small_Script, Noto_Serif_Khmer, Noto_Serif_Khojki, Noto_Serif_Lao, Noto_Serif_Makasar, Noto_Serif_Malayalam, Noto_Serif_Myanmar, Noto_Serif_NP_Hmong, Noto_Serif_Old_Uyghur, Noto_Serif_Oriya, Noto_Serif_Ottoman_Siyaq, Noto_Serif_SC, Noto_Serif_Sinhala, Noto_Serif_TC, Noto_Serif_Tamil, Noto_Serif_Tangut, Noto_Serif_Telugu, Noto_Serif_Thai, Noto_Serif_Tibetan, Noto_Serif_Todhri, Noto_Serif_Toto, Noto_Serif_Vithkuqi, Noto_Serif_Yezidi, Noto_Traditional_Nushu, Noto_Znamenny_Musical_Notation, Nova_Cut, Nova_Flat, Nova_Mono, Nova_Oval, Nova_Round, Nova_Script, Nova_Slim, Nova_Square, Numans, Nunito, Nunito_Sans, Nuosu_SIL, Odibee_Sans, Odor_Mean_Chey, Offside, Oi, Ojuju, Old_Standard_TT, Oldenburg, Ole, Oleo_Script, Oleo_Script_Swash_Caps, Onest, Oooh_Baby, Open_Sans, Oranienbaum, Orbit, Orbitron, Oregano, Orelega_One, Orienta, Original_Surfer, Oswald, Outfit, Over_the_Rainbow, Overlock, Overlock_SC, Overpass, Overpass_Mono, Ovo, Oxanium, Oxygen, Oxygen_Mono, PT_Mono, PT_Sans, PT_Sans_Caption, PT_Sans_Narrow, PT_Serif, PT_Serif_Caption, Pacifico, Padauk, Padyakke_Expanded_One, Palanquin, Palanquin_Dark, Palette_Mosaic, Pangolin, Paprika, Parastoo, Parisienne, Parkinsans, Passero_One, Passion_One, Passions_Conflict, Pathway_Extreme, Pathway_Gothic_One, Patrick_Hand, Patrick_Hand_SC, Pattaya, Patua_One, Pavanam, Paytone_One, Peddana, Peralta, Permanent_Marker, Petemoss, Petit_Formal_Script, Petrona, Phetsarath, Philosopher, Phudu, Piazzolla, Piedra, Pinyon_Script, Pirata_One, Pixelify_Sans, Plaster, Platypi, Play, Playball, Playfair, Playfair_Display, Playfair_Display_SC, Playpen_Sans, Playpen_Sans_Arabic, Playpen_Sans_Deva, Playpen_Sans_Hebrew, Playpen_Sans_Thai, Playwrite_AR, Playwrite_AR_Guides, Playwrite_AT, Playwrite_AT_Guides, Playwrite_AU_NSW, Playwrite_AU_NSW_Guides, Playwrite_AU_QLD, Playwrite_AU_QLD_Guides, Playwrite_AU_SA, Playwrite_AU_SA_Guides, Playwrite_AU_TAS, Playwrite_AU_TAS_Guides, Playwrite_AU_VIC, Playwrite_AU_VIC_Guides, Playwrite_BE_VLG, Playwrite_BE_VLG_Guides, Playwrite_BE_WAL, Playwrite_BE_WAL_Guides, Playwrite_BR, Playwrite_BR_Guides, Playwrite_CA, Playwrite_CA_Guides, Playwrite_CL, Playwrite_CL_Guides, Playwrite_CO, Playwrite_CO_Guides, Playwrite_CU, Playwrite_CU_Guides, Playwrite_CZ, Playwrite_CZ_Guides, Playwrite_DE_Grund, Playwrite_DE_Grund_Guides, Playwrite_DE_LA, Playwrite_DE_LA_Guides, Playwrite_DE_SAS, Playwrite_DE_SAS_Guides, Playwrite_DE_VA, Playwrite_DE_VA_Guides, Playwrite_DK_Loopet, Playwrite_DK_Loopet_Guides, Playwrite_DK_Uloopet, Playwrite_DK_Uloopet_Guides, Playwrite_ES, Playwrite_ES_Deco, Playwrite_ES_Deco_Guides, Playwrite_ES_Guides, Playwrite_FR_Moderne, Playwrite_FR_Moderne_Guides, Playwrite_FR_Trad, Playwrite_FR_Trad_Guides, Playwrite_GB_J, Playwrite_GB_J_Guides, Playwrite_GB_S, Playwrite_GB_S_Guides, Playwrite_HR, Playwrite_HR_Guides, Playwrite_HR_Lijeva, Playwrite_HR_Lijeva_Guides, Playwrite_HU, Playwrite_HU_Guides, Playwrite_ID, Playwrite_ID_Guides, Playwrite_IE, Playwrite_IE_Guides, Playwrite_IN, Playwrite_IN_Guides, Playwrite_IS, Playwrite_IS_Guides, Playwrite_IT_Moderna, Playwrite_IT_Moderna_Guides, Playwrite_IT_Trad, Playwrite_IT_Trad_Guides, Playwrite_MX, Playwrite_MX_Guides, Playwrite_NG_Modern, Playwrite_NG_Modern_Guides, Playwrite_NL, Playwrite_NL_Guides, Playwrite_NO, Playwrite_NO_Guides, Playwrite_NZ, Playwrite_NZ_Basic, Playwrite_NZ_Basic_Guides, Playwrite_NZ_Guides, Playwrite_PE, Playwrite_PE_Guides, Playwrite_PL, Playwrite_PL_Guides, Playwrite_PT, Playwrite_PT_Guides, Playwrite_RO, Playwrite_RO_Guides, Playwrite_SK, Playwrite_SK_Guides, Playwrite_TZ, Playwrite_TZ_Guides, Playwrite_US_Modern, Playwrite_US_Modern_Guides, Playwrite_US_Trad, Playwrite_US_Trad_Guides, Playwrite_VN, Playwrite_VN_Guides, Playwrite_ZA, Playwrite_ZA_Guides, Plus_Jakarta_Sans, Pochaevsk, Podkova, Poetsen_One, Poiret_One, Poller_One, Poltawski_Nowy, Poly, Pompiere, Ponnala, Ponomar, Pontano_Sans, Poor_Story, Poppins, Port_Lligat_Sans, Port_Lligat_Slab, Potta_One, Pragati_Narrow, Praise, Prata, Preahvihear, Press_Start_2P, Pridi, Princess_Sofia, Prociono, Prompt, Prosto_One, Protest_Guerrilla, Protest_Revolution, Protest_Riot, Protest_Strike, Proza_Libre, Public_Sans, Puppies_Play, Puritan, Purple_Purse, Qahiri, Quando, Quantico, Quattrocento, Quattrocento_Sans, Questrial, Quicksand, Quintessential, Qwigley, Qwitcher_Grypen, REM, Racing_Sans_One, Radio_Canada, Radio_Canada_Big, Radley, Rajdhani, Rakkas, Raleway, Raleway_Dots, Ramabhadra, Ramaraja, Rambla, Rammetto_One, Rampart_One, Ramsina, Ranchers, Rancho, Ranga, Rasa, Rationale, Ravi_Prakash, Readex_Pro, Recursive, Red_Hat_Display, Red_Hat_Mono, Red_Hat_Text, Red_Rose, Redacted, Redacted_Script, Reddit_Mono, Reddit_Sans, Reddit_Sans_Condensed, Redressed, Reem_Kufi, Reem_Kufi_Fun, Reem_Kufi_Ink, Reenie_Beanie, Reggae_One, Rethink_Sans, Revalia, Rhodium_Libre, Ribeye, Ribeye_Marrow, Righteous, Risque, Road_Rage, Roboto, Roboto_Condensed, Roboto_Flex, Roboto_Mono, Roboto_Serif, Roboto_Slab, Rochester, Rock_3D, Rock_Salt, RocknRoll_One, Rokkitt, Romanesco, Ropa_Sans, Rosario, Rosarivo, Rouge_Script, Rowdies, Rozha_One, Rubik, Rubik_80s_Fade, Rubik_Beastly, Rubik_Broken_Fax, Rubik_Bubbles, Rubik_Burned, Rubik_Dirt, Rubik_Distressed, Rubik_Doodle_Shadow, Rubik_Doodle_Triangles, Rubik_Gemstones, Rubik_Glitch, Rubik_Glitch_Pop, Rubik_Iso, Rubik_Lines, Rubik_Maps, Rubik_Marker_Hatch, Rubik_Maze, Rubik_Microbe, Rubik_Mono_One, Rubik_Moonrocks, Rubik_Pixels, Rubik_Puddles, Rubik_Scribble, Rubik_Spray_Paint, Rubik_Storm, Rubik_Vinyl, Rubik_Wet_Paint, Ruda, Rufina, Ruge_Boogie, Ruluko, Rum_Raisin, Ruslan_Display, Russo_One, Ruthie, Ruwudu, Rye, SN_Pro, STIX_Two_Text, SUSE, SUSE_Mono, Sacramento, Sahitya, Sail, Saira, Saira_Condensed, Saira_Extra_Condensed, Saira_Semi_Condensed, Saira_Stencil_One, Salsa, Sanchez, Sancreek, Sankofa_Display, Sansation, Sansita, Sansita_Swashed, Sarabun, Sarala, Sarina, Sarpanch, Sassy_Frass, Satisfy, Savate, Sawarabi_Gothic, Sawarabi_Mincho, Scada, Scheherazade_New, Schibsted_Grotesk, Schoolbell, Science_Gothic, Scope_One, Seaweed_Script, Secular_One, Sedan, Sedan_SC, Sedgwick_Ave, Sedgwick_Ave_Display, Sekuya, Sen, Send_Flowers, Sevillana, Seymour_One, Shadows_Into_Light, Shadows_Into_Light_Two, Shafarik, Shalimar, Shantell_Sans, Shanti, Share, Share_Tech, Share_Tech_Mono, Shippori_Antique, Shippori_Antique_B1, Shippori_Mincho, Shippori_Mincho_B1, Shizuru, Shojumaru, Short_Stack, Shrikhand, Siemreap, Sigmar, Sigmar_One, Signika, Signika_Negative, Silkscreen, Simonetta, Single_Day, Sintony, Sirin_Stencil, Sirivennela, Six_Caps, Sixtyfour, Sixtyfour_Convergence, Skranji, Slabo_13px, Slabo_27px, Slackey, Slackside_One, Smokum, Smooch, Smooch_Sans, Smythe, Sniglet, Snippet, Snowburst_One, Sofadi_One, Sofia, Sofia_Sans, Sofia_Sans_Condensed, Sofia_Sans_Extra_Condensed, Sofia_Sans_Semi_Condensed, Solitreo, Solway, Sometype_Mono, Song_Myung, Sono, Sonsie_One, Sora, Sorts_Mill_Goudy, Sour_Gummy, Source_Code_Pro, Source_Sans_3, Source_Serif_4, Space_Grotesk, Space_Mono, Special_Elite, Special_Gothic, Special_Gothic_Condensed_One, Special_Gothic_Expanded_One, Spectral, Spectral_SC, Spicy_Rice, Spinnaker, Spirax, Splash, Spline_Sans, Spline_Sans_Mono, Squada_One, Square_Peg, Sree_Krushnadevaraya, Sriracha, Srisakdi, Staatliches, Stack_Sans_Headline, Stack_Sans_Notch, Stack_Sans_Text, Stalemate, Stalinist_One, Stardos_Stencil, Stick, Stick_No_Bills, Stint_Ultra_Condensed, Stint_Ultra_Expanded, Stoke, Story_Script, Strait, Style_Script, Stylish, Sue_Ellen_Francisco, Suez_One, Sulphur_Point, Sumana, Sunflower, Sunshiney, Supermercado_One, Sura, Suranna, Suravaram, Suwannaphum, Swanky_and_Moo_Moo, Syncopate, Syne, Syne_Mono, Syne_Tactile, TASA_Explorer, TASA_Orbiter, Tac_One, Tagesschrift, Tai_Heritage_Pro, Tajawal, Tangerine, Tapestry, Taprom, Tauri, Taviraj, Teachers, Teko, Tektur, Telex, Tenali_Ramakrishna, Tenor_Sans, Text_Me_One, Texturina, Thasadith, The_Girl_Next_Door, The_Nautigal, Tienne, TikTok_Sans, Tillana, Tilt_Neon, Tilt_Prism, Tilt_Warp, Timmana, Tinos, Tiny5, Tiro_Bangla, Tiro_Devanagari_Hindi, Tiro_Devanagari_Marathi, Tiro_Devanagari_Sanskrit, Tiro_Gurmukhi, Tiro_Kannada, Tiro_Tamil, Tiro_Telugu, Tirra, Titan_One, Titillium_Web, Tomorrow, Tourney, Trade_Winds, Train_One, Triodion, Trirong, Trispace, Trocchi, Trochut, Truculenta, Trykker, Tsukimi_Rounded, Tuffy, Tulpen_One, Turret_Road, Twinkle_Star, Ubuntu, Ubuntu_Condensed, Ubuntu_Mono, Ubuntu_Sans, Ubuntu_Sans_Mono, Uchen, Ultra, Unbounded, Uncial_Antiqua, Underdog, Unica_One, UnifrakturCook, UnifrakturMaguntia, Unkempt, Unlock, Unna, UoqMunThenKhung, Updock, Urbanist, VT323, Vampiro_One, Varela, Varela_Round, Varta, Vast_Shadow, Vazirmatn, Vend_Sans, Vesper_Libre, Viaoda_Libre, Vibes, Vibur, Victor_Mono, Vidaloka, Viga, Vina_Sans, Voces, Volkhov, Vollkorn, Vollkorn_SC, Voltaire, Vujahday_Script, WDXL_Lubrifont_JP_N, WDXL_Lubrifont_SC, WDXL_Lubrifont_TC, Waiting_for_the_Sunrise, Wallpoet, Walter_Turncoat, Warnes, Water_Brush, Waterfall, Wavefont, Wellfleet, Wendy_One, Whisper, WindSong, Winky_Rough, Winky_Sans, Wire_One, Wittgenstein, Wix_Madefor_Display, Wix_Madefor_Text, Work_Sans, Workbench, Xanh_Mono, Yaldevi, Yanone_Kaffeesatz, Yantramanav, Yarndings_12, Yarndings_12_Charted, Yarndings_20, Yarndings_20_Charted, Yatra_One, Yellowtail, Yeon_Sung, Yeseva_One, Yesteryear, Yomogi, Young_Serif, Yrsa, Ysabeau, Ysabeau_Infant, Ysabeau_Office, Ysabeau_SC, Yuji_Boku, Yuji_Hentaigana_Akari, Yuji_Hentaigana_Akebono, Yuji_Mai, Yuji_Syuku, Yusei_Magic, ZCOOL_KuaiLe, ZCOOL_QingKe_HuangYou, ZCOOL_XiaoWei, Zain, Zalando_Sans, Zalando_Sans_Expanded, Zalando_Sans_SemiExpanded, Zen_Antique, Zen_Antique_Soft, Zen_Dots, Zen_Kaku_Gothic_Antique, Zen_Kaku_Gothic_New, Zen_Kurenaido, Zen_Loop, Zen_Maru_Gothic, Zen_Old_Mincho, Zen_Tokyo_Zoo, Zeyada, Zhi_Mang_Xing, Zilla_Slab, Zilla_Slab_Highlight } from "./font-google.generated.js";
|
|
3
|
-
export { ABeeZee, ADLaM_Display, AR_One_Sans, Abel, Abhaya_Libre, Aboreto, Abril_Fatface, Abyssinica_SIL, Aclonica, Acme, Actor, Adamina, Advent_Pro, Afacad, Afacad_Flux, Agbalumo, Agdasima, Agu_Display, Aguafina_Script, Akatab, Akaya_Kanadaka, Akaya_Telivigala, Akronim, Akshar, Aladin, Alan_Sans, Alata, Alatsi, Albert_Sans, Aldrich, Alef, Alegreya, Alegreya_SC, Alegreya_Sans, Alegreya_Sans_SC, Aleo, Alex_Brush, Alexandria, Alfa_Slab_One, Alice, Alike, Alike_Angular, Alkalami, Alkatra, Allan, Allerta, Allerta_Stencil, Allison, Allkin, Allura, Almarai, Almendra, Almendra_Display, Almendra_SC, Alumni_Sans, Alumni_Sans_Collegiate_One, Alumni_Sans_Inline_One, Alumni_Sans_Pinstripe, Alumni_Sans_SC, Alyamama, Amarante, Amaranth, Amarna, Amatic_SC, Amethysta, Amiko, Amiri, Amiri_Quran, Amita, Anaheim, Ancizar_Sans, Ancizar_Serif, Andada_Pro, Andika, Anek_Bangla, Anek_Devanagari, Anek_Gujarati, Anek_Gurmukhi, Anek_Kannada, Anek_Latin, Anek_Malayalam, Anek_Odia, Anek_Tamil, Anek_Telugu, Angkor, Annapurna_SIL, Annie_Use_Your_Telescope, Anonymous_Pro, Anta, Antic, Antic_Didone, Antic_Slab, Anton, Anton_SC, Antonio, Anuphan, Anybody, Aoboshi_One, Arapey, Arbutus, Arbutus_Slab, Architects_Daughter, Archivo, Archivo_Black, Archivo_Narrow, Are_You_Serious, Aref_Ruqaa, Aref_Ruqaa_Ink, Arima, Arimo, Arizonia, Armata, Arsenal, Arsenal_SC, Artifika, Arvo, Arya, Asap, Asap_Condensed, Asar, Asimovian, Asset, Assistant, Asta_Sans, Astloch, Asul, Athiti, Atkinson_Hyperlegible, Atkinson_Hyperlegible_Mono, Atkinson_Hyperlegible_Next, Atma, Atomic_Age, Aubrey, Audiowide, Autour_One, Average, Average_Sans, Averia_Gruesa_Libre, Averia_Libre, Averia_Sans_Libre, Averia_Serif_Libre, Azeret_Mono, B612, B612_Mono, BBH_Bartle, BBH_Bogle, BBH_Hegarty, BIZ_UDGothic, BIZ_UDMincho, BIZ_UDPGothic, BIZ_UDPMincho, Babylonica, Bacasime_Antique, Bad_Script, Badeen_Display, Bagel_Fat_One, Bahiana, Bahianita, Bai_Jamjuree, Bakbak_One, Ballet, Baloo_2, Baloo_Bhai_2, Baloo_Bhaijaan_2, Baloo_Bhaina_2, Baloo_Chettan_2, Baloo_Da_2, Baloo_Paaji_2, Baloo_Tamma_2, Baloo_Tammudu_2, Baloo_Thambi_2, Balsamiq_Sans, Balthazar, Bangers, Barlow, Barlow_Condensed, Barlow_Semi_Condensed, Barriecito, Barrio, Basic, Baskervville, Baskervville_SC, Battambang, Baumans, Bayon, Be_Vietnam_Pro, Beau_Rivage, Bebas_Neue, Beiruti, Belanosima, Belgrano, Bellefair, Belleza, Bellota, Bellota_Text, BenchNine, Benne, Bentham, Berkshire_Swash, Besley, Betania_Patmos, Betania_Patmos_GDL, Betania_Patmos_In, Betania_Patmos_In_GDL, Beth_Ellen, Bevan, BhuTuka_Expanded_One, Big_Shoulders, Big_Shoulders_Inline, Big_Shoulders_Stencil, Bigelow_Rules, Bigshot_One, Bilbo, Bilbo_Swash_Caps, BioRhyme, BioRhyme_Expanded, Birthstone, Birthstone_Bounce, Biryani, Bitcount, Bitcount_Grid_Double, Bitcount_Grid_Double_Ink, Bitcount_Grid_Single, Bitcount_Grid_Single_Ink, Bitcount_Ink, Bitcount_Prop_Double, Bitcount_Prop_Double_Ink, Bitcount_Prop_Single, Bitcount_Prop_Single_Ink, Bitcount_Single, Bitcount_Single_Ink, Bitter, Black_And_White_Picture, Black_Han_Sans, Black_Ops_One, Blaka, Blaka_Hollow, Blaka_Ink, Blinker, Bodoni_Moda, Bodoni_Moda_SC, Bokor, Boldonse, Bona_Nova, Bona_Nova_SC, Bonbon, Bonheur_Royale, Boogaloo, Borel, Bowlby_One, Bowlby_One_SC, Bpmf_Huninn, Bpmf_Iansui, Bpmf_Zihi_Kai_Std, Braah_One, Brawler, Bree_Serif, Bricolage_Grotesque, Bruno_Ace, Bruno_Ace_SC, Brygada_1918, Bubblegum_Sans, Bubbler_One, Buda, Buenard, Bungee, Bungee_Hairline, Bungee_Inline, Bungee_Outline, Bungee_Shade, Bungee_Spice, Bungee_Tint, Butcherman, Butterfly_Kids, Bytesized, Cabin, Cabin_Condensed, Cabin_Sketch, Cactus_Classical_Serif, Caesar_Dressing, Cagliostro, Cairo, Cairo_Play, Cal_Sans, Caladea, Calistoga, Calligraffitti, Cambay, Cambo, Candal, Cantarell, Cantata_One, Cantora_One, Caprasimo, Capriola, Caramel, Carattere, Cardo, Carlito, Carme, Carrois_Gothic, Carrois_Gothic_SC, Carter_One, Cascadia_Code, Cascadia_Mono, Castoro, Castoro_Titling, Catamaran, Caudex, Cause, Caveat, Caveat_Brush, Cedarville_Cursive, Ceviche_One, Chakra_Petch, Changa, Changa_One, Chango, Charis_SIL, Charm, Charmonman, Chathura, Chau_Philomene_One, Chela_One, Chelsea_Market, Chenla, Cherish, Cherry_Bomb_One, Cherry_Cream_Soda, Cherry_Swash, Chewy, Chicle, Chilanka, Chiron_GoRound_TC, Chiron_Hei_HK, Chiron_Sung_HK, Chivo, Chivo_Mono, Chocolate_Classical_Sans, Chokokutai, Chonburi, Cinzel, Cinzel_Decorative, Clicker_Script, Climate_Crisis, Coda, Codystar, Coiny, Combo, Comfortaa, Comforter, Comforter_Brush, Comic_Neue, Comic_Relief, Coming_Soon, Comme, Commissioner, Concert_One, Condiment, Content, Contrail_One, Convergence, Cookie, Copse, Coral_Pixels, Corben, Corinthia, Cormorant, Cormorant_Garamond, Cormorant_Infant, Cormorant_SC, Cormorant_Unicase, Cormorant_Upright, Cossette_Texte, Cossette_Titre, Courgette, Courier_Prime, Cousine, Coustard, Covered_By_Your_Grace, Crafty_Girls, Creepster, Crete_Round, Crimson_Pro, Crimson_Text, Croissant_One, Crushed, Cuprum, Cute_Font, Cutive, Cutive_Mono, DM_Mono, DM_Sans, DM_Serif_Display, DM_Serif_Text, Dai_Banna_SIL, Damion, Dancing_Script, Danfo, Dangrek, Darker_Grotesque, Darumadrop_One, David_Libre, Dawning_of_a_New_Day, Days_One, Dekko, Dela_Gothic_One, Delicious_Handrawn, Delius, Delius_Swash_Caps, Delius_Unicase, Della_Respira, Denk_One, Devonshire, Dhurjati, Didact_Gothic, Diphylleia, Diplomata, Diplomata_SC, Do_Hyeon, Dokdo, Domine, Donegal_One, Dongle, Doppio_One, Dorsa, Dosis, DotGothic16, Doto, Dr_Sugiyama, Duru_Sans, DynaPuff, Dynalight, EB_Garamond, Eagle_Lake, East_Sea_Dokdo, Eater, Economica, Eczar, Edu_AU_VIC_WA_NT_Arrows, Edu_AU_VIC_WA_NT_Dots, Edu_AU_VIC_WA_NT_Guides, Edu_AU_VIC_WA_NT_Hand, Edu_AU_VIC_WA_NT_Pre, Edu_NSW_ACT_Cursive, Edu_NSW_ACT_Foundation, Edu_NSW_ACT_Hand_Pre, Edu_QLD_Beginner, Edu_QLD_Hand, Edu_SA_Beginner, Edu_SA_Hand, Edu_TAS_Beginner, Edu_VIC_WA_NT_Beginner, Edu_VIC_WA_NT_Hand, Edu_VIC_WA_NT_Hand_Pre, El_Messiri, Electrolize, Elms_Sans, Elsie, Elsie_Swash_Caps, Emblema_One, Emilys_Candy, Encode_Sans, Encode_Sans_Condensed, Encode_Sans_Expanded, Encode_Sans_SC, Encode_Sans_Semi_Condensed, Encode_Sans_Semi_Expanded, Engagement, Englebert, Enriqueta, Ephesis, Epilogue, Epunda_Sans, Epunda_Slab, Erica_One, Esteban, Estonia, Euphoria_Script, Ewert, Exile, Exo, Exo_2, Expletus_Sans, Explora, Faculty_Glyphic, Fahkwang, Familjen_Grotesk, Fanwood_Text, Farro, Farsan, Fascinate, Fascinate_Inline, Faster_One, Fasthand, Fauna_One, Faustina, Federant, Federo, Felipa, Fenix, Festive, Figtree, Finger_Paint, Finlandica, Fira_Code, Fira_Mono, Fira_Sans, Fira_Sans_Condensed, Fira_Sans_Extra_Condensed, Fjalla_One, Fjord_One, Flamenco, Flavors, Fleur_De_Leah, Flow_Block, Flow_Circular, Flow_Rounded, Foldit, Fondamento, Fontdiner_Swanky, Forum, Fragment_Mono, Francois_One, Frank_Ruhl_Libre, Fraunces, Freckle_Face, Fredericka_the_Great, Fredoka, Freehand, Freeman, Fresca, Frijole, Fruktur, Fugaz_One, Fuggles, Funnel_Display, Funnel_Sans, Fustat, Fuzzy_Bubbles, GFS_Didot, GFS_Neohellenic, Ga_Maamli, Gabarito, Gabriela, Gaegu, Gafata, Gajraj_One, Galada, Galdeano, Galindo, Gamja_Flower, Gantari, Gasoek_One, Gayathri, Geist, Geist_Mono, Gelasio, Gemunu_Libre, Genos, Gentium_Book_Plus, Gentium_Plus, Geo, Geologica, Geom, Georama, Geostar, Geostar_Fill, Germania_One, Gideon_Roman, Gidole, Gidugu, Gilda_Display, Girassol, Give_You_Glory, Glass_Antiqua, Glegoo, Gloock, Gloria_Hallelujah, Glory, Gluten, Goblin_One, Gochi_Hand, Goldman, Golos_Text, Google_Sans, Google_Sans_Code, Google_Sans_Flex, Gorditas, Gothic_A1, Gotu, Goudy_Bookletter_1911, Gowun_Batang, Gowun_Dodum, Graduate, Grand_Hotel, Grandiflora_One, Grandstander, Grape_Nuts, Gravitas_One, Great_Vibes, Grechen_Fuemen, Grenze, Grenze_Gotisch, Grey_Qo, Griffy, Gruppo, Gudea, Gugi, Gulzar, Gupter, Gurajada, Gveret_Levin, Gwendolyn, Habibi, Hachi_Maru_Pop, Hahmlet, Halant, Hammersmith_One, Hanalei, Hanalei_Fill, Handjet, Handlee, Hanken_Grotesk, Hanuman, Happy_Monkey, Harmattan, Headland_One, Hedvig_Letters_Sans, Hedvig_Letters_Serif, Heebo, Henny_Penny, Hepta_Slab, Herr_Von_Muellerhoff, Hi_Melody, Hina_Mincho, Hind, Hind_Guntur, Hind_Madurai, Hind_Mysuru, Hind_Siliguri, Hind_Vadodara, Holtwood_One_SC, Homemade_Apple, Homenaje, Honk, Host_Grotesk, Hubballi, Hubot_Sans, Huninn, Hurricane, IBM_Plex_Mono, IBM_Plex_Sans, IBM_Plex_Sans_Arabic, IBM_Plex_Sans_Condensed, IBM_Plex_Sans_Devanagari, IBM_Plex_Sans_Hebrew, IBM_Plex_Sans_JP, IBM_Plex_Sans_KR, IBM_Plex_Sans_Thai, IBM_Plex_Sans_Thai_Looped, IBM_Plex_Serif, IM_Fell_DW_Pica, IM_Fell_DW_Pica_SC, IM_Fell_Double_Pica, IM_Fell_Double_Pica_SC, IM_Fell_English, IM_Fell_English_SC, IM_Fell_French_Canon, IM_Fell_French_Canon_SC, IM_Fell_Great_Primer, IM_Fell_Great_Primer_SC, Iansui, Ibarra_Real_Nova, Iceberg, Iceland, Idiqlat, Imbue, Imperial_Script, Imprima, Inclusive_Sans, Inconsolata, Inder, Indie_Flower, Ingrid_Darling, Inika, Inknut_Antiqua, Inria_Sans, Inria_Serif, Inspiration, Instrument_Sans, Instrument_Serif, Intel_One_Mono, Inter, Inter_Tight, Irish_Grover, Island_Moments, Istok_Web, Italiana, Italianno, Itim, Jacquard_12, Jacquard_12_Charted, Jacquard_24, Jacquard_24_Charted, Jacquarda_Bastarda_9, Jacquarda_Bastarda_9_Charted, Jacques_Francois, Jacques_Francois_Shadow, Jaini, Jaini_Purva, Jaldi, Jaro, Jersey_10, Jersey_10_Charted, Jersey_15, Jersey_15_Charted, Jersey_20, Jersey_20_Charted, Jersey_25, Jersey_25_Charted, JetBrains_Mono, Jim_Nightshade, Joan, Jockey_One, Jolly_Lodger, Jomhuria, Jomolhari, Josefin_Sans, Josefin_Slab, Jost, Joti_One, Jua, Judson, Julee, Julius_Sans_One, Junge, Jura, Just_Another_Hand, Just_Me_Again_Down_Here, K2D, Kablammo, Kadwa, Kaisei_Decol, Kaisei_HarunoUmi, Kaisei_Opti, Kaisei_Tokumin, Kalam, Kalnia, Kalnia_Glaze, Kameron, Kanchenjunga, Kanit, Kantumruy_Pro, Kapakana, Karantina, Karla, Karla_Tamil_Inclined, Karla_Tamil_Upright, Karma, Katibeh, Kaushan_Script, Kavivanar, Kavoon, Kay_Pho_Du, Kdam_Thmor_Pro, Keania_One, Kedebideri, Kelly_Slab, Kenia, Khand, Khmer, Khula, Kings, Kirang_Haerang, Kite_One, Kiwi_Maru, Klee_One, Knewave, KoHo, Kodchasan, Kode_Mono, Koh_Santepheap, Kolker_Brush, Konkhmer_Sleokchher, Kosugi, Kosugi_Maru, Kotta_One, Koulen, Kranky, Kreon, Kristi, Krona_One, Krub, Kufam, Kulim_Park, Kumar_One, Kumar_One_Outline, Kumbh_Sans, Kurale, LINE_Seed_JP, LXGW_Marker_Gothic, LXGW_WenKai_Mono_TC, LXGW_WenKai_TC, La_Belle_Aurore, Labrada, Lacquer, Laila, Lakki_Reddy, Lalezar, Lancelot, Langar, Lateef, Lato, Lavishly_Yours, League_Gothic, League_Script, League_Spartan, Leckerli_One, Ledger, Lekton, Lemon, Lemonada, Lexend, Lexend_Deca, Lexend_Exa, Lexend_Giga, Lexend_Mega, Lexend_Peta, Lexend_Tera, Lexend_Zetta, Libertinus_Keyboard, Libertinus_Math, Libertinus_Mono, Libertinus_Sans, Libertinus_Serif, Libertinus_Serif_Display, Libre_Barcode_128, Libre_Barcode_128_Text, Libre_Barcode_39, Libre_Barcode_39_Extended, Libre_Barcode_39_Extended_Text, Libre_Barcode_39_Text, Libre_Barcode_EAN13_Text, Libre_Baskerville, Libre_Bodoni, Libre_Caslon_Display, Libre_Caslon_Text, Libre_Franklin, Licorice, Life_Savers, Lilex, Lilita_One, Lily_Script_One, Limelight, Linden_Hill, Linefont, Lisu_Bosa, Liter, Literata, Liu_Jian_Mao_Cao, Livvic, Lobster, Lobster_Two, Londrina_Outline, Londrina_Shadow, Londrina_Sketch, Londrina_Solid, Long_Cang, Lora, Love_Light, Love_Ya_Like_A_Sister, Loved_by_the_King, Lovers_Quarrel, Luckiest_Guy, Lugrasimo, Lumanosimo, Lunasima, Lusitana, Lustria, Luxurious_Roman, Luxurious_Script, M_PLUS_1, M_PLUS_1_Code, M_PLUS_1p, M_PLUS_2, M_PLUS_Code_Latin, M_PLUS_Rounded_1c, Ma_Shan_Zheng, Macondo, Macondo_Swash_Caps, Mada, Madimi_One, Magra, Maiden_Orange, Maitree, Major_Mono_Display, Mako, Mali, Mallanna, Maname, Mandali, Manjari, Manrope, Mansalva, Manuale, Manufacturing_Consent, Marcellus, Marcellus_SC, Marck_Script, Margarine, Marhey, Markazi_Text, Marko_One, Marmelad, Martel, Martel_Sans, Martian_Mono, Marvel, Matangi, Mate, Mate_SC, Matemasie, Maven_Pro, McLaren, Mea_Culpa, Meddon, MedievalSharp, Medula_One, Meera_Inimai, Megrim, Meie_Script, Menbere, Meow_Script, Merienda, Merriweather, Merriweather_Sans, Metal, Metal_Mania, Metamorphous, Metrophobic, Michroma, Micro_5, Micro_5_Charted, Milonga, Miltonian, Miltonian_Tattoo, Mina, Mingzat, Miniver, Miriam_Libre, Mirza, Miss_Fajardose, Mitr, Mochiy_Pop_One, Mochiy_Pop_P_One, Modak, Modern_Antiqua, Moderustic, Mogra, Mohave, Moirai_One, Molengo, Molle, Momo_Signature, Momo_Trust_Display, Momo_Trust_Sans, Mona_Sans, Monda, Monofett, Monomakh, Monomaniac_One, Monoton, Monsieur_La_Doulaise, Montaga, Montagu_Slab, MonteCarlo, Montez, Montserrat, Montserrat_Alternates, Montserrat_Underline, Moo_Lah_Lah, Mooli, Moon_Dance, Moul, Moulpali, Mountains_of_Christmas, Mouse_Memoirs, Mozilla_Headline, Mozilla_Text, Mr_Bedfort, Mr_Dafoe, Mr_De_Haviland, Mrs_Saint_Delafield, Mrs_Sheppards, Ms_Madi, Mukta, Mukta_Mahee, Mukta_Malar, Mukta_Vaani, Mulish, Murecho, MuseoModerno, My_Soul, Mynerve, Mystery_Quest, NTR, Nabla, Namdhinggo, Nanum_Brush_Script, Nanum_Gothic, Nanum_Gothic_Coding, Nanum_Myeongjo, Nanum_Pen_Script, Narnoor, Nata_Sans, National_Park, Neonderthaw, Nerko_One, Neucha, Neuton, New_Amsterdam, New_Rocker, New_Tegomin, News_Cycle, Newsreader, Niconne, Niramit, Nixie_One, Nobile, Nokora, Norican, Nosifer, Notable, Nothing_You_Could_Do, Noticia_Text, Noto_Color_Emoji, Noto_Emoji, Noto_Kufi_Arabic, Noto_Music, Noto_Naskh_Arabic, Noto_Nastaliq_Urdu, Noto_Rashi_Hebrew, Noto_Sans, Noto_Sans_Adlam, Noto_Sans_Adlam_Unjoined, Noto_Sans_Anatolian_Hieroglyphs, Noto_Sans_Arabic, Noto_Sans_Armenian, Noto_Sans_Avestan, Noto_Sans_Balinese, Noto_Sans_Bamum, Noto_Sans_Bassa_Vah, Noto_Sans_Batak, Noto_Sans_Bengali, Noto_Sans_Bhaiksuki, Noto_Sans_Brahmi, Noto_Sans_Buginese, Noto_Sans_Buhid, Noto_Sans_Canadian_Aboriginal, Noto_Sans_Carian, Noto_Sans_Caucasian_Albanian, Noto_Sans_Chakma, Noto_Sans_Cham, Noto_Sans_Cherokee, Noto_Sans_Chorasmian, Noto_Sans_Coptic, Noto_Sans_Cuneiform, Noto_Sans_Cypriot, Noto_Sans_Cypro_Minoan, Noto_Sans_Deseret, Noto_Sans_Devanagari, Noto_Sans_Display, Noto_Sans_Duployan, Noto_Sans_Egyptian_Hieroglyphs, Noto_Sans_Elbasan, Noto_Sans_Elymaic, Noto_Sans_Ethiopic, Noto_Sans_Georgian, Noto_Sans_Glagolitic, Noto_Sans_Gothic, Noto_Sans_Grantha, Noto_Sans_Gujarati, Noto_Sans_Gunjala_Gondi, Noto_Sans_Gurmukhi, Noto_Sans_HK, Noto_Sans_Hanifi_Rohingya, Noto_Sans_Hanunoo, Noto_Sans_Hatran, Noto_Sans_Hebrew, Noto_Sans_Imperial_Aramaic, Noto_Sans_Indic_Siyaq_Numbers, Noto_Sans_Inscriptional_Pahlavi, Noto_Sans_Inscriptional_Parthian, Noto_Sans_JP, Noto_Sans_Javanese, Noto_Sans_KR, Noto_Sans_Kaithi, Noto_Sans_Kannada, Noto_Sans_Kawi, Noto_Sans_Kayah_Li, Noto_Sans_Kharoshthi, Noto_Sans_Khmer, Noto_Sans_Khojki, Noto_Sans_Khudawadi, Noto_Sans_Lao, Noto_Sans_Lao_Looped, Noto_Sans_Lepcha, Noto_Sans_Limbu, Noto_Sans_Linear_A, Noto_Sans_Linear_B, Noto_Sans_Lisu, Noto_Sans_Lycian, Noto_Sans_Lydian, Noto_Sans_Mahajani, Noto_Sans_Malayalam, Noto_Sans_Mandaic, Noto_Sans_Manichaean, Noto_Sans_Marchen, Noto_Sans_Masaram_Gondi, Noto_Sans_Math, Noto_Sans_Mayan_Numerals, Noto_Sans_Medefaidrin, Noto_Sans_Meetei_Mayek, Noto_Sans_Mende_Kikakui, Noto_Sans_Meroitic, Noto_Sans_Miao, Noto_Sans_Modi, Noto_Sans_Mongolian, Noto_Sans_Mono, Noto_Sans_Mro, Noto_Sans_Multani, Noto_Sans_Myanmar, Noto_Sans_NKo, Noto_Sans_NKo_Unjoined, Noto_Sans_Nabataean, Noto_Sans_Nag_Mundari, Noto_Sans_Nandinagari, Noto_Sans_New_Tai_Lue, Noto_Sans_Newa, Noto_Sans_Nushu, Noto_Sans_Ogham, Noto_Sans_Ol_Chiki, Noto_Sans_Old_Hungarian, Noto_Sans_Old_Italic, Noto_Sans_Old_North_Arabian, Noto_Sans_Old_Permic, Noto_Sans_Old_Persian, Noto_Sans_Old_Sogdian, Noto_Sans_Old_South_Arabian, Noto_Sans_Old_Turkic, Noto_Sans_Oriya, Noto_Sans_Osage, Noto_Sans_Osmanya, Noto_Sans_Pahawh_Hmong, Noto_Sans_Palmyrene, Noto_Sans_Pau_Cin_Hau, Noto_Sans_PhagsPa, Noto_Sans_Phoenician, Noto_Sans_Psalter_Pahlavi, Noto_Sans_Rejang, Noto_Sans_Runic, Noto_Sans_SC, Noto_Sans_Samaritan, Noto_Sans_Saurashtra, Noto_Sans_Sharada, Noto_Sans_Shavian, Noto_Sans_Siddham, Noto_Sans_SignWriting, Noto_Sans_Sinhala, Noto_Sans_Sogdian, Noto_Sans_Sora_Sompeng, Noto_Sans_Soyombo, Noto_Sans_Sundanese, Noto_Sans_Sunuwar, Noto_Sans_Syloti_Nagri, Noto_Sans_Symbols, Noto_Sans_Symbols_2, Noto_Sans_Syriac, Noto_Sans_Syriac_Eastern, Noto_Sans_Syriac_Western, Noto_Sans_TC, Noto_Sans_Tagalog, Noto_Sans_Tagbanwa, Noto_Sans_Tai_Le, Noto_Sans_Tai_Tham, Noto_Sans_Tai_Viet, Noto_Sans_Takri, Noto_Sans_Tamil, Noto_Sans_Tamil_Supplement, Noto_Sans_Tangsa, Noto_Sans_Telugu, Noto_Sans_Thaana, Noto_Sans_Thai, Noto_Sans_Thai_Looped, Noto_Sans_Tifinagh, Noto_Sans_Tirhuta, Noto_Sans_Ugaritic, Noto_Sans_Vai, Noto_Sans_Vithkuqi, Noto_Sans_Wancho, Noto_Sans_Warang_Citi, Noto_Sans_Yi, Noto_Sans_Zanabazar_Square, Noto_Serif, Noto_Serif_Ahom, Noto_Serif_Armenian, Noto_Serif_Balinese, Noto_Serif_Bengali, Noto_Serif_Devanagari, Noto_Serif_Display, Noto_Serif_Dives_Akuru, Noto_Serif_Dogra, Noto_Serif_Ethiopic, Noto_Serif_Georgian, Noto_Serif_Grantha, Noto_Serif_Gujarati, Noto_Serif_Gurmukhi, Noto_Serif_HK, Noto_Serif_Hebrew, Noto_Serif_Hentaigana, Noto_Serif_JP, Noto_Serif_KR, Noto_Serif_Kannada, Noto_Serif_Khitan_Small_Script, Noto_Serif_Khmer, Noto_Serif_Khojki, Noto_Serif_Lao, Noto_Serif_Makasar, Noto_Serif_Malayalam, Noto_Serif_Myanmar, Noto_Serif_NP_Hmong, Noto_Serif_Old_Uyghur, Noto_Serif_Oriya, Noto_Serif_Ottoman_Siyaq, Noto_Serif_SC, Noto_Serif_Sinhala, Noto_Serif_TC, Noto_Serif_Tamil, Noto_Serif_Tangut, Noto_Serif_Telugu, Noto_Serif_Thai, Noto_Serif_Tibetan, Noto_Serif_Todhri, Noto_Serif_Toto, Noto_Serif_Vithkuqi, Noto_Serif_Yezidi, Noto_Traditional_Nushu, Noto_Znamenny_Musical_Notation, Nova_Cut, Nova_Flat, Nova_Mono, Nova_Oval, Nova_Round, Nova_Script, Nova_Slim, Nova_Square, Numans, Nunito, Nunito_Sans, Nuosu_SIL, Odibee_Sans, Odor_Mean_Chey, Offside, Oi, Ojuju, Old_Standard_TT, Oldenburg, Ole, Oleo_Script, Oleo_Script_Swash_Caps, Onest, Oooh_Baby, Open_Sans, Oranienbaum, Orbit, Orbitron, Oregano, Orelega_One, Orienta, Original_Surfer, Oswald, Outfit, Over_the_Rainbow, Overlock, Overlock_SC, Overpass, Overpass_Mono, Ovo, Oxanium, Oxygen, Oxygen_Mono, PT_Mono, PT_Sans, PT_Sans_Caption, PT_Sans_Narrow, PT_Serif, PT_Serif_Caption, Pacifico, Padauk, Padyakke_Expanded_One, Palanquin, Palanquin_Dark, Palette_Mosaic, Pangolin, Paprika, Parastoo, Parisienne, Parkinsans, Passero_One, Passion_One, Passions_Conflict, Pathway_Extreme, Pathway_Gothic_One, Patrick_Hand, Patrick_Hand_SC, Pattaya, Patua_One, Pavanam, Paytone_One, Peddana, Peralta, Permanent_Marker, Petemoss, Petit_Formal_Script, Petrona, Phetsarath, Philosopher, Phudu, Piazzolla, Piedra, Pinyon_Script, Pirata_One, Pixelify_Sans, Plaster, Platypi, Play, Playball, Playfair, Playfair_Display, Playfair_Display_SC, Playpen_Sans, Playpen_Sans_Arabic, Playpen_Sans_Deva, Playpen_Sans_Hebrew, Playpen_Sans_Thai, Playwrite_AR, Playwrite_AR_Guides, Playwrite_AT, Playwrite_AT_Guides, Playwrite_AU_NSW, Playwrite_AU_NSW_Guides, Playwrite_AU_QLD, Playwrite_AU_QLD_Guides, Playwrite_AU_SA, Playwrite_AU_SA_Guides, Playwrite_AU_TAS, Playwrite_AU_TAS_Guides, Playwrite_AU_VIC, Playwrite_AU_VIC_Guides, Playwrite_BE_VLG, Playwrite_BE_VLG_Guides, Playwrite_BE_WAL, Playwrite_BE_WAL_Guides, Playwrite_BR, Playwrite_BR_Guides, Playwrite_CA, Playwrite_CA_Guides, Playwrite_CL, Playwrite_CL_Guides, Playwrite_CO, Playwrite_CO_Guides, Playwrite_CU, Playwrite_CU_Guides, Playwrite_CZ, Playwrite_CZ_Guides, Playwrite_DE_Grund, Playwrite_DE_Grund_Guides, Playwrite_DE_LA, Playwrite_DE_LA_Guides, Playwrite_DE_SAS, Playwrite_DE_SAS_Guides, Playwrite_DE_VA, Playwrite_DE_VA_Guides, Playwrite_DK_Loopet, Playwrite_DK_Loopet_Guides, Playwrite_DK_Uloopet, Playwrite_DK_Uloopet_Guides, Playwrite_ES, Playwrite_ES_Deco, Playwrite_ES_Deco_Guides, Playwrite_ES_Guides, Playwrite_FR_Moderne, Playwrite_FR_Moderne_Guides, Playwrite_FR_Trad, Playwrite_FR_Trad_Guides, Playwrite_GB_J, Playwrite_GB_J_Guides, Playwrite_GB_S, Playwrite_GB_S_Guides, Playwrite_HR, Playwrite_HR_Guides, Playwrite_HR_Lijeva, Playwrite_HR_Lijeva_Guides, Playwrite_HU, Playwrite_HU_Guides, Playwrite_ID, Playwrite_ID_Guides, Playwrite_IE, Playwrite_IE_Guides, Playwrite_IN, Playwrite_IN_Guides, Playwrite_IS, Playwrite_IS_Guides, Playwrite_IT_Moderna, Playwrite_IT_Moderna_Guides, Playwrite_IT_Trad, Playwrite_IT_Trad_Guides, Playwrite_MX, Playwrite_MX_Guides, Playwrite_NG_Modern, Playwrite_NG_Modern_Guides, Playwrite_NL, Playwrite_NL_Guides, Playwrite_NO, Playwrite_NO_Guides, Playwrite_NZ, Playwrite_NZ_Basic, Playwrite_NZ_Basic_Guides, Playwrite_NZ_Guides, Playwrite_PE, Playwrite_PE_Guides, Playwrite_PL, Playwrite_PL_Guides, Playwrite_PT, Playwrite_PT_Guides, Playwrite_RO, Playwrite_RO_Guides, Playwrite_SK, Playwrite_SK_Guides, Playwrite_TZ, Playwrite_TZ_Guides, Playwrite_US_Modern, Playwrite_US_Modern_Guides, Playwrite_US_Trad, Playwrite_US_Trad_Guides, Playwrite_VN, Playwrite_VN_Guides, Playwrite_ZA, Playwrite_ZA_Guides, Plus_Jakarta_Sans, Pochaevsk, Podkova, Poetsen_One, Poiret_One, Poller_One, Poltawski_Nowy, Poly, Pompiere, Ponnala, Ponomar, Pontano_Sans, Poor_Story, Poppins, Port_Lligat_Sans, Port_Lligat_Slab, Potta_One, Pragati_Narrow, Praise, Prata, Preahvihear, Press_Start_2P, Pridi, Princess_Sofia, Prociono, Prompt, Prosto_One, Protest_Guerrilla, Protest_Revolution, Protest_Riot, Protest_Strike, Proza_Libre, Public_Sans, Puppies_Play, Puritan, Purple_Purse, Qahiri, Quando, Quantico, Quattrocento, Quattrocento_Sans, Questrial, Quicksand, Quintessential, Qwigley, Qwitcher_Grypen, REM, Racing_Sans_One, Radio_Canada, Radio_Canada_Big, Radley, Rajdhani, Rakkas, Raleway, Raleway_Dots, Ramabhadra, Ramaraja, Rambla, Rammetto_One, Rampart_One, Ramsina, Ranchers, Rancho, Ranga, Rasa, Rationale, Ravi_Prakash, Readex_Pro, Recursive, Red_Hat_Display, Red_Hat_Mono, Red_Hat_Text, Red_Rose, Redacted, Redacted_Script, Reddit_Mono, Reddit_Sans, Reddit_Sans_Condensed, Redressed, Reem_Kufi, Reem_Kufi_Fun, Reem_Kufi_Ink, Reenie_Beanie, Reggae_One, Rethink_Sans, Revalia, Rhodium_Libre, Ribeye, Ribeye_Marrow, Righteous, Risque, Road_Rage, Roboto, Roboto_Condensed, Roboto_Flex, Roboto_Mono, Roboto_Serif, Roboto_Slab, Rochester, Rock_3D, Rock_Salt, RocknRoll_One, Rokkitt, Romanesco, Ropa_Sans, Rosario, Rosarivo, Rouge_Script, Rowdies, Rozha_One, Rubik, Rubik_80s_Fade, Rubik_Beastly, Rubik_Broken_Fax, Rubik_Bubbles, Rubik_Burned, Rubik_Dirt, Rubik_Distressed, Rubik_Doodle_Shadow, Rubik_Doodle_Triangles, Rubik_Gemstones, Rubik_Glitch, Rubik_Glitch_Pop, Rubik_Iso, Rubik_Lines, Rubik_Maps, Rubik_Marker_Hatch, Rubik_Maze, Rubik_Microbe, Rubik_Mono_One, Rubik_Moonrocks, Rubik_Pixels, Rubik_Puddles, Rubik_Scribble, Rubik_Spray_Paint, Rubik_Storm, Rubik_Vinyl, Rubik_Wet_Paint, Ruda, Rufina, Ruge_Boogie, Ruluko, Rum_Raisin, Ruslan_Display, Russo_One, Ruthie, Ruwudu, Rye, SN_Pro, STIX_Two_Text, SUSE, SUSE_Mono, Sacramento, Sahitya, Sail, Saira, Saira_Condensed, Saira_Extra_Condensed, Saira_Semi_Condensed, Saira_Stencil_One, Salsa, Sanchez, Sancreek, Sankofa_Display, Sansation, Sansita, Sansita_Swashed, Sarabun, Sarala, Sarina, Sarpanch, Sassy_Frass, Satisfy, Savate, Sawarabi_Gothic, Sawarabi_Mincho, Scada, Scheherazade_New, Schibsted_Grotesk, Schoolbell, Science_Gothic, Scope_One, Seaweed_Script, Secular_One, Sedan, Sedan_SC, Sedgwick_Ave, Sedgwick_Ave_Display, Sekuya, Sen, Send_Flowers, Sevillana, Seymour_One, Shadows_Into_Light, Shadows_Into_Light_Two, Shafarik, Shalimar, Shantell_Sans, Shanti, Share, Share_Tech, Share_Tech_Mono, Shippori_Antique, Shippori_Antique_B1, Shippori_Mincho, Shippori_Mincho_B1, Shizuru, Shojumaru, Short_Stack, Shrikhand, Siemreap, Sigmar, Sigmar_One, Signika, Signika_Negative, Silkscreen, Simonetta, Single_Day, Sintony, Sirin_Stencil, Sirivennela, Six_Caps, Sixtyfour, Sixtyfour_Convergence, Skranji, Slabo_13px, Slabo_27px, Slackey, Slackside_One, Smokum, Smooch, Smooch_Sans, Smythe, Sniglet, Snippet, Snowburst_One, Sofadi_One, Sofia, Sofia_Sans, Sofia_Sans_Condensed, Sofia_Sans_Extra_Condensed, Sofia_Sans_Semi_Condensed, Solitreo, Solway, Sometype_Mono, Song_Myung, Sono, Sonsie_One, Sora, Sorts_Mill_Goudy, Sour_Gummy, Source_Code_Pro, Source_Sans_3, Source_Serif_4, Space_Grotesk, Space_Mono, Special_Elite, Special_Gothic, Special_Gothic_Condensed_One, Special_Gothic_Expanded_One, Spectral, Spectral_SC, Spicy_Rice, Spinnaker, Spirax, Splash, Spline_Sans, Spline_Sans_Mono, Squada_One, Square_Peg, Sree_Krushnadevaraya, Sriracha, Srisakdi, Staatliches, Stack_Sans_Headline, Stack_Sans_Notch, Stack_Sans_Text, Stalemate, Stalinist_One, Stardos_Stencil, Stick, Stick_No_Bills, Stint_Ultra_Condensed, Stint_Ultra_Expanded, Stoke, Story_Script, Strait, Style_Script, Stylish, Sue_Ellen_Francisco, Suez_One, Sulphur_Point, Sumana, Sunflower, Sunshiney, Supermercado_One, Sura, Suranna, Suravaram, Suwannaphum, Swanky_and_Moo_Moo, Syncopate, Syne, Syne_Mono, Syne_Tactile, TASA_Explorer, TASA_Orbiter, Tac_One, Tagesschrift, Tai_Heritage_Pro, Tajawal, Tangerine, Tapestry, Taprom, Tauri, Taviraj, Teachers, Teko, Tektur, Telex, Tenali_Ramakrishna, Tenor_Sans, Text_Me_One, Texturina, Thasadith, The_Girl_Next_Door, The_Nautigal, Tienne, TikTok_Sans, Tillana, Tilt_Neon, Tilt_Prism, Tilt_Warp, Timmana, Tinos, Tiny5, Tiro_Bangla, Tiro_Devanagari_Hindi, Tiro_Devanagari_Marathi, Tiro_Devanagari_Sanskrit, Tiro_Gurmukhi, Tiro_Kannada, Tiro_Tamil, Tiro_Telugu, Tirra, Titan_One, Titillium_Web, Tomorrow, Tourney, Trade_Winds, Train_One, Triodion, Trirong, Trispace, Trocchi, Trochut, Truculenta, Trykker, Tsukimi_Rounded, Tuffy, Tulpen_One, Turret_Road, Twinkle_Star, Ubuntu, Ubuntu_Condensed, Ubuntu_Mono, Ubuntu_Sans, Ubuntu_Sans_Mono, Uchen, Ultra, Unbounded, Uncial_Antiqua, Underdog, Unica_One, UnifrakturCook, UnifrakturMaguntia, Unkempt, Unlock, Unna, UoqMunThenKhung, Updock, Urbanist, VT323, Vampiro_One, Varela, Varela_Round, Varta, Vast_Shadow, Vazirmatn, Vend_Sans, Vesper_Libre, Viaoda_Libre, Vibes, Vibur, Victor_Mono, Vidaloka, Viga, Vina_Sans, Voces, Volkhov, Vollkorn, Vollkorn_SC, Voltaire, Vujahday_Script, WDXL_Lubrifont_JP_N, WDXL_Lubrifont_SC, WDXL_Lubrifont_TC, Waiting_for_the_Sunrise, Wallpoet, Walter_Turncoat, Warnes, Water_Brush, Waterfall, Wavefont, Wellfleet, Wendy_One, Whisper, WindSong, Winky_Rough, Winky_Sans, Wire_One, Wittgenstein, Wix_Madefor_Display, Wix_Madefor_Text, Work_Sans, Workbench, Xanh_Mono, Yaldevi, Yanone_Kaffeesatz, Yantramanav, Yarndings_12, Yarndings_12_Charted, Yarndings_20, Yarndings_20_Charted, Yatra_One, Yellowtail, Yeon_Sung, Yeseva_One, Yesteryear, Yomogi, Young_Serif, Yrsa, Ysabeau, Ysabeau_Infant, Ysabeau_Office, Ysabeau_SC, Yuji_Boku, Yuji_Hentaigana_Akari, Yuji_Hentaigana_Akebono, Yuji_Mai, Yuji_Syuku, Yusei_Magic, ZCOOL_KuaiLe, ZCOOL_QingKe_HuangYou, ZCOOL_XiaoWei, Zain, Zalando_Sans, Zalando_Sans_Expanded, Zalando_Sans_SemiExpanded, Zen_Antique, Zen_Antique_Soft, Zen_Dots, Zen_Kaku_Gothic_Antique, Zen_Kaku_Gothic_New, Zen_Kurenaido, Zen_Loop, Zen_Maru_Gothic, Zen_Old_Mincho, Zen_Tokyo_Zoo, Zeyada, Zhi_Mang_Xing, Zilla_Slab, Zilla_Slab_Highlight, buildGoogleFontsUrl, googleFonts as default, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles };
|
|
1
|
+
import googleFonts, { buildGoogleFontsUrl, createFontLoader, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles } from "./font-google-base.js";
|
|
2
|
+
export { buildGoogleFontsUrl, createFontLoader, googleFonts as default, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles };
|
package/dist/shims/image.js
CHANGED
|
@@ -187,7 +187,8 @@ const Image = forwardRef(function Image({ src: srcProp, alt, width, height, fill
|
|
|
187
187
|
src,
|
|
188
188
|
alt,
|
|
189
189
|
layout: "fullWidth",
|
|
190
|
-
priority,
|
|
190
|
+
loading: priority ? "eager" : loading ?? "lazy",
|
|
191
|
+
fetchPriority: priority ? "high" : void 0,
|
|
191
192
|
sizes,
|
|
192
193
|
className,
|
|
193
194
|
background: bg,
|
|
@@ -199,7 +200,8 @@ const Image = forwardRef(function Image({ src: srcProp, alt, width, height, fill
|
|
|
199
200
|
width: imgWidth,
|
|
200
201
|
height: imgHeight,
|
|
201
202
|
layout: "constrained",
|
|
202
|
-
priority,
|
|
203
|
+
loading: priority ? "eager" : loading ?? "lazy",
|
|
204
|
+
fetchPriority: priority ? "high" : void 0,
|
|
203
205
|
sizes,
|
|
204
206
|
className,
|
|
205
207
|
background: bg,
|