@netfoundry/docusaurus-theme 0.10.9 → 0.10.11
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 +0 -5
- package/dist/css/layout.css +0 -5
- package/dist/theme/NavbarItem/types/ProductPicker/index.d.ts.map +1 -1
- package/dist/theme/NavbarItem/types/ProductPicker/index.js +17 -1
- package/dist/theme/NavbarItem/types/ProductPicker/index.js.map +1 -1
- package/package.json +1 -1
- package/theme/NavbarItem/types/ProductPicker/index.tsx +17 -1
package/css/layout.css
CHANGED
|
@@ -22,11 +22,6 @@ html {
|
|
|
22
22
|
color: inherit;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
/* Logo fills the navbar height (overrides Docusaurus default of 2rem) */
|
|
26
|
-
.navbar__logo {
|
|
27
|
-
height: var(--ifm-navbar-height);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
25
|
/* Separator between navbar logo and nav items */
|
|
31
26
|
.navbar__brand::after {
|
|
32
27
|
content: '';
|
package/dist/css/layout.css
CHANGED
|
@@ -22,11 +22,6 @@ html {
|
|
|
22
22
|
color: inherit;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
/* Logo fills the navbar height (overrides Docusaurus default of 2rem) */
|
|
26
|
-
.navbar__logo {
|
|
27
|
-
height: var(--ifm-navbar-height);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
25
|
/* Separator between navbar logo and nav items */
|
|
31
26
|
.navbar__brand::after {
|
|
32
27
|
content: '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../theme/NavbarItem/types/ProductPicker/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../theme/NavbarItem/types/ProductPicker/index.tsx"],"names":[],"mappings":"AAQA,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA6CF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAC,KAAkB,EAAE,SAAS,EAAC,EAAE,KAAK,2CAgC3E"}
|
|
@@ -3,6 +3,7 @@ import Link from '@docusaurus/Link';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
5
5
|
import { useThemeConfig } from '@docusaurus/theme-common';
|
|
6
|
+
import { useLocation } from 'react-router-dom';
|
|
6
7
|
import NavbarPicker from '../../NavbarPicker';
|
|
7
8
|
const HEADER_CLASSES = ['picker-header--nf-tertiary', 'picker-header--nf-secondary', 'picker-header--nf-primary'];
|
|
8
9
|
const NF_LOGO_DEFAULT = 'https://raw.githubusercontent.com/netfoundry/branding/refs/heads/main/images/svg/icon/netfoundry-icon-color.svg';
|
|
@@ -32,14 +33,29 @@ const buildDefaultColumns = (img, consoleLogo) => [
|
|
|
32
33
|
],
|
|
33
34
|
},
|
|
34
35
|
];
|
|
36
|
+
function pathLabel(pathname, columns, fallback) {
|
|
37
|
+
for (const col of columns) {
|
|
38
|
+
for (const link of col.links) {
|
|
39
|
+
const parts = link.to.replace(/^https?:\/\/[^/]+/, '').split('/').filter(Boolean);
|
|
40
|
+
if (parts.length >= 2) {
|
|
41
|
+
const prefix = '/' + parts.slice(0, 2).join('/');
|
|
42
|
+
if (pathname.startsWith(prefix))
|
|
43
|
+
return link.label;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return fallback;
|
|
48
|
+
}
|
|
35
49
|
export default function ProductPicker({ label = 'Products', className }) {
|
|
36
50
|
const { siteConfig } = useDocusaurusContext();
|
|
37
51
|
const themeConfig = useThemeConfig();
|
|
52
|
+
const { pathname } = useLocation();
|
|
38
53
|
const consoleLogo = themeConfig?.netfoundry?.consoleLogo ?? NF_LOGO_DEFAULT;
|
|
39
54
|
const img = `${siteConfig.url}${siteConfig.baseUrl}img`;
|
|
40
55
|
const columns = (themeConfig?.netfoundry?.productPickerColumns ?? [])
|
|
41
56
|
.map((col, i) => ({ ...col, headerClass: HEADER_CLASSES[i] ?? '' }));
|
|
42
57
|
const resolvedColumns = columns.length ? columns : buildDefaultColumns(img, consoleLogo);
|
|
43
|
-
|
|
58
|
+
const resolvedLabel = pathLabel(pathname, resolvedColumns, label);
|
|
59
|
+
return (_jsx(NavbarPicker, { label: resolvedLabel, className: className, children: _jsx("div", { className: "picker-content", children: resolvedColumns.map((col, i) => (_jsxs("div", { className: "picker-column", children: [_jsx("span", { className: clsx('picker-header', col.headerClass), children: col.header }), col.links.map((link, j) => (_jsxs(Link, { to: link.to, className: "picker-link", children: [link.logo && _jsx("img", { src: link.logo, className: clsx('picker-logo', link.logoDark && 'picker-logo--light'), alt: "" }), link.logoDark && _jsx("img", { src: link.logoDark, className: "picker-logo picker-logo--dark", alt: "" }), _jsxs("div", { className: "picker-text", children: [_jsx("strong", { children: link.label }), link.description && _jsx("span", { children: link.description })] })] }, j)))] }, i))) }) }));
|
|
44
60
|
}
|
|
45
61
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../theme/NavbarItem/types/ProductPicker/index.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AACxD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAsB9C,MAAM,cAAc,GAAG,CAAC,4BAA4B,EAAE,6BAA6B,EAAE,2BAA2B,CAAC,CAAC;AAClH,MAAM,eAAe,GAAG,iHAAiH,CAAC;AAE1I,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,WAAmB,EAAkB,EAAE,CAAC;IAChF;QACE,MAAM,EAAE,eAAe;QACvB,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9B,KAAK,EAAE;YACL,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,GAAG,EAAmB,IAAI,EAAE,WAAW,EAA2B,WAAW,EAAE,wDAAwD,EAAE;YAC5K,EAAE,KAAK,EAAE,WAAW,EAAW,EAAE,EAAE,iBAAiB,EAAK,IAAI,EAAE,GAAG,GAAG,wBAAwB,EAAQ,WAAW,EAAE,oCAAoC,EAAE;SACzJ;KACF;IACD;QACE,MAAM,EAAE,aAAa;QACrB,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9B,KAAK,EAAE;YACL,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,GAAG,uBAAuB,EAA2D,WAAW,EAAE,8CAA8C,EAAE;YACtM,EAAE,KAAK,EAAE,MAAM,EAAM,EAAE,EAAE,YAAY,EAAM,IAAI,EAAE,GAAG,GAAG,+BAA+B,EAAE,QAAQ,EAAE,GAAG,GAAG,8BAA8B,EAAE,WAAW,EAAE,gDAAgD,EAAE;SACxM;KACF;IACD;QACE,MAAM,EAAE,yBAAyB;QACjC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9B,KAAK,EAAE;YACL,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,GAAG,qBAAqB,EAAK,WAAW,EAAE,gDAAgD,EAAE;YACrJ,EAAE,KAAK,EAAE,MAAM,EAAS,EAAE,EAAE,YAAY,EAAS,IAAI,EAAE,GAAG,GAAG,qBAAqB,EAAI,WAAW,EAAE,oCAAoC,EAAE;SAC1I;KACF;CACF,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAC,KAAK,GAAG,UAAU,EAAE,SAAS,EAAQ;IAC1E,MAAM,EAAC,UAAU,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,cAAc,EAAS,CAAC;IAC5C,MAAM,WAAW,GAAG,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,eAAe,CAAC;IAC5E,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC;IACxD,MAAM,OAAO,GAAmB,CAAC,WAAW,EAAE,UAAU,EAAE,oBAAoB,IAAI,EAAE,CAAC;SAClF,GAAG,CAAC,CAAC,GAAQ,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,GAAG,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC,CAAC;IAClF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../theme/NavbarItem/types/ProductPicker/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,6 +3,7 @@ import Link from '@docusaurus/Link';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
5
5
|
import {useThemeConfig} from '@docusaurus/theme-common';
|
|
6
|
+
import {useLocation} from 'react-router-dom';
|
|
6
7
|
import NavbarPicker from '../../NavbarPicker';
|
|
7
8
|
|
|
8
9
|
export type PickerLink = {
|
|
@@ -55,17 +56,32 @@ const buildDefaultColumns = (img: string, consoleLogo: string): PickerColumn[] =
|
|
|
55
56
|
},
|
|
56
57
|
];
|
|
57
58
|
|
|
59
|
+
function pathLabel(pathname: string, columns: PickerColumn[], fallback: string): string {
|
|
60
|
+
for (const col of columns) {
|
|
61
|
+
for (const link of col.links) {
|
|
62
|
+
const parts = link.to.replace(/^https?:\/\/[^/]+/, '').split('/').filter(Boolean);
|
|
63
|
+
if (parts.length >= 2) {
|
|
64
|
+
const prefix = '/' + parts.slice(0, 2).join('/');
|
|
65
|
+
if (pathname.startsWith(prefix)) return link.label;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return fallback;
|
|
70
|
+
}
|
|
71
|
+
|
|
58
72
|
export default function ProductPicker({label = 'Products', className}: Props) {
|
|
59
73
|
const {siteConfig} = useDocusaurusContext();
|
|
60
74
|
const themeConfig = useThemeConfig() as any;
|
|
75
|
+
const {pathname} = useLocation();
|
|
61
76
|
const consoleLogo = themeConfig?.netfoundry?.consoleLogo ?? NF_LOGO_DEFAULT;
|
|
62
77
|
const img = `${siteConfig.url}${siteConfig.baseUrl}img`;
|
|
63
78
|
const columns: PickerColumn[] = (themeConfig?.netfoundry?.productPickerColumns ?? [])
|
|
64
79
|
.map((col: any, i: number) => ({...col, headerClass: HEADER_CLASSES[i] ?? ''}));
|
|
65
80
|
const resolvedColumns = columns.length ? columns : buildDefaultColumns(img, consoleLogo);
|
|
81
|
+
const resolvedLabel = pathLabel(pathname, resolvedColumns, label);
|
|
66
82
|
|
|
67
83
|
return (
|
|
68
|
-
<NavbarPicker label={
|
|
84
|
+
<NavbarPicker label={resolvedLabel} className={className}>
|
|
69
85
|
<div className="picker-content">
|
|
70
86
|
{resolvedColumns.map((col, i) => (
|
|
71
87
|
<div key={i} className="picker-column">
|