@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
package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js}
RENAMED
|
@@ -7,7 +7,7 @@ exports.default = LocaleDropdownNavbarItem;
|
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _DropdownNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DropdownNavbarItem"));
|
|
11
11
|
|
|
12
12
|
var _IconLanguage = _interopRequireDefault(require("@theme/IconLanguage"));
|
|
13
13
|
|
|
@@ -15,6 +15,8 @@ var _useDocusaurusContext = _interopRequireDefault(require("@docusaurus/useDocus
|
|
|
15
15
|
|
|
16
16
|
var _themeCommon = require("@docusaurus/theme-common");
|
|
17
17
|
|
|
18
|
+
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
19
|
+
|
|
18
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
21
|
|
|
20
22
|
/**
|
|
@@ -53,20 +55,14 @@ function LocaleDropdownNavbarItem({
|
|
|
53
55
|
to,
|
|
54
56
|
target: '_self',
|
|
55
57
|
autoAddBaseUrl: false,
|
|
56
|
-
className: locale === currentLocale ? 'dropdown__link--active' : ''
|
|
57
|
-
style: {
|
|
58
|
-
textTransform: 'capitalize'
|
|
59
|
-
}
|
|
58
|
+
className: locale === currentLocale ? 'dropdown__link--active' : ''
|
|
60
59
|
};
|
|
61
60
|
});
|
|
62
61
|
const items = [...dropdownItemsBefore, ...localeItems, ...dropdownItemsAfter]; // Mobile is handled a bit differently
|
|
63
62
|
|
|
64
63
|
const dropdownLabel = mobile ? 'Languages' : getLocaleLabel(currentLocale);
|
|
65
|
-
return <
|
|
66
|
-
<_IconLanguage.default
|
|
67
|
-
verticalAlign: 'text-bottom',
|
|
68
|
-
marginRight: 5
|
|
69
|
-
}} />
|
|
64
|
+
return <_DropdownNavbarItem.default {...props} mobile={mobile} label={<span>
|
|
65
|
+
<_IconLanguage.default className={_stylesModule.default.iconLanguage} />
|
|
70
66
|
<span>{dropdownLabel}</span>
|
|
71
67
|
</span>} items={items} />;
|
|
72
68
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
.iconLanguage {
|
|
9
|
+
vertical-align: text-bottom;
|
|
10
|
+
margin-right: 5px;
|
|
11
|
+
}
|
|
@@ -4,11 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = NavbarItem;
|
|
7
|
+
exports.getInfimaActiveClassName = void 0;
|
|
7
8
|
|
|
8
9
|
var _react = _interopRequireDefault(require("react"));
|
|
9
10
|
|
|
10
11
|
var _DefaultNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DefaultNavbarItem"));
|
|
11
12
|
|
|
13
|
+
var _DropdownNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DropdownNavbarItem"));
|
|
14
|
+
|
|
12
15
|
var _LocaleDropdownNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/LocaleDropdownNavbarItem"));
|
|
13
16
|
|
|
14
17
|
var _SearchNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/SearchNavbarItem"));
|
|
@@ -25,30 +28,47 @@ const NavbarItemComponents = {
|
|
|
25
28
|
default: () => _DefaultNavbarItem.default,
|
|
26
29
|
localeDropdown: () => _LocaleDropdownNavbarItem.default,
|
|
27
30
|
search: () => _SearchNavbarItem.default,
|
|
31
|
+
dropdown: () => _DropdownNavbarItem.default,
|
|
28
32
|
// Need to lazy load these items as we don't know for sure the docs plugin is loaded
|
|
29
33
|
// See https://github.com/facebook/docusaurus/issues/3360
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
require('@theme/NavbarItem/DocsVersionDropdownNavbarItem').default,
|
|
34
|
-
doc: () =>
|
|
35
|
-
|
|
34
|
+
|
|
35
|
+
/* eslint-disable @typescript-eslint/no-var-requires, global-require */
|
|
36
|
+
docsVersion: () => require('@theme/NavbarItem/DocsVersionNavbarItem').default,
|
|
37
|
+
docsVersionDropdown: () => require('@theme/NavbarItem/DocsVersionDropdownNavbarItem').default,
|
|
38
|
+
doc: () => require('@theme/NavbarItem/DocNavbarItem').default
|
|
39
|
+
/* eslint-enable @typescript-eslint/no-var-requires, global-require */
|
|
40
|
+
|
|
36
41
|
};
|
|
37
42
|
|
|
38
|
-
const getNavbarItemComponent =
|
|
39
|
-
const
|
|
43
|
+
const getNavbarItemComponent = type => {
|
|
44
|
+
const navbarItemComponentFn = NavbarItemComponents[type];
|
|
40
45
|
|
|
41
|
-
if (!
|
|
46
|
+
if (!navbarItemComponentFn) {
|
|
42
47
|
throw new Error(`No NavbarItem component found for type "${type}".`);
|
|
43
48
|
}
|
|
44
49
|
|
|
45
|
-
return
|
|
50
|
+
return navbarItemComponentFn();
|
|
46
51
|
};
|
|
47
52
|
|
|
53
|
+
function getComponentType(type, isDropdown) {
|
|
54
|
+
// Backward compatibility: navbar item with no type set
|
|
55
|
+
// but containing dropdown items should use the type "dropdown"
|
|
56
|
+
if (!type || type === 'default') {
|
|
57
|
+
return isDropdown ? 'dropdown' : 'default';
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return type;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const getInfimaActiveClassName = mobile => mobile ? 'menu__link--active' : 'navbar__link--active';
|
|
64
|
+
|
|
65
|
+
exports.getInfimaActiveClassName = getInfimaActiveClassName;
|
|
66
|
+
|
|
48
67
|
function NavbarItem({
|
|
49
68
|
type,
|
|
50
69
|
...props
|
|
51
70
|
}) {
|
|
52
|
-
const
|
|
71
|
+
const componentType = getComponentType(type, props.items !== undefined);
|
|
72
|
+
const NavbarItemComponent = getNavbarItemComponent(componentType);
|
|
53
73
|
return <NavbarItemComponent {...props} />;
|
|
54
74
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = SearchMetadata;
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
|
@@ -20,7 +20,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
20
20
|
// Note: we don't couple this to Algolia/DocSearch on purpose
|
|
21
21
|
// We may want to support other search engine plugins too
|
|
22
22
|
// Search plugins should swizzle/override this comp to add their behavior
|
|
23
|
-
function
|
|
23
|
+
function SearchMetadata({
|
|
24
24
|
locale,
|
|
25
25
|
version,
|
|
26
26
|
tag
|
package/lib/theme/Seo/index.js
CHANGED
|
@@ -11,7 +11,7 @@ var _Head = _interopRequireDefault(require("@docusaurus/Head"));
|
|
|
11
11
|
|
|
12
12
|
var _themeCommon = require("@docusaurus/theme-common");
|
|
13
13
|
|
|
14
|
-
var _useBaseUrl =
|
|
14
|
+
var _useBaseUrl = require("@docusaurus/useBaseUrl");
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
@@ -25,15 +25,16 @@ function Seo({
|
|
|
25
25
|
title,
|
|
26
26
|
description,
|
|
27
27
|
keywords,
|
|
28
|
-
image
|
|
28
|
+
image,
|
|
29
|
+
children
|
|
29
30
|
}) {
|
|
30
|
-
const {
|
|
31
|
-
image: defaultImage
|
|
32
|
-
} = (0, _themeCommon.useThemeConfig)();
|
|
33
31
|
const pageTitle = (0, _themeCommon.useTitleFormatter)(title);
|
|
34
|
-
const
|
|
32
|
+
const {
|
|
33
|
+
withBaseUrl
|
|
34
|
+
} = (0, _useBaseUrl.useBaseUrlUtils)();
|
|
35
|
+
const pageImage = image ? withBaseUrl(image, {
|
|
35
36
|
absolute: true
|
|
36
|
-
});
|
|
37
|
+
}) : undefined;
|
|
37
38
|
return <_Head.default>
|
|
38
39
|
{title && <title>{pageTitle}</title>}
|
|
39
40
|
{title && <meta property="og:title" content={pageTitle} />}
|
|
@@ -45,5 +46,7 @@ function Seo({
|
|
|
45
46
|
|
|
46
47
|
{pageImage && <meta property="og:image" content={pageImage} />}
|
|
47
48
|
{pageImage && <meta name="twitter:image" content={pageImage} />}
|
|
49
|
+
|
|
50
|
+
{children}
|
|
48
51
|
</_Head.default>;
|
|
49
52
|
}
|
package/lib/theme/TOC/index.js
CHANGED
|
@@ -3,14 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.TOCHeadings = TOCHeadings;
|
|
7
6
|
exports.default = void 0;
|
|
8
7
|
|
|
9
8
|
var _react = _interopRequireDefault(require("react"));
|
|
10
9
|
|
|
11
10
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
11
|
|
|
13
|
-
var
|
|
12
|
+
var _TOCItems = _interopRequireDefault(require("@theme/TOCItems"));
|
|
14
13
|
|
|
15
14
|
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
16
15
|
|
|
@@ -22,37 +21,17 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
22
21
|
* This source code is licensed under the MIT license found in the
|
|
23
22
|
* LICENSE file in the root directory of this source tree.
|
|
24
23
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
function TOCHeadings({
|
|
31
|
-
toc,
|
|
32
|
-
isChild
|
|
33
|
-
}) {
|
|
34
|
-
if (!toc.length) {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return <ul className={isChild ? '' : 'table-of-contents table-of-contents__left-border'}>
|
|
39
|
-
{toc.map(heading => <li key={heading.id}>
|
|
40
|
-
<a href={`#${heading.id}`} className={LINK_CLASS_NAME} // Developer provided the HTML, so assume it's safe.
|
|
41
|
-
// eslint-disable-next-line react/no-danger
|
|
42
|
-
dangerouslySetInnerHTML={{
|
|
43
|
-
__html: heading.value
|
|
44
|
-
}} />
|
|
45
|
-
<TOCHeadings isChild toc={heading.children} />
|
|
46
|
-
</li>)}
|
|
47
|
-
</ul>;
|
|
48
|
-
}
|
|
24
|
+
// Using a custom className
|
|
25
|
+
// This prevents TOC highlighting to highlight TOCInline/TOCCollapsible by mistake
|
|
26
|
+
const LINK_CLASS_NAME = 'table-of-contents__link toc-highlight';
|
|
27
|
+
const LINK_ACTIVE_CLASS_NAME = 'table-of-contents__link--active';
|
|
49
28
|
|
|
50
29
|
function TOC({
|
|
51
|
-
|
|
30
|
+
className,
|
|
31
|
+
...props
|
|
52
32
|
}) {
|
|
53
|
-
(0,
|
|
54
|
-
|
|
55
|
-
<TOCHeadings toc={toc} />
|
|
33
|
+
return <div className={(0, _clsx.default)(_stylesModule.default.tableOfContents, 'thin-scrollbar', className)}>
|
|
34
|
+
<_TOCItems.default {...props} linkClassName={LINK_CLASS_NAME} linkActiveClassName={LINK_ACTIVE_CLASS_NAME} />
|
|
56
35
|
</div>;
|
|
57
36
|
}
|
|
58
37
|
|
|
@@ -15,7 +15,7 @@ var _themeCommon = require("@docusaurus/theme-common");
|
|
|
15
15
|
|
|
16
16
|
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _TOCItems = _interopRequireDefault(require("@theme/TOCItems"));
|
|
19
19
|
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
|
|
@@ -27,7 +27,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
27
27
|
*/
|
|
28
28
|
function TOCCollapsible({
|
|
29
29
|
toc,
|
|
30
|
-
className
|
|
30
|
+
className,
|
|
31
|
+
minHeadingLevel,
|
|
32
|
+
maxHeadingLevel
|
|
31
33
|
}) {
|
|
32
34
|
const {
|
|
33
35
|
collapsed,
|
|
@@ -35,7 +37,7 @@ function TOCCollapsible({
|
|
|
35
37
|
} = (0, _themeCommon.useCollapsible)({
|
|
36
38
|
initialState: true
|
|
37
39
|
});
|
|
38
|
-
return <div className={(0, _clsx.default)(
|
|
40
|
+
return <div className={(0, _clsx.default)(_stylesModule.default.tocCollapsible, {
|
|
39
41
|
[_stylesModule.default.tocCollapsibleExpanded]: !collapsed
|
|
40
42
|
}, className)}>
|
|
41
43
|
<button type="button" className={(0, _clsx.default)('clean-btn', _stylesModule.default.tocCollapsibleButton)} onClick={toggleCollapsed}>
|
|
@@ -44,8 +46,8 @@ function TOCCollapsible({
|
|
|
44
46
|
</_Translate.default>
|
|
45
47
|
</button>
|
|
46
48
|
|
|
47
|
-
<_themeCommon.Collapsible className={_stylesModule.default.tocCollapsibleContent} collapsed={collapsed}>
|
|
48
|
-
<
|
|
49
|
+
<_themeCommon.Collapsible lazy className={_stylesModule.default.tocCollapsibleContent} collapsed={collapsed}>
|
|
50
|
+
<_TOCItems.default toc={toc} minHeadingLevel={minHeadingLevel} maxHeadingLevel={maxHeadingLevel} />
|
|
49
51
|
</_themeCommon.Collapsible>
|
|
50
52
|
</div>;
|
|
51
53
|
}
|
|
@@ -7,10 +7,10 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
|
10
|
-
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
|
-
|
|
12
10
|
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
13
11
|
|
|
12
|
+
var _TOCItems = _interopRequireDefault(require("@theme/TOCItems"));
|
|
13
|
+
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -19,33 +19,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
19
19
|
* This source code is licensed under the MIT license found in the
|
|
20
20
|
* LICENSE file in the root directory of this source tree.
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
/* eslint-disable jsx-a11y/control-has-associated-label */
|
|
24
|
-
function HeadingsInline({
|
|
25
|
-
toc,
|
|
26
|
-
isChild
|
|
27
|
-
}) {
|
|
28
|
-
if (!toc.length) {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return <ul className={isChild ? '' : 'table-of-contents'}>
|
|
33
|
-
{toc.map(heading => <li key={heading.id}>
|
|
34
|
-
<a href={`#${heading.id}`} // Developer provided the HTML, so assume it's safe.
|
|
35
|
-
// eslint-disable-next-line react/no-danger
|
|
36
|
-
dangerouslySetInnerHTML={{
|
|
37
|
-
__html: heading.value
|
|
38
|
-
}} />
|
|
39
|
-
<HeadingsInline isChild toc={heading.children} />
|
|
40
|
-
</li>)}
|
|
41
|
-
</ul>;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
22
|
function TOCInline({
|
|
45
|
-
toc
|
|
23
|
+
toc,
|
|
24
|
+
minHeadingLevel,
|
|
25
|
+
maxHeadingLevel
|
|
46
26
|
}) {
|
|
47
|
-
return <div className={
|
|
48
|
-
<
|
|
27
|
+
return <div className={_stylesModule.default.tableOfContentsInline}>
|
|
28
|
+
<_TOCItems.default toc={toc} minHeadingLevel={minHeadingLevel} maxHeadingLevel={maxHeadingLevel} className="table-of-contents" linkClassName={null} />
|
|
49
29
|
</div>;
|
|
50
30
|
}
|
|
51
31
|
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = TOCItems;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _themeCommon = require("@docusaurus/theme-common");
|
|
11
|
+
|
|
12
|
+
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); }
|
|
13
|
+
|
|
14
|
+
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; }
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the MIT license found in the
|
|
20
|
+
* LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/
|
|
22
|
+
// Recursive component rendering the toc tree
|
|
23
|
+
|
|
24
|
+
/* eslint-disable jsx-a11y/control-has-associated-label */
|
|
25
|
+
function TOCItemList({
|
|
26
|
+
toc,
|
|
27
|
+
className,
|
|
28
|
+
linkClassName,
|
|
29
|
+
isChild
|
|
30
|
+
}) {
|
|
31
|
+
if (!toc.length) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return <ul className={isChild ? undefined : className}>
|
|
36
|
+
{toc.map(heading => <li key={heading.id}>
|
|
37
|
+
<a href={`#${heading.id}`} className={linkClassName !== null && linkClassName !== void 0 ? linkClassName : undefined} // Developer provided the HTML, so assume it's safe.
|
|
38
|
+
// eslint-disable-next-line react/no-danger
|
|
39
|
+
dangerouslySetInnerHTML={{
|
|
40
|
+
__html: heading.value
|
|
41
|
+
}} />
|
|
42
|
+
<TOCItemList isChild toc={heading.children} className={className} linkClassName={linkClassName} />
|
|
43
|
+
</li>)}
|
|
44
|
+
</ul>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function TOCItems({
|
|
48
|
+
toc,
|
|
49
|
+
className = 'table-of-contents table-of-contents__left-border',
|
|
50
|
+
linkClassName = 'table-of-contents__link',
|
|
51
|
+
linkActiveClassName = undefined,
|
|
52
|
+
minHeadingLevel: minHeadingLevelOption,
|
|
53
|
+
maxHeadingLevel: maxHeadingLevelOption,
|
|
54
|
+
...props
|
|
55
|
+
}) {
|
|
56
|
+
const themeConfig = (0, _themeCommon.useThemeConfig)();
|
|
57
|
+
const minHeadingLevel = minHeadingLevelOption !== null && minHeadingLevelOption !== void 0 ? minHeadingLevelOption : themeConfig.tableOfContents.minHeadingLevel;
|
|
58
|
+
const maxHeadingLevel = maxHeadingLevelOption !== null && maxHeadingLevelOption !== void 0 ? maxHeadingLevelOption : themeConfig.tableOfContents.maxHeadingLevel;
|
|
59
|
+
const tocFiltered = (0, _themeCommon.useTOCFilter)({
|
|
60
|
+
toc,
|
|
61
|
+
minHeadingLevel,
|
|
62
|
+
maxHeadingLevel
|
|
63
|
+
});
|
|
64
|
+
const tocHighlightConfig = (0, _react.useMemo)(() => {
|
|
65
|
+
if (linkClassName && linkActiveClassName) {
|
|
66
|
+
return {
|
|
67
|
+
linkClassName,
|
|
68
|
+
linkActiveClassName,
|
|
69
|
+
minHeadingLevel,
|
|
70
|
+
maxHeadingLevel
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return undefined;
|
|
75
|
+
}, [linkClassName, linkActiveClassName, minHeadingLevel, maxHeadingLevel]);
|
|
76
|
+
(0, _themeCommon.useTOCHighlight)(tocHighlightConfig);
|
|
77
|
+
return <TOCItemList toc={tocFiltered} className={className} linkClassName={linkClassName} {...props} />;
|
|
78
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
|
|
5
|
+
var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));
|
|
6
|
+
|
|
7
|
+
var _index = _interopRequireDefault(require("../index"));
|
|
8
|
+
|
|
9
|
+
var _TabItem = _interopRequireDefault(require("../../TabItem"));
|
|
10
|
+
|
|
11
|
+
var _UserPreferencesProvider = _interopRequireDefault(require("@theme/UserPreferencesProvider"));
|
|
12
|
+
|
|
13
|
+
var _themeCommon = require("@docusaurus/theme-common");
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
19
|
+
*
|
|
20
|
+
* This source code is licensed under the MIT license found in the
|
|
21
|
+
* LICENSE file in the root directory of this source tree.
|
|
22
|
+
*/
|
|
23
|
+
describe('Tabs', () => {
|
|
24
|
+
test('Should reject bad Tabs child', () => {
|
|
25
|
+
expect(() => {
|
|
26
|
+
_reactTestRenderer.default.create(<_index.default>
|
|
27
|
+
<div>Naughty</div>
|
|
28
|
+
<_TabItem.default value="good">Good</_TabItem.default>
|
|
29
|
+
</_index.default>);
|
|
30
|
+
}).toThrowErrorMatchingInlineSnapshot(`"Docusaurus error: Bad <Tabs> child <div>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique \\"value\\" prop."`);
|
|
31
|
+
});
|
|
32
|
+
test('Should reject bad Tabs defaultValue', () => {
|
|
33
|
+
expect(() => {
|
|
34
|
+
_reactTestRenderer.default.create(<_index.default defaultValue="bad">
|
|
35
|
+
<_TabItem.default value="v1">Tab 1</_TabItem.default>
|
|
36
|
+
<_TabItem.default value="v2">Tab 2</_TabItem.default>
|
|
37
|
+
</_index.default>);
|
|
38
|
+
}).toThrowErrorMatchingInlineSnapshot(`"Docusaurus error: The <Tabs> has a defaultValue \\"bad\\" but none of its children has the corresponding value. Available values are: v1, v2. If you intend to show no default tab, use defaultValue={null} instead."`);
|
|
39
|
+
});
|
|
40
|
+
test('Should reject duplicate values', () => {
|
|
41
|
+
expect(() => {
|
|
42
|
+
_reactTestRenderer.default.create(<_index.default>
|
|
43
|
+
<_TabItem.default value="v1">Tab 1</_TabItem.default>
|
|
44
|
+
<_TabItem.default value="v2">Tab 2</_TabItem.default>
|
|
45
|
+
<_TabItem.default value="v3">Tab 3</_TabItem.default>
|
|
46
|
+
<_TabItem.default value="v4">Tab 4</_TabItem.default>
|
|
47
|
+
<_TabItem.default value="v1">Tab 5</_TabItem.default>
|
|
48
|
+
<_TabItem.default value="v2">Tab 6</_TabItem.default>
|
|
49
|
+
</_index.default>);
|
|
50
|
+
}).toThrowErrorMatchingInlineSnapshot(`"Docusaurus error: Duplicate values \\"v1, v2\\" found in <Tabs>. Every value needs to be unique."`);
|
|
51
|
+
});
|
|
52
|
+
test('Should accept valid Tabs config', () => {
|
|
53
|
+
expect(() => {
|
|
54
|
+
_reactTestRenderer.default.create(<_themeCommon.ScrollControllerProvider>
|
|
55
|
+
<_UserPreferencesProvider.default>
|
|
56
|
+
<_index.default>
|
|
57
|
+
<_TabItem.default value="v1">Tab 1</_TabItem.default>
|
|
58
|
+
<_TabItem.default value="v2">Tab 2</_TabItem.default>
|
|
59
|
+
</_index.default>
|
|
60
|
+
<_index.default>
|
|
61
|
+
<_TabItem.default value="v1">Tab 1</_TabItem.default>
|
|
62
|
+
<_TabItem.default value="v2" default>
|
|
63
|
+
Tab 2
|
|
64
|
+
</_TabItem.default>
|
|
65
|
+
</_index.default>
|
|
66
|
+
<_index.default defaultValue="v1">
|
|
67
|
+
<_TabItem.default value="v1" label="V1">
|
|
68
|
+
Tab 1
|
|
69
|
+
</_TabItem.default>
|
|
70
|
+
<_TabItem.default value="v2" label="V2">
|
|
71
|
+
Tab 2
|
|
72
|
+
</_TabItem.default>
|
|
73
|
+
</_index.default>
|
|
74
|
+
<_index.default defaultValue="v1" values={[{
|
|
75
|
+
value: 'v1',
|
|
76
|
+
label: 'V1'
|
|
77
|
+
}, {
|
|
78
|
+
value: 'v2',
|
|
79
|
+
label: 'V2'
|
|
80
|
+
}]}>
|
|
81
|
+
<_TabItem.default value="v1">Tab 1</_TabItem.default>
|
|
82
|
+
<_TabItem.default value="v2">Tab 2</_TabItem.default>
|
|
83
|
+
</_index.default>
|
|
84
|
+
<_index.default defaultValue={null} values={[{
|
|
85
|
+
value: 'v1',
|
|
86
|
+
label: 'V1'
|
|
87
|
+
}, {
|
|
88
|
+
value: 'v2',
|
|
89
|
+
label: 'V2'
|
|
90
|
+
}]}>
|
|
91
|
+
<_TabItem.default value="v1">Tab 1</_TabItem.default>
|
|
92
|
+
<_TabItem.default value="v2">Tab 2</_TabItem.default>
|
|
93
|
+
</_index.default>
|
|
94
|
+
<_index.default defaultValue={null}>
|
|
95
|
+
<_TabItem.default value="v1" label="V1">
|
|
96
|
+
Tab 1
|
|
97
|
+
</_TabItem.default>
|
|
98
|
+
<_TabItem.default value="v2" label="V2">
|
|
99
|
+
Tab 2
|
|
100
|
+
</_TabItem.default>
|
|
101
|
+
</_index.default>
|
|
102
|
+
</_UserPreferencesProvider.default>
|
|
103
|
+
</_themeCommon.ScrollControllerProvider>);
|
|
104
|
+
}).not.toThrow(); // TODO Better Jest infrastructure to mock the Layout
|
|
105
|
+
}); // https://github.com/facebook/docusaurus/issues/5729
|
|
106
|
+
|
|
107
|
+
test('Should accept dynamic Tabs with number values', () => {
|
|
108
|
+
expect(() => {
|
|
109
|
+
const tabs = ['Apple', 'Banana', 'Carrot'];
|
|
110
|
+
|
|
111
|
+
_reactTestRenderer.default.create(<_themeCommon.ScrollControllerProvider>
|
|
112
|
+
<_UserPreferencesProvider.default>
|
|
113
|
+
<_index.default values={tabs.map((t, idx) => ({
|
|
114
|
+
label: t,
|
|
115
|
+
value: idx
|
|
116
|
+
}))} defaultValue={0}>
|
|
117
|
+
{tabs.map((t, idx) => <_TabItem.default value={idx}>{t}</_TabItem.default>)}
|
|
118
|
+
</_index.default>
|
|
119
|
+
</_UserPreferencesProvider.default>
|
|
120
|
+
</_themeCommon.ScrollControllerProvider>);
|
|
121
|
+
}).not.toThrow();
|
|
122
|
+
});
|
|
123
|
+
});
|