@docusaurus/theme-classic 2.0.0-beta.8e9b829d9 → 2.0.0-beta.9
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 -1
- package/codeTranslations/ar.json +12 -6
- package/codeTranslations/base.json +12 -0
- package/codeTranslations/bn.json +6 -0
- package/codeTranslations/cs.json +62 -0
- package/codeTranslations/da.json +6 -0
- package/codeTranslations/de.json +8 -2
- package/codeTranslations/es.json +10 -4
- package/codeTranslations/fa.json +9 -3
- package/codeTranslations/fil.json +6 -0
- package/codeTranslations/fr.json +6 -0
- package/codeTranslations/he.json +6 -0
- package/codeTranslations/hi.json +6 -0
- package/codeTranslations/ja.json +6 -0
- package/codeTranslations/ko.json +6 -0
- package/codeTranslations/pl.json +6 -0
- package/codeTranslations/pt-BR.json +8 -2
- package/codeTranslations/pt-PT.json +6 -0
- package/codeTranslations/ru.json +6 -0
- package/codeTranslations/sr.json +62 -0
- package/codeTranslations/tr.json +9 -3
- package/codeTranslations/vi.json +10 -4
- package/codeTranslations/zh-Hans.json +6 -0
- package/codeTranslations/zh-Hant.json +6 -0
- package/lib/__tests__/validateThemeConfig.test.js +154 -4
- package/lib/index.js +2 -3
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme/AnnouncementBar/index.js +8 -12
- package/lib/theme/AnnouncementBar/styles.module.css +23 -32
- package/lib/theme/BackToTopButton/index.js +27 -13
- package/lib/theme/BackToTopButton/styles.module.css +17 -14
- package/lib/theme/BlogArchivePage/index.js +89 -0
- package/lib/theme/BlogLayout/index.js +2 -6
- package/lib/theme/BlogListPage/index.js +1 -1
- package/lib/theme/BlogPostAuthor/index.js +51 -0
- package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib/theme/BlogPostAuthors/index.js +47 -0
- package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
- package/lib/theme/BlogPostItem/index.js +58 -67
- package/lib/theme/BlogPostPage/index.js +33 -4
- package/lib/theme/BlogSidebar/styles.module.css +2 -2
- package/lib/theme/BlogTagsListPage/index.js +3 -28
- package/lib/theme/BlogTagsPostsPage/index.js +5 -8
- package/lib/theme/CodeBlock/index.js +44 -37
- package/lib/theme/CodeBlock/styles.module.css +1 -2
- package/lib/theme/DocItem/index.js +15 -40
- package/lib/theme/DocItem/styles.module.css +2 -12
- package/lib/theme/DocItemFooter/index.js +79 -0
- package/lib/theme/DocItemFooter/styles.module.css +18 -0
- package/lib/theme/DocPage/index.js +18 -13
- package/lib/theme/DocSidebar/index.js +11 -16
- package/lib/theme/DocSidebarItem/index.js +12 -10
- package/lib/theme/DocTagDocListPage/index.js +89 -0
- package/lib/theme/DocTagsListPage/index.js +44 -0
- package/lib/theme/DocVersionBanner/index.js +6 -4
- package/lib/theme/EditThisPage/index.js +3 -1
- package/lib/theme/Footer/index.js +5 -3
- package/lib/theme/Heading/index.js +7 -9
- package/lib/theme/Heading/styles.css +4 -6
- package/lib/theme/Heading/styles.module.css +9 -5
- package/lib/theme/IconClose/index.js +31 -0
- package/lib/theme/LastUpdated/index.js +4 -2
- package/lib/theme/LayoutHead/index.js +13 -11
- package/lib/theme/LayoutProviders/index.js +7 -5
- package/lib/theme/Logo/index.js +14 -12
- package/lib/theme/MDXComponents/index.js +27 -1
- package/lib/theme/MDXComponents/styles.css +11 -0
- package/lib/theme/MDXPage/index.js +2 -1
- package/lib/theme/Navbar/index.js +20 -3
- package/lib/theme/Navbar/styles.module.css +5 -1
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +12 -4
- package/lib/theme/NavbarItem/DocNavbarItem.js +5 -3
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +7 -1
- package/lib/theme/NavbarItem/DropdownNavbarItem.js +3 -3
- package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +3 -4
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib/theme/NavbarItem/index.js +5 -0
- package/lib/theme/Seo/index.js +10 -7
- package/lib/theme/TOC/index.js +9 -30
- package/lib/theme/TOC/styles.module.css +1 -1
- package/lib/theme/TOCCollapsible/index.js +5 -3
- package/lib/theme/TOCInline/index.js +7 -27
- package/lib/theme/TOCItems/index.js +78 -0
- package/lib/theme/Tabs/__tests__/index.test.js +123 -0
- package/lib/theme/Tabs/index.js +73 -50
- package/lib/theme/Tabs/styles.module.css +0 -13
- package/lib/theme/Tag/index.js +40 -0
- package/lib/theme/Tag/styles.module.css +70 -0
- package/lib/theme/TagsListByLetter/index.js +48 -0
- package/lib/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib/theme/TagsListInline/index.js +44 -0
- package/lib/theme/TagsListInline/styles.module.css +15 -0
- package/lib/theme/ThemedImage/index.js +3 -5
- package/lib/theme/Toggle/index.js +23 -18
- package/lib/theme/Toggle/styles.module.css +91 -0
- package/lib/theme/hooks/useHideableNavbar.js +14 -31
- package/lib/theme/hooks/useTheme.js +2 -2
- package/lib/theme/hooks/useWindowSize.js +2 -7
- package/lib/theme/prism-include-languages.js +4 -3
- package/lib/translations.js +4 -4
- package/lib/types.d.ts +216 -105
- package/lib/validateThemeConfig.js +215 -254
- package/lib-next/__tests__/validateThemeConfig.test.js +154 -4
- package/lib-next/index.js +1 -2
- package/lib-next/prism-include-languages.js +0 -2
- package/lib-next/theme/AnnouncementBar/index.js +7 -12
- package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
- package/lib-next/theme/BackToTopButton/index.js +37 -17
- package/lib-next/theme/BackToTopButton/styles.module.css +17 -14
- package/lib-next/theme/BlogArchivePage/index.js +80 -0
- package/lib-next/theme/BlogLayout/index.js +4 -7
- package/lib-next/theme/BlogListPage/index.js +1 -0
- package/lib-next/theme/BlogPostAuthor/index.js +46 -0
- package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib-next/theme/BlogPostAuthors/index.js +34 -0
- package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
- package/lib-next/theme/BlogPostItem/index.js +79 -86
- package/lib-next/theme/BlogPostPage/index.js +55 -8
- package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
- package/lib-next/theme/BlogTagsListPage/index.js +7 -39
- package/lib-next/theme/BlogTagsPostsPage/index.js +3 -4
- package/lib-next/theme/CodeBlock/index.js +53 -49
- package/lib-next/theme/CodeBlock/styles.module.css +1 -2
- package/lib-next/theme/DocItem/index.js +27 -45
- package/lib-next/theme/DocItem/styles.module.css +2 -12
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
- package/lib-next/theme/DocPage/index.js +18 -14
- package/lib-next/theme/DocSidebar/index.js +18 -15
- package/lib-next/theme/DocSidebarItem/index.js +31 -11
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +38 -0
- package/lib-next/theme/DocVersionBanner/index.js +16 -9
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/Footer/index.js +14 -3
- package/lib-next/theme/Heading/index.js +10 -13
- package/lib-next/theme/Heading/styles.css +4 -6
- package/lib-next/theme/Heading/styles.module.css +9 -5
- package/lib-next/theme/IconClose/index.js +23 -0
- package/lib-next/theme/LastUpdated/index.js +3 -2
- package/lib-next/theme/LayoutHead/index.js +9 -15
- package/lib-next/theme/LayoutProviders/index.js +8 -5
- package/lib-next/theme/Logo/index.js +23 -19
- package/lib-next/theme/MDXComponents/index.js +20 -1
- package/lib-next/theme/MDXComponents/styles.css +11 -0
- package/lib-next/theme/MDXPage/index.js +10 -2
- package/lib-next/theme/Navbar/index.js +27 -3
- package/lib-next/theme/Navbar/styles.module.css +5 -1
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +15 -4
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +5 -3
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +12 -4
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +4 -6
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +2 -6
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/index.js +2 -0
- package/lib-next/theme/Seo/index.js +11 -7
- package/lib-next/theme/TOC/index.js +12 -36
- package/lib-next/theme/TOC/styles.module.css +1 -1
- package/lib-next/theme/TOCCollapsible/index.js +12 -3
- package/lib-next/theme/TOCInline/index.js +10 -28
- package/lib-next/theme/TOCItems/index.js +85 -0
- package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
- package/lib-next/theme/Tabs/index.js +91 -43
- package/lib-next/theme/Tabs/styles.module.css +0 -13
- package/lib-next/theme/Tag/index.js +27 -0
- package/lib-next/theme/Tag/styles.module.css +70 -0
- package/lib-next/theme/TagsListByLetter/index.js +42 -0
- package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib-next/theme/TagsListInline/index.js +31 -0
- package/lib-next/theme/TagsListInline/styles.module.css +15 -0
- package/lib-next/theme/ThemedImage/index.js +3 -3
- package/lib-next/theme/Toggle/index.js +20 -15
- package/lib-next/theme/Toggle/styles.module.css +91 -0
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -47
- package/lib-next/theme/hooks/useTheme.js +2 -2
- package/lib-next/theme/hooks/useWindowSize.js +2 -6
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/lib-next/translations.js +6 -10
- package/lib-next/types.d.ts +216 -105
- package/lib-next/validateThemeConfig.js +40 -36
- package/package.json +23 -19
- package/src/__tests__/validateThemeConfig.test.js +154 -4
- package/src/index.ts +11 -9
- package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
- package/src/theme/AnnouncementBar/index.tsx +8 -12
- package/src/theme/AnnouncementBar/styles.module.css +23 -32
- package/src/theme/BackToTopButton/index.tsx +39 -17
- package/src/theme/BackToTopButton/styles.module.css +17 -14
- package/src/theme/BlogArchivePage/index.tsx +91 -0
- package/src/theme/BlogLayout/index.tsx +4 -8
- package/src/theme/BlogListPage/index.tsx +1 -0
- package/src/theme/BlogPostAuthor/index.tsx +49 -0
- package/src/theme/BlogPostAuthor/styles.module.css +12 -0
- package/src/theme/BlogPostAuthors/index.tsx +36 -0
- package/src/theme/BlogPostAuthors/styles.module.css +11 -0
- package/src/theme/BlogPostItem/index.tsx +70 -80
- package/src/theme/BlogPostPage/index.tsx +57 -8
- package/src/theme/BlogSidebar/styles.module.css +2 -2
- package/src/theme/BlogTagsListPage/index.tsx +7 -41
- package/src/theme/BlogTagsPostsPage/index.tsx +3 -4
- package/src/theme/CodeBlock/index.tsx +63 -47
- package/src/theme/CodeBlock/styles.module.css +1 -2
- package/src/theme/DocItem/index.tsx +27 -46
- package/src/theme/DocItem/styles.module.css +2 -12
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/src/theme/DocItemFooter/styles.module.css +18 -0
- package/src/theme/DocPage/index.tsx +16 -12
- package/src/theme/DocSidebar/index.tsx +20 -16
- package/src/theme/DocSidebarItem/index.tsx +29 -10
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +41 -0
- package/src/theme/DocVersionBanner/index.tsx +26 -15
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/Footer/index.tsx +16 -3
- package/src/theme/Heading/index.tsx +10 -13
- package/src/theme/Heading/styles.css +4 -6
- package/src/theme/Heading/styles.module.css +9 -5
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/LastUpdated/index.tsx +3 -2
- package/src/theme/LayoutHead/index.tsx +9 -9
- package/src/theme/LayoutProviders/index.tsx +8 -5
- package/src/theme/Logo/index.tsx +19 -15
- package/src/theme/MDXComponents/index.tsx +20 -1
- package/src/theme/MDXComponents/styles.css +11 -0
- package/src/theme/MDXPage/index.tsx +10 -2
- package/src/theme/Navbar/index.tsx +26 -2
- package/src/theme/Navbar/styles.module.css +5 -1
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +15 -4
- package/src/theme/NavbarItem/DocNavbarItem.tsx +9 -5
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +15 -6
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +4 -6
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +6 -5
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/index.tsx +6 -1
- package/src/theme/Seo/index.tsx +7 -4
- package/src/theme/TOC/index.tsx +13 -38
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/index.tsx +8 -2
- package/src/theme/TOCInline/index.tsx +13 -32
- package/src/theme/TOCItems/index.tsx +96 -0
- package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
- package/src/theme/Tabs/index.tsx +93 -49
- package/src/theme/Tabs/styles.module.css +0 -13
- package/src/theme/Tag/index.tsx +31 -0
- package/src/theme/Tag/styles.module.css +70 -0
- package/src/theme/TagsListByLetter/index.tsx +45 -0
- package/src/theme/TagsListByLetter/styles.module.css +11 -0
- package/src/theme/TagsListInline/index.tsx +35 -0
- package/src/theme/TagsListInline/styles.module.css +15 -0
- package/src/theme/ThemedImage/index.tsx +3 -3
- package/src/theme/Toggle/index.tsx +20 -15
- package/src/theme/Toggle/styles.module.css +91 -0
- package/src/theme/hooks/useContextualSearchFilters.ts +1 -1
- package/src/theme/hooks/useHideableNavbar.ts +32 -47
- package/src/theme/hooks/useTabGroupChoice.ts +2 -2
- package/src/theme/hooks/useTheme.ts +2 -2
- package/src/theme/hooks/useWindowSize.ts +2 -7
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/translations.ts +6 -10
- package/src/types.d.ts +216 -105
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +46 -12
- package/tsconfig.json +0 -1
- package/update-code-translations.js +5 -4
- package/update-code-translations.test.js +1 -1
- package/update.js +151 -0
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/hooks/useScrollPosition.js +0 -51
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useScrollPosition.js +0 -42
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/hooks/useScrollPosition.ts +0 -52
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
|
@@ -42,8 +42,14 @@ function FooterLink({to, href, label, prependBaseUrlToHref, ...props}) {
|
|
|
42
42
|
);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
const FooterLogo = ({sources, alt}) => (
|
|
46
|
-
<ThemedImage
|
|
45
|
+
const FooterLogo = ({sources, alt, width, height}) => (
|
|
46
|
+
<ThemedImage
|
|
47
|
+
className="footer__logo"
|
|
48
|
+
alt={alt}
|
|
49
|
+
sources={sources}
|
|
50
|
+
width={width}
|
|
51
|
+
height={height}
|
|
52
|
+
/>
|
|
47
53
|
);
|
|
48
54
|
|
|
49
55
|
function Footer() {
|
|
@@ -103,7 +109,12 @@ function Footer() {
|
|
|
103
109
|
<div className="margin-bottom--sm">
|
|
104
110
|
{logo.href ? (
|
|
105
111
|
<Link href={logo.href} className={styles.footerLogoLink}>
|
|
106
|
-
<FooterLogo
|
|
112
|
+
<FooterLogo
|
|
113
|
+
alt={logo.alt}
|
|
114
|
+
sources={sources}
|
|
115
|
+
width={logo.width}
|
|
116
|
+
height={logo.height}
|
|
117
|
+
/>
|
|
107
118
|
</Link>
|
|
108
119
|
) : (
|
|
109
120
|
<FooterLogo alt={logo.alt} sources={sources} />
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
/* eslint-disable jsx-a11y/anchor-has-content, jsx-a11y/anchor-is-valid */
|
|
9
7
|
import React from 'react';
|
|
10
8
|
import clsx from 'clsx';
|
|
11
9
|
import {translate} from '@docusaurus/Translate';
|
|
@@ -18,7 +16,7 @@ export const MainHeading = function MainHeading({...props}) {
|
|
|
18
16
|
<h1
|
|
19
17
|
{...props}
|
|
20
18
|
id={undefined} // h1 headings do not need an id because they don't appear in the TOC
|
|
21
|
-
|
|
19
|
+
>
|
|
22
20
|
{props.children}
|
|
23
21
|
</h1>
|
|
24
22
|
</header>
|
|
@@ -36,17 +34,16 @@ const createAnchorHeading = (Tag) =>
|
|
|
36
34
|
}
|
|
37
35
|
|
|
38
36
|
return (
|
|
39
|
-
<Tag
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
id={id}
|
|
47
|
-
/>
|
|
37
|
+
<Tag
|
|
38
|
+
{...props}
|
|
39
|
+
className={clsx('anchor', {
|
|
40
|
+
[styles.anchorWithHideOnScrollNavbar]: hideOnScroll,
|
|
41
|
+
[styles.anchorWithStickyNavbar]: !hideOnScroll,
|
|
42
|
+
})}
|
|
43
|
+
id={id}>
|
|
48
44
|
{props.children}
|
|
49
45
|
<a
|
|
46
|
+
aria-hidden="true"
|
|
50
47
|
className="hash-link"
|
|
51
48
|
href={`#${id}`}
|
|
52
49
|
title={translate({
|
|
@@ -54,7 +51,7 @@ const createAnchorHeading = (Tag) =>
|
|
|
54
51
|
message: 'Direct link to heading',
|
|
55
52
|
description: 'Title for link to heading',
|
|
56
53
|
})}>
|
|
57
|
-
|
|
54
|
+
​
|
|
58
55
|
</a>
|
|
59
56
|
</Tag>
|
|
60
57
|
);
|
|
@@ -5,18 +5,16 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
.anchor {
|
|
9
|
-
display: block;
|
|
10
|
-
position: relative;
|
|
11
|
-
top: -0.5rem;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
8
|
.hash-link {
|
|
15
9
|
opacity: 0;
|
|
16
10
|
padding-left: 0.5rem;
|
|
17
11
|
transition: opacity var(--ifm-transition-fast);
|
|
18
12
|
}
|
|
19
13
|
|
|
14
|
+
.hash-link:before {
|
|
15
|
+
content: '#';
|
|
16
|
+
}
|
|
17
|
+
|
|
20
18
|
.hash-link:focus,
|
|
21
19
|
*:hover > .hash-link {
|
|
22
20
|
opacity: 1;
|
|
@@ -5,11 +5,15 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
/*
|
|
9
|
+
When the navbar is sticky, ensure that on anchor click,
|
|
10
|
+
the browser does not scroll that anchor behind the navbar
|
|
11
|
+
See https://twitter.com/JoshWComeau/status/1332015868725891076
|
|
12
|
+
*/
|
|
13
|
+
.anchorWithStickyNavbar {
|
|
14
|
+
scroll-margin-top: calc(var(--ifm-navbar-height) + 0.5rem);
|
|
10
15
|
}
|
|
11
16
|
|
|
12
|
-
.
|
|
13
|
-
|
|
14
|
-
margin-bottom: calc(var(--ifm-leading-desktop) * var(--ifm-leading));
|
|
17
|
+
.anchorWithHideOnScrollNavbar {
|
|
18
|
+
scroll-margin-top: 0.5rem;
|
|
15
19
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
export default function IconClose({
|
|
9
|
+
width = 21,
|
|
10
|
+
height = 21,
|
|
11
|
+
color = 'currentColor',
|
|
12
|
+
strokeWidth = 1.2,
|
|
13
|
+
className,
|
|
14
|
+
...restProps
|
|
15
|
+
}) {
|
|
16
|
+
return (
|
|
17
|
+
<svg viewBox="0 0 15 15" width={width} height={height} {...restProps}>
|
|
18
|
+
<g stroke={color} strokeWidth={strokeWidth}>
|
|
19
|
+
<path d="M.75.75l13.5 13.5M14.25.75L.75 14.25" />
|
|
20
|
+
</g>
|
|
21
|
+
</svg>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import Translate from '@docusaurus/Translate';
|
|
9
|
+
import {ThemeClassNames} from '@docusaurus/theme-common';
|
|
9
10
|
|
|
10
11
|
function LastUpdatedAtDate({lastUpdatedAt, formattedLastUpdatedAt}) {
|
|
11
12
|
return (
|
|
@@ -45,7 +46,7 @@ export default function LastUpdated({
|
|
|
45
46
|
lastUpdatedBy,
|
|
46
47
|
}) {
|
|
47
48
|
return (
|
|
48
|
-
|
|
49
|
+
<span className={ThemeClassNames.common.lastUpdated}>
|
|
49
50
|
<Translate
|
|
50
51
|
id="theme.lastUpdated.lastUpdatedAtBy"
|
|
51
52
|
description="The sentence used to display when a page has been last updated, and by who"
|
|
@@ -72,6 +73,6 @@ export default function LastUpdated({
|
|
|
72
73
|
<small> (Simulated during dev for better perf)</small>
|
|
73
74
|
</div>
|
|
74
75
|
)}
|
|
75
|
-
|
|
76
|
+
</span>
|
|
76
77
|
);
|
|
77
78
|
}
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
DEFAULT_SEARCH_TAG,
|
|
15
15
|
useTitleFormatter,
|
|
16
16
|
useAlternatePageUtils,
|
|
17
|
+
useThemeConfig,
|
|
17
18
|
} from '@docusaurus/theme-common';
|
|
18
19
|
import {useLocation} from '@docusaurus/router'; // Useful for SEO
|
|
19
20
|
// See https://developers.google.com/search/docs/advanced/crawling/localized-versions
|
|
@@ -77,12 +78,10 @@ function CanonicalUrlHeaders({permalink}) {
|
|
|
77
78
|
|
|
78
79
|
export default function LayoutHead(props) {
|
|
79
80
|
const {
|
|
80
|
-
siteConfig: {
|
|
81
|
-
favicon,
|
|
82
|
-
themeConfig: {metadatas, image: defaultImage},
|
|
83
|
-
},
|
|
81
|
+
siteConfig: {favicon},
|
|
84
82
|
i18n: {currentLocale, localeConfigs},
|
|
85
83
|
} = useDocusaurusContext();
|
|
84
|
+
const {metadatas, image: defaultImage} = useThemeConfig();
|
|
86
85
|
const {title, description, image, keywords, searchMetadatas} = props;
|
|
87
86
|
const faviconUrl = useBaseUrl(favicon);
|
|
88
87
|
const pageTitle = useTitleFormatter(title); // See https://github.com/facebook/docusaurus/issues/3317#issuecomment-754661855
|
|
@@ -98,19 +97,14 @@ export default function LayoutHead(props) {
|
|
|
98
97
|
{favicon && <link rel="shortcut icon" href={faviconUrl} />}
|
|
99
98
|
<title>{pageTitle}</title>
|
|
100
99
|
<meta property="og:title" content={pageTitle} />
|
|
101
|
-
|
|
102
|
-
(defaultImage && (
|
|
103
|
-
<meta name="twitter:card" content="summary_large_image" />
|
|
104
|
-
))}
|
|
100
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
105
101
|
</Head>
|
|
106
102
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}}
|
|
113
|
-
/>
|
|
103
|
+
{/* image can override the default image */}
|
|
104
|
+
{defaultImage && <Seo image={defaultImage} />}
|
|
105
|
+
{image && <Seo image={image} />}
|
|
106
|
+
|
|
107
|
+
<Seo description={description} keywords={keywords} />
|
|
114
108
|
|
|
115
109
|
<CanonicalUrlHeaders />
|
|
116
110
|
|
|
@@ -11,17 +11,20 @@ import {
|
|
|
11
11
|
AnnouncementBarProvider,
|
|
12
12
|
DocsPreferredVersionContextProvider,
|
|
13
13
|
MobileSecondaryMenuProvider,
|
|
14
|
+
ScrollControllerProvider,
|
|
14
15
|
} from '@docusaurus/theme-common';
|
|
15
16
|
export default function LayoutProviders({children}) {
|
|
16
17
|
return (
|
|
17
18
|
<ThemeProvider>
|
|
18
19
|
<AnnouncementBarProvider>
|
|
19
20
|
<UserPreferencesProvider>
|
|
20
|
-
<
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
<ScrollControllerProvider>
|
|
22
|
+
<DocsPreferredVersionContextProvider>
|
|
23
|
+
<MobileSecondaryMenuProvider>
|
|
24
|
+
{children}
|
|
25
|
+
</MobileSecondaryMenuProvider>
|
|
26
|
+
</DocsPreferredVersionContextProvider>
|
|
27
|
+
</ScrollControllerProvider>
|
|
25
28
|
</UserPreferencesProvider>
|
|
26
29
|
</AnnouncementBarProvider>
|
|
27
30
|
</ThemeProvider>
|
|
@@ -9,28 +9,34 @@ import Link from '@docusaurus/Link';
|
|
|
9
9
|
import ThemedImage from '@theme/ThemedImage';
|
|
10
10
|
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
11
11
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
12
|
+
import {useThemeConfig} from '@docusaurus/theme-common';
|
|
12
13
|
|
|
13
14
|
const Logo = (props) => {
|
|
14
15
|
const {
|
|
15
|
-
siteConfig: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
},
|
|
16
|
+
siteConfig: {title},
|
|
17
|
+
} = useDocusaurusContext();
|
|
18
|
+
const {
|
|
19
|
+
navbar: {
|
|
20
|
+
title: navbarTitle,
|
|
21
|
+
logo = {
|
|
22
|
+
src: '',
|
|
24
23
|
},
|
|
25
24
|
},
|
|
26
|
-
|
|
27
|
-
} = useDocusaurusContext();
|
|
25
|
+
} = useThemeConfig();
|
|
28
26
|
const {imageClassName, titleClassName, ...propsRest} = props;
|
|
29
27
|
const logoLink = useBaseUrl(logo.href || '/');
|
|
30
28
|
const sources = {
|
|
31
29
|
light: useBaseUrl(logo.src),
|
|
32
30
|
dark: useBaseUrl(logo.srcDark || logo.src),
|
|
33
31
|
};
|
|
32
|
+
const themedImage = (
|
|
33
|
+
<ThemedImage
|
|
34
|
+
sources={sources}
|
|
35
|
+
height={logo.height}
|
|
36
|
+
width={logo.width}
|
|
37
|
+
alt={logo.alt || navbarTitle || title}
|
|
38
|
+
/>
|
|
39
|
+
);
|
|
34
40
|
return (
|
|
35
41
|
<Link
|
|
36
42
|
to={logoLink}
|
|
@@ -38,14 +44,12 @@ const Logo = (props) => {
|
|
|
38
44
|
{...(logo.target && {
|
|
39
45
|
target: logo.target,
|
|
40
46
|
})}>
|
|
41
|
-
{logo.src &&
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/>
|
|
48
|
-
)}
|
|
47
|
+
{logo.src &&
|
|
48
|
+
(imageClassName ? (
|
|
49
|
+
<div className={imageClassName}>{themedImage}</div>
|
|
50
|
+
) : (
|
|
51
|
+
<>{themedImage}</>
|
|
52
|
+
))}
|
|
49
53
|
{navbarTitle != null && <b className={titleClassName}>{navbarTitle}</b>}
|
|
50
54
|
</Link>
|
|
51
55
|
);
|
|
@@ -5,11 +5,30 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import React, {isValidElement} from 'react';
|
|
8
|
+
import Head from '@docusaurus/Head';
|
|
8
9
|
import Link from '@docusaurus/Link';
|
|
9
10
|
import CodeBlock from '@theme/CodeBlock';
|
|
10
11
|
import Heading from '@theme/Heading';
|
|
11
12
|
import Details from '@theme/Details';
|
|
13
|
+
import './styles.css'; // MDX elements are wrapped through the MDX pragma
|
|
14
|
+
// In some cases (notably usage with Head/Helmet) we need to unwrap those elements.
|
|
15
|
+
|
|
16
|
+
function unwrapMDXElement(element) {
|
|
17
|
+
if (element?.props?.mdxType && element?.props?.originalType) {
|
|
18
|
+
const {mdxType, originalType, ...newProps} = element.props;
|
|
19
|
+
return React.createElement(element.props.originalType, newProps);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return element;
|
|
23
|
+
}
|
|
24
|
+
|
|
12
25
|
const MDXComponents = {
|
|
26
|
+
head: (props) => {
|
|
27
|
+
const unwrappedChildren = React.Children.map(props.children, (child) =>
|
|
28
|
+
unwrapMDXElement(child),
|
|
29
|
+
);
|
|
30
|
+
return <Head {...props}>{unwrappedChildren}</Head>;
|
|
31
|
+
},
|
|
13
32
|
code: (props) => {
|
|
14
33
|
const {children} = props; // For retrocompatibility purposes (pretty rare use case)
|
|
15
34
|
// See https://github.com/facebook/docusaurus/pull/1584
|
|
@@ -29,7 +48,7 @@ const MDXComponents = {
|
|
|
29
48
|
const {children} = props; // See comment for `code` above
|
|
30
49
|
|
|
31
50
|
if (isValidElement(children) && isValidElement(children?.props?.children)) {
|
|
32
|
-
return children
|
|
51
|
+
return children.props.children;
|
|
33
52
|
}
|
|
34
53
|
|
|
35
54
|
return (
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
ul.contains-task-list {
|
|
9
|
+
padding-left: 0;
|
|
10
|
+
list-style: none;
|
|
11
|
+
}
|
|
@@ -15,7 +15,11 @@ import styles from './styles.module.css';
|
|
|
15
15
|
|
|
16
16
|
function MDXPage(props) {
|
|
17
17
|
const {content: MDXPageContent} = props;
|
|
18
|
-
const {
|
|
18
|
+
const {
|
|
19
|
+
// TODO this frontmatter is not validated/normalized, it's the raw user-provided one. We should expose normalized one too!
|
|
20
|
+
frontMatter,
|
|
21
|
+
metadata,
|
|
22
|
+
} = MDXPageContent;
|
|
19
23
|
const {
|
|
20
24
|
title,
|
|
21
25
|
description,
|
|
@@ -39,7 +43,11 @@ function MDXPage(props) {
|
|
|
39
43
|
</div>
|
|
40
44
|
{!hideTableOfContents && MDXPageContent.toc && (
|
|
41
45
|
<div className="col col--2">
|
|
42
|
-
<TOC
|
|
46
|
+
<TOC
|
|
47
|
+
toc={MDXPageContent.toc}
|
|
48
|
+
minHeadingLevel={frontMatter.toc_min_heading_level}
|
|
49
|
+
maxHeadingLevel={frontMatter.toc_max_heading_level}
|
|
50
|
+
/>
|
|
43
51
|
</div>
|
|
44
52
|
)}
|
|
45
53
|
</div>
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
useThemeConfig,
|
|
15
15
|
useMobileSecondaryMenuRenderer,
|
|
16
16
|
usePrevious,
|
|
17
|
+
useHistoryPopHandler,
|
|
17
18
|
} from '@docusaurus/theme-common';
|
|
18
19
|
import useHideableNavbar from '@theme/hooks/useHideableNavbar';
|
|
19
20
|
import useLockBodyScroll from '@theme/hooks/useLockBodyScroll';
|
|
@@ -22,6 +23,7 @@ import {useActivePlugin} from '@theme/hooks/useDocs';
|
|
|
22
23
|
import NavbarItem from '@theme/NavbarItem';
|
|
23
24
|
import Logo from '@theme/Logo';
|
|
24
25
|
import IconMenu from '@theme/IconMenu';
|
|
26
|
+
import IconClose from '@theme/IconClose';
|
|
25
27
|
import styles from './styles.module.css'; // retrocompatible with v1
|
|
26
28
|
|
|
27
29
|
const DefaultNavItemPosition = 'right';
|
|
@@ -50,7 +52,19 @@ function useMobileSidebar() {
|
|
|
50
52
|
|
|
51
53
|
const shouldRender = windowSize === 'mobile'; // || windowSize === 'ssr';
|
|
52
54
|
|
|
53
|
-
const [shown, setShown] = useState(false);
|
|
55
|
+
const [shown, setShown] = useState(false); // Close mobile sidebar on navigation pop
|
|
56
|
+
// Most likely firing when using the Android back button (but not only)
|
|
57
|
+
|
|
58
|
+
useHistoryPopHandler(() => {
|
|
59
|
+
if (shown) {
|
|
60
|
+
setShown(false); // Should we prevent the navigation here?
|
|
61
|
+
// See https://github.com/facebook/docusaurus/pull/5462#issuecomment-911699846
|
|
62
|
+
|
|
63
|
+
return false; // prevent pop navigation
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return undefined;
|
|
67
|
+
});
|
|
54
68
|
const toggle = useCallback(() => {
|
|
55
69
|
setShown((s) => !s);
|
|
56
70
|
}, []);
|
|
@@ -141,12 +155,22 @@ function NavbarMobileSidebar({sidebarShown, toggleSidebar}) {
|
|
|
141
155
|
imageClassName="navbar__logo"
|
|
142
156
|
titleClassName="navbar__title"
|
|
143
157
|
/>
|
|
144
|
-
{!colorModeToggle.disabled &&
|
|
158
|
+
{!colorModeToggle.disabled && (
|
|
145
159
|
<Toggle
|
|
160
|
+
className={styles.navbarSidebarToggle}
|
|
146
161
|
checked={colorModeToggle.isDarkTheme}
|
|
147
162
|
onChange={colorModeToggle.toggle}
|
|
148
163
|
/>
|
|
149
164
|
)}
|
|
165
|
+
<button
|
|
166
|
+
type="button"
|
|
167
|
+
className="clean-btn navbar-sidebar__close"
|
|
168
|
+
onClick={toggleSidebar}>
|
|
169
|
+
<IconClose
|
|
170
|
+
color="var(--ifm-color-emphasis-600)"
|
|
171
|
+
className={styles.navbarSidebarCloseSvg}
|
|
172
|
+
/>
|
|
173
|
+
</button>
|
|
150
174
|
</div>
|
|
151
175
|
|
|
152
176
|
<div
|
|
@@ -161,7 +185,7 @@ function NavbarMobileSidebar({sidebarShown, toggleSidebar}) {
|
|
|
161
185
|
</ul>
|
|
162
186
|
</div>
|
|
163
187
|
|
|
164
|
-
<div className="navbar-sidebar__item
|
|
188
|
+
<div className="navbar-sidebar__item menu">
|
|
165
189
|
{items.length > 0 && (
|
|
166
190
|
<button
|
|
167
191
|
type="button"
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/*
|
|
9
9
|
Hide toggle in small viewports
|
|
10
10
|
*/
|
|
11
|
-
@media
|
|
11
|
+
@media (max-width: 996px) {
|
|
12
12
|
.toggle {
|
|
13
13
|
display: none;
|
|
14
14
|
}
|
|
@@ -21,3 +21,7 @@ Hide toggle in small viewports
|
|
|
21
21
|
.navbarHidden {
|
|
22
22
|
transform: translate3d(0, calc(-100% - 2px), 0);
|
|
23
23
|
}
|
|
24
|
+
|
|
25
|
+
.navbarSidebarToggle {
|
|
26
|
+
margin-right: 1rem;
|
|
27
|
+
}
|
|
@@ -10,6 +10,8 @@ import Link from '@docusaurus/Link';
|
|
|
10
10
|
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
11
11
|
import IconExternalLink from '@theme/IconExternalLink';
|
|
12
12
|
import isInternalUrl from '@docusaurus/isInternalUrl';
|
|
13
|
+
import {isRegexpStringMatch} from '@docusaurus/theme-common';
|
|
14
|
+
import {getInfimaActiveClassName} from './index';
|
|
13
15
|
const dropdownLinkActiveClass = 'dropdown__link--active';
|
|
14
16
|
export function NavLink({
|
|
15
17
|
activeBasePath,
|
|
@@ -17,7 +19,7 @@ export function NavLink({
|
|
|
17
19
|
to,
|
|
18
20
|
href,
|
|
19
21
|
label,
|
|
20
|
-
activeClassName = '
|
|
22
|
+
activeClassName = '',
|
|
21
23
|
prependBaseUrlToHref,
|
|
22
24
|
...props
|
|
23
25
|
}) {
|
|
@@ -38,13 +40,15 @@ export function NavLink({
|
|
|
38
40
|
}
|
|
39
41
|
: {
|
|
40
42
|
isNavLink: true,
|
|
41
|
-
activeClassName
|
|
43
|
+
activeClassName: !props.className?.includes(activeClassName)
|
|
44
|
+
? activeClassName
|
|
45
|
+
: '',
|
|
42
46
|
to: toUrl,
|
|
43
47
|
...(activeBasePath || activeBaseRegex
|
|
44
48
|
? {
|
|
45
49
|
isActive: (_match, location) =>
|
|
46
50
|
activeBaseRegex
|
|
47
|
-
?
|
|
51
|
+
? isRegexpStringMatch(activeBaseRegex, location.pathname)
|
|
48
52
|
: location.pathname.startsWith(activeBaseUrl),
|
|
49
53
|
}
|
|
50
54
|
: null),
|
|
@@ -108,7 +112,14 @@ function DefaultNavbarItem({
|
|
|
108
112
|
...props
|
|
109
113
|
}) {
|
|
110
114
|
const Comp = mobile ? DefaultNavbarItemMobile : DefaultNavbarItemDesktop;
|
|
111
|
-
return
|
|
115
|
+
return (
|
|
116
|
+
<Comp
|
|
117
|
+
{...props}
|
|
118
|
+
activeClassName={
|
|
119
|
+
props.activeClassName ?? getInfimaActiveClassName(mobile)
|
|
120
|
+
}
|
|
121
|
+
/>
|
|
122
|
+
);
|
|
112
123
|
}
|
|
113
124
|
|
|
114
125
|
export default DefaultNavbarItem;
|
|
@@ -8,6 +8,7 @@ import React from 'react';
|
|
|
8
8
|
import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem';
|
|
9
9
|
import {useLatestVersion, useActiveDocContext} from '@theme/hooks/useDocs';
|
|
10
10
|
import clsx from 'clsx';
|
|
11
|
+
import {getInfimaActiveClassName} from './index';
|
|
11
12
|
import {useDocsPreferredVersion} from '@docusaurus/theme-common';
|
|
12
13
|
import {uniq} from '@docusaurus/utils-common';
|
|
13
14
|
|
|
@@ -28,7 +29,6 @@ Available doc ids are:\n- ${docIds}`);
|
|
|
28
29
|
|
|
29
30
|
export default function DocNavbarItem({
|
|
30
31
|
docId,
|
|
31
|
-
activeSidebarClassName,
|
|
32
32
|
label: staticLabel,
|
|
33
33
|
docsPluginId,
|
|
34
34
|
...props
|
|
@@ -41,14 +41,16 @@ export default function DocNavbarItem({
|
|
|
41
41
|
[activeVersion, preferredVersion, latestVersion].filter(Boolean),
|
|
42
42
|
);
|
|
43
43
|
const doc = getDocInVersions(versions, docId);
|
|
44
|
+
const activeDocInfimaClassName = getInfimaActiveClassName(props.mobile);
|
|
44
45
|
return (
|
|
45
46
|
<DefaultNavbarItem
|
|
46
47
|
exact
|
|
47
48
|
{...props}
|
|
48
49
|
className={clsx(props.className, {
|
|
49
|
-
[
|
|
50
|
-
activeDoc && activeDoc.sidebar === doc.sidebar,
|
|
50
|
+
[activeDocInfimaClassName]:
|
|
51
|
+
activeDoc?.sidebar && activeDoc.sidebar === doc.sidebar,
|
|
51
52
|
})}
|
|
53
|
+
activeClassName={activeDocInfimaClassName}
|
|
52
54
|
label={staticLabel ?? doc.id}
|
|
53
55
|
to={doc.path}
|
|
54
56
|
/>
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
useActiveDocContext,
|
|
14
14
|
} from '@theme/hooks/useDocs';
|
|
15
15
|
import {useDocsPreferredVersion} from '@docusaurus/theme-common';
|
|
16
|
+
import {translate} from '@docusaurus/Translate';
|
|
16
17
|
|
|
17
18
|
const getVersionMainDoc = (version) =>
|
|
18
19
|
version.docs.find((doc) => doc.id === version.mainDocId);
|
|
@@ -28,9 +29,8 @@ export default function DocsVersionDropdownNavbarItem({
|
|
|
28
29
|
const activeDocContext = useActiveDocContext(docsPluginId);
|
|
29
30
|
const versions = useVersions(docsPluginId);
|
|
30
31
|
const latestVersion = useLatestVersion(docsPluginId);
|
|
31
|
-
const {preferredVersion, savePreferredVersionName} =
|
|
32
|
-
docsPluginId
|
|
33
|
-
);
|
|
32
|
+
const {preferredVersion, savePreferredVersionName} =
|
|
33
|
+
useDocsPreferredVersion(docsPluginId);
|
|
34
34
|
|
|
35
35
|
function getItems() {
|
|
36
36
|
const versionLinks = versions.map((version) => {
|
|
@@ -56,7 +56,15 @@ export default function DocsVersionDropdownNavbarItem({
|
|
|
56
56
|
const dropdownVersion =
|
|
57
57
|
activeDocContext.activeVersion ?? preferredVersion ?? latestVersion; // Mobile dropdown is handled a bit differently
|
|
58
58
|
|
|
59
|
-
const dropdownLabel =
|
|
59
|
+
const dropdownLabel =
|
|
60
|
+
mobile && items
|
|
61
|
+
? translate({
|
|
62
|
+
id: 'theme.navbar.mobileVersionsDropdown.label',
|
|
63
|
+
message: 'Versions',
|
|
64
|
+
description:
|
|
65
|
+
'The label for the navbar versions dropdown on mobile view',
|
|
66
|
+
})
|
|
67
|
+
: dropdownVersion.label;
|
|
60
68
|
const dropdownTo =
|
|
61
69
|
mobile && items ? undefined : getVersionMainDoc(dropdownVersion).path; // We don't want to render a version dropdown with 0 or 1 item
|
|
62
70
|
// If we build the site with a single docs version (onlyIncludeVersions: ['1.0.0'])
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
isSamePath,
|
|
11
11
|
useCollapsible,
|
|
12
12
|
Collapsible,
|
|
13
|
+
isRegexpStringMatch,
|
|
13
14
|
useLocalPathname,
|
|
14
15
|
} from '@docusaurus/theme-common';
|
|
15
16
|
import {NavLink} from '@theme/NavbarItem/DefaultNavbarItem';
|
|
@@ -21,10 +22,7 @@ function isItemActive(item, localPathname) {
|
|
|
21
22
|
return true;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
if (
|
|
25
|
-
item.activeBaseRegex &&
|
|
26
|
-
new RegExp(item.activeBaseRegex).test(localPathname)
|
|
27
|
-
) {
|
|
25
|
+
if (isRegexpStringMatch(item.activeBaseRegex, localPathname)) {
|
|
28
26
|
return true;
|
|
29
27
|
}
|
|
30
28
|
|
|
@@ -67,7 +65,7 @@ function DropdownNavbarItemDesktop({items, position, className, ...props}) {
|
|
|
67
65
|
'dropdown--show': showDropdown,
|
|
68
66
|
})}>
|
|
69
67
|
<NavLink
|
|
70
|
-
className={clsx('
|
|
68
|
+
className={clsx('navbar__link', className)}
|
|
71
69
|
{...props}
|
|
72
70
|
onClick={props.to ? undefined : (e) => e.preventDefault()}
|
|
73
71
|
onKeyDown={(e) => {
|
|
@@ -120,7 +118,7 @@ function DropdownNavbarItemMobile({
|
|
|
120
118
|
if (containsActive) {
|
|
121
119
|
setCollapsed(!containsActive);
|
|
122
120
|
}
|
|
123
|
-
}, [localPathname, containsActive]);
|
|
121
|
+
}, [localPathname, containsActive, setCollapsed]);
|
|
124
122
|
return (
|
|
125
123
|
<li
|
|
126
124
|
className={clsx('menu__list-item', {
|
package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js}
RENAMED
|
@@ -9,6 +9,7 @@ import DropdownNavbarItem from '@theme/NavbarItem/DropdownNavbarItem';
|
|
|
9
9
|
import IconLanguage from '@theme/IconLanguage';
|
|
10
10
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
11
11
|
import {useAlternatePageUtils} from '@docusaurus/theme-common';
|
|
12
|
+
import styles from './styles.module.css';
|
|
12
13
|
export default function LocaleDropdownNavbarItem({
|
|
13
14
|
mobile,
|
|
14
15
|
dropdownItemsBefore,
|
|
@@ -51,12 +52,7 @@ export default function LocaleDropdownNavbarItem({
|
|
|
51
52
|
mobile={mobile}
|
|
52
53
|
label={
|
|
53
54
|
<span>
|
|
54
|
-
<IconLanguage
|
|
55
|
-
style={{
|
|
56
|
-
verticalAlign: 'text-bottom',
|
|
57
|
-
marginRight: 5,
|
|
58
|
-
}}
|
|
59
|
-
/>
|
|
55
|
+
<IconLanguage className={styles.iconLanguage} />
|
|
60
56
|
<span>{dropdownLabel}</span>
|
|
61
57
|
</span>
|
|
62
58
|
}
|