@docusaurus/theme-classic 2.0.0-beta.12faed89d → 2.0.0-beta.13
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/lib/__tests__/validateThemeConfig.test.js +277 -3
- package/lib/admonitions.css +35 -0
- package/lib/deps.d.ts +13 -0
- package/lib/index.js +16 -15
- 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 +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/index.js +5 -7
- 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 +18 -138
- 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/DocCard/index.js +84 -0
- package/lib/theme/DocCard/styles.module.css +43 -0
- package/lib/theme/DocCardList/index.js +28 -0
- package/lib/theme/DocCategoryGeneratedIndexPage/index.js +57 -0
- package/lib/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/lib/theme/DocItem/index.js +22 -48
- package/lib/theme/DocItem/styles.module.css +2 -11
- package/lib/theme/DocItemFooter/index.js +79 -0
- package/lib/theme/DocItemFooter/styles.module.css +18 -0
- package/lib/theme/DocPage/index.js +35 -20
- package/lib/theme/DocPaginator/index.js +6 -7
- package/lib/theme/DocSidebar/index.js +23 -22
- package/lib/theme/DocSidebarItem/index.js +84 -50
- package/lib/theme/DocSidebarItem/styles.module.css +4 -0
- package/lib/theme/DocTagDocListPage/index.js +89 -0
- package/lib/theme/DocTagsListPage/index.js +44 -0
- package/lib/theme/DocVersionBadge/index.js +34 -0
- package/lib/theme/DocVersionBanner/index.js +12 -10
- package/lib/theme/EditThisPage/index.js +3 -1
- package/lib/theme/ErrorPageContent.js +43 -0
- package/lib/theme/Footer/index.js +8 -4
- package/lib/theme/Heading/index.js +17 -22
- package/lib/theme/Heading/styles.css +5 -6
- package/lib/theme/Heading/styles.module.css +9 -5
- package/lib/theme/IconArrow/index.js +2 -2
- package/lib/theme/IconClose/index.js +31 -0
- package/lib/theme/IconEdit/index.js +3 -3
- package/lib/theme/IconExternalLink/index.js +3 -3
- package/lib/theme/IconLanguage/index.js +3 -3
- package/lib/theme/IconMenu/index.js +3 -3
- package/lib/theme/LastUpdated/index.js +4 -2
- package/lib/theme/Layout/index.js +5 -1
- package/lib/theme/LayoutHead/index.js +22 -17
- package/lib/theme/LayoutProviders/index.js +7 -5
- package/lib/theme/Logo/index.js +16 -14
- 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 +46 -27
- package/lib/theme/Navbar/styles.module.css +3 -39
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -124
- package/lib/theme/NavbarItem/DocNavbarItem.js +7 -8
- 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} +6 -10
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib/theme/NavbarItem/index.js +31 -11
- package/lib/theme/{SearchMetadatas → SearchMetadata}/index.js +2 -2
- 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 +7 -5
- package/lib/theme/TOCCollapsible/styles.module.css +1 -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/ThemeProvider/index.js +8 -3
- package/lib/theme/ThemedImage/index.js +5 -7
- package/lib/theme/Toggle/index.js +41 -44
- package/lib/theme/Toggle/styles.module.css +91 -3
- package/lib/theme/UserPreferencesProvider/index.js +8 -3
- package/lib/theme/hooks/useHideableNavbar.js +14 -32
- package/lib/theme/hooks/useTheme.js +3 -5
- package/lib/theme/hooks/useWindowSize.js +2 -7
- package/lib/theme/prism-include-languages.js +4 -3
- package/lib/theme-classic.d.ts +806 -0
- package/lib/translations.js +4 -4
- package/lib/types.d.ts +0 -629
- package/lib/validateThemeConfig.js +230 -248
- package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
- package/lib-next/admonitions.css +35 -0
- package/lib-next/deps.d.ts +13 -0
- package/lib-next/index.js +16 -10
- 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 +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 +17 -25
- 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/index.js +11 -13
- package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
- package/lib-next/theme/BlogTagsListPage/index.js +14 -55
- package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
- package/lib-next/theme/CodeBlock/index.js +17 -149
- 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/DocCard/index.js +80 -0
- package/lib-next/theme/DocCard/styles.module.css +43 -0
- package/lib-next/theme/DocCardList/index.js +19 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/lib-next/theme/DocItem/index.js +30 -59
- package/lib-next/theme/DocItem/styles.module.css +2 -11
- 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 +46 -23
- package/lib-next/theme/DocPaginator/index.js +7 -11
- package/lib-next/theme/DocSidebar/index.js +37 -43
- package/lib-next/theme/DocSidebarItem/index.js +115 -65
- package/lib-next/theme/DocSidebarItem/styles.module.css +4 -0
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +38 -0
- package/lib-next/theme/DocVersionBadge/index.js +27 -0
- package/lib-next/theme/DocVersionBanner/index.js +28 -14
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/ErrorPageContent.js +35 -0
- package/lib-next/theme/Footer/index.js +17 -4
- package/lib-next/theme/Heading/index.js +25 -29
- package/lib-next/theme/Heading/styles.css +5 -6
- package/lib-next/theme/Heading/styles.module.css +9 -5
- package/lib-next/theme/IconArrow/index.js +2 -2
- package/lib-next/theme/IconClose/index.js +23 -0
- package/lib-next/theme/IconEdit/index.js +2 -2
- package/lib-next/theme/IconExternalLink/index.js +2 -2
- package/lib-next/theme/IconLanguage/index.js +2 -2
- package/lib-next/theme/IconMenu/index.js +2 -2
- package/lib-next/theme/LastUpdated/index.js +3 -2
- package/lib-next/theme/Layout/index.js +3 -1
- package/lib-next/theme/LayoutHead/index.js +18 -23
- package/lib-next/theme/LayoutProviders/index.js +8 -5
- package/lib-next/theme/Logo/index.js +25 -21
- 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 +62 -34
- package/lib-next/theme/Navbar/styles.module.css +3 -39
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -143
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +159 -0
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/index.js +25 -12
- package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
- 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 +13 -4
- package/lib-next/theme/TOCCollapsible/styles.module.css +1 -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/ThemeProvider/index.js +10 -7
- package/lib-next/theme/ThemedImage/index.js +5 -5
- package/lib-next/theme/Toggle/index.js +34 -37
- package/lib-next/theme/Toggle/styles.module.css +91 -3
- package/lib-next/theme/UserPreferencesProvider/index.js +9 -6
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
- package/lib-next/theme/hooks/useTheme.js +4 -5
- package/lib-next/theme/hooks/useWindowSize.js +2 -6
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/lib-next/theme-classic.d.ts +806 -0
- package/lib-next/translations.js +6 -10
- package/lib-next/types.d.ts +0 -629
- package/lib-next/validateThemeConfig.js +141 -116
- package/package.json +27 -24
- package/src/__tests__/validateThemeConfig.test.js +277 -3
- package/src/admonitions.css +35 -0
- package/src/deps.d.ts +13 -0
- package/src/index.ts +23 -17
- 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 +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 +18 -25
- package/src/theme/BlogPostAuthor/index.tsx +49 -0
- package/src/theme/BlogPostAuthor/styles.module.css +12 -0
- package/src/theme/BlogPostAuthors/index.tsx +39 -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/index.tsx +11 -13
- package/src/theme/BlogSidebar/styles.module.css +2 -2
- package/src/theme/BlogTagsListPage/index.tsx +14 -57
- package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
- package/src/theme/CodeBlock/index.tsx +21 -151
- 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/DocCard/index.tsx +100 -0
- package/src/theme/DocCard/styles.module.css +43 -0
- package/src/theme/DocCardList/index.tsx +27 -0
- package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
- package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/src/theme/DocItem/index.tsx +30 -60
- package/src/theme/DocItem/styles.module.css +2 -11
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/src/theme/DocItemFooter/styles.module.css +18 -0
- package/src/theme/DocPage/index.tsx +44 -22
- package/src/theme/DocPaginator/index.tsx +9 -13
- package/src/theme/DocSidebar/index.tsx +38 -39
- package/src/theme/DocSidebarItem/index.tsx +108 -49
- package/src/theme/DocSidebarItem/styles.module.css +4 -0
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +41 -0
- package/src/theme/DocVersionBadge/index.tsx +30 -0
- package/src/theme/DocVersionBanner/index.tsx +48 -21
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/ErrorPageContent.tsx +41 -0
- package/src/theme/Footer/index.tsx +20 -5
- package/src/theme/Heading/index.tsx +25 -31
- package/src/theme/Heading/styles.css +5 -6
- package/src/theme/Heading/styles.module.css +9 -5
- package/src/theme/IconArrow/index.tsx +2 -2
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/IconEdit/index.tsx +2 -2
- package/src/theme/IconExternalLink/index.tsx +2 -5
- package/src/theme/IconLanguage/index.tsx +2 -6
- package/src/theme/IconMenu/index.tsx +3 -3
- package/src/theme/LastUpdated/index.tsx +3 -2
- package/src/theme/Layout/index.tsx +3 -1
- package/src/theme/LayoutHead/index.tsx +18 -17
- package/src/theme/LayoutProviders/index.tsx +8 -5
- package/src/theme/Logo/index.tsx +21 -17
- 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 +62 -35
- package/src/theme/Navbar/styles.module.css +3 -39
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -149
- package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/index.tsx +41 -16
- package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
- package/src/theme/Seo/index.tsx +7 -4
- package/src/theme/TOC/index.tsx +13 -35
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/index.tsx +13 -4
- package/src/theme/TOCCollapsible/styles.module.css +1 -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/ThemeProvider/index.tsx +6 -2
- package/src/theme/ThemedImage/index.tsx +5 -5
- package/src/theme/Toggle/index.tsx +36 -43
- package/src/theme/Toggle/styles.module.css +91 -3
- package/src/theme/UserPreferencesProvider/index.tsx +9 -6
- package/src/theme/hooks/useHideableNavbar.ts +32 -45
- package/src/theme/hooks/useTabGroupChoice.ts +2 -2
- package/src/theme/hooks/useTheme.ts +4 -5
- package/src/theme/hooks/useWindowSize.ts +2 -7
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/theme-classic.d.ts +806 -0
- package/src/translations.ts +8 -10
- package/src/types.d.ts +0 -629
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +151 -96
- package/tsconfig.json +1 -2
- package/codeTranslations/README.md +0 -20
- package/codeTranslations/ar.json +0 -56
- package/codeTranslations/base.json +0 -110
- package/codeTranslations/bn.json +0 -56
- package/codeTranslations/da.json +0 -56
- package/codeTranslations/de.json +0 -56
- package/codeTranslations/es.json +0 -56
- package/codeTranslations/fa.json +0 -56
- package/codeTranslations/fil.json +0 -56
- package/codeTranslations/fr.json +0 -56
- package/codeTranslations/he.json +0 -56
- package/codeTranslations/hi.json +0 -56
- package/codeTranslations/ja.json +0 -56
- package/codeTranslations/ko.json +0 -56
- package/codeTranslations/pl.json +0 -56
- package/codeTranslations/pt-BR.json +0 -56
- package/codeTranslations/pt-PT.json +0 -56
- package/codeTranslations/ru.json +0 -56
- package/codeTranslations/tr.json +0 -56
- package/codeTranslations/vi.json +0 -56
- package/codeTranslations/zh-Hans.json +0 -56
- package/codeTranslations/zh-Hant.json +0 -56
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
- 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/useContextualSearchFilters.js +0 -41
- 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/useContextualSearchFilters.ts +0 -52
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
- package/update-code-translations.js +0 -242
- package/update-code-translations.test.js +0 -33
|
@@ -25,12 +25,16 @@ var _useLockBodyScroll = _interopRequireDefault(require("@theme/hooks/useLockBod
|
|
|
25
25
|
|
|
26
26
|
var _useWindowSize = _interopRequireDefault(require("@theme/hooks/useWindowSize"));
|
|
27
27
|
|
|
28
|
+
var _useDocs = require("@theme/hooks/useDocs");
|
|
29
|
+
|
|
28
30
|
var _NavbarItem = _interopRequireDefault(require("@theme/NavbarItem"));
|
|
29
31
|
|
|
30
32
|
var _Logo = _interopRequireDefault(require("@theme/Logo"));
|
|
31
33
|
|
|
32
34
|
var _IconMenu = _interopRequireDefault(require("@theme/IconMenu"));
|
|
33
35
|
|
|
36
|
+
var _IconClose = _interopRequireDefault(require("@theme/IconClose"));
|
|
37
|
+
|
|
34
38
|
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
35
39
|
|
|
36
40
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -46,9 +50,15 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
46
50
|
* LICENSE file in the root directory of this source tree.
|
|
47
51
|
*/
|
|
48
52
|
// retrocompatible with v1
|
|
49
|
-
const DefaultNavItemPosition = 'right';
|
|
53
|
+
const DefaultNavItemPosition = 'right';
|
|
54
|
+
|
|
55
|
+
function useNavbarItems() {
|
|
56
|
+
// TODO temporary casting until ThemeConfig type is improved
|
|
57
|
+
return (0, _themeCommon.useThemeConfig)().navbar.items;
|
|
58
|
+
} // If split links by left/right
|
|
50
59
|
// if position is unspecified, fallback to right (as v1)
|
|
51
60
|
|
|
61
|
+
|
|
52
62
|
function splitNavItemsByPosition(items) {
|
|
53
63
|
const leftItems = items.filter(item => {
|
|
54
64
|
var _item$position;
|
|
@@ -71,7 +81,19 @@ function useMobileSidebar() {
|
|
|
71
81
|
|
|
72
82
|
const shouldRender = windowSize === 'mobile'; // || windowSize === 'ssr';
|
|
73
83
|
|
|
74
|
-
const [shown, setShown] = (0, _react.useState)(false);
|
|
84
|
+
const [shown, setShown] = (0, _react.useState)(false); // Close mobile sidebar on navigation pop
|
|
85
|
+
// Most likely firing when using the Android back button (but not only)
|
|
86
|
+
|
|
87
|
+
(0, _themeCommon.useHistoryPopHandler)(() => {
|
|
88
|
+
if (shown) {
|
|
89
|
+
setShown(false); // Should we prevent the navigation here?
|
|
90
|
+
// See https://github.com/facebook/docusaurus/pull/5462#issuecomment-911699846
|
|
91
|
+
|
|
92
|
+
return false; // prevent pop navigation
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return undefined;
|
|
96
|
+
});
|
|
75
97
|
const toggle = (0, _react.useCallback)(() => {
|
|
76
98
|
setShown(s => !s);
|
|
77
99
|
}, []);
|
|
@@ -116,12 +138,10 @@ function useSecondaryMenu({
|
|
|
116
138
|
toggleSidebar
|
|
117
139
|
});
|
|
118
140
|
const previousContent = (0, _themeCommon.usePrevious)(content);
|
|
119
|
-
const [shown, setShown] = (0, _react.useState)(() =>
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
return false;
|
|
124
|
-
}); // When content is become available for the first time (set in useEffect)
|
|
141
|
+
const [shown, setShown] = (0, _react.useState)(() => // /!\ content is set with useEffect,
|
|
142
|
+
// so it's not available on mount anyway
|
|
143
|
+
// "return !!content" => always returns false
|
|
144
|
+
false); // When content is become available for the first time (set in useEffect)
|
|
125
145
|
// we set this content to be shown!
|
|
126
146
|
|
|
127
147
|
(0, _react.useEffect)(() => {
|
|
@@ -159,11 +179,7 @@ function NavbarMobileSidebar({
|
|
|
159
179
|
toggleSidebar
|
|
160
180
|
}) {
|
|
161
181
|
(0, _useLockBodyScroll.default)(sidebarShown);
|
|
162
|
-
const
|
|
163
|
-
navbar: {
|
|
164
|
-
items
|
|
165
|
-
}
|
|
166
|
-
} = (0, _themeCommon.useThemeConfig)();
|
|
182
|
+
const items = useNavbarItems();
|
|
167
183
|
const colorModeToggle = useColorModeToggle();
|
|
168
184
|
const secondaryMenu = useSecondaryMenu({
|
|
169
185
|
sidebarShown,
|
|
@@ -172,25 +188,27 @@ function NavbarMobileSidebar({
|
|
|
172
188
|
return <div className="navbar-sidebar">
|
|
173
189
|
<div className="navbar-sidebar__brand">
|
|
174
190
|
<_Logo.default className="navbar__brand" imageClassName="navbar__logo" titleClassName="navbar__title" />
|
|
175
|
-
{!colorModeToggle.disabled &&
|
|
191
|
+
{!colorModeToggle.disabled && <_Toggle.default className={_stylesModule.default.navbarSidebarToggle} checked={colorModeToggle.isDarkTheme} onChange={colorModeToggle.toggle} />}
|
|
192
|
+
<button type="button" className="clean-btn navbar-sidebar__close" onClick={toggleSidebar}>
|
|
193
|
+
<_IconClose.default color="var(--ifm-color-emphasis-600)" className={_stylesModule.default.navbarSidebarCloseSvg} />
|
|
194
|
+
</button>
|
|
176
195
|
</div>
|
|
177
196
|
|
|
178
|
-
<div className={(0, _clsx.default)('navbar-sidebar__items',
|
|
179
|
-
|
|
197
|
+
<div className={(0, _clsx.default)('navbar-sidebar__items', {
|
|
198
|
+
'navbar-sidebar__items--show-secondary': secondaryMenu.shown
|
|
180
199
|
})}>
|
|
181
|
-
<div className="menu">
|
|
200
|
+
<div className="navbar-sidebar__item menu">
|
|
182
201
|
<ul className="menu__list">
|
|
183
|
-
{items.map((item, i) => <_NavbarItem.default mobile {...item}
|
|
184
|
-
onClick={toggleSidebar} key={i} />)}
|
|
202
|
+
{items.map((item, i) => <_NavbarItem.default mobile {...item} onClick={toggleSidebar} key={i} />)}
|
|
185
203
|
</ul>
|
|
186
204
|
</div>
|
|
187
205
|
|
|
188
|
-
<div className=
|
|
189
|
-
<button type="button" className=
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
206
|
+
<div className="navbar-sidebar__item menu">
|
|
207
|
+
{items.length > 0 && <button type="button" className="clean-btn navbar-sidebar__back" onClick={secondaryMenu.hide}>
|
|
208
|
+
<_Translate.default id="theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel" description="The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)">
|
|
209
|
+
← Back to main menu
|
|
210
|
+
</_Translate.default>
|
|
211
|
+
</button>}
|
|
194
212
|
{secondaryMenu.content}
|
|
195
213
|
</div>
|
|
196
214
|
</div>
|
|
@@ -200,17 +218,18 @@ function NavbarMobileSidebar({
|
|
|
200
218
|
function Navbar() {
|
|
201
219
|
const {
|
|
202
220
|
navbar: {
|
|
203
|
-
items,
|
|
204
221
|
hideOnScroll,
|
|
205
222
|
style
|
|
206
223
|
}
|
|
207
224
|
} = (0, _themeCommon.useThemeConfig)();
|
|
208
225
|
const mobileSidebar = useMobileSidebar();
|
|
209
226
|
const colorModeToggle = useColorModeToggle();
|
|
227
|
+
const activeDocPlugin = (0, _useDocs.useActivePlugin)();
|
|
210
228
|
const {
|
|
211
229
|
navbarRef,
|
|
212
230
|
isNavbarVisible
|
|
213
231
|
} = (0, _useHideableNavbar.default)(hideOnScroll);
|
|
232
|
+
const items = useNavbarItems();
|
|
214
233
|
const hasSearchNavbarItem = items.some(item => item.type === 'search');
|
|
215
234
|
const {
|
|
216
235
|
leftItems,
|
|
@@ -225,7 +244,7 @@ function Navbar() {
|
|
|
225
244
|
})}>
|
|
226
245
|
<div className="navbar__inner">
|
|
227
246
|
<div className="navbar__items">
|
|
228
|
-
{(items === null || items === void 0 ? void 0 : items.length) > 0 && <button aria-label="Navigation bar toggle" className="navbar__toggle clean-btn" type="button" tabIndex={0} onClick={mobileSidebar.toggle} onKeyDown={mobileSidebar.toggle}>
|
|
247
|
+
{((items === null || items === void 0 ? void 0 : items.length) > 0 || activeDocPlugin) && <button aria-label="Navigation bar toggle" className="navbar__toggle clean-btn" type="button" tabIndex={0} onClick={mobileSidebar.toggle} onKeyDown={mobileSidebar.toggle}>
|
|
229
248
|
<_IconMenu.default />
|
|
230
249
|
</button>}
|
|
231
250
|
<_Logo.default className="navbar__brand" imageClassName="navbar__logo" titleClassName="navbar__title" />
|
|
@@ -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
|
}
|
|
@@ -22,42 +22,6 @@ Hide toggle in small viewports
|
|
|
22
22
|
transform: translate3d(0, calc(-100% - 2px), 0);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
:global(.navbar-sidebar) {
|
|
30
|
-
overflow-x: hidden;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.menuWrapper {
|
|
34
|
-
display: flex;
|
|
35
|
-
width: calc(var(--ifm-navbar-sidebar-width));
|
|
36
|
-
transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
37
|
-
transform: translateZ(0);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.menuWrapperSecondaryMenuShown {
|
|
41
|
-
transform: translate3d(calc((var(--ifm-navbar-sidebar-width)) * -1), 0, 0);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.menuWrapper > div {
|
|
45
|
-
flex-shrink: 0;
|
|
46
|
-
width: calc(var(--ifm-navbar-sidebar-width));
|
|
47
|
-
font-weight: var(--ifm-font-weight-semibold);
|
|
48
|
-
padding: 0.5rem;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.backButton {
|
|
52
|
-
width: calc(100% + 1rem);
|
|
53
|
-
margin: 0 0 0.7rem -0.5rem;
|
|
54
|
-
text-align: left;
|
|
55
|
-
font-size: 15px;
|
|
56
|
-
padding: 0.6rem 1.5rem;
|
|
57
|
-
background: var(--ifm-menu-color-background-active);
|
|
58
|
-
font-weight: var(--ifm-button-font-weight);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.secondaryMenu {
|
|
62
|
-
padding-top: 0 !important;
|
|
25
|
+
.navbarSidebarToggle {
|
|
26
|
+
margin-right: 1rem;
|
|
63
27
|
}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.NavLink = NavLink;
|
|
6
7
|
exports.default = void 0;
|
|
7
8
|
|
|
8
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
10
|
|
|
10
11
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
12
|
|
|
@@ -13,19 +14,15 @@ var _Link = _interopRequireDefault(require("@docusaurus/Link"));
|
|
|
13
14
|
|
|
14
15
|
var _useBaseUrl = _interopRequireDefault(require("@docusaurus/useBaseUrl"));
|
|
15
16
|
|
|
16
|
-
var _router = require("@docusaurus/router");
|
|
17
|
-
|
|
18
|
-
var _themeCommon = require("@docusaurus/theme-common");
|
|
19
|
-
|
|
20
17
|
var _IconExternalLink = _interopRequireDefault(require("@theme/IconExternalLink"));
|
|
21
18
|
|
|
22
19
|
var _isInternalUrl = _interopRequireDefault(require("@docusaurus/isInternalUrl"));
|
|
23
20
|
|
|
24
|
-
|
|
21
|
+
var _themeCommon = require("@docusaurus/theme-common");
|
|
25
22
|
|
|
26
|
-
|
|
23
|
+
var _index = require("./index");
|
|
27
24
|
|
|
28
|
-
function
|
|
25
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
26
|
|
|
30
27
|
/**
|
|
31
28
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
@@ -41,10 +38,12 @@ function NavLink({
|
|
|
41
38
|
to,
|
|
42
39
|
href,
|
|
43
40
|
label,
|
|
44
|
-
activeClassName = '
|
|
41
|
+
activeClassName = '',
|
|
45
42
|
prependBaseUrlToHref,
|
|
46
43
|
...props
|
|
47
44
|
}) {
|
|
45
|
+
var _props$className;
|
|
46
|
+
|
|
48
47
|
// TODO all this seems hacky
|
|
49
48
|
// {to: 'version'} should probably be forbidden, in favor of {to: '/version'}
|
|
50
49
|
const toUrl = (0, _useBaseUrl.default)(to);
|
|
@@ -58,10 +57,10 @@ function NavLink({
|
|
|
58
57
|
href: prependBaseUrlToHref ? normalizedHref : href
|
|
59
58
|
} : {
|
|
60
59
|
isNavLink: true,
|
|
61
|
-
activeClassName,
|
|
60
|
+
activeClassName: !((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes(activeClassName)) ? activeClassName : '',
|
|
62
61
|
to: toUrl,
|
|
63
62
|
...(activeBasePath || activeBaseRegex ? {
|
|
64
|
-
isActive: (_match, location) => activeBaseRegex ?
|
|
63
|
+
isActive: (_match, location) => activeBaseRegex ? (0, _themeCommon.isRegexpStringMatch)(activeBaseRegex, location.pathname) : location.pathname.startsWith(activeBaseUrl)
|
|
65
64
|
} : null)
|
|
66
65
|
}} {...props}>
|
|
67
66
|
{isExternalLink ? <span>
|
|
@@ -74,136 +73,40 @@ function NavLink({
|
|
|
74
73
|
</_Link.default>;
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
function
|
|
78
|
-
items,
|
|
79
|
-
position,
|
|
76
|
+
function DefaultNavbarItemDesktop({
|
|
80
77
|
className,
|
|
78
|
+
isDropdownItem = false,
|
|
81
79
|
...props
|
|
82
80
|
}) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const [showDropdown, setShowDropdown] = (0, _react.useState)(false);
|
|
88
|
-
(0, _react.useEffect)(() => {
|
|
89
|
-
const handleClickOutside = event => {
|
|
90
|
-
if (!dropdownRef.current || dropdownRef.current.contains(event.target)) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
setShowDropdown(false);
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
98
|
-
document.addEventListener('touchstart', handleClickOutside);
|
|
99
|
-
return () => {
|
|
100
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
101
|
-
document.removeEventListener('touchstart', handleClickOutside);
|
|
102
|
-
};
|
|
103
|
-
}, [dropdownRef]);
|
|
104
|
-
|
|
105
|
-
const navLinkClassNames = (extraClassName, isDropdownItem = false) => (0, _clsx.default)({
|
|
106
|
-
'navbar__item navbar__link': !isDropdownItem,
|
|
107
|
-
dropdown__link: isDropdownItem
|
|
108
|
-
}, extraClassName);
|
|
109
|
-
|
|
110
|
-
if (!items) {
|
|
111
|
-
return <NavLink className={navLinkClassNames(className)} {...props} />;
|
|
81
|
+
const element = <NavLink className={(0, _clsx.default)(isDropdownItem ? 'dropdown__link' : 'navbar__item navbar__link', className)} {...props} />;
|
|
82
|
+
|
|
83
|
+
if (isDropdownItem) {
|
|
84
|
+
return <li>{element}</li>;
|
|
112
85
|
}
|
|
113
86
|
|
|
114
|
-
return
|
|
115
|
-
'dropdown--left': position === 'left',
|
|
116
|
-
'dropdown--right': position === 'right',
|
|
117
|
-
'dropdown--show': showDropdown
|
|
118
|
-
})}>
|
|
119
|
-
<NavLink className={navLinkClassNames(className)} {...props} onClick={props.to ? undefined : e => e.preventDefault()} onKeyDown={e => {
|
|
120
|
-
if (e.key === 'Enter') {
|
|
121
|
-
e.preventDefault();
|
|
122
|
-
setShowDropdown(!showDropdown);
|
|
123
|
-
}
|
|
124
|
-
}}>
|
|
125
|
-
{(_props$children = props.children) !== null && _props$children !== void 0 ? _props$children : props.label}
|
|
126
|
-
</NavLink>
|
|
127
|
-
<ul ref={dropdownMenuRef} className="dropdown__menu">
|
|
128
|
-
{items.map(({
|
|
129
|
-
className: childItemClassName,
|
|
130
|
-
...childItemProps
|
|
131
|
-
}, i) => <li key={i}>
|
|
132
|
-
<NavLink onKeyDown={e => {
|
|
133
|
-
if (i === items.length - 1 && e.key === 'Tab') {
|
|
134
|
-
e.preventDefault();
|
|
135
|
-
setShowDropdown(false);
|
|
136
|
-
const nextNavbarItem = dropdownRef.current.nextElementSibling;
|
|
137
|
-
|
|
138
|
-
if (nextNavbarItem) {
|
|
139
|
-
nextNavbarItem.focus();
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}} activeClassName={dropdownLinkActiveClass} className={navLinkClassNames(childItemClassName, true)} {...childItemProps} />
|
|
143
|
-
</li>)}
|
|
144
|
-
</ul>
|
|
145
|
-
</div>;
|
|
87
|
+
return element;
|
|
146
88
|
}
|
|
147
89
|
|
|
148
|
-
function
|
|
149
|
-
items,
|
|
90
|
+
function DefaultNavbarItemMobile({
|
|
150
91
|
className,
|
|
151
|
-
|
|
152
|
-
// Need to destructure position from props so that it doesn't get passed on.
|
|
92
|
+
isDropdownItem: _isDropdownItem,
|
|
153
93
|
...props
|
|
154
94
|
}) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
const {
|
|
158
|
-
pathname
|
|
159
|
-
} = (0, _router.useLocation)();
|
|
160
|
-
const {
|
|
161
|
-
collapsed,
|
|
162
|
-
toggleCollapsed
|
|
163
|
-
} = (0, _themeCommon.useCollapsible)({
|
|
164
|
-
initialState: () => {
|
|
165
|
-
var _items$some;
|
|
166
|
-
|
|
167
|
-
return (_items$some = !(items !== null && items !== void 0 && items.some(item => (0, _themeCommon.isSamePath)(item.to, pathname)))) !== null && _items$some !== void 0 ? _items$some : true;
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
const navLinkClassNames = (extraClassName, isSubList = false) => (0, _clsx.default)('menu__link', {
|
|
172
|
-
'menu__link--sublist': isSubList
|
|
173
|
-
}, extraClassName);
|
|
174
|
-
|
|
175
|
-
if (!items) {
|
|
176
|
-
return <li className="menu__list-item">
|
|
177
|
-
<NavLink className={navLinkClassNames(className)} {...props} />
|
|
178
|
-
</li>;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
return <li className={(0, _clsx.default)('menu__list-item', {
|
|
182
|
-
'menu__list-item--collapsed': collapsed
|
|
183
|
-
})}>
|
|
184
|
-
<NavLink role="button" className={navLinkClassNames(className, true)} {...props} onClick={e => {
|
|
185
|
-
e.preventDefault();
|
|
186
|
-
toggleCollapsed();
|
|
187
|
-
}}>
|
|
188
|
-
{(_props$children2 = props.children) !== null && _props$children2 !== void 0 ? _props$children2 : props.label}
|
|
189
|
-
</NavLink>
|
|
190
|
-
<_themeCommon.Collapsible as="ul" className="menu__list" collapsed={collapsed}>
|
|
191
|
-
{items.map(({
|
|
192
|
-
className: childItemClassName,
|
|
193
|
-
...childItemProps
|
|
194
|
-
}, i) => <li className="menu__list-item" key={i}>
|
|
195
|
-
<NavLink activeClassName="menu__link--active" className={navLinkClassNames(childItemClassName)} {...childItemProps} onClick={props.onClick} />
|
|
196
|
-
</li>)}
|
|
197
|
-
</_themeCommon.Collapsible>
|
|
95
|
+
return <li className="menu__list-item">
|
|
96
|
+
<NavLink className={(0, _clsx.default)('menu__link', className)} {...props} />
|
|
198
97
|
</li>;
|
|
199
98
|
}
|
|
200
99
|
|
|
201
100
|
function DefaultNavbarItem({
|
|
202
101
|
mobile = false,
|
|
102
|
+
position: _position,
|
|
103
|
+
// Need to destructure position from props so that it doesn't get passed on.
|
|
203
104
|
...props
|
|
204
105
|
}) {
|
|
205
|
-
|
|
206
|
-
|
|
106
|
+
var _props$activeClassNam;
|
|
107
|
+
|
|
108
|
+
const Comp = mobile ? DefaultNavbarItemMobile : DefaultNavbarItemDesktop;
|
|
109
|
+
return <Comp {...props} activeClassName={(_props$activeClassNam = props.activeClassName) !== null && _props$activeClassNam !== void 0 ? _props$activeClassNam : (0, _index.getInfimaActiveClassName)(mobile)} />;
|
|
207
110
|
}
|
|
208
111
|
|
|
209
112
|
var _default = DefaultNavbarItem;
|
|
@@ -13,9 +13,9 @@ var _useDocs = require("@theme/hooks/useDocs");
|
|
|
13
13
|
|
|
14
14
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _index = require("./index");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _themeCommon = require("@docusaurus/theme-common");
|
|
19
19
|
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
|
|
@@ -26,8 +26,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
26
26
|
* LICENSE file in the root directory of this source tree.
|
|
27
27
|
*/
|
|
28
28
|
function getDocInVersions(versions, docId) {
|
|
29
|
-
|
|
30
|
-
const allDocs = [].concat(...versions.map(version => version.docs));
|
|
29
|
+
const allDocs = versions.flatMap(version => version.docs);
|
|
31
30
|
const doc = allDocs.find(versionDoc => versionDoc.id === docId);
|
|
32
31
|
|
|
33
32
|
if (!doc) {
|
|
@@ -41,7 +40,6 @@ Available doc ids are:\n- ${docIds}`);
|
|
|
41
40
|
|
|
42
41
|
function DocNavbarItem({
|
|
43
42
|
docId,
|
|
44
|
-
activeSidebarClassName,
|
|
45
43
|
label: staticLabel,
|
|
46
44
|
docsPluginId,
|
|
47
45
|
...props
|
|
@@ -55,9 +53,10 @@ function DocNavbarItem({
|
|
|
55
53
|
} = (0, _themeCommon.useDocsPreferredVersion)(docsPluginId);
|
|
56
54
|
const latestVersion = (0, _useDocs.useLatestVersion)(docsPluginId); // Versions used to look for the doc to link to, ordered + no duplicate
|
|
57
55
|
|
|
58
|
-
const versions = (0,
|
|
56
|
+
const versions = (0, _themeCommon.uniq)([activeVersion, preferredVersion, latestVersion].filter(Boolean));
|
|
59
57
|
const doc = getDocInVersions(versions, docId);
|
|
58
|
+
const activeDocInfimaClassName = (0, _index.getInfimaActiveClassName)(props.mobile);
|
|
60
59
|
return <_DefaultNavbarItem.default exact {...props} className={(0, _clsx.default)(props.className, {
|
|
61
|
-
[
|
|
62
|
-
})} label={staticLabel !== null && staticLabel !== void 0 ? staticLabel : doc.id} to={doc.path} />;
|
|
60
|
+
[activeDocInfimaClassName]: (activeDoc === null || activeDoc === void 0 ? void 0 : activeDoc.sidebar) && activeDoc.sidebar === doc.sidebar
|
|
61
|
+
})} activeClassName={activeDocInfimaClassName} label={staticLabel !== null && staticLabel !== void 0 ? staticLabel : doc.id} to={doc.path} />;
|
|
63
62
|
}
|
|
@@ -9,10 +9,14 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _DefaultNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DefaultNavbarItem"));
|
|
11
11
|
|
|
12
|
+
var _DropdownNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DropdownNavbarItem"));
|
|
13
|
+
|
|
12
14
|
var _useDocs = require("@theme/hooks/useDocs");
|
|
13
15
|
|
|
14
16
|
var _themeCommon = require("@docusaurus/theme-common");
|
|
15
17
|
|
|
18
|
+
var _Translate = require("@docusaurus/Translate");
|
|
19
|
+
|
|
16
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
21
|
|
|
18
22
|
/**
|
|
@@ -56,21 +60,24 @@ function DocsVersionDropdownNavbarItem({
|
|
|
56
60
|
}
|
|
57
61
|
};
|
|
58
62
|
});
|
|
59
|
-
|
|
60
|
-
// If we build the site with a single docs version (onlyIncludeVersions: ['1.0.0'])
|
|
61
|
-
// We'd rather render a button instead of a dropdown
|
|
62
|
-
|
|
63
|
-
if (items.length <= 1) {
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return items;
|
|
63
|
+
return [...dropdownItemsBefore, ...versionLinks, ...dropdownItemsAfter];
|
|
68
64
|
}
|
|
69
65
|
|
|
70
66
|
const items = getItems();
|
|
71
67
|
const dropdownVersion = (_ref = (_activeDocContext$act = activeDocContext.activeVersion) !== null && _activeDocContext$act !== void 0 ? _activeDocContext$act : preferredVersion) !== null && _ref !== void 0 ? _ref : latestVersion; // Mobile dropdown is handled a bit differently
|
|
72
68
|
|
|
73
|
-
const dropdownLabel = mobile && items ?
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
const dropdownLabel = mobile && items ? (0, _Translate.translate)({
|
|
70
|
+
id: 'theme.navbar.mobileVersionsDropdown.label',
|
|
71
|
+
message: 'Versions',
|
|
72
|
+
description: 'The label for the navbar versions dropdown on mobile view'
|
|
73
|
+
}) : dropdownVersion.label;
|
|
74
|
+
const dropdownTo = mobile && items ? undefined : getVersionMainDoc(dropdownVersion).path; // We don't want to render a version dropdown with 0 or 1 item
|
|
75
|
+
// If we build the site with a single docs version (onlyIncludeVersions: ['1.0.0'])
|
|
76
|
+
// We'd rather render a button instead of a dropdown
|
|
77
|
+
|
|
78
|
+
if (items.length <= 1) {
|
|
79
|
+
return <_DefaultNavbarItem.default {...props} mobile={mobile} label={dropdownLabel} to={dropdownTo} isActive={dropdownActiveClassDisabled ? () => false : undefined} />;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return <_DropdownNavbarItem.default {...props} mobile={mobile} label={dropdownLabel} to={dropdownTo} items={items} isActive={dropdownActiveClassDisabled ? () => false : undefined} />;
|
|
76
83
|
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
|
+
|
|
12
|
+
var _themeCommon = require("@docusaurus/theme-common");
|
|
13
|
+
|
|
14
|
+
var _DefaultNavbarItem = require("@theme/NavbarItem/DefaultNavbarItem");
|
|
15
|
+
|
|
16
|
+
var _NavbarItem = _interopRequireDefault(require("@theme/NavbarItem"));
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
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); }
|
|
21
|
+
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
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
|
+
const dropdownLinkActiveClass = 'dropdown__link--active';
|
|
31
|
+
|
|
32
|
+
function isItemActive(item, localPathname) {
|
|
33
|
+
if ((0, _themeCommon.isSamePath)(item.to, localPathname)) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if ((0, _themeCommon.isRegexpStringMatch)(item.activeBaseRegex, localPathname)) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (item.activeBasePath && localPathname.startsWith(item.activeBasePath)) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function containsActiveItems(items, localPathname) {
|
|
49
|
+
return items.some(item => isItemActive(item, localPathname));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function DropdownNavbarItemDesktop({
|
|
53
|
+
items,
|
|
54
|
+
position,
|
|
55
|
+
className,
|
|
56
|
+
...props
|
|
57
|
+
}) {
|
|
58
|
+
var _props$children;
|
|
59
|
+
|
|
60
|
+
const dropdownRef = (0, _react.useRef)(null);
|
|
61
|
+
const dropdownMenuRef = (0, _react.useRef)(null);
|
|
62
|
+
const [showDropdown, setShowDropdown] = (0, _react.useState)(false);
|
|
63
|
+
(0, _react.useEffect)(() => {
|
|
64
|
+
const handleClickOutside = event => {
|
|
65
|
+
if (!dropdownRef.current || dropdownRef.current.contains(event.target)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
setShowDropdown(false);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
73
|
+
document.addEventListener('touchstart', handleClickOutside);
|
|
74
|
+
return () => {
|
|
75
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
76
|
+
document.removeEventListener('touchstart', handleClickOutside);
|
|
77
|
+
};
|
|
78
|
+
}, [dropdownRef]);
|
|
79
|
+
return <div ref={dropdownRef} className={(0, _clsx.default)('navbar__item', 'dropdown', 'dropdown--hoverable', {
|
|
80
|
+
'dropdown--right': position === 'right',
|
|
81
|
+
'dropdown--show': showDropdown
|
|
82
|
+
})}>
|
|
83
|
+
<_DefaultNavbarItem.NavLink href={props.to ? undefined : '#'} className={(0, _clsx.default)('navbar__link', className)} {...props} onClick={props.to ? undefined : e => e.preventDefault()} onKeyDown={e => {
|
|
84
|
+
if (e.key === 'Enter') {
|
|
85
|
+
e.preventDefault();
|
|
86
|
+
setShowDropdown(!showDropdown);
|
|
87
|
+
}
|
|
88
|
+
}}>
|
|
89
|
+
{(_props$children = props.children) !== null && _props$children !== void 0 ? _props$children : props.label}
|
|
90
|
+
</_DefaultNavbarItem.NavLink>
|
|
91
|
+
<ul ref={dropdownMenuRef} className="dropdown__menu">
|
|
92
|
+
{items.map((childItemProps, i) => <_NavbarItem.default isDropdownItem onKeyDown={e => {
|
|
93
|
+
if (i === items.length - 1 && e.key === 'Tab') {
|
|
94
|
+
e.preventDefault();
|
|
95
|
+
setShowDropdown(false);
|
|
96
|
+
const nextNavbarItem = dropdownRef.current.nextElementSibling;
|
|
97
|
+
|
|
98
|
+
if (nextNavbarItem) {
|
|
99
|
+
nextNavbarItem.focus();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}} activeClassName={dropdownLinkActiveClass} {...childItemProps} key={i} />)}
|
|
103
|
+
</ul>
|
|
104
|
+
</div>;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function DropdownNavbarItemMobile({
|
|
108
|
+
items,
|
|
109
|
+
className,
|
|
110
|
+
position: _position,
|
|
111
|
+
// Need to destructure position from props so that it doesn't get passed on.
|
|
112
|
+
...props
|
|
113
|
+
}) {
|
|
114
|
+
var _props$children2;
|
|
115
|
+
|
|
116
|
+
const localPathname = (0, _themeCommon.useLocalPathname)();
|
|
117
|
+
const containsActive = containsActiveItems(items, localPathname);
|
|
118
|
+
const {
|
|
119
|
+
collapsed,
|
|
120
|
+
toggleCollapsed,
|
|
121
|
+
setCollapsed
|
|
122
|
+
} = (0, _themeCommon.useCollapsible)({
|
|
123
|
+
initialState: () => !containsActive
|
|
124
|
+
}); // Expand/collapse if any item active after a navigation
|
|
125
|
+
|
|
126
|
+
(0, _react.useEffect)(() => {
|
|
127
|
+
if (containsActive) {
|
|
128
|
+
setCollapsed(!containsActive);
|
|
129
|
+
}
|
|
130
|
+
}, [localPathname, containsActive, setCollapsed]);
|
|
131
|
+
return <li className={(0, _clsx.default)('menu__list-item', {
|
|
132
|
+
'menu__list-item--collapsed': collapsed
|
|
133
|
+
})}>
|
|
134
|
+
<_DefaultNavbarItem.NavLink role="button" className={(0, _clsx.default)('menu__link menu__link--sublist', className)} {...props} onClick={e => {
|
|
135
|
+
e.preventDefault();
|
|
136
|
+
toggleCollapsed();
|
|
137
|
+
}}>
|
|
138
|
+
{(_props$children2 = props.children) !== null && _props$children2 !== void 0 ? _props$children2 : props.label}
|
|
139
|
+
</_DefaultNavbarItem.NavLink>
|
|
140
|
+
<_themeCommon.Collapsible lazy as="ul" className="menu__list" collapsed={collapsed}>
|
|
141
|
+
{items.map((childItemProps, i) => <_NavbarItem.default mobile isDropdownItem onClick={props.onClick} activeClassName="menu__link--active" {...childItemProps} key={i} />)}
|
|
142
|
+
</_themeCommon.Collapsible>
|
|
143
|
+
</li>;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function DropdownNavbarItem({
|
|
147
|
+
mobile = false,
|
|
148
|
+
...props
|
|
149
|
+
}) {
|
|
150
|
+
const Comp = mobile ? DropdownNavbarItemMobile : DropdownNavbarItemDesktop;
|
|
151
|
+
return <Comp {...props} />;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
var _default = DropdownNavbarItem;
|
|
155
|
+
exports.default = _default;
|