@docusaurus/theme-classic 2.0.0-beta.8bda3b2db → 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 -7
- package/codeTranslations/base.json +17 -7
- package/codeTranslations/bn.json +11 -5
- package/codeTranslations/cs.json +62 -0
- package/codeTranslations/da.json +8 -3
- package/codeTranslations/de.json +8 -3
- package/codeTranslations/es.json +15 -10
- package/codeTranslations/fa.json +31 -26
- package/codeTranslations/fil.json +8 -3
- package/codeTranslations/fr.json +8 -3
- package/codeTranslations/he.json +9 -4
- package/codeTranslations/hi.json +9 -4
- package/codeTranslations/ja.json +8 -3
- package/codeTranslations/ko.json +8 -3
- package/codeTranslations/pl.json +8 -3
- package/codeTranslations/pt-BR.json +16 -11
- package/codeTranslations/pt-PT.json +8 -3
- package/codeTranslations/ru.json +10 -5
- package/codeTranslations/sr.json +62 -0
- package/codeTranslations/tr.json +9 -4
- package/codeTranslations/vi.json +10 -5
- package/codeTranslations/zh-Hans.json +9 -4
- package/codeTranslations/zh-Hant.json +9 -4
- package/lib/__tests__/validateThemeConfig.test.js +277 -3
- package/lib/admonitions.css +35 -0
- package/lib/index.js +31 -8
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme/AnnouncementBar/index.js +10 -16
- package/lib/theme/AnnouncementBar/styles.module.css +25 -30
- package/lib/theme/BackToTopButton/index.js +140 -0
- package/lib/theme/BackToTopButton/styles.module.css +42 -0
- package/lib/theme/BlogArchivePage/index.js +89 -0
- package/lib/theme/BlogLayout/index.js +51 -0
- package/lib/theme/BlogListPage/index.js +10 -21
- 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 +37 -24
- package/lib/theme/BlogSidebar/styles.module.css +2 -2
- package/lib/theme/BlogTagsListPage/index.js +8 -44
- package/lib/theme/BlogTagsPostsPage/index.js +24 -38
- package/lib/theme/CodeBlock/index.js +45 -41
- package/lib/theme/CodeBlock/styles.module.css +6 -9
- package/lib/theme/Details/index.js +30 -0
- package/lib/theme/Details/styles.module.css +13 -0
- package/lib/theme/DocItem/index.js +29 -45
- package/lib/theme/DocItem/styles.module.css +5 -9
- package/lib/theme/DocItemFooter/index.js +79 -0
- package/lib/theme/DocItemFooter/styles.module.css +18 -0
- package/lib/theme/DocPage/index.js +25 -49
- package/lib/theme/DocPage/styles.module.css +8 -23
- package/lib/theme/DocSidebar/index.js +45 -227
- package/lib/theme/DocSidebar/styles.module.css +0 -18
- package/lib/theme/DocSidebarItem/index.js +177 -0
- package/lib/theme/DocSidebarItem/styles.module.css +15 -0
- package/lib/theme/DocTagDocListPage/index.js +89 -0
- package/lib/theme/DocTagsListPage/index.js +44 -0
- package/lib/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +37 -18
- package/lib/theme/EditThisPage/index.js +3 -1
- package/lib/theme/Footer/index.js +13 -4
- 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 +11 -5
- package/lib/theme/Logo/index.js +14 -12
- package/lib/theme/MDXComponents/index.js +45 -4
- package/lib/theme/MDXComponents/styles.css +11 -0
- package/lib/theme/MDXPage/index.js +2 -1
- package/lib/theme/Navbar/index.js +164 -42
- package/lib/theme/Navbar/styles.module.css +10 -3
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -123
- package/lib/theme/NavbarItem/DocNavbarItem.js +6 -5
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
- package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
- package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +5 -6
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib/theme/NavbarItem/index.js +31 -11
- package/lib/theme/Seo/index.js +10 -7
- package/lib/theme/SkipToContent/index.js +9 -3
- package/lib/theme/SkipToContent/styles.module.css +1 -0
- package/lib/theme/TOC/index.js +9 -29
- package/lib/theme/TOC/styles.module.css +1 -1
- package/lib/theme/TOCCollapsible/index.js +53 -0
- package/lib/theme/TOCCollapsible/styles.module.css +50 -0
- 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 +4 -5
- package/lib/theme/Toggle/index.js +23 -18
- package/lib/theme/Toggle/styles.module.css +91 -0
- package/lib/theme/UserPreferencesProvider/index.js +1 -9
- package/lib/theme/hooks/useHideableNavbar.js +14 -32
- package/lib/theme/hooks/useTabGroupChoice.js +2 -4
- package/lib/theme/hooks/useTheme.js +2 -2
- package/lib/theme/hooks/useWindowSize.js +33 -20
- package/lib/theme/prism-include-languages.js +4 -3
- package/lib/translations.js +4 -4
- package/lib/types.d.ts +338 -138
- package/lib/validateThemeConfig.js +226 -245
- package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
- package/lib-next/admonitions.css +35 -0
- package/lib-next/index.js +33 -7
- package/lib-next/prism-include-languages.js +0 -2
- package/lib-next/theme/AnnouncementBar/index.js +9 -18
- package/lib-next/theme/AnnouncementBar/styles.module.css +25 -30
- package/lib-next/theme/BackToTopButton/index.js +131 -0
- package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
- package/lib-next/theme/BlogArchivePage/index.js +80 -0
- package/lib-next/theme/BlogLayout/index.js +40 -0
- package/lib-next/theme/BlogListPage/index.js +16 -24
- 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 +70 -35
- package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
- package/lib-next/theme/BlogTagsListPage/index.js +13 -54
- package/lib-next/theme/BlogTagsPostsPage/index.js +28 -38
- package/lib-next/theme/CodeBlock/index.js +54 -53
- package/lib-next/theme/CodeBlock/styles.module.css +6 -9
- package/lib-next/theme/Details/index.js +20 -0
- package/lib-next/theme/Details/styles.module.css +13 -0
- package/lib-next/theme/DocItem/index.js +46 -55
- package/lib-next/theme/DocItem/styles.module.css +5 -9
- 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 +25 -43
- package/lib-next/theme/DocPage/styles.module.css +8 -23
- package/lib-next/theme/DocSidebar/index.js +59 -288
- package/lib-next/theme/DocSidebar/styles.module.css +0 -18
- package/lib-next/theme/DocSidebarItem/index.js +181 -0
- package/lib-next/theme/DocSidebarItem/styles.module.css +15 -0
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +38 -0
- package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +44 -36
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/Footer/index.js +24 -4
- 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 +17 -6
- package/lib-next/theme/Logo/index.js +23 -19
- package/lib-next/theme/MDXComponents/index.js +34 -7
- 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 +192 -56
- package/lib-next/theme/Navbar/styles.module.css +10 -3
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +6 -5
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +158 -0
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -8
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/index.js +25 -12
- package/lib-next/theme/Seo/index.js +11 -7
- package/lib-next/theme/SkipToContent/index.js +5 -6
- package/lib-next/theme/SkipToContent/styles.module.css +1 -0
- 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 +54 -0
- package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
- 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 +5 -6
- package/lib-next/theme/Toggle/index.js +20 -15
- package/lib-next/theme/Toggle/styles.module.css +91 -0
- package/lib-next/theme/UserPreferencesProvider/index.js +0 -4
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
- package/lib-next/theme/hooks/useTabGroupChoice.js +2 -4
- package/lib-next/theme/hooks/useTheme.js +2 -2
- package/lib-next/theme/hooks/useWindowSize.js +34 -20
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/lib-next/translations.js +6 -10
- package/lib-next/types.d.ts +338 -138
- package/lib-next/validateThemeConfig.js +134 -110
- package/package.json +24 -19
- package/src/__tests__/validateThemeConfig.test.js +277 -3
- package/src/admonitions.css +35 -0
- package/src/index.ts +44 -14
- package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
- package/src/theme/AnnouncementBar/index.tsx +10 -17
- package/src/theme/AnnouncementBar/styles.module.css +25 -30
- package/src/theme/BackToTopButton/index.tsx +142 -0
- package/src/theme/BackToTopButton/styles.module.css +42 -0
- package/src/theme/BlogArchivePage/index.tsx +91 -0
- package/src/theme/BlogLayout/index.tsx +44 -0
- package/src/theme/BlogListPage/index.tsx +17 -24
- 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 +72 -35
- package/src/theme/BlogSidebar/styles.module.css +2 -2
- package/src/theme/BlogTagsListPage/index.tsx +13 -56
- package/src/theme/BlogTagsPostsPage/index.tsx +28 -38
- package/src/theme/CodeBlock/index.tsx +70 -55
- package/src/theme/CodeBlock/styles.module.css +6 -9
- package/src/theme/Details/index.tsx +24 -0
- package/src/theme/Details/styles.module.css +13 -0
- package/src/theme/DocItem/index.tsx +49 -55
- package/src/theme/DocItem/styles.module.css +5 -9
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/src/theme/DocItemFooter/styles.module.css +18 -0
- package/src/theme/DocPage/index.tsx +24 -38
- package/src/theme/DocPage/styles.module.css +8 -23
- package/src/theme/DocSidebar/index.tsx +70 -300
- package/src/theme/DocSidebar/styles.module.css +0 -18
- package/src/theme/DocSidebarItem/index.tsx +206 -0
- package/src/theme/DocSidebarItem/styles.module.css +15 -0
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +41 -0
- package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +58 -44
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/Footer/index.tsx +26 -4
- 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 +17 -6
- package/src/theme/Logo/index.tsx +19 -15
- package/src/theme/MDXComponents/index.tsx +39 -5
- package/src/theme/MDXComponents/styles.css +11 -0
- package/src/theme/MDXPage/index.tsx +10 -2
- package/src/theme/Navbar/index.tsx +202 -61
- package/src/theme/Navbar/styles.module.css +10 -3
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
- package/src/theme/NavbarItem/DocNavbarItem.tsx +11 -14
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +180 -0
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -7
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/index.tsx +41 -16
- package/src/theme/Seo/index.tsx +7 -4
- package/src/theme/SkipToContent/index.tsx +5 -6
- package/src/theme/SkipToContent/styles.module.css +1 -0
- package/src/theme/TOC/index.tsx +12 -41
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/index.tsx +58 -0
- package/src/theme/TOCCollapsible/styles.module.css +50 -0
- 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 +6 -6
- package/src/theme/Toggle/index.tsx +20 -15
- package/src/theme/Toggle/styles.module.css +91 -0
- package/src/theme/UserPreferencesProvider/index.tsx +0 -5
- package/src/theme/hooks/useContextualSearchFilters.ts +1 -1
- package/src/theme/hooks/useHideableNavbar.ts +32 -45
- package/src/theme/hooks/useTabGroupChoice.ts +4 -4
- package/src/theme/hooks/useTheme.ts +2 -2
- package/src/theme/hooks/useWindowSize.ts +38 -20
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/translations.ts +6 -10
- package/src/types.d.ts +338 -138
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +144 -90
- package/tsconfig.json +1 -2
- package/update-code-translations.js +10 -6
- 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/useAnnouncementBar.js +0 -63
- package/lib/theme/hooks/useScrollPosition.js +0 -49
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/hooks/useAnnouncementBar.ts +0 -58
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
|
@@ -5,22 +5,18 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
.docItemContainer article > *:first-child,
|
|
8
9
|
.docItemContainer header + * {
|
|
9
10
|
margin-top: 0;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
margin-top: 0.2rem;
|
|
14
|
-
font-style: italic;
|
|
15
|
-
font-size: smaller;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@media only screen and (min-width: 997px) {
|
|
13
|
+
@media (min-width: 997px) {
|
|
19
14
|
.docItemCol {
|
|
20
15
|
max-width: 75% !important;
|
|
21
16
|
}
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
/* Prevent hydration FOUC, as the mobile TOC needs to be server-rendered */
|
|
19
|
+
.tocMobile {
|
|
20
|
+
display: none;
|
|
25
21
|
}
|
|
26
22
|
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = DocItemFooter;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
|
+
|
|
12
|
+
var _LastUpdated = _interopRequireDefault(require("@theme/LastUpdated"));
|
|
13
|
+
|
|
14
|
+
var _EditThisPage = _interopRequireDefault(require("@theme/EditThisPage"));
|
|
15
|
+
|
|
16
|
+
var _TagsListInline = _interopRequireDefault(require("@theme/TagsListInline"));
|
|
17
|
+
|
|
18
|
+
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
19
|
+
|
|
20
|
+
var _themeCommon = require("@docusaurus/theme-common");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
26
|
+
*
|
|
27
|
+
* This source code is licensed under the MIT license found in the
|
|
28
|
+
* LICENSE file in the root directory of this source tree.
|
|
29
|
+
*/
|
|
30
|
+
function TagsRow(props) {
|
|
31
|
+
return <div className={(0, _clsx.default)(_themeCommon.ThemeClassNames.docs.docFooterTagsRow, 'row margin-bottom--sm')}>
|
|
32
|
+
<div className="col">
|
|
33
|
+
<_TagsListInline.default {...props} />
|
|
34
|
+
</div>
|
|
35
|
+
</div>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function EditMetaRow({
|
|
39
|
+
editUrl,
|
|
40
|
+
lastUpdatedAt,
|
|
41
|
+
lastUpdatedBy,
|
|
42
|
+
formattedLastUpdatedAt
|
|
43
|
+
}) {
|
|
44
|
+
return <div className={(0, _clsx.default)(_themeCommon.ThemeClassNames.docs.docFooterEditMetaRow, 'row')}>
|
|
45
|
+
<div className="col">{editUrl && <_EditThisPage.default editUrl={editUrl} />}</div>
|
|
46
|
+
|
|
47
|
+
<div className={(0, _clsx.default)('col', _stylesModule.default.lastUpdated)}>
|
|
48
|
+
{(lastUpdatedAt || lastUpdatedBy) && <_LastUpdated.default lastUpdatedAt={lastUpdatedAt} formattedLastUpdatedAt={formattedLastUpdatedAt} lastUpdatedBy={lastUpdatedBy} />}
|
|
49
|
+
</div>
|
|
50
|
+
</div>;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function DocItemFooter(props) {
|
|
54
|
+
const {
|
|
55
|
+
content: DocContent
|
|
56
|
+
} = props;
|
|
57
|
+
const {
|
|
58
|
+
metadata
|
|
59
|
+
} = DocContent;
|
|
60
|
+
const {
|
|
61
|
+
editUrl,
|
|
62
|
+
lastUpdatedAt,
|
|
63
|
+
formattedLastUpdatedAt,
|
|
64
|
+
lastUpdatedBy,
|
|
65
|
+
tags
|
|
66
|
+
} = metadata;
|
|
67
|
+
const canDisplayTagsRow = tags.length > 0;
|
|
68
|
+
const canDisplayEditMetaRow = !!(editUrl || lastUpdatedAt || lastUpdatedBy);
|
|
69
|
+
const canDisplayFooter = canDisplayTagsRow || canDisplayEditMetaRow;
|
|
70
|
+
|
|
71
|
+
if (!canDisplayFooter) {
|
|
72
|
+
return <></>;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return <footer className={(0, _clsx.default)(_themeCommon.ThemeClassNames.docs.docFooter, 'docusaurus-mt-lg')}>
|
|
76
|
+
{canDisplayTagsRow && <TagsRow tags={tags} />}
|
|
77
|
+
{canDisplayEditMetaRow && <EditMetaRow editUrl={editUrl} lastUpdatedAt={lastUpdatedAt} lastUpdatedBy={lastUpdatedBy} formattedLastUpdatedAt={formattedLastUpdatedAt} />}
|
|
78
|
+
</footer>;
|
|
79
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
.lastUpdated {
|
|
9
|
+
margin-top: 0.2rem;
|
|
10
|
+
font-style: italic;
|
|
11
|
+
font-size: smaller;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@media (min-width: 997px) {
|
|
15
|
+
.lastUpdated {
|
|
16
|
+
text-align: right;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -9,8 +9,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _react2 = require("@mdx-js/react");
|
|
11
11
|
|
|
12
|
-
var _useDocusaurusContext = _interopRequireDefault(require("@docusaurus/useDocusaurusContext"));
|
|
13
|
-
|
|
14
12
|
var _renderRoutes = _interopRequireDefault(require("@docusaurus/renderRoutes"));
|
|
15
13
|
|
|
16
14
|
var _Layout = _interopRequireDefault(require("@theme/Layout"));
|
|
@@ -23,6 +21,8 @@ var _NotFound = _interopRequireDefault(require("@theme/NotFound"));
|
|
|
23
21
|
|
|
24
22
|
var _IconArrow = _interopRequireDefault(require("@theme/IconArrow"));
|
|
25
23
|
|
|
24
|
+
var _BackToTopButton = _interopRequireDefault(require("@theme/BackToTopButton"));
|
|
25
|
+
|
|
26
26
|
var _router = require("@docusaurus/router");
|
|
27
27
|
|
|
28
28
|
var _Translate = require("@docusaurus/Translate");
|
|
@@ -33,6 +33,8 @@ var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
|
33
33
|
|
|
34
34
|
var _themeCommon = require("@docusaurus/theme-common");
|
|
35
35
|
|
|
36
|
+
var _Head = _interopRequireDefault(require("@docusaurus/Head"));
|
|
37
|
+
|
|
36
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
39
|
|
|
38
40
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -45,55 +47,17 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
45
47
|
* This source code is licensed under the MIT license found in the
|
|
46
48
|
* LICENSE file in the root directory of this source tree.
|
|
47
49
|
*/
|
|
48
|
-
function getSidebar({
|
|
49
|
-
versionMetadata,
|
|
50
|
-
currentDocRoute
|
|
51
|
-
}) {
|
|
52
|
-
function addTrailingSlash(str) {
|
|
53
|
-
return str.endsWith('/') ? str : `${str}/`;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function removeTrailingSlash(str) {
|
|
57
|
-
return str.endsWith('/') ? str.slice(0, -1) : str;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const {
|
|
61
|
-
permalinkToSidebar,
|
|
62
|
-
docsSidebars
|
|
63
|
-
} = versionMetadata; // With/without trailingSlash, we should always be able to get the appropriate sidebar
|
|
64
|
-
// note: docs plugin permalinks currently never have trailing slashes
|
|
65
|
-
// trailingSlash is handled globally at the framework level, not plugin level
|
|
66
|
-
|
|
67
|
-
const sidebarName = permalinkToSidebar[currentDocRoute.path] || permalinkToSidebar[addTrailingSlash(currentDocRoute.path)] || permalinkToSidebar[removeTrailingSlash(currentDocRoute.path)];
|
|
68
|
-
const sidebar = docsSidebars[sidebarName];
|
|
69
|
-
return {
|
|
70
|
-
sidebar,
|
|
71
|
-
sidebarName
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
50
|
function DocPageContent({
|
|
76
51
|
currentDocRoute,
|
|
77
52
|
versionMetadata,
|
|
78
53
|
children
|
|
79
54
|
}) {
|
|
80
|
-
var _siteConfig$themeConf, _siteConfig$themeConf2;
|
|
81
|
-
|
|
82
|
-
const {
|
|
83
|
-
siteConfig,
|
|
84
|
-
isClient
|
|
85
|
-
} = (0, _useDocusaurusContext.default)();
|
|
86
55
|
const {
|
|
87
56
|
pluginId,
|
|
88
57
|
version
|
|
89
58
|
} = versionMetadata;
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
sidebar
|
|
93
|
-
} = getSidebar({
|
|
94
|
-
versionMetadata,
|
|
95
|
-
currentDocRoute
|
|
96
|
-
});
|
|
59
|
+
const sidebarName = currentDocRoute.sidebar;
|
|
60
|
+
const sidebar = sidebarName ? versionMetadata.docsSidebars[sidebarName] : undefined;
|
|
97
61
|
const [hiddenSidebarContainer, setHiddenSidebarContainer] = (0, _react.useState)(false);
|
|
98
62
|
const [hiddenSidebar, setHiddenSidebar] = (0, _react.useState)(false);
|
|
99
63
|
const toggleSidebar = (0, _react.useCallback)(() => {
|
|
@@ -101,13 +65,15 @@ function DocPageContent({
|
|
|
101
65
|
setHiddenSidebar(false);
|
|
102
66
|
}
|
|
103
67
|
|
|
104
|
-
setHiddenSidebarContainer(!
|
|
68
|
+
setHiddenSidebarContainer(value => !value);
|
|
105
69
|
}, [hiddenSidebar]);
|
|
106
|
-
return <_Layout.default
|
|
70
|
+
return <_Layout.default wrapperClassName={_themeCommon.ThemeClassNames.wrapper.docsPages} pageClassName={_themeCommon.ThemeClassNames.page.docsDocPage} searchMetadatas={{
|
|
107
71
|
version,
|
|
108
72
|
tag: (0, _themeCommon.docVersionSearchTag)(pluginId, version)
|
|
109
73
|
}}>
|
|
110
74
|
<div className={_stylesModule.default.docPage}>
|
|
75
|
+
<_BackToTopButton.default />
|
|
76
|
+
|
|
111
77
|
{sidebar && <aside className={(0, _clsx.default)(_stylesModule.default.docSidebarContainer, {
|
|
112
78
|
[_stylesModule.default.docSidebarContainerHidden]: hiddenSidebarContainer
|
|
113
79
|
})} onTransitionEnd={e => {
|
|
@@ -121,7 +87,7 @@ function DocPageContent({
|
|
|
121
87
|
}}>
|
|
122
88
|
<_DocSidebar.default key={// Reset sidebar state on sidebar changes
|
|
123
89
|
// See https://github.com/facebook/docusaurus/issues/3414
|
|
124
|
-
sidebarName} sidebar={sidebar} path={currentDocRoute.path}
|
|
90
|
+
sidebarName} sidebar={sidebar} path={currentDocRoute.path} onCollapse={toggleSidebar} isHidden={hiddenSidebar} />
|
|
125
91
|
|
|
126
92
|
{hiddenSidebar && <div className={_stylesModule.default.collapsedDocSidebar} title={(0, _Translate.translate)({
|
|
127
93
|
id: 'theme.docs.sidebar.expandButtonTitle',
|
|
@@ -159,12 +125,22 @@ function DocPage(props) {
|
|
|
159
125
|
const currentDocRoute = docRoutes.find(docRoute => (0, _router.matchPath)(location.pathname, docRoute));
|
|
160
126
|
|
|
161
127
|
if (!currentDocRoute) {
|
|
162
|
-
return <_NotFound.default
|
|
128
|
+
return <_NotFound.default />;
|
|
163
129
|
}
|
|
164
130
|
|
|
165
|
-
return
|
|
166
|
-
|
|
167
|
-
|
|
131
|
+
return <>
|
|
132
|
+
<_Head.default>
|
|
133
|
+
{
|
|
134
|
+
/* TODO we should add a core addRoute({htmlClassName}) generic plugin option */
|
|
135
|
+
}
|
|
136
|
+
<html className={versionMetadata.className} />
|
|
137
|
+
</_Head.default>
|
|
138
|
+
<DocPageContent currentDocRoute={currentDocRoute} versionMetadata={versionMetadata}>
|
|
139
|
+
{(0, _renderRoutes.default)(docRoutes, {
|
|
140
|
+
versionMetadata
|
|
141
|
+
})}
|
|
142
|
+
</DocPageContent>
|
|
143
|
+
</>;
|
|
168
144
|
}
|
|
169
145
|
|
|
170
146
|
var _default = DocPage;
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
:root {
|
|
9
9
|
--doc-sidebar-width: 300px;
|
|
10
|
+
--doc-sidebar-hidden-width: 30px;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
:global(.docs-wrapper) {
|
|
@@ -19,6 +20,10 @@
|
|
|
19
20
|
width: 100%;
|
|
20
21
|
}
|
|
21
22
|
|
|
23
|
+
.docSidebarContainer {
|
|
24
|
+
display: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
22
27
|
@media (min-width: 997px) {
|
|
23
28
|
.docMainContainer {
|
|
24
29
|
flex-grow: 1;
|
|
@@ -26,10 +31,11 @@
|
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
.docMainContainerEnhanced {
|
|
29
|
-
max-width:
|
|
34
|
+
max-width: calc(100% - var(--doc-sidebar-hidden-width));
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
.docSidebarContainer {
|
|
38
|
+
display: block;
|
|
33
39
|
width: var(--doc-sidebar-width);
|
|
34
40
|
margin-top: calc(-1 * var(--ifm-navbar-height));
|
|
35
41
|
border-right: 1px solid var(--ifm-toc-border-color);
|
|
@@ -39,7 +45,7 @@
|
|
|
39
45
|
}
|
|
40
46
|
|
|
41
47
|
.docSidebarContainerHidden {
|
|
42
|
-
width:
|
|
48
|
+
width: var(--doc-sidebar-hidden-width);
|
|
43
49
|
cursor: pointer;
|
|
44
50
|
}
|
|
45
51
|
|
|
@@ -77,24 +83,3 @@
|
|
|
77
83
|
) !important;
|
|
78
84
|
}
|
|
79
85
|
}
|
|
80
|
-
|
|
81
|
-
@media (max-width: 996px) {
|
|
82
|
-
.docSidebarContainer {
|
|
83
|
-
margin-top: 0;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
@media (min-width: 997px) and (max-width: 1320px) {
|
|
88
|
-
.docItemWrapper {
|
|
89
|
-
max-width: calc(
|
|
90
|
-
var(--ifm-container-width) - var(--doc-sidebar-width) -
|
|
91
|
-
var(--ifm-spacing-horizontal) * 2
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.docItemWrapperEnhanced {
|
|
96
|
-
max-width: calc(
|
|
97
|
-
var(--ifm-container-width) - var(--ifm-spacing-horizontal) * 2
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = DocSidebar;
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
@@ -11,28 +11,16 @@ var _clsx = _interopRequireDefault(require("clsx"));
|
|
|
11
11
|
|
|
12
12
|
var _themeCommon = require("@docusaurus/theme-common");
|
|
13
13
|
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
var _useLockBodyScroll = _interopRequireDefault(require("@theme/hooks/useLockBodyScroll"));
|
|
17
|
-
|
|
18
|
-
var _useWindowSize = _interopRequireWildcard(require("@theme/hooks/useWindowSize"));
|
|
19
|
-
|
|
20
|
-
var _useScrollPosition = _interopRequireDefault(require("@theme/hooks/useScrollPosition"));
|
|
21
|
-
|
|
22
|
-
var _Link = _interopRequireDefault(require("@docusaurus/Link"));
|
|
23
|
-
|
|
24
|
-
var _isInternalUrl = _interopRequireDefault(require("@docusaurus/isInternalUrl"));
|
|
14
|
+
var _useWindowSize = _interopRequireDefault(require("@theme/hooks/useWindowSize"));
|
|
25
15
|
|
|
26
16
|
var _Logo = _interopRequireDefault(require("@theme/Logo"));
|
|
27
17
|
|
|
28
18
|
var _IconArrow = _interopRequireDefault(require("@theme/IconArrow"));
|
|
29
19
|
|
|
30
|
-
var _IconMenu = _interopRequireDefault(require("@theme/IconMenu"));
|
|
31
|
-
|
|
32
|
-
var _IconExternalLink = _interopRequireDefault(require("@theme/IconExternalLink"));
|
|
33
|
-
|
|
34
20
|
var _Translate = require("@docusaurus/Translate");
|
|
35
21
|
|
|
22
|
+
var _DocSidebarItem = require("@theme/DocSidebarItem");
|
|
23
|
+
|
|
36
24
|
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
37
25
|
|
|
38
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -47,181 +35,19 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
47
35
|
* This source code is licensed under the MIT license found in the
|
|
48
36
|
* LICENSE file in the root directory of this source tree.
|
|
49
37
|
*/
|
|
50
|
-
const MOBILE_TOGGLE_SIZE = 24;
|
|
51
|
-
|
|
52
|
-
const isActiveSidebarItem = (item, activePath) => {
|
|
53
|
-
if (item.type === 'link') {
|
|
54
|
-
return (0, _themeCommon.isSamePath)(item.href, activePath);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (item.type === 'category') {
|
|
58
|
-
return item.items.some(subItem => isActiveSidebarItem(subItem, activePath));
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return false;
|
|
62
|
-
}; // Optimize sidebar at each "level"
|
|
63
|
-
// TODO this item should probably not receive the "activePath" props
|
|
64
|
-
// TODO this triggers whole sidebar re-renders on navigation
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const DocSidebarItems = (0, _react.memo)(function DocSidebarItems({
|
|
68
|
-
items,
|
|
69
|
-
...props
|
|
70
|
-
}) {
|
|
71
|
-
return items.map((item, index) => <DocSidebarItem key={index} // sidebar is static, the index does not change
|
|
72
|
-
item={item} {...props} />);
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
function DocSidebarItem(props) {
|
|
76
|
-
switch (props.item.type) {
|
|
77
|
-
case 'category':
|
|
78
|
-
return <DocSidebarItemCategory {...props} />;
|
|
79
|
-
|
|
80
|
-
case 'link':
|
|
81
|
-
default:
|
|
82
|
-
return <DocSidebarItemLink {...props} />;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function DocSidebarItemCategory({
|
|
87
|
-
item,
|
|
88
|
-
onItemClick,
|
|
89
|
-
collapsible,
|
|
90
|
-
activePath,
|
|
91
|
-
...props
|
|
92
|
-
}) {
|
|
93
|
-
const {
|
|
94
|
-
items,
|
|
95
|
-
label
|
|
96
|
-
} = item;
|
|
97
|
-
const isActive = isActiveSidebarItem(item, activePath);
|
|
98
|
-
const wasActive = (0, _themeCommon.usePrevious)(isActive); // active categories are always initialized as expanded
|
|
99
|
-
// the default (item.collapsed) is only used for non-active categories
|
|
100
|
-
|
|
101
|
-
const [collapsed, setCollapsed] = (0, _react.useState)(() => {
|
|
102
|
-
if (!collapsible) {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return isActive ? false : item.collapsed;
|
|
107
|
-
});
|
|
108
|
-
const menuListRef = (0, _react.useRef)(null);
|
|
109
|
-
const [menuListHeight, setMenuListHeight] = (0, _react.useState)(undefined);
|
|
110
|
-
|
|
111
|
-
const handleMenuListHeight = (calc = true) => {
|
|
112
|
-
var _menuListRef$current;
|
|
113
|
-
|
|
114
|
-
setMenuListHeight(calc ? `${(_menuListRef$current = menuListRef.current) === null || _menuListRef$current === void 0 ? void 0 : _menuListRef$current.scrollHeight}px` : undefined);
|
|
115
|
-
}; // If we navigate to a category, it should automatically expand itself
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
(0, _react.useEffect)(() => {
|
|
119
|
-
const justBecameActive = isActive && !wasActive;
|
|
120
|
-
|
|
121
|
-
if (justBecameActive && collapsed) {
|
|
122
|
-
setCollapsed(false);
|
|
123
|
-
}
|
|
124
|
-
}, [isActive, wasActive, collapsed]);
|
|
125
|
-
const handleItemClick = (0, _react.useCallback)(e => {
|
|
126
|
-
e.preventDefault();
|
|
127
|
-
|
|
128
|
-
if (!menuListHeight) {
|
|
129
|
-
handleMenuListHeight();
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
setTimeout(() => setCollapsed(state => !state), 100);
|
|
133
|
-
}, [menuListHeight]);
|
|
134
|
-
|
|
135
|
-
if (items.length === 0) {
|
|
136
|
-
return null;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return <li className={(0, _clsx.default)('menu__list-item', {
|
|
140
|
-
'menu__list-item--collapsed': collapsed
|
|
141
|
-
})}>
|
|
142
|
-
<a className={(0, _clsx.default)('menu__link', {
|
|
143
|
-
'menu__link--sublist': collapsible,
|
|
144
|
-
'menu__link--active': collapsible && isActive,
|
|
145
|
-
[_stylesModule.default.menuLinkText]: !collapsible
|
|
146
|
-
})} onClick={collapsible ? handleItemClick : undefined} href={collapsible ? '#!' : undefined} {...props}>
|
|
147
|
-
{label}
|
|
148
|
-
</a>
|
|
149
|
-
<ul className="menu__list" ref={menuListRef} style={{
|
|
150
|
-
height: menuListHeight
|
|
151
|
-
}} onTransitionEnd={() => {
|
|
152
|
-
if (!collapsed) {
|
|
153
|
-
handleMenuListHeight(false);
|
|
154
|
-
}
|
|
155
|
-
}}>
|
|
156
|
-
<DocSidebarItems items={items} tabIndex={collapsed ? '-1' : '0'} onItemClick={onItemClick} collapsible={collapsible} activePath={activePath} />
|
|
157
|
-
</ul>
|
|
158
|
-
</li>;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
function DocSidebarItemLink({
|
|
162
|
-
item,
|
|
163
|
-
onItemClick,
|
|
164
|
-
activePath,
|
|
165
|
-
collapsible: _collapsible,
|
|
166
|
-
...props
|
|
167
|
-
}) {
|
|
168
|
-
const {
|
|
169
|
-
href,
|
|
170
|
-
label
|
|
171
|
-
} = item;
|
|
172
|
-
const isActive = isActiveSidebarItem(item, activePath);
|
|
173
|
-
return <li className="menu__list-item" key={label}>
|
|
174
|
-
<_Link.default className={(0, _clsx.default)('menu__link', {
|
|
175
|
-
'menu__link--active': isActive
|
|
176
|
-
})} to={href} {...(0, _isInternalUrl.default)(href) && {
|
|
177
|
-
isNavLink: true,
|
|
178
|
-
exact: true,
|
|
179
|
-
onClick: onItemClick
|
|
180
|
-
}} {...props}>
|
|
181
|
-
{(0, _isInternalUrl.default)(href) ? label : <span>
|
|
182
|
-
{label}
|
|
183
|
-
<_IconExternalLink.default />
|
|
184
|
-
</span>}
|
|
185
|
-
</_Link.default>
|
|
186
|
-
</li>;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
38
|
function useShowAnnouncementBar() {
|
|
190
39
|
const {
|
|
191
|
-
|
|
192
|
-
} = (0,
|
|
193
|
-
const [showAnnouncementBar, setShowAnnouncementBar] = (0, _react.useState)(
|
|
194
|
-
(0,
|
|
40
|
+
isActive
|
|
41
|
+
} = (0, _themeCommon.useAnnouncementBar)();
|
|
42
|
+
const [showAnnouncementBar, setShowAnnouncementBar] = (0, _react.useState)(isActive);
|
|
43
|
+
(0, _themeCommon.useScrollPosition)(({
|
|
195
44
|
scrollY
|
|
196
45
|
}) => {
|
|
197
|
-
if (
|
|
46
|
+
if (isActive) {
|
|
198
47
|
setShowAnnouncementBar(scrollY === 0);
|
|
199
48
|
}
|
|
200
|
-
});
|
|
201
|
-
return showAnnouncementBar;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
function useResponsiveSidebar() {
|
|
205
|
-
const [showResponsiveSidebar, setShowResponsiveSidebar] = (0, _react.useState)(false);
|
|
206
|
-
(0, _useLockBodyScroll.default)(showResponsiveSidebar);
|
|
207
|
-
const windowSize = (0, _useWindowSize.default)();
|
|
208
|
-
(0, _react.useEffect)(() => {
|
|
209
|
-
if (windowSize === _useWindowSize.windowSizes.desktop) {
|
|
210
|
-
setShowResponsiveSidebar(false);
|
|
211
|
-
}
|
|
212
|
-
}, [windowSize]);
|
|
213
|
-
const closeResponsiveSidebar = (0, _react.useCallback)(e => {
|
|
214
|
-
e.target.blur();
|
|
215
|
-
setShowResponsiveSidebar(false);
|
|
216
|
-
}, [setShowResponsiveSidebar]);
|
|
217
|
-
const toggleResponsiveSidebar = (0, _react.useCallback)(() => {
|
|
218
|
-
setShowResponsiveSidebar(value => !value);
|
|
219
|
-
}, [setShowResponsiveSidebar]);
|
|
220
|
-
return {
|
|
221
|
-
showResponsiveSidebar,
|
|
222
|
-
closeResponsiveSidebar,
|
|
223
|
-
toggleResponsiveSidebar
|
|
224
|
-
};
|
|
49
|
+
}, [isActive]);
|
|
50
|
+
return isActive && showAnnouncementBar;
|
|
225
51
|
}
|
|
226
52
|
|
|
227
53
|
function HideableSidebarButton({
|
|
@@ -240,29 +66,9 @@ function HideableSidebarButton({
|
|
|
240
66
|
</button>;
|
|
241
67
|
}
|
|
242
68
|
|
|
243
|
-
function
|
|
244
|
-
responsiveSidebarOpened,
|
|
245
|
-
onClick
|
|
246
|
-
}) {
|
|
247
|
-
return <button aria-label={responsiveSidebarOpened ? (0, _Translate.translate)({
|
|
248
|
-
id: 'theme.docs.sidebar.responsiveCloseButtonLabel',
|
|
249
|
-
message: 'Close menu',
|
|
250
|
-
description: 'The ARIA label for close button of mobile doc sidebar'
|
|
251
|
-
}) : (0, _Translate.translate)({
|
|
252
|
-
id: 'theme.docs.sidebar.responsiveOpenButtonLabel',
|
|
253
|
-
message: 'Open menu',
|
|
254
|
-
description: 'The ARIA label for open button of mobile doc sidebar'
|
|
255
|
-
})} aria-haspopup="true" className="button button--secondary button--sm menu__button" type="button" onClick={onClick}>
|
|
256
|
-
{responsiveSidebarOpened ? <span className={(0, _clsx.default)(_stylesModule.default.sidebarMenuIcon, _stylesModule.default.sidebarMenuCloseIcon)}>
|
|
257
|
-
×
|
|
258
|
-
</span> : <_IconMenu.default className={_stylesModule.default.sidebarMenuIcon} height={MOBILE_TOGGLE_SIZE} width={MOBILE_TOGGLE_SIZE} />}
|
|
259
|
-
</button>;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
function DocSidebar({
|
|
69
|
+
function DocSidebarDesktop({
|
|
263
70
|
path,
|
|
264
71
|
sidebar,
|
|
265
|
-
sidebarCollapsible = true,
|
|
266
72
|
onCollapse,
|
|
267
73
|
isHidden
|
|
268
74
|
}) {
|
|
@@ -273,36 +79,48 @@ function DocSidebar({
|
|
|
273
79
|
},
|
|
274
80
|
hideableSidebar
|
|
275
81
|
} = (0, _themeCommon.useThemeConfig)();
|
|
276
|
-
const {
|
|
277
|
-
isAnnouncementBarClosed
|
|
278
|
-
} = (0, _useUserPreferencesContext.default)();
|
|
279
|
-
const {
|
|
280
|
-
showResponsiveSidebar,
|
|
281
|
-
closeResponsiveSidebar,
|
|
282
|
-
toggleResponsiveSidebar
|
|
283
|
-
} = useResponsiveSidebar();
|
|
284
82
|
return <div className={(0, _clsx.default)(_stylesModule.default.sidebar, {
|
|
285
83
|
[_stylesModule.default.sidebarWithHideableNavbar]: hideOnScroll,
|
|
286
84
|
[_stylesModule.default.sidebarHidden]: isHidden
|
|
287
85
|
})}>
|
|
288
86
|
{hideOnScroll && <_Logo.default tabIndex={-1} className={_stylesModule.default.sidebarLogo} />}
|
|
289
|
-
<nav className={(0, _clsx.default)('menu
|
|
290
|
-
|
|
291
|
-
[_stylesModule.default.menuWithAnnouncementBar]: !isAnnouncementBarClosed && showAnnouncementBar
|
|
292
|
-
})} aria-label={(0, _Translate.translate)({
|
|
293
|
-
id: 'theme.docs.sidebar.navAriaLabel',
|
|
294
|
-
message: 'Sidebar navigation',
|
|
295
|
-
description: 'The ARIA label for documentation menu'
|
|
87
|
+
<nav className={(0, _clsx.default)('menu thin-scrollbar', _stylesModule.default.menu, {
|
|
88
|
+
[_stylesModule.default.menuWithAnnouncementBar]: showAnnouncementBar
|
|
296
89
|
})}>
|
|
297
|
-
<
|
|
298
|
-
|
|
299
|
-
<ul className="menu__list">
|
|
300
|
-
<DocSidebarItems items={sidebar} onItemClick={closeResponsiveSidebar} collapsible={sidebarCollapsible} activePath={path} />
|
|
90
|
+
<ul className={(0, _clsx.default)(_themeCommon.ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
|
|
91
|
+
<_DocSidebarItem.DocSidebarItems items={sidebar} activePath={path} level={1} />
|
|
301
92
|
</ul>
|
|
302
93
|
</nav>
|
|
303
94
|
{hideableSidebar && <HideableSidebarButton onClick={onCollapse} />}
|
|
304
95
|
</div>;
|
|
305
96
|
}
|
|
306
97
|
|
|
307
|
-
|
|
308
|
-
|
|
98
|
+
const DocSidebarMobileSecondaryMenu = ({
|
|
99
|
+
toggleSidebar,
|
|
100
|
+
sidebar,
|
|
101
|
+
path
|
|
102
|
+
}) => {
|
|
103
|
+
return <ul className={(0, _clsx.default)(_themeCommon.ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
|
|
104
|
+
<_DocSidebarItem.DocSidebarItems items={sidebar} activePath={path} onItemClick={() => toggleSidebar()} level={1} />
|
|
105
|
+
</ul>;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
function DocSidebarMobile(props) {
|
|
109
|
+
return <_themeCommon.MobileSecondaryMenuFiller component={DocSidebarMobileSecondaryMenu} props={props} />;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const DocSidebarDesktopMemo = _react.default.memo(DocSidebarDesktop);
|
|
113
|
+
|
|
114
|
+
const DocSidebarMobileMemo = _react.default.memo(DocSidebarMobile);
|
|
115
|
+
|
|
116
|
+
function DocSidebar(props) {
|
|
117
|
+
const windowSize = (0, _useWindowSize.default)(); // Desktop sidebar visible on hydration: need SSR rendering
|
|
118
|
+
|
|
119
|
+
const shouldRenderSidebarDesktop = windowSize === 'desktop' || windowSize === 'ssr'; // Mobile sidebar not visible on hydration: can avoid SSR rendering
|
|
120
|
+
|
|
121
|
+
const shouldRenderSidebarMobile = windowSize === 'mobile';
|
|
122
|
+
return <>
|
|
123
|
+
{shouldRenderSidebarDesktop && <DocSidebarDesktopMemo {...props} />}
|
|
124
|
+
{shouldRenderSidebarMobile && <DocSidebarMobileMemo {...props} />}
|
|
125
|
+
</>;
|
|
126
|
+
}
|
|
@@ -53,14 +53,6 @@
|
|
|
53
53
|
padding: 0.5rem;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
.menuLinkText {
|
|
57
|
-
cursor: initial;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.menuLinkText:hover {
|
|
61
|
-
background: none;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
56
|
.menuWithAnnouncementBar {
|
|
65
57
|
margin-bottom: var(--docusaurus-announcement-bar-height);
|
|
66
58
|
}
|
|
@@ -112,13 +104,3 @@
|
|
|
112
104
|
line-height: 0.9;
|
|
113
105
|
width: 24px;
|
|
114
106
|
}
|
|
115
|
-
|
|
116
|
-
:global(.menu__list) :global(.menu__list) {
|
|
117
|
-
overflow-y: hidden;
|
|
118
|
-
will-change: height;
|
|
119
|
-
transition: height var(--ifm-transition-fast) linear;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
:global(.menu__list-item--collapsed) :global(.menu__list) {
|
|
123
|
-
height: 0 !important;
|
|
124
|
-
}
|