radiant-docs 0.1.6 → 0.1.8
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/dist/index.js +32 -6
- package/package.json +3 -3
- package/template/astro.config.mjs +76 -3
- package/template/package-lock.json +924 -737
- package/template/package.json +7 -5
- package/template/scripts/generate-og-images.mjs +335 -0
- package/template/scripts/generate-og-metadata.mjs +173 -0
- package/template/scripts/rewrite-static-asset-host.mjs +408 -0
- package/template/scripts/stamp-image-versions.mjs +277 -0
- package/template/scripts/stamp-og-image-versions.mjs +199 -0
- package/template/scripts/stamp-pagefind-runtime-version.mjs +140 -0
- package/template/src/assets/fonts/geist-mono/cyrillic.woff2 +0 -0
- package/template/src/assets/fonts/geist-mono/latin-ext.woff2 +0 -0
- package/template/src/assets/fonts/geist-mono/latin.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/canadian-aboriginal.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/cherokee.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/latin-ext.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/latin.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/math.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/nushu.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/symbols.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/syriac.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/tifinagh.woff2 +0 -0
- package/template/src/assets/fonts/google-sans-flex/vietnamese.woff2 +0 -0
- package/template/src/components/Footer.astro +94 -0
- package/template/src/components/Header.astro +11 -66
- package/template/src/components/LogoLink.astro +103 -0
- package/template/src/components/MdxPage.astro +126 -11
- package/template/src/components/OpenApiPage.astro +1036 -69
- package/template/src/components/Search.astro +0 -2
- package/template/src/components/SidebarDropdown.astro +34 -14
- package/template/src/components/SidebarGroup.astro +3 -6
- package/template/src/components/SidebarLink.astro +22 -12
- package/template/src/components/SidebarMenu.astro +19 -16
- package/template/src/components/SidebarSegmented.astro +99 -0
- package/template/src/components/SidebarSubgroup.astro +12 -12
- package/template/src/components/ThemeSwitcher.astro +30 -7
- package/template/src/components/endpoint/PlaygroundBar.astro +32 -36
- package/template/src/components/endpoint/PlaygroundButton.astro +40 -4
- package/template/src/components/endpoint/PlaygroundField.astro +1068 -22
- package/template/src/components/endpoint/PlaygroundForm.astro +559 -61
- package/template/src/components/endpoint/RequestSnippets.astro +342 -193
- package/template/src/components/endpoint/ResponseDisplay.astro +161 -147
- package/template/src/components/endpoint/ResponseFieldTree.astro +134 -0
- package/template/src/components/endpoint/ResponseFields.astro +711 -68
- package/template/src/components/endpoint/ResponseSnippets.astro +299 -173
- package/template/src/components/sidebar/SidebarEndpointLink.astro +1 -1
- package/template/src/components/ui/CodeLanguageIcon.astro +19 -0
- package/template/src/components/ui/CodeTabEdge.astro +79 -0
- package/template/src/components/ui/Field.astro +103 -20
- package/template/src/components/ui/Icon.astro +32 -0
- package/template/src/components/ui/ListChevronsToggle.astro +31 -0
- package/template/src/components/ui/Tag.astro +1 -1
- package/template/src/components/user/{Accordian.astro → Accordion.astro} +6 -6
- package/template/src/components/user/Callout.astro +5 -9
- package/template/src/components/user/CodeBlock.astro +400 -0
- package/template/src/components/user/CodeGroup.astro +225 -0
- package/template/src/components/user/ComponentPreview.astro +1 -0
- package/template/src/components/user/ComponentPreviewBlock.astro +181 -0
- package/template/src/components/user/Image.astro +132 -0
- package/template/src/components/user/Steps.astro +1 -3
- package/template/src/components/user/Tabs.astro +2 -2
- package/template/src/content.config.ts +1 -0
- package/template/src/layouts/Layout.astro +109 -8
- package/template/src/lib/code/code-block.ts +546 -0
- package/template/src/lib/frontmatter-schema.ts +8 -7
- package/template/src/lib/mdx/remark-code-block-component.ts +342 -0
- package/template/src/lib/mdx/remark-demote-h1.ts +16 -0
- package/template/src/lib/pagefind.ts +19 -5
- package/template/src/lib/routes.ts +49 -31
- package/template/src/lib/utils.ts +20 -0
- package/template/src/lib/validation.ts +638 -200
- package/template/src/pages/[...slug].astro +18 -5
- package/template/src/styles/geist-mono.css +33 -0
- package/template/src/styles/global.css +89 -84
- package/template/src/styles/google-sans-flex.css +143 -0
- package/template/ec.config.mjs +0 -51
- /package/template/src/components/user/{AccordianGroup.astro → AccordionGroup.astro} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
import { getCollection } from "astro:content";
|
|
3
|
-
import { getAllRoutes, type Route } from "../lib/routes";
|
|
3
|
+
import { getAllRoutes, resolveMdxPageTitle, type Route } from "../lib/routes";
|
|
4
4
|
import { getConfig, validateMdxContent } from "../lib/validation";
|
|
5
5
|
import MdxPage from "../components/MdxPage.astro";
|
|
6
6
|
import OpenApiPage from "../components/OpenApiPage.astro";
|
|
@@ -28,7 +28,7 @@ export async function getStaticPaths(): Promise<GetStaticPathsResult> {
|
|
|
28
28
|
const entry = findEntry(route.filePath);
|
|
29
29
|
if (!entry) {
|
|
30
30
|
throw new Error(
|
|
31
|
-
`Could not find content collection entry for path: ${route.filePath}
|
|
31
|
+
`Could not find content collection entry for path: ${route.filePath}`,
|
|
32
32
|
);
|
|
33
33
|
}
|
|
34
34
|
return {
|
|
@@ -47,13 +47,26 @@ export async function getStaticPaths(): Promise<GetStaticPathsResult> {
|
|
|
47
47
|
if (config.home) {
|
|
48
48
|
const homeEntry = findEntry(config.home);
|
|
49
49
|
if (!homeEntry) {
|
|
50
|
-
throw new Error(
|
|
50
|
+
throw new Error(
|
|
51
|
+
`Invariant violation: home entry not found after validation for path: ${config.home}`,
|
|
52
|
+
);
|
|
51
53
|
}
|
|
54
|
+
|
|
55
|
+
const existingHomeRoute = routes.find(
|
|
56
|
+
(candidate) =>
|
|
57
|
+
candidate.type === "mdx" && candidate.filePath === config.home,
|
|
58
|
+
);
|
|
59
|
+
|
|
52
60
|
const homeRoute: Route = {
|
|
53
61
|
type: "mdx",
|
|
54
62
|
slug: "/",
|
|
55
63
|
filePath: config.home,
|
|
56
|
-
title:
|
|
64
|
+
title:
|
|
65
|
+
existingHomeRoute?.title ??
|
|
66
|
+
resolveMdxPageTitle({
|
|
67
|
+
entry: homeEntry,
|
|
68
|
+
filePath: config.home,
|
|
69
|
+
}),
|
|
57
70
|
};
|
|
58
71
|
paths.push({
|
|
59
72
|
params: { slug: "/" },
|
|
@@ -70,7 +83,7 @@ const { route, entry } = props;
|
|
|
70
83
|
|
|
71
84
|
{
|
|
72
85
|
route.type === "mdx" ? (
|
|
73
|
-
<MdxPage entry={entry!} />
|
|
86
|
+
<MdxPage entry={entry!} route={route} />
|
|
74
87
|
) : (
|
|
75
88
|
<OpenApiPage route={route} />
|
|
76
89
|
)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* geist-mono-cyrillic */
|
|
2
|
+
@font-face {
|
|
3
|
+
font-family: "Geist Mono";
|
|
4
|
+
font-style: normal;
|
|
5
|
+
font-weight: 100 900;
|
|
6
|
+
font-display: swap;
|
|
7
|
+
src: url("../assets/fonts/geist-mono/cyrillic.woff2") format("woff2");
|
|
8
|
+
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* geist-mono-latin-ext */
|
|
12
|
+
@font-face {
|
|
13
|
+
font-family: "Geist Mono";
|
|
14
|
+
font-style: normal;
|
|
15
|
+
font-weight: 100 900;
|
|
16
|
+
font-display: swap;
|
|
17
|
+
src: url("../assets/fonts/geist-mono/latin-ext.woff2") format("woff2");
|
|
18
|
+
unicode-range:
|
|
19
|
+
U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF,
|
|
20
|
+
U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* geist-mono-latin */
|
|
24
|
+
@font-face {
|
|
25
|
+
font-family: "Geist Mono";
|
|
26
|
+
font-style: normal;
|
|
27
|
+
font-weight: 100 900;
|
|
28
|
+
font-display: swap;
|
|
29
|
+
src: url("../assets/fonts/geist-mono/latin.woff2") format("woff2");
|
|
30
|
+
unicode-range:
|
|
31
|
+
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
|
|
32
|
+
U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
33
|
+
}
|
|
@@ -5,27 +5,77 @@
|
|
|
5
5
|
/* This maps the 'background' utility to our CSS variable */
|
|
6
6
|
--color-background: var(--background);
|
|
7
7
|
--color-background-dark: var(--background-dark);
|
|
8
|
+
--color-foreground: var(--foreground);
|
|
8
9
|
|
|
9
10
|
--color-border: var(--border);
|
|
10
11
|
--color-border-light: var(--border-light);
|
|
12
|
+
--color-ring: var(--ring);
|
|
13
|
+
--color-input: var(--input);
|
|
14
|
+
|
|
15
|
+
--color-primary: var(--primary);
|
|
16
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
17
|
+
--color-secondary: var(--secondary);
|
|
18
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
19
|
+
--color-muted: var(--muted);
|
|
20
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
21
|
+
--color-accent: var(--accent);
|
|
22
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
23
|
+
--color-destructive: var(--destructive);
|
|
24
|
+
|
|
25
|
+
--font-sans: "Google Sans Flex", ui-sans-serif, system-ui, sans-serif;
|
|
26
|
+
--font-mono:
|
|
27
|
+
"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
|
|
28
|
+
"Liberation Mono", "Courier New", monospace;
|
|
29
|
+
|
|
30
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
31
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
32
|
+
--radius-lg: var(--radius);
|
|
33
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
11
34
|
}
|
|
12
35
|
|
|
13
36
|
/* 2. Light Mode (Default) */
|
|
14
37
|
:root {
|
|
38
|
+
--radius: 0.625rem;
|
|
15
39
|
--background: #ffffff;
|
|
16
40
|
--background-dark: var(--color-neutral-100);
|
|
41
|
+
--foreground: oklch(0.145 0 0);
|
|
42
|
+
|
|
43
|
+
--primary: oklch(0.205 0 0);
|
|
44
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
45
|
+
--secondary: oklch(0.97 0 0);
|
|
46
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
47
|
+
--muted: oklch(0.97 0 0);
|
|
48
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
49
|
+
--accent: oklch(0.97 0 0);
|
|
50
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
51
|
+
--destructive: oklch(50.5% 0.213 27.518);
|
|
17
52
|
|
|
18
53
|
--border: var(--color-neutral-200);
|
|
19
54
|
--border-light: var(--color-neutral-100);
|
|
55
|
+
--input: oklch(0.922 0 0);
|
|
56
|
+
--ring: oklch(0.708 0 0);
|
|
20
57
|
}
|
|
21
58
|
|
|
22
59
|
/* 3. Dark Mode */
|
|
23
60
|
.dark {
|
|
24
61
|
--background: var(--color-neutral-900);
|
|
25
62
|
--background-dark: var(--color-neutral-950);
|
|
63
|
+
--foreground: oklch(0.985 0 0);
|
|
64
|
+
|
|
65
|
+
--primary: oklch(0.922 0 0);
|
|
66
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
67
|
+
--secondary: oklch(0.269 0 0);
|
|
68
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
69
|
+
--muted: oklch(0.269 0 0);
|
|
70
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
71
|
+
--accent: oklch(0.269 0 0);
|
|
72
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
73
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
26
74
|
|
|
27
75
|
--border: color-mix(in srgb, var(--color-neutral-800) 100%, transparent);
|
|
28
76
|
--border-light: color-mix(in srgb, var(--color-neutral-800) 50%, transparent);
|
|
77
|
+
--input: oklch(1 0 0 / 15%);
|
|
78
|
+
--ring: oklch(0.556 0 0);
|
|
29
79
|
}
|
|
30
80
|
|
|
31
81
|
@variant dark (&:where(.dark, .dark *));
|
|
@@ -34,92 +84,65 @@
|
|
|
34
84
|
--breakpoint-xs: 30rem;
|
|
35
85
|
}
|
|
36
86
|
|
|
87
|
+
@layer base {
|
|
88
|
+
* {
|
|
89
|
+
@apply border-border outline-ring/50;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
body {
|
|
93
|
+
@apply bg-background text-foreground;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
37
97
|
[x-cloak] {
|
|
38
98
|
display: none !important;
|
|
39
99
|
}
|
|
40
100
|
|
|
41
101
|
/* Prose styling */
|
|
42
102
|
.prose-rules {
|
|
43
|
-
@apply *:max-w-2xl max-w-none prose prose-neutral *:
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/* Code block styling */
|
|
47
|
-
.expressive-code .ec-line .code {
|
|
48
|
-
border-inline-start-width: 0 !important;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.expressive-code .has-title .copy button,
|
|
52
|
-
.expressive-code .is-terminal .copy button {
|
|
53
|
-
@apply opacity-100!;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.expressive-code .copy button {
|
|
57
|
-
@apply rounded-md!;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/* Hide the tooltip text */
|
|
61
|
-
.expressive-code .copy .feedback {
|
|
62
|
-
@apply hidden!;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.expressive-code .frame:not(.has-title):hover .copy button {
|
|
66
|
-
@apply bg-white/50! opacity-100! backdrop-blur-xs shadow-xs;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/* Copy icon color */
|
|
70
|
-
.expressive-code .copy button:after {
|
|
71
|
-
@apply bg-neutral-500/80! duration-200;
|
|
103
|
+
@apply *:max-w-2xl max-w-none prose prose-neutral *:first:mt-0 *:last:mb-0 dark:prose-invert prose-h2:scroll-mt-28 prose-h3:scroll-mt-24 prose-headings:font-semibold [--tw-prose-bullets:inherit] [--tw-prose-counters:text-neutral-950];
|
|
72
104
|
}
|
|
73
105
|
|
|
74
|
-
.
|
|
75
|
-
@apply
|
|
106
|
+
.prose-rules :is(h2, h3, h4, h5, h6) {
|
|
107
|
+
@apply relative;
|
|
108
|
+
padding-left: 0.375rem;
|
|
109
|
+
margin-left: -0.375rem;
|
|
76
110
|
}
|
|
77
111
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") !important;
|
|
81
|
-
@apply transition-all! duration-200! scale-0! opacity-0! bg-green-600! mask-no-repeat mask-center;
|
|
112
|
+
.prose-rules :is(h2, h3, h4, h5, h6)[id] {
|
|
113
|
+
@apply cursor-pointer;
|
|
82
114
|
}
|
|
83
115
|
|
|
84
|
-
.
|
|
85
|
-
@apply opacity-100 bg-
|
|
116
|
+
.prose-rules :is(h2, h3, h4, h5, h6) > .heading-anchor {
|
|
117
|
+
@apply absolute inline-flex size-6 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium no-underline opacity-0 transition-all cursor-pointer outline-none hover:bg-accent text-neutral-400 hover:text-neutral-500 focus-visible:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] dark:hover:bg-accent/50;
|
|
118
|
+
right: 100%;
|
|
119
|
+
top: 50%;
|
|
120
|
+
transform: translateY(-50%);
|
|
86
121
|
}
|
|
87
122
|
|
|
88
|
-
.
|
|
89
|
-
|
|
123
|
+
.prose-rules :is(h2, h3, h4, h5, h6):hover > .heading-anchor,
|
|
124
|
+
.prose-rules :is(h2, h3, h4, h5, h6):focus-within > .heading-anchor {
|
|
125
|
+
@apply opacity-100;
|
|
90
126
|
}
|
|
91
127
|
|
|
92
|
-
.
|
|
93
|
-
@apply
|
|
128
|
+
.prose-rules .heading-anchor-icon {
|
|
129
|
+
@apply h-3.5 w-3.5;
|
|
94
130
|
}
|
|
95
131
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
/* Copy button with code block title */
|
|
101
|
-
.expressive-code .has-title .copy,
|
|
102
|
-
.expressive-code .is-terminal .copy {
|
|
103
|
-
@apply top-px!;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.expressive-code .has-title .copy button,
|
|
107
|
-
.expressive-code .is-terminal .copy button {
|
|
108
|
-
@apply bg-transparent!;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.expressive-code .has-title .copy button:before,
|
|
112
|
-
.expressive-code .is-terminal .copy button:before {
|
|
113
|
-
@apply border-none;
|
|
114
|
-
}
|
|
132
|
+
@media (max-width: 1023px) {
|
|
133
|
+
.prose-rules :is(h2, h3, h4, h5, h6) > .heading-anchor {
|
|
134
|
+
@apply opacity-0 pointer-events-none;
|
|
135
|
+
}
|
|
115
136
|
|
|
116
|
-
.
|
|
117
|
-
|
|
137
|
+
.prose-rules :is(h2, h3, h4, h5, h6):hover > .heading-anchor,
|
|
138
|
+
.prose-rules :is(h2, h3, h4, h5, h6):focus-within > .heading-anchor {
|
|
139
|
+
@apply opacity-0;
|
|
140
|
+
}
|
|
118
141
|
}
|
|
119
142
|
|
|
120
143
|
/* Code single-line styling */
|
|
121
|
-
.prose :not(pre) > code {
|
|
122
|
-
@apply px-1 py-
|
|
144
|
+
:is(.prose, .prose-rules) :not(pre) > code {
|
|
145
|
+
@apply px-1 py-px bg-neutral-100/90 text-neutral-600 rounded-md font-mono font-medium border border-neutral-200/80 after:hidden before:hidden;
|
|
123
146
|
}
|
|
124
147
|
|
|
125
148
|
/* <ol> numbers */
|
|
@@ -127,25 +150,6 @@
|
|
|
127
150
|
@apply font-medium;
|
|
128
151
|
}
|
|
129
152
|
|
|
130
|
-
/* Code line collapse issue */
|
|
131
|
-
.expressive-code .ec-line .code {
|
|
132
|
-
@apply min-w-0 w-fit;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/* Collapse icon */
|
|
136
|
-
.expressive-code .ec-section summary :is(.expand, .collapse) {
|
|
137
|
-
@apply opacity-100!;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/* Tab shadows */
|
|
141
|
-
.expressive-code .frame.has-title:not(.is-terminal) .title {
|
|
142
|
-
@apply shadow-[1px_0px_2px_0px_rgba(0,0,0,0.01)];
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.expressive-code .frame.has-title:not(.is-terminal) .header {
|
|
146
|
-
@apply shadow-[inset_0px_0.5px_2px_2px_rgba(0,0,0,0.01)];
|
|
147
|
-
}
|
|
148
|
-
|
|
149
153
|
/* Animations */
|
|
150
154
|
@keyframes scaleIn {
|
|
151
155
|
from {
|
|
@@ -199,7 +203,8 @@
|
|
|
199
203
|
--theme-transition: 200ms; /* Set your desired sync speed */
|
|
200
204
|
|
|
201
205
|
transition-duration: var(--theme-transition) !important;
|
|
202
|
-
transition-property:
|
|
206
|
+
transition-property:
|
|
207
|
+
background-color, border-color, color, fill, stroke !important;
|
|
203
208
|
}
|
|
204
209
|
/* Ensure the pill slider is NOT affected by the forced color duration
|
|
205
210
|
so its movement remains independent */
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/* google-sans-flex-canadian-aboriginal */
|
|
2
|
+
@font-face {
|
|
3
|
+
font-family: "Google Sans Flex";
|
|
4
|
+
font-style: normal;
|
|
5
|
+
font-weight: 1 1000;
|
|
6
|
+
font-stretch: 100%;
|
|
7
|
+
font-display: swap;
|
|
8
|
+
src: url("../assets/fonts/google-sans-flex/canadian-aboriginal.woff2") format("woff2");
|
|
9
|
+
unicode-range: U+02C7, U+02D8-02D9, U+02DB, U+0307, U+1400-167F, U+18B0-18F5, U+25CC, U+11AB0-11ABF;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* google-sans-flex-cherokee */
|
|
13
|
+
@font-face {
|
|
14
|
+
font-family: "Google Sans Flex";
|
|
15
|
+
font-style: normal;
|
|
16
|
+
font-weight: 1 1000;
|
|
17
|
+
font-stretch: 100%;
|
|
18
|
+
font-display: swap;
|
|
19
|
+
src: url("../assets/fonts/google-sans-flex/cherokee.woff2") format("woff2");
|
|
20
|
+
unicode-range: U+0300-0302, U+0304, U+030B-030C, U+0323-0324, U+0330-0331, U+13A0-13FF, U+AB70-ABBF;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* google-sans-flex-math */
|
|
24
|
+
@font-face {
|
|
25
|
+
font-family: "Google Sans Flex";
|
|
26
|
+
font-style: normal;
|
|
27
|
+
font-weight: 1 1000;
|
|
28
|
+
font-stretch: 100%;
|
|
29
|
+
font-display: swap;
|
|
30
|
+
src: url("../assets/fonts/google-sans-flex/math.woff2") format("woff2");
|
|
31
|
+
unicode-range:
|
|
32
|
+
U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330,
|
|
33
|
+
U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1,
|
|
34
|
+
U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047,
|
|
35
|
+
U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF,
|
|
36
|
+
U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5,
|
|
37
|
+
U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321,
|
|
38
|
+
U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7,
|
|
39
|
+
U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11,
|
|
40
|
+
U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* google-sans-flex-nushu */
|
|
44
|
+
@font-face {
|
|
45
|
+
font-family: "Google Sans Flex";
|
|
46
|
+
font-style: normal;
|
|
47
|
+
font-weight: 1 1000;
|
|
48
|
+
font-stretch: 100%;
|
|
49
|
+
font-display: swap;
|
|
50
|
+
src: url("../assets/fonts/google-sans-flex/nushu.woff2") format("woff2");
|
|
51
|
+
unicode-range: U+2003, U+3000, U+3002, U+4E00, U+FE12, U+16FE1, U+1B170-1B2FB;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* google-sans-flex-symbols */
|
|
55
|
+
@font-face {
|
|
56
|
+
font-family: "Google Sans Flex";
|
|
57
|
+
font-style: normal;
|
|
58
|
+
font-weight: 1 1000;
|
|
59
|
+
font-stretch: 100%;
|
|
60
|
+
font-display: swap;
|
|
61
|
+
src: url("../assets/fonts/google-sans-flex/symbols.woff2") format("woff2");
|
|
62
|
+
unicode-range:
|
|
63
|
+
U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192,
|
|
64
|
+
U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A,
|
|
65
|
+
U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF,
|
|
66
|
+
U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E,
|
|
67
|
+
U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315,
|
|
68
|
+
U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8,
|
|
69
|
+
U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3,
|
|
70
|
+
U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449,
|
|
71
|
+
U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF,
|
|
72
|
+
U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB,
|
|
73
|
+
U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610,
|
|
74
|
+
U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC,
|
|
75
|
+
U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF,
|
|
76
|
+
U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB,
|
|
77
|
+
U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F,
|
|
78
|
+
U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* google-sans-flex-syriac */
|
|
82
|
+
@font-face {
|
|
83
|
+
font-family: "Google Sans Flex";
|
|
84
|
+
font-style: normal;
|
|
85
|
+
font-weight: 1 1000;
|
|
86
|
+
font-stretch: 100%;
|
|
87
|
+
font-display: swap;
|
|
88
|
+
src: url("../assets/fonts/google-sans-flex/syriac.woff2") format("woff2");
|
|
89
|
+
unicode-range:
|
|
90
|
+
U+0303-0304, U+0307-0308, U+030A, U+0320, U+0323-0325, U+032D-032E, U+0330-0331, U+060C, U+061B-061C,
|
|
91
|
+
U+061F, U+0621, U+0640, U+064B-0655, U+0660-066C, U+0670, U+0700-074F, U+0860-086A, U+1DF8, U+1DFA,
|
|
92
|
+
U+200C-200F, U+25CC, U+2670-2671;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* google-sans-flex-tifinagh */
|
|
96
|
+
@font-face {
|
|
97
|
+
font-family: "Google Sans Flex";
|
|
98
|
+
font-style: normal;
|
|
99
|
+
font-weight: 1 1000;
|
|
100
|
+
font-stretch: 100%;
|
|
101
|
+
font-display: swap;
|
|
102
|
+
src: url("../assets/fonts/google-sans-flex/tifinagh.woff2") format("woff2");
|
|
103
|
+
unicode-range: U+02C7, U+0301-0302, U+0304, U+0306-0307, U+0309, U+0323, U+0331, U+200C-200D, U+202E, U+25CC, U+2D30-2D7F;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* google-sans-flex-vietnamese */
|
|
107
|
+
@font-face {
|
|
108
|
+
font-family: "Google Sans Flex";
|
|
109
|
+
font-style: normal;
|
|
110
|
+
font-weight: 1 1000;
|
|
111
|
+
font-stretch: 100%;
|
|
112
|
+
font-display: swap;
|
|
113
|
+
src: url("../assets/fonts/google-sans-flex/vietnamese.woff2") format("woff2");
|
|
114
|
+
unicode-range:
|
|
115
|
+
U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304,
|
|
116
|
+
U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/* google-sans-flex-latin-ext */
|
|
120
|
+
@font-face {
|
|
121
|
+
font-family: "Google Sans Flex";
|
|
122
|
+
font-style: normal;
|
|
123
|
+
font-weight: 1 1000;
|
|
124
|
+
font-stretch: 100%;
|
|
125
|
+
font-display: swap;
|
|
126
|
+
src: url("../assets/fonts/google-sans-flex/latin-ext.woff2") format("woff2");
|
|
127
|
+
unicode-range:
|
|
128
|
+
U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF,
|
|
129
|
+
U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* google-sans-flex-latin */
|
|
133
|
+
@font-face {
|
|
134
|
+
font-family: "Google Sans Flex";
|
|
135
|
+
font-style: normal;
|
|
136
|
+
font-weight: 1 1000;
|
|
137
|
+
font-stretch: 100%;
|
|
138
|
+
font-display: swap;
|
|
139
|
+
src: url("../assets/fonts/google-sans-flex/latin.woff2") format("woff2");
|
|
140
|
+
unicode-range:
|
|
141
|
+
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
|
|
142
|
+
U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
143
|
+
}
|
package/template/ec.config.mjs
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { defineEcConfig } from "astro-expressive-code";
|
|
2
|
-
import { pluginLineNumbers } from "@expressive-code/plugin-line-numbers";
|
|
3
|
-
import { pluginCollapsibleSections } from "@expressive-code/plugin-collapsible-sections";
|
|
4
|
-
import { pluginFileIcons } from "@xt0rted/expressive-code-file-icons";
|
|
5
|
-
|
|
6
|
-
export default defineEcConfig({
|
|
7
|
-
themes: ["min-dark", "min-light"],
|
|
8
|
-
// Customize as needed:
|
|
9
|
-
styleOverrides: {
|
|
10
|
-
borderRadius: "12px",
|
|
11
|
-
borderColor: "var(--color-neutral-200)",
|
|
12
|
-
borderWidth: "1px",
|
|
13
|
-
codeFontSize: "13px",
|
|
14
|
-
frames: {
|
|
15
|
-
frameBoxShadowCssValue: "var(--shadow-xs)",
|
|
16
|
-
inlineButtonBorder: "var(--color-neutral-200)",
|
|
17
|
-
inlineButtonBorderOpacity: "1",
|
|
18
|
-
copyIcon: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E")`,
|
|
19
|
-
},
|
|
20
|
-
lineNumbers: {
|
|
21
|
-
foreground: "var(--color-neutral-400)",
|
|
22
|
-
},
|
|
23
|
-
textMarkers: {
|
|
24
|
-
markBackground: "var(--color-neutral-100)",
|
|
25
|
-
},
|
|
26
|
-
collapsibleSections: {
|
|
27
|
-
closedBackgroundColor: "var(--color-neutral-200)",
|
|
28
|
-
openBackgroundColor: "var(--color-neutral-100)",
|
|
29
|
-
openBackgroundColorCollapsible: "var(--color-neutral-100)",
|
|
30
|
-
collapseIcon: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22v-6'/%3E%3Cpath d='M12 8V2'/%3E%3Cpath d='M4 12H2'/%3E%3Cpath d='M10 12H8'/%3E%3Cpath d='M16 12h-2'/%3E%3Cpath d='M22 12h-2'/%3E%3Cpath d='m15 19-3-3-3 3'/%3E%3Cpath d='m15 5-3 3-3-3'/%3E%3C/svg%3E")`,
|
|
31
|
-
expandIcon: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22v-6'/%3E%3Cpath d='M12 8V2'/%3E%3Cpath d='M4 12H2'/%3E%3Cpath d='M10 12H8'/%3E%3Cpath d='M16 12h-2'/%3E%3Cpath d='M22 12h-2'/%3E%3Cpath d='m15 19-3 3-3-3'/%3E%3Cpath d='m15 5-3-3-3 3'/%3E%3C/svg%3E")`,
|
|
32
|
-
closedTextColor: "var(--color-neutral-500)",
|
|
33
|
-
},
|
|
34
|
-
// codeFontFamily: '"JetBrains Mono", monospace',
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
plugins: [
|
|
38
|
-
pluginLineNumbers(),
|
|
39
|
-
pluginCollapsibleSections(),
|
|
40
|
-
// @ts-ignore - plugin types not fully compatible
|
|
41
|
-
pluginFileIcons({
|
|
42
|
-
iconClass: "size-4",
|
|
43
|
-
titleClass: "!flex !items-center !gap-1",
|
|
44
|
-
}),
|
|
45
|
-
],
|
|
46
|
-
defaultProps: {
|
|
47
|
-
wrap: false,
|
|
48
|
-
collapseStyle: "collapsible-auto",
|
|
49
|
-
showLineNumbers: false,
|
|
50
|
-
},
|
|
51
|
-
});
|
|
File without changes
|