@netfoundry/docusaurus-theme 0.8.2 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/layout.css +37 -0
- package/css/product-picker.css +36 -8
- package/css/theme.css +51 -20
- package/css/vars.css +1 -0
- package/dist/css/layout.css +37 -0
- package/dist/css/product-picker.css +36 -8
- package/dist/css/theme.css +51 -20
- package/dist/css/vars.css +1 -0
- package/dist/src/components/AssetsContext/AssetsContext.d.ts +14 -0
- package/dist/src/components/AssetsContext/AssetsContext.d.ts.map +1 -0
- package/dist/src/components/AssetsContext/AssetsContext.js +31 -0
- package/dist/src/components/AssetsContext/AssetsContext.js.map +1 -0
- package/dist/src/components/AssetsContext/index.d.ts +3 -0
- package/dist/src/components/AssetsContext/index.d.ts.map +1 -0
- package/dist/src/components/AssetsContext/index.js +2 -0
- package/dist/src/components/AssetsContext/index.js.map +1 -0
- package/dist/src/components/DownloadCard/DownloadCard.d.ts +20 -0
- package/dist/src/components/DownloadCard/DownloadCard.d.ts.map +1 -0
- package/dist/src/components/DownloadCard/DownloadCard.js +87 -0
- package/dist/src/components/DownloadCard/DownloadCard.js.map +1 -0
- package/dist/src/components/DownloadCard/DownloadCard.module.css +122 -0
- package/dist/src/components/DownloadCard/index.d.ts +3 -0
- package/dist/src/components/DownloadCard/index.d.ts.map +1 -0
- package/dist/src/components/DownloadCard/index.js +2 -0
- package/dist/src/components/DownloadCard/index.js.map +1 -0
- package/dist/src/components/DownloadCard/logos.d.ts +5 -0
- package/dist/src/components/DownloadCard/logos.d.ts.map +1 -0
- package/dist/src/components/DownloadCard/logos.js +10 -0
- package/dist/src/components/DownloadCard/logos.js.map +1 -0
- package/dist/src/components/NetFoundryFooter/NetFoundryFooter.d.ts.map +1 -1
- package/dist/src/components/NetFoundryFooter/NetFoundryFooter.js +3 -2
- package/dist/src/components/NetFoundryFooter/NetFoundryFooter.js.map +1 -1
- package/dist/src/components/NetFoundryFooter/styles.module.css +1 -1
- package/dist/src/components/icons/DiscourseIcon.d.ts +8 -0
- package/dist/src/components/icons/DiscourseIcon.d.ts.map +1 -0
- package/dist/src/components/icons/DiscourseIcon.js +5 -0
- package/dist/src/components/icons/DiscourseIcon.js.map +1 -0
- package/dist/src/components/icons/GitHubIcon.d.ts +8 -0
- package/dist/src/components/icons/GitHubIcon.d.ts.map +1 -0
- package/dist/src/components/icons/GitHubIcon.js +5 -0
- package/dist/src/components/icons/GitHubIcon.js.map +1 -0
- package/dist/src/components/icons/XIcon.d.ts +8 -0
- package/dist/src/components/icons/XIcon.d.ts.map +1 -0
- package/dist/src/components/icons/XIcon.js +5 -0
- package/dist/src/components/icons/XIcon.js.map +1 -0
- package/dist/src/components/icons/YouTubeIcon.d.ts +8 -0
- package/dist/src/components/icons/YouTubeIcon.d.ts.map +1 -0
- package/dist/src/components/icons/YouTubeIcon.js +5 -0
- package/dist/src/components/icons/YouTubeIcon.js.map +1 -0
- package/dist/src/components/icons/index.d.ts +5 -0
- package/dist/src/components/icons/index.d.ts.map +1 -0
- package/dist/src/components/icons/index.js +5 -0
- package/dist/src/components/icons/index.js.map +1 -0
- package/dist/src/components/index.d.ts +2 -0
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +2 -0
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -1
- package/dist/theme/NavbarItem/ComponentTypes.d.ts +4 -0
- package/dist/theme/NavbarItem/ComponentTypes.d.ts.map +1 -1
- package/dist/theme/NavbarItem/ComponentTypes.js +4 -0
- package/dist/theme/NavbarItem/ComponentTypes.js.map +1 -1
- package/dist/theme/NavbarItem/NavbarPicker.d.ts +13 -0
- package/dist/theme/NavbarItem/NavbarPicker.d.ts.map +1 -0
- package/dist/theme/NavbarItem/NavbarPicker.js +59 -0
- package/dist/theme/NavbarItem/NavbarPicker.js.map +1 -0
- package/dist/theme/NavbarItem/types/IconLinks/index.d.ts +4 -0
- package/dist/theme/NavbarItem/types/IconLinks/index.d.ts.map +1 -0
- package/dist/theme/NavbarItem/types/IconLinks/index.js +22 -0
- package/dist/theme/NavbarItem/types/IconLinks/index.js.map +1 -0
- package/dist/theme/NavbarItem/types/ProductPicker/index.d.ts.map +1 -1
- package/dist/theme/NavbarItem/types/ProductPicker/index.js +3 -49
- package/dist/theme/NavbarItem/types/ProductPicker/index.js.map +1 -1
- package/dist/theme/NavbarItem/types/ResourcesPicker/index.d.ts +8 -0
- package/dist/theme/NavbarItem/types/ResourcesPicker/index.d.ts.map +1 -0
- package/dist/theme/NavbarItem/types/ResourcesPicker/index.js +30 -0
- package/dist/theme/NavbarItem/types/ResourcesPicker/index.js.map +1 -0
- package/package.json +2 -2
- package/theme/NavbarItem/ComponentTypes.tsx +4 -0
- package/theme/NavbarItem/NavbarPicker.tsx +94 -0
- package/theme/NavbarItem/types/IconLinks/index.tsx +35 -0
- package/theme/NavbarItem/types/ProductPicker/index.tsx +88 -154
- package/theme/NavbarItem/types/ResourcesPicker/index.tsx +88 -0
- package/css/.claude/settings.local.json +0 -12
package/css/layout.css
CHANGED
|
@@ -11,6 +11,43 @@ html {
|
|
|
11
11
|
scrollbar-gutter: stable;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/* Resources picker: sit after the color mode toggle, before search */
|
|
15
|
+
.navbar__items--right > div:has(.nf-picker-trigger) { order: 2; display: flex; align-items: center; }
|
|
16
|
+
.navbar__items--right > div:has(.DocSearch-Button) { order: 3; }
|
|
17
|
+
|
|
18
|
+
/* Separator between color mode toggle and resources picker */
|
|
19
|
+
.navbar__items--right > div:has(.nf-picker-trigger)::before {
|
|
20
|
+
content: '';
|
|
21
|
+
display: block;
|
|
22
|
+
width: 1px;
|
|
23
|
+
height: 1.2em;
|
|
24
|
+
background: currentColor;
|
|
25
|
+
opacity: 0.2;
|
|
26
|
+
margin-right: 0.75rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Discourse navbar icon — multicolor brand logo */
|
|
30
|
+
.nf-icon-link--discourse:hover {
|
|
31
|
+
opacity: 0.8;
|
|
32
|
+
color: inherit;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Navbar wordmark logo — taller than the Docusaurus default 2rem */
|
|
36
|
+
.navbar__logo { height: var(--ifm-navbar-height); }
|
|
37
|
+
.navbar__logo img { height: 100%; width: auto; }
|
|
38
|
+
|
|
39
|
+
/* Separator between navbar logo and nav items */
|
|
40
|
+
.navbar__brand::after {
|
|
41
|
+
content: '';
|
|
42
|
+
display: inline-block;
|
|
43
|
+
width: 1px;
|
|
44
|
+
height: 1.2em;
|
|
45
|
+
background: currentColor;
|
|
46
|
+
opacity: 0.2;
|
|
47
|
+
margin-left: 1rem;
|
|
48
|
+
vertical-align: middle;
|
|
49
|
+
}
|
|
50
|
+
|
|
14
51
|
.main-wrapper > div {
|
|
15
52
|
/* work around issue from docusaurus doc grow/shrinking based on content */
|
|
16
53
|
width: 100%;
|
package/css/product-picker.css
CHANGED
|
@@ -25,12 +25,14 @@
|
|
|
25
25
|
position: relative;
|
|
26
26
|
padding-right: 1.2rem;
|
|
27
27
|
transition: color 0.3s ease;
|
|
28
|
+
font-weight: var(--ifm-font-weight-bold);
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
.nf-picker-trigger:hover,
|
|
31
32
|
.nf-resources-dropdown:hover,
|
|
32
33
|
.navbar__item.dropdown--show .nf-picker-trigger,
|
|
33
|
-
.navbar__item.dropdown--show .nf-resources-dropdown
|
|
34
|
+
.navbar__item.dropdown--show .nf-resources-dropdown,
|
|
35
|
+
.navbar__item.nf-picker--open .nf-picker-trigger {
|
|
34
36
|
color: var(--ifm-color-primary);
|
|
35
37
|
text-decoration: none;
|
|
36
38
|
}
|
|
@@ -59,17 +61,17 @@
|
|
|
59
61
|
opacity: 1;
|
|
60
62
|
}
|
|
61
63
|
|
|
62
|
-
/* Open: chevron
|
|
64
|
+
/* Open: chevron holds the hover drop position */
|
|
63
65
|
.nf-picker--open .nf-picker-trigger::after,
|
|
64
66
|
.navbar__item.dropdown--show .nf-resources-dropdown::after {
|
|
65
|
-
transform: translateY(-
|
|
67
|
+
transform: translateY(-20%);
|
|
66
68
|
opacity: 1;
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
/* Dark mode: cyan accent on hover */
|
|
70
72
|
[data-theme='dark'] .nf-picker-trigger:hover,
|
|
71
73
|
[data-theme='dark'] .nf-resources-dropdown:hover,
|
|
72
|
-
[data-theme='dark'] .nf-picker--open .nf-picker-trigger,
|
|
74
|
+
[data-theme='dark'] .navbar__item.nf-picker--open .nf-picker-trigger,
|
|
73
75
|
[data-theme='dark'] .navbar__item.dropdown--show .nf-resources-dropdown {
|
|
74
76
|
color: #22d3ee;
|
|
75
77
|
}
|
|
@@ -139,7 +141,9 @@
|
|
|
139
141
|
}
|
|
140
142
|
|
|
141
143
|
/* Narrower panel for the 2-column Resources menu */
|
|
142
|
-
.dropdown__menu:has(.picker-resources) { max-width:
|
|
144
|
+
.dropdown__menu:has(.picker-resources) { max-width: 400px; }
|
|
145
|
+
.nf-picker-panel--narrow { max-width: 430px; padding: 0.85rem 1.25rem; }
|
|
146
|
+
|
|
143
147
|
|
|
144
148
|
/* Ensure visibility when open */
|
|
145
149
|
.dropdown--show > .dropdown__menu,
|
|
@@ -181,9 +185,33 @@
|
|
|
181
185
|
transition: all 0.2s ease;
|
|
182
186
|
border-radius: 8px;
|
|
183
187
|
}
|
|
184
|
-
.picker-link:hover { background: rgba(0, 118, 255, 0.06); transform: translateX(3px); }
|
|
185
|
-
.picker-link strong { color: var(--ifm-font-color-base); font-size: 0.95rem; font-weight: 900; letter-spacing: -0.02em; display: block; }
|
|
186
|
-
.picker-link span { color: #64748b; font-size: 0.82rem; display: block; margin-top: 2px; line-height: 1.35; }
|
|
188
|
+
.picker-link:hover { background: rgba(0, 118, 255, 0.06); transform: translateX(3px); text-decoration: none; }
|
|
189
|
+
.picker-link strong { color: var(--ifm-font-color-base); font-size: 0.95rem; font-weight: 900; letter-spacing: -0.02em; display: block; text-decoration: none; }
|
|
190
|
+
.picker-link span { color: #64748b; font-size: 0.82rem; display: block; margin-top: 2px; line-height: 1.35; text-decoration: none; }
|
|
191
|
+
.nf-picker-panel--narrow .picker-link span { white-space: nowrap; }
|
|
192
|
+
|
|
193
|
+
/* ── Navbar icon links (GitHub, Discourse) ──────────────────────────────── */
|
|
194
|
+
.nf-icon-links {
|
|
195
|
+
display: flex;
|
|
196
|
+
align-items: center;
|
|
197
|
+
gap: 0.1rem;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.nf-icon-link,
|
|
201
|
+
.nf-icon-link:visited {
|
|
202
|
+
display: flex;
|
|
203
|
+
align-items: center;
|
|
204
|
+
justify-content: center;
|
|
205
|
+
width: 2rem;
|
|
206
|
+
height: 2rem;
|
|
207
|
+
color: var(--ifm-navbar-link-color);
|
|
208
|
+
text-decoration: none;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.nf-icon-link:hover {
|
|
212
|
+
color: var(--ifm-color-primary);
|
|
213
|
+
text-decoration: none;
|
|
214
|
+
}
|
|
187
215
|
|
|
188
216
|
/* ── Mobile (<= 996 px) ─────────────────────────────────────────────────── */
|
|
189
217
|
@media (max-width: 996px) {
|
package/css/theme.css
CHANGED
|
@@ -1,20 +1,51 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NetFoundry Docusaurus Theme - Combined Styles
|
|
3
|
-
*
|
|
4
|
-
* This file is automatically loaded by the theme via getClientModules().
|
|
5
|
-
*
|
|
6
|
-
* Consuming projects no longer need to manually add these imports
|
|
7
|
-
* to their custom.css files.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/* CSS variables for light mode */
|
|
11
|
-
@import "./vars.css";
|
|
12
|
-
|
|
13
|
-
/* CSS variables for dark mode */
|
|
14
|
-
@import "./vars-dark.css";
|
|
15
|
-
|
|
16
|
-
/* Layout styles */
|
|
17
|
-
@import "./layout.css";
|
|
18
|
-
|
|
19
|
-
/* Legacy design system variables and comprehensive styling */
|
|
20
|
-
@import "./legacy.css";
|
|
1
|
+
/**
|
|
2
|
+
* NetFoundry Docusaurus Theme - Combined Styles
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically loaded by the theme via getClientModules().
|
|
5
|
+
*
|
|
6
|
+
* Consuming projects no longer need to manually add these imports
|
|
7
|
+
* to their custom.css files.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* CSS variables for light mode */
|
|
11
|
+
@import "./vars.css";
|
|
12
|
+
|
|
13
|
+
/* CSS variables for dark mode */
|
|
14
|
+
@import "./vars-dark.css";
|
|
15
|
+
|
|
16
|
+
/* Layout styles */
|
|
17
|
+
@import "./layout.css";
|
|
18
|
+
|
|
19
|
+
/* Legacy design system variables and comprehensive styling */
|
|
20
|
+
@import "./legacy.css";
|
|
21
|
+
|
|
22
|
+
/* ── Footer social link hover ───────────────────────────────────────────── */
|
|
23
|
+
footer a[class*="footerSocialLink"] {
|
|
24
|
+
transition: all 0.2s ease;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[data-theme='dark'] footer a[class*="footerSocialLink"] {
|
|
28
|
+
background-color: #1a2640;
|
|
29
|
+
color: #64748b;
|
|
30
|
+
border: 1px solid rgba(148, 163, 184, 0.1);
|
|
31
|
+
}
|
|
32
|
+
[data-theme='dark'] footer a[class*="footerSocialLink"]:hover {
|
|
33
|
+
background-color: #22d3ee;
|
|
34
|
+
color: #020617;
|
|
35
|
+
border-color: transparent;
|
|
36
|
+
transform: translateY(-3px);
|
|
37
|
+
box-shadow: 0 6px 16px rgba(34, 211, 238, 0.35);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
[data-theme='light'] footer a[class*="footerSocialLink"] {
|
|
41
|
+
background-color: #e2e8f0;
|
|
42
|
+
color: #475569;
|
|
43
|
+
border: 1px solid rgba(0, 0, 0, 0.06);
|
|
44
|
+
}
|
|
45
|
+
[data-theme='light'] footer a[class*="footerSocialLink"]:hover {
|
|
46
|
+
background-color: #0891b2;
|
|
47
|
+
color: #ffffff;
|
|
48
|
+
border-color: transparent;
|
|
49
|
+
transform: translateY(-3px);
|
|
50
|
+
box-shadow: 0 6px 16px rgba(8, 145, 178, 0.3);
|
|
51
|
+
}
|
package/css/vars.css
CHANGED
package/dist/css/layout.css
CHANGED
|
@@ -11,6 +11,43 @@ html {
|
|
|
11
11
|
scrollbar-gutter: stable;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/* Resources picker: sit after the color mode toggle, before search */
|
|
15
|
+
.navbar__items--right > div:has(.nf-picker-trigger) { order: 2; display: flex; align-items: center; }
|
|
16
|
+
.navbar__items--right > div:has(.DocSearch-Button) { order: 3; }
|
|
17
|
+
|
|
18
|
+
/* Separator between color mode toggle and resources picker */
|
|
19
|
+
.navbar__items--right > div:has(.nf-picker-trigger)::before {
|
|
20
|
+
content: '';
|
|
21
|
+
display: block;
|
|
22
|
+
width: 1px;
|
|
23
|
+
height: 1.2em;
|
|
24
|
+
background: currentColor;
|
|
25
|
+
opacity: 0.2;
|
|
26
|
+
margin-right: 0.75rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Discourse navbar icon — multicolor brand logo */
|
|
30
|
+
.nf-icon-link--discourse:hover {
|
|
31
|
+
opacity: 0.8;
|
|
32
|
+
color: inherit;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Navbar wordmark logo — taller than the Docusaurus default 2rem */
|
|
36
|
+
.navbar__logo { height: var(--ifm-navbar-height); }
|
|
37
|
+
.navbar__logo img { height: 100%; width: auto; }
|
|
38
|
+
|
|
39
|
+
/* Separator between navbar logo and nav items */
|
|
40
|
+
.navbar__brand::after {
|
|
41
|
+
content: '';
|
|
42
|
+
display: inline-block;
|
|
43
|
+
width: 1px;
|
|
44
|
+
height: 1.2em;
|
|
45
|
+
background: currentColor;
|
|
46
|
+
opacity: 0.2;
|
|
47
|
+
margin-left: 1rem;
|
|
48
|
+
vertical-align: middle;
|
|
49
|
+
}
|
|
50
|
+
|
|
14
51
|
.main-wrapper > div {
|
|
15
52
|
/* work around issue from docusaurus doc grow/shrinking based on content */
|
|
16
53
|
width: 100%;
|
|
@@ -25,12 +25,14 @@
|
|
|
25
25
|
position: relative;
|
|
26
26
|
padding-right: 1.2rem;
|
|
27
27
|
transition: color 0.3s ease;
|
|
28
|
+
font-weight: var(--ifm-font-weight-bold);
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
.nf-picker-trigger:hover,
|
|
31
32
|
.nf-resources-dropdown:hover,
|
|
32
33
|
.navbar__item.dropdown--show .nf-picker-trigger,
|
|
33
|
-
.navbar__item.dropdown--show .nf-resources-dropdown
|
|
34
|
+
.navbar__item.dropdown--show .nf-resources-dropdown,
|
|
35
|
+
.navbar__item.nf-picker--open .nf-picker-trigger {
|
|
34
36
|
color: var(--ifm-color-primary);
|
|
35
37
|
text-decoration: none;
|
|
36
38
|
}
|
|
@@ -59,17 +61,17 @@
|
|
|
59
61
|
opacity: 1;
|
|
60
62
|
}
|
|
61
63
|
|
|
62
|
-
/* Open: chevron
|
|
64
|
+
/* Open: chevron holds the hover drop position */
|
|
63
65
|
.nf-picker--open .nf-picker-trigger::after,
|
|
64
66
|
.navbar__item.dropdown--show .nf-resources-dropdown::after {
|
|
65
|
-
transform: translateY(-
|
|
67
|
+
transform: translateY(-20%);
|
|
66
68
|
opacity: 1;
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
/* Dark mode: cyan accent on hover */
|
|
70
72
|
[data-theme='dark'] .nf-picker-trigger:hover,
|
|
71
73
|
[data-theme='dark'] .nf-resources-dropdown:hover,
|
|
72
|
-
[data-theme='dark'] .nf-picker--open .nf-picker-trigger,
|
|
74
|
+
[data-theme='dark'] .navbar__item.nf-picker--open .nf-picker-trigger,
|
|
73
75
|
[data-theme='dark'] .navbar__item.dropdown--show .nf-resources-dropdown {
|
|
74
76
|
color: #22d3ee;
|
|
75
77
|
}
|
|
@@ -139,7 +141,9 @@
|
|
|
139
141
|
}
|
|
140
142
|
|
|
141
143
|
/* Narrower panel for the 2-column Resources menu */
|
|
142
|
-
.dropdown__menu:has(.picker-resources) { max-width:
|
|
144
|
+
.dropdown__menu:has(.picker-resources) { max-width: 400px; }
|
|
145
|
+
.nf-picker-panel--narrow { max-width: 430px; padding: 0.85rem 1.25rem; }
|
|
146
|
+
|
|
143
147
|
|
|
144
148
|
/* Ensure visibility when open */
|
|
145
149
|
.dropdown--show > .dropdown__menu,
|
|
@@ -181,9 +185,33 @@
|
|
|
181
185
|
transition: all 0.2s ease;
|
|
182
186
|
border-radius: 8px;
|
|
183
187
|
}
|
|
184
|
-
.picker-link:hover { background: rgba(0, 118, 255, 0.06); transform: translateX(3px); }
|
|
185
|
-
.picker-link strong { color: var(--ifm-font-color-base); font-size: 0.95rem; font-weight: 900; letter-spacing: -0.02em; display: block; }
|
|
186
|
-
.picker-link span { color: #64748b; font-size: 0.82rem; display: block; margin-top: 2px; line-height: 1.35; }
|
|
188
|
+
.picker-link:hover { background: rgba(0, 118, 255, 0.06); transform: translateX(3px); text-decoration: none; }
|
|
189
|
+
.picker-link strong { color: var(--ifm-font-color-base); font-size: 0.95rem; font-weight: 900; letter-spacing: -0.02em; display: block; text-decoration: none; }
|
|
190
|
+
.picker-link span { color: #64748b; font-size: 0.82rem; display: block; margin-top: 2px; line-height: 1.35; text-decoration: none; }
|
|
191
|
+
.nf-picker-panel--narrow .picker-link span { white-space: nowrap; }
|
|
192
|
+
|
|
193
|
+
/* ── Navbar icon links (GitHub, Discourse) ──────────────────────────────── */
|
|
194
|
+
.nf-icon-links {
|
|
195
|
+
display: flex;
|
|
196
|
+
align-items: center;
|
|
197
|
+
gap: 0.1rem;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.nf-icon-link,
|
|
201
|
+
.nf-icon-link:visited {
|
|
202
|
+
display: flex;
|
|
203
|
+
align-items: center;
|
|
204
|
+
justify-content: center;
|
|
205
|
+
width: 2rem;
|
|
206
|
+
height: 2rem;
|
|
207
|
+
color: var(--ifm-navbar-link-color);
|
|
208
|
+
text-decoration: none;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.nf-icon-link:hover {
|
|
212
|
+
color: var(--ifm-color-primary);
|
|
213
|
+
text-decoration: none;
|
|
214
|
+
}
|
|
187
215
|
|
|
188
216
|
/* ── Mobile (<= 996 px) ─────────────────────────────────────────────────── */
|
|
189
217
|
@media (max-width: 996px) {
|
package/dist/css/theme.css
CHANGED
|
@@ -1,20 +1,51 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NetFoundry Docusaurus Theme - Combined Styles
|
|
3
|
-
*
|
|
4
|
-
* This file is automatically loaded by the theme via getClientModules().
|
|
5
|
-
*
|
|
6
|
-
* Consuming projects no longer need to manually add these imports
|
|
7
|
-
* to their custom.css files.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/* CSS variables for light mode */
|
|
11
|
-
@import "./vars.css";
|
|
12
|
-
|
|
13
|
-
/* CSS variables for dark mode */
|
|
14
|
-
@import "./vars-dark.css";
|
|
15
|
-
|
|
16
|
-
/* Layout styles */
|
|
17
|
-
@import "./layout.css";
|
|
18
|
-
|
|
19
|
-
/* Legacy design system variables and comprehensive styling */
|
|
20
|
-
@import "./legacy.css";
|
|
1
|
+
/**
|
|
2
|
+
* NetFoundry Docusaurus Theme - Combined Styles
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically loaded by the theme via getClientModules().
|
|
5
|
+
*
|
|
6
|
+
* Consuming projects no longer need to manually add these imports
|
|
7
|
+
* to their custom.css files.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* CSS variables for light mode */
|
|
11
|
+
@import "./vars.css";
|
|
12
|
+
|
|
13
|
+
/* CSS variables for dark mode */
|
|
14
|
+
@import "./vars-dark.css";
|
|
15
|
+
|
|
16
|
+
/* Layout styles */
|
|
17
|
+
@import "./layout.css";
|
|
18
|
+
|
|
19
|
+
/* Legacy design system variables and comprehensive styling */
|
|
20
|
+
@import "./legacy.css";
|
|
21
|
+
|
|
22
|
+
/* ── Footer social link hover ───────────────────────────────────────────── */
|
|
23
|
+
footer a[class*="footerSocialLink"] {
|
|
24
|
+
transition: all 0.2s ease;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[data-theme='dark'] footer a[class*="footerSocialLink"] {
|
|
28
|
+
background-color: #1a2640;
|
|
29
|
+
color: #64748b;
|
|
30
|
+
border: 1px solid rgba(148, 163, 184, 0.1);
|
|
31
|
+
}
|
|
32
|
+
[data-theme='dark'] footer a[class*="footerSocialLink"]:hover {
|
|
33
|
+
background-color: #22d3ee;
|
|
34
|
+
color: #020617;
|
|
35
|
+
border-color: transparent;
|
|
36
|
+
transform: translateY(-3px);
|
|
37
|
+
box-shadow: 0 6px 16px rgba(34, 211, 238, 0.35);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
[data-theme='light'] footer a[class*="footerSocialLink"] {
|
|
41
|
+
background-color: #e2e8f0;
|
|
42
|
+
color: #475569;
|
|
43
|
+
border: 1px solid rgba(0, 0, 0, 0.06);
|
|
44
|
+
}
|
|
45
|
+
[data-theme='light'] footer a[class*="footerSocialLink"]:hover {
|
|
46
|
+
background-color: #0891b2;
|
|
47
|
+
color: #ffffff;
|
|
48
|
+
border-color: transparent;
|
|
49
|
+
transform: translateY(-3px);
|
|
50
|
+
box-shadow: 0 6px 16px rgba(8, 145, 178, 0.3);
|
|
51
|
+
}
|
package/dist/css/vars.css
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ReleaseAsset {
|
|
3
|
+
name: string;
|
|
4
|
+
url: string;
|
|
5
|
+
arch: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const useAssets: () => ReleaseAsset[];
|
|
8
|
+
interface AssetsProviderProps {
|
|
9
|
+
repoUrl: string;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare const AssetsProvider: React.FC<AssetsProviderProps>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=AssetsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetsContext.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetsContext/AssetsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB;AAID,eAAO,MAAM,SAAS,sBAAkC,CAAC;AAEzD,UAAU,mBAAmB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+BxD,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useState, useContext, useEffect } from 'react';
|
|
3
|
+
const AssetsContext = createContext([]);
|
|
4
|
+
export const useAssets = () => useContext(AssetsContext);
|
|
5
|
+
export const AssetsProvider = ({ repoUrl, children }) => {
|
|
6
|
+
const [assets, setAssets] = useState([]);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
const fetchReleaseAssets = async () => {
|
|
9
|
+
try {
|
|
10
|
+
const response = await fetch(repoUrl);
|
|
11
|
+
if (!response.ok) {
|
|
12
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
13
|
+
}
|
|
14
|
+
const data = await response.json();
|
|
15
|
+
const filteredAssets = data.assets.map((asset) => ({
|
|
16
|
+
name: asset.name,
|
|
17
|
+
url: asset.browser_download_url,
|
|
18
|
+
arch: asset.name.replace(/\.tar\.gz/, '').split('_')[3]
|
|
19
|
+
}));
|
|
20
|
+
console.log("Fetched assets:", filteredAssets);
|
|
21
|
+
setAssets(filteredAssets);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.error('Error fetching the release assets:', error);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
fetchReleaseAssets();
|
|
28
|
+
}, [repoUrl]);
|
|
29
|
+
return (_jsx(AssetsContext.Provider, { value: assets, children: children }));
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=AssetsContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetsContext.js","sourceRoot":"","sources":["../../../../src/components/AssetsContext/AssetsContext.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQ9E,MAAM,aAAa,GAAG,aAAa,CAAiB,EAAE,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAOzD,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IAEzD,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAmB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;oBACpE,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,GAAG,EAAE,KAAK,CAAC,oBAAoB;oBAC/B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC1D,CAAC,CAAC,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;gBAC/C,SAAS,CAAC,cAAc,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC,CAAC;QAEF,kBAAkB,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACH,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAChC,QAAQ,GACY,CAC5B,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetsContext/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/AssetsContext/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface DownloadLink {
|
|
3
|
+
arch: string;
|
|
4
|
+
url: string;
|
|
5
|
+
}
|
|
6
|
+
export interface PlatformSpec {
|
|
7
|
+
links: DownloadLink[];
|
|
8
|
+
logo?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ExtraPlatform extends PlatformSpec {
|
|
11
|
+
osName: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DownloadSectionProps {
|
|
14
|
+
windows?: PlatformSpec;
|
|
15
|
+
macos?: PlatformSpec;
|
|
16
|
+
linux?: PlatformSpec;
|
|
17
|
+
extras?: ExtraPlatform[];
|
|
18
|
+
}
|
|
19
|
+
export declare const DownloadSection: React.FC<DownloadSectionProps>;
|
|
20
|
+
//# sourceMappingURL=DownloadCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DownloadCard.d.ts","sourceRoot":"","sources":["../../../../src/components/DownloadCard/DownloadCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IAC/C,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAsGD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAwB1D,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useColorMode } from '@docusaurus/theme-common';
|
|
3
|
+
import { WindowsLogo, MacOSLogo, LinuxLogo } from './logos';
|
|
4
|
+
const v = (light, dark_, dark) => dark ? dark_ : light;
|
|
5
|
+
const Card = ({ osName, spec, defaultLogo, dark }) => {
|
|
6
|
+
const logo = spec.logo
|
|
7
|
+
? _jsx("img", { src: spec.logo, alt: osName, style: { width: '100%', height: '100%', objectFit: 'contain' } })
|
|
8
|
+
: defaultLogo;
|
|
9
|
+
const card = {
|
|
10
|
+
display: 'flex',
|
|
11
|
+
flexDirection: 'column',
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
flexGrow: 1,
|
|
14
|
+
width: '30%',
|
|
15
|
+
borderRadius: '1em',
|
|
16
|
+
overflow: 'hidden',
|
|
17
|
+
border: `1px solid var(--nf-download-border, ${v('#e0d9fb', '#3a2e6e', dark)})`,
|
|
18
|
+
boxShadow: v('0 0.125em 0.75em rgba(124,95,245,0.10)', '0 0.125em 0.75em rgba(0,0,0,0.35)', dark),
|
|
19
|
+
background: `var(--nf-download-card-bg, ${v('#ffffff', '#1e1b2e', dark)})`,
|
|
20
|
+
transition: 'box-shadow 0.2s, transform 0.2s',
|
|
21
|
+
};
|
|
22
|
+
const logoArea = {
|
|
23
|
+
width: '100%',
|
|
24
|
+
height: '8em',
|
|
25
|
+
display: 'flex',
|
|
26
|
+
alignItems: 'center',
|
|
27
|
+
justifyContent: 'center',
|
|
28
|
+
background: `var(--nf-download-accent-soft, ${v('#f3f0fe', '#2a1f56', dark)})`,
|
|
29
|
+
borderBottom: `1px solid var(--nf-download-border, ${v('#e0d9fb', '#3a2e6e', dark)})`,
|
|
30
|
+
boxSizing: 'border-box',
|
|
31
|
+
flexShrink: 0,
|
|
32
|
+
};
|
|
33
|
+
const logoWrap = {
|
|
34
|
+
width: '4em',
|
|
35
|
+
height: '4em',
|
|
36
|
+
color: `var(--nf-download-logo-color, ${v('#1a1a1a', '#ffffff', dark)})`,
|
|
37
|
+
};
|
|
38
|
+
const title = {
|
|
39
|
+
margin: '1em 0 0.75em',
|
|
40
|
+
fontSize: '1rem',
|
|
41
|
+
fontWeight: 600,
|
|
42
|
+
};
|
|
43
|
+
const buttonList = {
|
|
44
|
+
listStyle: 'none',
|
|
45
|
+
padding: '0 1em',
|
|
46
|
+
margin: '0 0 1.25em',
|
|
47
|
+
display: 'flex',
|
|
48
|
+
flexWrap: 'wrap',
|
|
49
|
+
justifyContent: 'center',
|
|
50
|
+
gap: '0.5em',
|
|
51
|
+
};
|
|
52
|
+
const btn = {
|
|
53
|
+
display: 'flex',
|
|
54
|
+
alignItems: 'center',
|
|
55
|
+
justifyContent: 'center',
|
|
56
|
+
height: '2em',
|
|
57
|
+
minWidth: '5em',
|
|
58
|
+
padding: '0 0.875em',
|
|
59
|
+
margin: 0,
|
|
60
|
+
background: 'var(--nf-download-accent, #7c5ff5)',
|
|
61
|
+
borderRadius: '0.75em',
|
|
62
|
+
cursor: 'pointer',
|
|
63
|
+
};
|
|
64
|
+
const linkStyle = {
|
|
65
|
+
textDecoration: 'none',
|
|
66
|
+
color: 'var(--nf-download-accent-text, #ffffff)',
|
|
67
|
+
fontSize: '0.8rem',
|
|
68
|
+
fontWeight: 500,
|
|
69
|
+
letterSpacing: '0.02em',
|
|
70
|
+
};
|
|
71
|
+
return (_jsxs("div", { style: card, children: [_jsx("div", { style: logoArea, children: _jsx("div", { style: logoWrap, children: logo }) }), _jsx("h3", { style: title, children: osName }), _jsx("ul", { style: buttonList, children: spec.links.map((link, i) => (_jsx("li", { style: btn, children: _jsx("a", { href: link.url, style: linkStyle, children: link.arch }) }, i))) })] }));
|
|
72
|
+
};
|
|
73
|
+
export const DownloadSection = ({ windows, macos, linux, extras = [] }) => {
|
|
74
|
+
const { colorMode } = useColorMode();
|
|
75
|
+
const dark = colorMode === 'dark';
|
|
76
|
+
const wrap = {
|
|
77
|
+
display: 'flex',
|
|
78
|
+
flexDirection: 'row',
|
|
79
|
+
flexWrap: 'wrap',
|
|
80
|
+
justifyContent: 'center',
|
|
81
|
+
alignItems: 'stretch',
|
|
82
|
+
gap: '1em',
|
|
83
|
+
padding: '1.5em 0',
|
|
84
|
+
};
|
|
85
|
+
return (_jsxs("div", { style: wrap, children: [windows && _jsx(Card, { osName: "Windows", spec: windows, defaultLogo: _jsx(WindowsLogo, {}), dark: dark }), macos && _jsx(Card, { osName: "macOS", spec: macos, defaultLogo: _jsx(MacOSLogo, {}), dark: dark }), linux && _jsx(Card, { osName: "Linux", spec: linux, defaultLogo: _jsx(LinuxLogo, {}), dark: dark }), extras.map((p, i) => (_jsx(Card, { osName: p.osName, spec: p, defaultLogo: null, dark: dark }, i)))] }));
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=DownloadCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DownloadCard.js","sourceRoot":"","sources":["../../../../src/components/DownloadCard/DownloadCard.tsx"],"names":[],"mappings":"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"}
|