@docusaurus/theme-classic 2.0.0-beta.138b4c997 → 2.0.0-beta.14
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/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-next/types.d.ts → lib/theme-classic.d.ts} +374 -150
- package/lib/translations.js +16 -7
- package/lib/types.d.ts +0 -587
- package/lib/validateThemeConfig.js +232 -246
- package/lib-next/theme/Admonition/index.js +101 -0
- 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/theme/MDXPage → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -2
- package/lib-next/theme/BlogPostAuthors/index.js +34 -0
- package/{lib/theme/IconExternalLink → lib-next/theme/BlogPostAuthors}/styles.module.css +3 -4
- 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 +23 -149
- package/lib-next/theme/CodeBlock/styles.module.css +12 -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 +40 -51
- package/lib-next/theme/DocItem/styles.module.css +5 -9
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
- package/lib-next/theme/DocPage/index.js +46 -49
- package/lib-next/theme/DocPage/styles.module.css +5 -6
- package/lib-next/theme/DocPaginator/index.js +5 -33
- package/lib-next/theme/DocPaginatorNavLink/index.js +36 -0
- package/lib-next/theme/DocSidebar/index.js +65 -285
- package/lib-next/theme/DocSidebar/styles.module.css +0 -18
- package/lib-next/theme/DocSidebarItem/index.js +217 -0
- package/{lib/theme/ThemedImage → lib-next/theme/DocSidebarItem}/styles.module.css +10 -9
- 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 +100 -40
- package/lib-next/theme/Heading/index.js +24 -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 +9 -3
- package/lib-next/theme/Logo/index.js +25 -21
- package/lib-next/theme/MDXComponents/index.js +34 -7
- package/{lib/theme/hooks → lib-next/theme/MDXComponents}/styles.css +3 -2
- package/lib-next/theme/MDXPage/index.js +10 -2
- package/lib-next/theme/Navbar/index.js +193 -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 +7 -7
- 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 -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/SkipToContent/index.js +5 -2
- 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 +103 -48
- 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 +34 -20
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/package.json +27 -25
- package/src/admonitions.css +35 -0
- package/src/deps.d.ts +13 -0
- package/src/index.ts +23 -20
- package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
- package/src/theme/Admonition/index.tsx +106 -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/{lib/theme/IconEdit → src/theme/BlogPostAuthor}/styles.module.css +4 -3
- 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 +27 -151
- package/src/theme/CodeBlock/styles.module.css +12 -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 +43 -51
- package/src/theme/DocItem/styles.module.css +5 -9
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/{lib/theme/BlogPostItem → src/theme/DocItemFooter}/styles.module.css +8 -8
- package/src/theme/DocPage/index.tsx +44 -42
- package/src/theme/DocPage/styles.module.css +5 -6
- package/src/theme/DocPaginator/index.tsx +5 -33
- package/src/theme/DocPaginatorNavLink/index.tsx +38 -0
- package/src/theme/DocSidebar/index.tsx +76 -297
- package/src/theme/DocSidebar/styles.module.css +0 -18
- package/src/theme/DocSidebarItem/index.tsx +242 -0
- package/{lib/theme/Footer → src/theme/DocSidebarItem}/styles.module.css +10 -6
- 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 +113 -43
- package/src/theme/Heading/index.tsx +24 -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 +9 -3
- 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 +203 -61
- package/src/theme/Navbar/styles.module.css +10 -3
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
- 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 +180 -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/SkipToContent/index.tsx +5 -2
- 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/index.tsx +110 -54
- 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 +38 -20
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/theme-classic.d.ts +822 -0
- package/src/translations.ts +41 -23
- package/src/types.d.ts +0 -587
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +160 -98
- package/babel.config.js +0 -35
- package/codeTranslations/README.md +0 -20
- package/codeTranslations/ar.json +0 -57
- package/codeTranslations/base.json +0 -112
- package/codeTranslations/bn.json +0 -56
- package/codeTranslations/da.json +0 -57
- package/codeTranslations/de.json +0 -57
- package/codeTranslations/es.json +0 -57
- package/codeTranslations/fa.json +0 -57
- package/codeTranslations/fil.json +0 -57
- package/codeTranslations/fr.json +0 -57
- package/codeTranslations/he.json +0 -57
- package/codeTranslations/hi.json +0 -57
- package/codeTranslations/ja.json +0 -57
- package/codeTranslations/ko.json +0 -57
- package/codeTranslations/pl.json +0 -57
- package/codeTranslations/pt-BR.json +0 -57
- package/codeTranslations/pt-PT.json +0 -57
- package/codeTranslations/ru.json +0 -57
- package/codeTranslations/tr.json +0 -57
- package/codeTranslations/vi.json +0 -57
- package/codeTranslations/zh-Hans.json +0 -57
- package/codeTranslations/zh-Hant.json +0 -57
- package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib/__tests__/translations.test.js +0 -112
- package/lib/__tests__/validateThemeConfig.test.js +0 -333
- package/lib/theme/AnnouncementBar/index.js +0 -72
- package/lib/theme/AnnouncementBar/styles.module.css +0 -72
- package/lib/theme/BlogListPage/index.js +0 -71
- package/lib/theme/BlogListPaginator/index.js +0 -63
- package/lib/theme/BlogPostItem/index.js +0 -161
- package/lib/theme/BlogPostPage/index.js +0 -69
- package/lib/theme/BlogPostPaginator/index.js +0 -64
- package/lib/theme/BlogSidebar/index.js +0 -51
- package/lib/theme/BlogSidebar/styles.module.css +0 -44
- package/lib/theme/BlogTagsListPage/index.js +0 -76
- package/lib/theme/BlogTagsPostsPage/index.js +0 -100
- package/lib/theme/CodeBlock/index.js +0 -253
- package/lib/theme/CodeBlock/styles.module.css +0 -68
- package/lib/theme/DocItem/index.js +0 -129
- package/lib/theme/DocPage/index.js +0 -173
- package/lib/theme/DocPage/styles.module.css +0 -86
- package/lib/theme/DocPaginator/index.js +0 -63
- package/lib/theme/DocSidebar/index.js +0 -306
- package/lib/theme/DocSidebar/styles.module.css +0 -124
- package/lib/theme/DocVersionBanner/index.js +0 -128
- package/lib/theme/EditThisPage/index.js +0 -31
- package/lib/theme/Footer/index.js +0 -108
- package/lib/theme/Heading/index.js +0 -76
- package/lib/theme/Heading/styles.css +0 -23
- package/lib/theme/Heading/styles.module.css +0 -15
- package/lib/theme/IconArrow/index.js +0 -28
- package/lib/theme/IconEdit/index.js +0 -34
- package/lib/theme/IconExternalLink/index.js +0 -30
- package/lib/theme/IconLanguage/index.js +0 -29
- package/lib/theme/IconMenu/index.js +0 -30
- package/lib/theme/LastUpdated/index.js +0 -61
- package/lib/theme/Layout/index.js +0 -64
- package/lib/theme/Layout/styles.css +0 -27
- package/lib/theme/LayoutHead/index.js +0 -144
- package/lib/theme/LayoutProviders/index.js +0 -36
- package/lib/theme/Logo/index.js +0 -60
- package/lib/theme/MDXComponents/index.js +0 -65
- package/lib/theme/MDXPage/index.js +0 -66
- package/lib/theme/Navbar/index.js +0 -147
- package/lib/theme/Navbar/styles.module.css +0 -20
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
- package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
- package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
- package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
- package/lib/theme/NavbarItem/index.js +0 -54
- package/lib/theme/NotFound.js +0 -57
- package/lib/theme/SearchBar.js +0 -15
- package/lib/theme/SearchMetadatas/index.js +0 -33
- package/lib/theme/Seo/index.js +0 -49
- package/lib/theme/SkipToContent/index.js +0 -63
- package/lib/theme/SkipToContent/styles.module.css +0 -14
- package/lib/theme/TOC/index.js +0 -59
- package/lib/theme/TOC/styles.module.css +0 -23
- package/lib/theme/TOCInline/index.js +0 -53
- package/lib/theme/TOCInline/styles.module.css +0 -12
- package/lib/theme/TabItem/index.js +0 -32
- package/lib/theme/Tabs/index.js +0 -150
- package/lib/theme/Tabs/styles.module.css +0 -23
- package/lib/theme/ThemeContext.js +0 -21
- package/lib/theme/ThemeProvider/index.js +0 -38
- package/lib/theme/ThemedImage/index.js +0 -49
- package/lib/theme/Toggle/index.js +0 -94
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/Toggle/styles.module.css +0 -17
- package/lib/theme/UserPreferencesContext.js +0 -18
- package/lib/theme/UserPreferencesProvider/index.js +0 -36
- package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
- package/lib/theme/hooks/useDocs.js +0 -18
- package/lib/theme/hooks/useHideableNavbar.js +0 -92
- package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
- package/lib/theme/hooks/useLocationHash.js +0 -28
- package/lib/theme/hooks/useLockBodyScroll.js +0 -26
- package/lib/theme/hooks/usePrismTheme.js +0 -36
- package/lib/theme/hooks/useScrollPosition.js +0 -49
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib/theme/hooks/useTabGroupChoice.js +0 -51
- package/lib/theme/hooks/useTheme.js +0 -99
- package/lib/theme/hooks/useThemeContext.js +0 -31
- package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
- package/lib/theme/hooks/useWindowSize.js +0 -55
- package/lib/theme/prism-include-languages.js +0 -39
- package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib-next/__tests__/translations.test.js +0 -128
- package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
- package/lib-next/index.js +0 -221
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
- package/lib-next/theme/hooks/useLocationHash.js +0 -20
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/lib-next/translations.js +0 -145
- package/lib-next/validateThemeConfig.js +0 -317
- package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/src/__tests__/translations.test.ts +0 -116
- package/src/__tests__/validateThemeConfig.test.js +0 -333
- package/src/prism-include-languages.js +0 -11
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
- package/src/theme/hooks/useLocationHash.ts +0 -25
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
- package/tsconfig.json +0 -12
- package/update-code-translations.js +0 -240
- package/update-code-translations.test.js +0 -33
|
@@ -1,333 +0,0 @@
|
|
|
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
|
-
import {merge} from 'lodash';
|
|
9
|
-
|
|
10
|
-
const {ThemeConfigSchema, DEFAULT_CONFIG} = require('../validateThemeConfig');
|
|
11
|
-
|
|
12
|
-
const {normalizeThemeConfig} = require('@docusaurus/utils-validation');
|
|
13
|
-
const theme = require('prism-react-renderer/themes/github');
|
|
14
|
-
const darkTheme = require('prism-react-renderer/themes/dracula');
|
|
15
|
-
|
|
16
|
-
function testValidateThemeConfig(partialThemeConfig) {
|
|
17
|
-
return normalizeThemeConfig(ThemeConfigSchema, {
|
|
18
|
-
...DEFAULT_CONFIG,
|
|
19
|
-
...partialThemeConfig,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function testOk(partialThemeConfig) {
|
|
24
|
-
expect(
|
|
25
|
-
testValidateThemeConfig({...DEFAULT_CONFIG, ...partialThemeConfig}),
|
|
26
|
-
).toEqual({
|
|
27
|
-
...DEFAULT_CONFIG,
|
|
28
|
-
...partialThemeConfig,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
describe('themeConfig', () => {
|
|
33
|
-
test('should accept valid theme config', () => {
|
|
34
|
-
const userConfig = {
|
|
35
|
-
prism: {
|
|
36
|
-
theme,
|
|
37
|
-
darkTheme,
|
|
38
|
-
defaultLanguage: 'javascript',
|
|
39
|
-
additionalLanguages: ['kotlin', 'java'],
|
|
40
|
-
},
|
|
41
|
-
announcementBar: {
|
|
42
|
-
id: 'supportus',
|
|
43
|
-
content: 'pls support',
|
|
44
|
-
backgroundColor: '#fff',
|
|
45
|
-
textColor: '#000',
|
|
46
|
-
isCloseable: true,
|
|
47
|
-
},
|
|
48
|
-
image: 'img/docusaurus-soc.png',
|
|
49
|
-
navbar: {
|
|
50
|
-
style: 'primary',
|
|
51
|
-
hideOnScroll: true,
|
|
52
|
-
title: 'Docusaurus',
|
|
53
|
-
logo: {
|
|
54
|
-
alt: 'Docusaurus Logo',
|
|
55
|
-
src: 'img/docusaurus.svg',
|
|
56
|
-
srcDark: 'img/docusaurus_keytar.svg',
|
|
57
|
-
},
|
|
58
|
-
items: [
|
|
59
|
-
{
|
|
60
|
-
type: 'docsVersionDropdown',
|
|
61
|
-
position: 'left',
|
|
62
|
-
dropdownItemsBefore: [],
|
|
63
|
-
dropdownItemsAfter: [],
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
to: 'docs/next/support',
|
|
67
|
-
label: 'Community',
|
|
68
|
-
position: 'left',
|
|
69
|
-
activeBaseRegex: `docs/next/(support|team|resources)`,
|
|
70
|
-
'aria-label': 'Community',
|
|
71
|
-
},
|
|
72
|
-
],
|
|
73
|
-
},
|
|
74
|
-
footer: {
|
|
75
|
-
style: 'dark',
|
|
76
|
-
links: [
|
|
77
|
-
{
|
|
78
|
-
title: 'Learn',
|
|
79
|
-
items: [
|
|
80
|
-
{
|
|
81
|
-
label: 'Introduction',
|
|
82
|
-
to: 'docs',
|
|
83
|
-
},
|
|
84
|
-
],
|
|
85
|
-
},
|
|
86
|
-
],
|
|
87
|
-
logo: {
|
|
88
|
-
alt: 'Facebook Open Source Logo',
|
|
89
|
-
src: 'img/oss_logo.png',
|
|
90
|
-
href: 'https://opensource.facebook.com',
|
|
91
|
-
},
|
|
92
|
-
copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc. Built with Docusaurus.`,
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
expect(testValidateThemeConfig(userConfig)).toEqual({
|
|
96
|
-
...DEFAULT_CONFIG,
|
|
97
|
-
...userConfig,
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
test('should allow possible types of navbar items', () => {
|
|
102
|
-
const config = {
|
|
103
|
-
navbar: {
|
|
104
|
-
items: [
|
|
105
|
-
// Doc link
|
|
106
|
-
{
|
|
107
|
-
type: 'doc',
|
|
108
|
-
position: 'left',
|
|
109
|
-
docId: 'intro',
|
|
110
|
-
label: 'Introduction',
|
|
111
|
-
activeSidebarClassName: 'custom-class',
|
|
112
|
-
},
|
|
113
|
-
// Regular link
|
|
114
|
-
{
|
|
115
|
-
to: '/guide/',
|
|
116
|
-
label: 'Guide',
|
|
117
|
-
position: 'left',
|
|
118
|
-
activeBaseRegex: '/guide/',
|
|
119
|
-
},
|
|
120
|
-
// Regular dropdown
|
|
121
|
-
{
|
|
122
|
-
label: 'Community',
|
|
123
|
-
position: 'right',
|
|
124
|
-
items: [
|
|
125
|
-
{
|
|
126
|
-
label: 'Facebook',
|
|
127
|
-
href: 'https://.facebook.com/',
|
|
128
|
-
target: '_self',
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
label: 'GitHub',
|
|
132
|
-
href: 'https://github.com/facebook/docusaurus',
|
|
133
|
-
className: 'github-link',
|
|
134
|
-
},
|
|
135
|
-
],
|
|
136
|
-
},
|
|
137
|
-
// Doc version dropdown
|
|
138
|
-
{
|
|
139
|
-
type: 'docsVersionDropdown',
|
|
140
|
-
position: 'right',
|
|
141
|
-
dropdownActiveClassDisabled: true,
|
|
142
|
-
dropdownItemsBefore: [
|
|
143
|
-
{
|
|
144
|
-
href:
|
|
145
|
-
'https://www.npmjs.com/package/docusaurus?activeTab=versions',
|
|
146
|
-
label: 'Versions on npm',
|
|
147
|
-
className: 'npm-styled',
|
|
148
|
-
target: '_self',
|
|
149
|
-
},
|
|
150
|
-
],
|
|
151
|
-
dropdownItemsAfter: [
|
|
152
|
-
{
|
|
153
|
-
to: '/versions',
|
|
154
|
-
label: 'All versions',
|
|
155
|
-
className: 'all_vers',
|
|
156
|
-
},
|
|
157
|
-
],
|
|
158
|
-
},
|
|
159
|
-
// External link with custom data attribute
|
|
160
|
-
{
|
|
161
|
-
href: 'https://github.com/facebook/docusaurus',
|
|
162
|
-
position: 'right',
|
|
163
|
-
className: 'header-github-link',
|
|
164
|
-
'aria-label': 'GitHub repository',
|
|
165
|
-
},
|
|
166
|
-
// Docs version
|
|
167
|
-
{
|
|
168
|
-
type: 'docsVersion',
|
|
169
|
-
position: 'left',
|
|
170
|
-
label: 'Current version',
|
|
171
|
-
},
|
|
172
|
-
],
|
|
173
|
-
},
|
|
174
|
-
};
|
|
175
|
-
expect(testValidateThemeConfig(config)).toEqual({
|
|
176
|
-
...DEFAULT_CONFIG,
|
|
177
|
-
navbar: {
|
|
178
|
-
...DEFAULT_CONFIG.navbar,
|
|
179
|
-
...config.navbar,
|
|
180
|
-
},
|
|
181
|
-
});
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
test('should allow empty alt tags for the logo image in the header', () => {
|
|
185
|
-
const altTagConfig = {
|
|
186
|
-
navbar: {
|
|
187
|
-
logo: {
|
|
188
|
-
alt: '',
|
|
189
|
-
src: '/arbitrary-logo.png',
|
|
190
|
-
},
|
|
191
|
-
hideOnScroll: false,
|
|
192
|
-
},
|
|
193
|
-
};
|
|
194
|
-
expect(testValidateThemeConfig(altTagConfig)).toEqual({
|
|
195
|
-
...DEFAULT_CONFIG,
|
|
196
|
-
navbar: {
|
|
197
|
-
...DEFAULT_CONFIG.navbar,
|
|
198
|
-
...altTagConfig.navbar,
|
|
199
|
-
},
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
test('should allow empty alt tags for the logo image in the footer', () => {
|
|
204
|
-
const partialConfig = {
|
|
205
|
-
footer: {
|
|
206
|
-
logo: {
|
|
207
|
-
alt: '',
|
|
208
|
-
src: '/arbitrary-logo.png',
|
|
209
|
-
},
|
|
210
|
-
},
|
|
211
|
-
};
|
|
212
|
-
const normalizedConfig = testValidateThemeConfig(partialConfig);
|
|
213
|
-
|
|
214
|
-
expect(normalizedConfig).toEqual({
|
|
215
|
-
...normalizedConfig,
|
|
216
|
-
footer: {
|
|
217
|
-
...normalizedConfig.footer,
|
|
218
|
-
...partialConfig.footer,
|
|
219
|
-
},
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
|
-
|
|
223
|
-
test('should accept valid prism config', () => {
|
|
224
|
-
const prismConfig = {
|
|
225
|
-
prism: {
|
|
226
|
-
additionalLanguages: ['kotlin', 'java'],
|
|
227
|
-
},
|
|
228
|
-
};
|
|
229
|
-
expect(testValidateThemeConfig(prismConfig)).toEqual({
|
|
230
|
-
...DEFAULT_CONFIG,
|
|
231
|
-
...prismConfig,
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
describe('customCss config', () => {
|
|
236
|
-
test('should accept customCss undefined', () => {
|
|
237
|
-
testOk({
|
|
238
|
-
customCss: undefined,
|
|
239
|
-
});
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
test('should accept customCss string', () => {
|
|
243
|
-
testOk({
|
|
244
|
-
customCss: './path/to/cssFile.css',
|
|
245
|
-
});
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
test('should accept customCss string array', () => {
|
|
249
|
-
testOk({
|
|
250
|
-
customCss: ['./path/to/cssFile.css', './path/to/cssFile2.css'],
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
test('should reject customCss number', () => {
|
|
255
|
-
expect(() =>
|
|
256
|
-
testValidateThemeConfig({
|
|
257
|
-
customCss: 42,
|
|
258
|
-
}),
|
|
259
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
260
|
-
`"\\"customCss\\" must be one of [array, string]"`,
|
|
261
|
-
);
|
|
262
|
-
});
|
|
263
|
-
});
|
|
264
|
-
|
|
265
|
-
describe('color mode config', () => {
|
|
266
|
-
const withDefaultValues = (colorMode) =>
|
|
267
|
-
merge({}, DEFAULT_CONFIG.colorMode, colorMode);
|
|
268
|
-
|
|
269
|
-
test('minimal config', () => {
|
|
270
|
-
const colorMode = {
|
|
271
|
-
switchConfig: {
|
|
272
|
-
darkIcon: '🌙',
|
|
273
|
-
},
|
|
274
|
-
};
|
|
275
|
-
expect(testValidateThemeConfig({colorMode})).toEqual({
|
|
276
|
-
...DEFAULT_CONFIG,
|
|
277
|
-
colorMode: withDefaultValues(colorMode),
|
|
278
|
-
});
|
|
279
|
-
});
|
|
280
|
-
|
|
281
|
-
test('max config', () => {
|
|
282
|
-
const colorMode = {
|
|
283
|
-
defaultMode: 'dark',
|
|
284
|
-
disableSwitch: false,
|
|
285
|
-
respectPrefersColorScheme: true,
|
|
286
|
-
switchConfig: {
|
|
287
|
-
darkIcon: '🌙',
|
|
288
|
-
darkIconStyle: {
|
|
289
|
-
marginTop: '1px',
|
|
290
|
-
marginLeft: '2px',
|
|
291
|
-
},
|
|
292
|
-
lightIcon: '☀️',
|
|
293
|
-
lightIconStyle: {
|
|
294
|
-
marginLeft: '1px',
|
|
295
|
-
},
|
|
296
|
-
},
|
|
297
|
-
};
|
|
298
|
-
expect(testValidateThemeConfig({colorMode})).toEqual({
|
|
299
|
-
...DEFAULT_CONFIG,
|
|
300
|
-
colorMode: withDefaultValues(colorMode),
|
|
301
|
-
});
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
test('undefined config', () => {
|
|
305
|
-
const colorMode = undefined;
|
|
306
|
-
expect(testValidateThemeConfig({colorMode})).toEqual({
|
|
307
|
-
...DEFAULT_CONFIG,
|
|
308
|
-
colorMode: withDefaultValues(colorMode),
|
|
309
|
-
});
|
|
310
|
-
});
|
|
311
|
-
|
|
312
|
-
test('empty config', () => {
|
|
313
|
-
const colorMode = {};
|
|
314
|
-
expect(testValidateThemeConfig({colorMode})).toEqual({
|
|
315
|
-
...DEFAULT_CONFIG,
|
|
316
|
-
colorMode: {
|
|
317
|
-
...DEFAULT_CONFIG.colorMode,
|
|
318
|
-
...colorMode,
|
|
319
|
-
},
|
|
320
|
-
});
|
|
321
|
-
});
|
|
322
|
-
|
|
323
|
-
test('empty switch config', () => {
|
|
324
|
-
const colorMode = {
|
|
325
|
-
switchConfig: {},
|
|
326
|
-
};
|
|
327
|
-
expect(testValidateThemeConfig({colorMode})).toEqual({
|
|
328
|
-
...DEFAULT_CONFIG,
|
|
329
|
-
colorMode: withDefaultValues(colorMode),
|
|
330
|
-
});
|
|
331
|
-
});
|
|
332
|
-
});
|
|
333
|
-
});
|
package/lib-next/index.js
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/
|
|
7
|
-
import {getTranslationFiles, translateThemeConfig} from './translations';
|
|
8
|
-
import path from 'path';
|
|
9
|
-
import Module from 'module';
|
|
10
|
-
import rtlcss from 'rtlcss';
|
|
11
|
-
import {readDefaultCodeTranslationMessages} from '@docusaurus/utils';
|
|
12
|
-
const createRequire = Module.createRequire || Module.createRequireFromPath;
|
|
13
|
-
const requireFromDocusaurusCore = createRequire(
|
|
14
|
-
require.resolve('@docusaurus/core/package.json'),
|
|
15
|
-
);
|
|
16
|
-
const ContextReplacementPlugin = requireFromDocusaurusCore(
|
|
17
|
-
'webpack/lib/ContextReplacementPlugin',
|
|
18
|
-
); // Need to be inlined to prevent dark mode FOUC
|
|
19
|
-
// Make sure that the 'storageKey' is the same as the one in `/theme/hooks/useTheme.js`
|
|
20
|
-
|
|
21
|
-
const ThemeStorageKey = 'theme';
|
|
22
|
-
|
|
23
|
-
const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
|
|
24
|
-
return `(function() {
|
|
25
|
-
var defaultMode = '${defaultMode}';
|
|
26
|
-
var respectPrefersColorScheme = ${respectPrefersColorScheme};
|
|
27
|
-
|
|
28
|
-
function setDataThemeAttribute(theme) {
|
|
29
|
-
document.documentElement.setAttribute('data-theme', theme);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function getStoredTheme() {
|
|
33
|
-
var theme = null;
|
|
34
|
-
try {
|
|
35
|
-
theme = localStorage.getItem('${ThemeStorageKey}');
|
|
36
|
-
} catch (err) {}
|
|
37
|
-
return theme;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
var storedTheme = getStoredTheme();
|
|
41
|
-
if (storedTheme !== null) {
|
|
42
|
-
setDataThemeAttribute(storedTheme);
|
|
43
|
-
} else {
|
|
44
|
-
if (
|
|
45
|
-
respectPrefersColorScheme &&
|
|
46
|
-
window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
47
|
-
) {
|
|
48
|
-
setDataThemeAttribute('dark');
|
|
49
|
-
} else if (
|
|
50
|
-
respectPrefersColorScheme &&
|
|
51
|
-
window.matchMedia('(prefers-color-scheme: light)').matches
|
|
52
|
-
) {
|
|
53
|
-
setDataThemeAttribute('light');
|
|
54
|
-
} else {
|
|
55
|
-
setDataThemeAttribute(defaultMode === 'dark' ? 'dark' : 'light');
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
})();`;
|
|
59
|
-
}; // Duplicated constant. Unfortunately we can't import it from theme-common, as we need to support older nodejs versions without ESM support
|
|
60
|
-
// TODO: import from theme-common once we only support Node.js with ESM support
|
|
61
|
-
// + move all those announcementBar stuff there too
|
|
62
|
-
|
|
63
|
-
export const AnnouncementBarDismissStorageKey =
|
|
64
|
-
'docusaurus.announcement.dismiss';
|
|
65
|
-
const AnnouncementBarDismissDataAttribute =
|
|
66
|
-
'data-announcement-bar-initially-dismissed'; // We always render the announcement bar html on the server, to prevent layout shifts on React hydration
|
|
67
|
-
// The theme can use CSS + the data attribute to hide the announcement bar asap (before React hydration)
|
|
68
|
-
|
|
69
|
-
const AnnouncementBarInlineJavaScript = `
|
|
70
|
-
(function() {
|
|
71
|
-
function isDismissed() {
|
|
72
|
-
try {
|
|
73
|
-
return localStorage.getItem('${AnnouncementBarDismissStorageKey}') === 'true';
|
|
74
|
-
} catch (err) {}
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
document.documentElement.setAttribute('${AnnouncementBarDismissDataAttribute}', isDismissed());
|
|
78
|
-
})();`;
|
|
79
|
-
|
|
80
|
-
function getInfimaCSSFile(direction) {
|
|
81
|
-
return `infima/dist/css/default/default${
|
|
82
|
-
direction === 'rtl' ? '-rtl' : ''
|
|
83
|
-
}.css`;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export default function docusaurusThemeClassic(
|
|
87
|
-
context, // TODO: LoadContext is missing some of properties
|
|
88
|
-
options,
|
|
89
|
-
) {
|
|
90
|
-
const {
|
|
91
|
-
siteConfig: {themeConfig: roughlyTypedThemeConfig},
|
|
92
|
-
i18n: {currentLocale, localeConfigs},
|
|
93
|
-
} = context;
|
|
94
|
-
const themeConfig = roughlyTypedThemeConfig || {};
|
|
95
|
-
const {
|
|
96
|
-
announcementBar,
|
|
97
|
-
colorMode,
|
|
98
|
-
prism: {additionalLanguages = []} = {},
|
|
99
|
-
} = themeConfig;
|
|
100
|
-
const {customCss} = options || {};
|
|
101
|
-
const {direction} = localeConfigs[currentLocale];
|
|
102
|
-
return {
|
|
103
|
-
name: 'docusaurus-theme-classic',
|
|
104
|
-
|
|
105
|
-
/*
|
|
106
|
-
Does not seem needed: webpack can already hot reload theme files
|
|
107
|
-
getPathsToWatch() {
|
|
108
|
-
return [
|
|
109
|
-
path.join(__dirname, '..', 'lib'),
|
|
110
|
-
path.join(__dirname, '..', 'lib-next'),
|
|
111
|
-
];
|
|
112
|
-
},
|
|
113
|
-
*/
|
|
114
|
-
getThemePath() {
|
|
115
|
-
return path.join(__dirname, '..', 'lib-next', 'theme');
|
|
116
|
-
},
|
|
117
|
-
|
|
118
|
-
getTypeScriptThemePath() {
|
|
119
|
-
return path.resolve(__dirname, '..', 'src', 'theme');
|
|
120
|
-
},
|
|
121
|
-
|
|
122
|
-
getTranslationFiles: async () =>
|
|
123
|
-
getTranslationFiles({
|
|
124
|
-
themeConfig,
|
|
125
|
-
}),
|
|
126
|
-
translateThemeConfig,
|
|
127
|
-
getDefaultCodeTranslationMessages: () => {
|
|
128
|
-
return readDefaultCodeTranslationMessages({
|
|
129
|
-
dirPath: path.resolve(__dirname, '..', 'codeTranslations'),
|
|
130
|
-
locale: currentLocale,
|
|
131
|
-
});
|
|
132
|
-
},
|
|
133
|
-
|
|
134
|
-
getClientModules() {
|
|
135
|
-
const modules = [
|
|
136
|
-
require.resolve(getInfimaCSSFile(direction)),
|
|
137
|
-
path.resolve(__dirname, './prism-include-languages'),
|
|
138
|
-
];
|
|
139
|
-
|
|
140
|
-
if (customCss) {
|
|
141
|
-
if (Array.isArray(customCss)) {
|
|
142
|
-
modules.push(...customCss);
|
|
143
|
-
} else {
|
|
144
|
-
modules.push(customCss);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return modules;
|
|
149
|
-
},
|
|
150
|
-
|
|
151
|
-
configureWebpack() {
|
|
152
|
-
const prismLanguages = additionalLanguages
|
|
153
|
-
.map((lang) => `prism-${lang}`)
|
|
154
|
-
.join('|');
|
|
155
|
-
return {
|
|
156
|
-
ignoreWarnings: [
|
|
157
|
-
// See https://github.com/facebook/docusaurus/pull/3382
|
|
158
|
-
(e) => e.message.includes("Can't resolve '@theme-init/hooks/useDocs"),
|
|
159
|
-
],
|
|
160
|
-
plugins: [
|
|
161
|
-
new ContextReplacementPlugin(
|
|
162
|
-
/prismjs[\\/]components$/,
|
|
163
|
-
new RegExp(`^./(${prismLanguages})$`),
|
|
164
|
-
),
|
|
165
|
-
],
|
|
166
|
-
};
|
|
167
|
-
},
|
|
168
|
-
|
|
169
|
-
configurePostCss(postCssOptions) {
|
|
170
|
-
if (direction === 'rtl') {
|
|
171
|
-
const resolvedInfimaFile = require.resolve(getInfimaCSSFile(direction));
|
|
172
|
-
|
|
173
|
-
const plugin = {
|
|
174
|
-
postcssPlugin: 'RtlCssPlugin',
|
|
175
|
-
prepare: (result) => {
|
|
176
|
-
const file = result.root?.source?.input?.file; // Skip Infima as we are using the its RTL version.
|
|
177
|
-
|
|
178
|
-
if (file === resolvedInfimaFile) {
|
|
179
|
-
return {};
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return rtlcss(result.root);
|
|
183
|
-
},
|
|
184
|
-
};
|
|
185
|
-
postCssOptions.plugins.push(plugin);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
return postCssOptions;
|
|
189
|
-
},
|
|
190
|
-
|
|
191
|
-
injectHtmlTags() {
|
|
192
|
-
return {
|
|
193
|
-
preBodyTags: [
|
|
194
|
-
{
|
|
195
|
-
tagName: 'script',
|
|
196
|
-
innerHTML: `
|
|
197
|
-
${noFlashColorMode(colorMode)}
|
|
198
|
-
${announcementBar ? AnnouncementBarInlineJavaScript : ''}
|
|
199
|
-
`,
|
|
200
|
-
},
|
|
201
|
-
],
|
|
202
|
-
};
|
|
203
|
-
},
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
const swizzleAllowedComponents = [
|
|
207
|
-
'CodeBlock',
|
|
208
|
-
'DocSidebar',
|
|
209
|
-
'Footer',
|
|
210
|
-
'NotFound',
|
|
211
|
-
'SearchBar',
|
|
212
|
-
'IconArrow',
|
|
213
|
-
'IconEdit',
|
|
214
|
-
'IconMenu',
|
|
215
|
-
'hooks/useTheme',
|
|
216
|
-
'prism-include-languages',
|
|
217
|
-
];
|
|
218
|
-
export function getSwizzleComponentList() {
|
|
219
|
-
return swizzleAllowedComponents;
|
|
220
|
-
}
|
|
221
|
-
export {validateThemeConfig} from './validateThemeConfig';
|
|
@@ -1,103 +0,0 @@
|
|
|
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
|
-
/**
|
|
9
|
-
* Styles for React Toggle
|
|
10
|
-
* copied over because we want to allow user to swizzle it and modify the css
|
|
11
|
-
* and also to make sure its compatible with our dark mode
|
|
12
|
-
* https://github.com/aaronshaf/react-toggle/blob/master/style.css
|
|
13
|
-
*/
|
|
14
|
-
.react-toggle {
|
|
15
|
-
touch-action: pan-x;
|
|
16
|
-
position: relative;
|
|
17
|
-
cursor: pointer;
|
|
18
|
-
user-select: none;
|
|
19
|
-
-webkit-tap-highlight-color: transparent;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.react-toggle-screenreader-only {
|
|
23
|
-
border: 0;
|
|
24
|
-
clip: rect(0 0 0 0);
|
|
25
|
-
height: 1px;
|
|
26
|
-
margin: -1px;
|
|
27
|
-
overflow: hidden;
|
|
28
|
-
position: absolute;
|
|
29
|
-
width: 1px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.react-toggle--disabled {
|
|
33
|
-
cursor: not-allowed;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.react-toggle-track {
|
|
37
|
-
width: 50px;
|
|
38
|
-
height: 24px;
|
|
39
|
-
border-radius: 30px;
|
|
40
|
-
background-color: #4d4d4d;
|
|
41
|
-
transition: all 0.2s ease;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.react-toggle-track-check {
|
|
45
|
-
position: absolute;
|
|
46
|
-
width: 14px;
|
|
47
|
-
height: 10px;
|
|
48
|
-
top: 0px;
|
|
49
|
-
bottom: 0px;
|
|
50
|
-
margin: auto 0;
|
|
51
|
-
left: 8px;
|
|
52
|
-
opacity: 0;
|
|
53
|
-
transition: opacity 0.25s ease;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
[data-theme='dark'] .react-toggle .react-toggle-track-check,
|
|
57
|
-
.react-toggle--checked .react-toggle-track-check {
|
|
58
|
-
opacity: 1;
|
|
59
|
-
transition: opacity 0.25s ease;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.react-toggle-track-x {
|
|
63
|
-
position: absolute;
|
|
64
|
-
width: 10px;
|
|
65
|
-
height: 10px;
|
|
66
|
-
top: 0px;
|
|
67
|
-
bottom: 0px;
|
|
68
|
-
margin: auto 0;
|
|
69
|
-
right: 10px;
|
|
70
|
-
opacity: 1;
|
|
71
|
-
transition: opacity 0.25s ease;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
[data-theme='dark'] .react-toggle .react-toggle-track-x,
|
|
75
|
-
.react-toggle--checked .react-toggle-track-x {
|
|
76
|
-
opacity: 0;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.react-toggle-thumb {
|
|
80
|
-
position: absolute;
|
|
81
|
-
top: 1px;
|
|
82
|
-
left: 1px;
|
|
83
|
-
width: 22px;
|
|
84
|
-
height: 22px;
|
|
85
|
-
border: 1px solid #4d4d4d;
|
|
86
|
-
border-radius: 50%;
|
|
87
|
-
background-color: #fafafa;
|
|
88
|
-
transition: all 0.25s ease;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
[data-theme='dark'] .react-toggle .react-toggle-thumb,
|
|
92
|
-
.react-toggle--checked .react-toggle-thumb {
|
|
93
|
-
left: 27px;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.react-toggle--focus .react-toggle-thumb,
|
|
97
|
-
.react-toggle:hover .react-toggle-thumb {
|
|
98
|
-
box-shadow: 0px 0px 2px 3px var(--ifm-color-primary);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb {
|
|
102
|
-
box-shadow: 0px 0px 5px 5px var(--ifm-color-primary);
|
|
103
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/
|
|
7
|
-
import {useAllDocsData, useActivePluginAndVersion} from '@theme/hooks/useDocs';
|
|
8
|
-
import {
|
|
9
|
-
useDocsPreferredVersionByPluginId,
|
|
10
|
-
DEFAULT_SEARCH_TAG,
|
|
11
|
-
docVersionSearchTag,
|
|
12
|
-
} from '@docusaurus/theme-common';
|
|
13
|
-
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
14
|
-
// We may want to support multiple search engines, don't couple that to Algolia/DocSearch
|
|
15
|
-
// Maybe users will want to use its own search engine solution
|
|
16
|
-
export default function useContextualSearchFilters() {
|
|
17
|
-
const {i18n} = useDocusaurusContext();
|
|
18
|
-
const allDocsData = useAllDocsData();
|
|
19
|
-
const activePluginAndVersion = useActivePluginAndVersion();
|
|
20
|
-
const docsPreferredVersionByPluginId = useDocsPreferredVersionByPluginId();
|
|
21
|
-
|
|
22
|
-
function getDocPluginTags(pluginId) {
|
|
23
|
-
const activeVersion =
|
|
24
|
-
activePluginAndVersion?.activePlugin?.pluginId === pluginId
|
|
25
|
-
? activePluginAndVersion.activeVersion
|
|
26
|
-
: undefined;
|
|
27
|
-
const preferredVersion = docsPreferredVersionByPluginId[pluginId];
|
|
28
|
-
const latestVersion = allDocsData[pluginId].versions.find((v) => v.isLast);
|
|
29
|
-
const version = activeVersion ?? preferredVersion ?? latestVersion;
|
|
30
|
-
return docVersionSearchTag(pluginId, version.name);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const tags = [
|
|
34
|
-
DEFAULT_SEARCH_TAG,
|
|
35
|
-
...Object.keys(allDocsData).map(getDocPluginTags),
|
|
36
|
-
];
|
|
37
|
-
return {
|
|
38
|
-
locale: i18n.currentLocale,
|
|
39
|
-
tags,
|
|
40
|
-
};
|
|
41
|
-
}
|