@docusaurus/theme-classic 2.0.0-beta.16 → 2.0.0-beta.19
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/lib/admonitions.css +4 -0
- package/lib/default.css +3038 -0
- package/lib/getSwizzleConfig.js +177 -36
- package/lib/index.js +10 -15
- package/lib/nprogress.css +41 -0
- package/lib/nprogress.js +46 -0
- package/lib/theme-classic.d.ts +600 -76
- package/lib/translations.js +12 -2
- package/lib/validateThemeConfig.js +77 -28
- package/lib-next/theme/BackToTopButton/index.js +6 -104
- package/lib-next/theme/BlogArchivePage/index.js +14 -10
- package/lib-next/theme/BlogLayout/index.js +1 -5
- package/lib-next/theme/BlogListPage/index.js +34 -13
- package/lib-next/theme/BlogListPaginator/index.js +25 -28
- package/lib-next/theme/BlogPostAuthor/index.js +16 -7
- package/lib-next/theme/BlogPostItem/index.js +6 -6
- package/lib-next/theme/BlogPostItem/styles.module.css +9 -0
- package/lib-next/theme/BlogPostPage/index.js +56 -45
- package/lib-next/theme/BlogPostPaginator/index.js +25 -28
- package/lib-next/theme/BlogSidebar/Desktop/index.js +41 -0
- package/lib-next/theme/BlogSidebar/{styles.module.css → Desktop/styles.module.css} +1 -2
- package/lib-next/theme/BlogSidebar/Mobile/index.js +36 -0
- package/lib-next/theme/BlogSidebar/index.js +11 -31
- package/lib-next/theme/BlogTagsListPage/index.js +17 -14
- package/lib-next/theme/BlogTagsPostsPage/index.js +43 -38
- package/lib-next/theme/CodeBlock/Container/index.js +29 -0
- package/lib-next/theme/CodeBlock/Container/styles.module.css +14 -0
- package/lib-next/theme/CodeBlock/Content/Element.js +23 -0
- package/lib-next/theme/CodeBlock/Content/String.js +104 -0
- package/lib-next/theme/CodeBlock/{styles.module.css → Content/styles.module.css} +39 -29
- package/lib-next/theme/CodeBlock/CopyButton/index.js +61 -0
- package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +47 -0
- package/lib-next/theme/CodeBlock/Line/index.js +49 -0
- package/lib-next/theme/CodeBlock/Line/styles.module.css +51 -0
- package/lib-next/theme/CodeBlock/WordWrapButton/index.js +40 -0
- package/lib-next/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
- package/lib-next/theme/CodeBlock/index.js +26 -164
- package/lib-next/theme/ColorModeToggle/index.js +62 -0
- package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
- package/lib-next/theme/Details/index.js +1 -1
- package/lib-next/theme/DocBreadcrumbs/index.js +63 -19
- package/lib-next/theme/DocBreadcrumbs/styles.module.css +8 -15
- package/lib-next/theme/DocCard/index.js +17 -15
- package/lib-next/theme/DocCard/styles.module.css +8 -17
- package/lib-next/theme/DocCardList/index.js +20 -6
- package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +30 -9
- package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +8 -0
- package/lib-next/theme/DocItem/index.js +85 -67
- package/lib-next/theme/DocItem/styles.module.css +6 -0
- package/lib-next/theme/DocPage/Layout/Main/index.js +29 -0
- package/lib-next/theme/DocPage/Layout/Main/styles.module.css +28 -0
- package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +34 -0
- package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
- package/lib-next/theme/DocPage/Layout/Sidebar/index.js +68 -0
- package/lib-next/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
- package/lib-next/theme/DocPage/Layout/index.js +34 -0
- package/lib-next/theme/{BlogPostAuthor/styles.module.css → DocPage/Layout/index.module.css} +6 -3
- package/lib-next/theme/DocPage/index.js +30 -149
- package/lib-next/theme/DocPaginator/index.js +25 -28
- package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
- package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
- package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
- package/lib-next/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
- package/lib-next/theme/DocSidebar/Desktop/index.js +36 -0
- package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
- package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
- package/lib-next/theme/DocSidebar/index.js +6 -113
- package/lib-next/theme/DocSidebarItem/Category.js +197 -0
- package/lib-next/theme/DocSidebarItem/Html.js +27 -0
- package/lib-next/theme/DocSidebarItem/{styles.module.css → Html.module.css} +0 -0
- package/lib-next/theme/DocSidebarItem/Link.js +53 -0
- package/lib-next/theme/DocSidebarItem/Link.module.css +10 -0
- package/lib-next/theme/DocSidebarItem/index.js +4 -245
- package/lib-next/theme/DocSidebarItems/index.js +1 -6
- package/lib-next/theme/DocTagDocListPage/index.js +40 -33
- package/lib-next/theme/DocTagsListPage/index.js +21 -16
- package/lib-next/theme/DocVersionBanner/index.js +2 -2
- package/lib-next/theme/Footer/Copyright/index.js +18 -0
- package/lib-next/theme/Footer/Layout/index.js +26 -0
- package/lib-next/theme/Footer/LinkItem/index.js +33 -0
- package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
- package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
- package/lib-next/theme/Footer/Links/index.js +17 -0
- package/lib-next/theme/Footer/Logo/index.js +38 -0
- package/lib-next/theme/Footer/{styles.module.css → Logo/styles.module.css} +0 -0
- package/lib-next/theme/Footer/index.js +11 -163
- package/lib-next/theme/Heading/index.js +10 -24
- package/lib-next/theme/IconDarkMode/index.js +17 -0
- package/lib-next/theme/IconExternalLink/styles.module.css +0 -2
- package/lib-next/theme/IconHome/index.js +17 -0
- package/lib-next/theme/IconLanguage/index.js +3 -3
- package/lib-next/theme/IconLightMode/index.js +17 -0
- package/lib-next/theme/LastUpdated/index.js +1 -0
- package/lib-next/theme/Layout/index.js +15 -10
- package/lib-next/theme/LayoutProviders/index.js +5 -4
- package/lib-next/theme/MDXComponents/A.js +11 -0
- package/lib-next/theme/MDXComponents/Code.js +28 -0
- package/lib-next/theme/MDXComponents/Details.js +20 -0
- package/lib-next/theme/MDXComponents/Head.js +26 -0
- package/lib-next/theme/MDXComponents/Heading.js +11 -0
- package/lib-next/theme/MDXComponents/Img.js +24 -0
- package/{src/theme/MDXComponents/styles.css → lib-next/theme/MDXComponents/Img.module.css} +1 -6
- package/lib-next/theme/MDXComponents/Pre.js +18 -0
- package/lib-next/theme/MDXComponents/Ul.js +21 -0
- package/lib-next/theme/MDXComponents/index.js +22 -57
- package/lib-next/theme/MDXContent/index.js +12 -0
- package/lib-next/theme/MDXPage/index.js +33 -28
- package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
- package/lib-next/theme/Navbar/Content/index.js +75 -0
- package/lib-next/theme/Navbar/Content/styles.module.css +15 -0
- package/lib-next/theme/Navbar/Layout/index.js +54 -0
- package/{src/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +0 -13
- package/lib-next/theme/Navbar/Logo/index.js +17 -0
- package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
- package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
- package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
- package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
- package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
- package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
- package/lib-next/theme/Navbar/Search/index.js +11 -0
- package/lib-next/theme/Navbar/Search/styles.module.css +20 -0
- package/lib-next/theme/Navbar/index.js +6 -271
- package/lib-next/theme/NavbarItem/ComponentTypes.js +27 -0
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +2 -6
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +11 -28
- package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +10 -42
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +25 -29
- package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +2 -9
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +14 -3
- package/lib-next/theme/NavbarItem/HtmlNavbarItem.js +30 -0
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/index.js +5 -10
- package/lib-next/theme/NavbarItem/NavbarNavLink.js +49 -35
- package/lib-next/theme/NavbarItem/SearchNavbarItem.js +6 -1
- package/lib-next/theme/NavbarItem/index.js +4 -23
- package/lib-next/theme/NavbarItem/utils.js +2 -1
- package/lib-next/theme/NotFound.js +38 -33
- package/lib-next/theme/PaginatorNavLink/index.js +8 -2
- package/lib-next/theme/SearchMetadata/index.js +9 -0
- package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +19 -33
- package/lib-next/theme/SkipToContent/index.js +3 -29
- package/lib-next/theme/TOCCollapsible/CollapseButton.js +29 -0
- package/{src/theme/TOCCollapsible/styles.module.css → lib-next/theme/TOCCollapsible/CollapseButton.module.css} +1 -22
- package/lib-next/theme/TOCCollapsible/index.js +4 -16
- package/lib-next/theme/TOCCollapsible/index.module.css +31 -0
- package/lib-next/theme/TOCItems/Tree.js +40 -0
- package/lib-next/theme/TOCItems/index.js +3 -34
- package/lib-next/theme/TabItem/index.js +3 -1
- package/lib-next/theme/TabItem/styles.module.css +10 -0
- package/lib-next/theme/Tabs/__tests__/index.test.js +8 -8
- package/lib-next/theme/Tabs/index.js +5 -5
- package/lib-next/theme/Tabs/styles.module.css +4 -0
- package/lib-next/theme/Tag/index.js +6 -7
- package/lib-next/theme/TagsListInline/index.js +1 -1
- package/lib-next/theme/ThemedImage/index.js +3 -3
- package/package.json +25 -20
- package/src/admonitions.css +4 -0
- package/src/getSwizzleConfig.ts +173 -22
- package/src/index.ts +14 -15
- package/src/nprogress.css +41 -0
- package/src/nprogress.ts +31 -0
- package/src/theme/BackToTopButton/index.tsx +5 -114
- package/src/theme/BlogArchivePage/index.tsx +18 -17
- package/src/theme/BlogLayout/index.tsx +1 -5
- package/src/theme/BlogListPage/index.tsx +32 -13
- package/src/theme/BlogListPaginator/index.tsx +25 -28
- package/src/theme/BlogPostAuthor/index.tsx +14 -8
- package/src/theme/BlogPostItem/index.tsx +6 -6
- package/src/theme/BlogPostItem/styles.module.css +9 -0
- package/src/theme/BlogPostPage/index.tsx +55 -48
- package/src/theme/BlogPostPaginator/index.tsx +25 -28
- package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
- package/src/theme/BlogSidebar/{styles.module.css → Desktop/styles.module.css} +1 -2
- package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
- package/src/theme/BlogSidebar/index.tsx +10 -31
- package/src/theme/BlogTagsListPage/index.tsx +17 -14
- package/src/theme/BlogTagsPostsPage/index.tsx +46 -36
- package/src/theme/CodeBlock/Container/index.tsx +35 -0
- package/src/theme/CodeBlock/Container/styles.module.css +14 -0
- package/src/theme/CodeBlock/Content/Element.tsx +30 -0
- package/src/theme/CodeBlock/Content/String.tsx +111 -0
- package/src/theme/CodeBlock/{styles.module.css → Content/styles.module.css} +39 -29
- package/src/theme/CodeBlock/CopyButton/index.tsx +67 -0
- package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
- package/src/theme/CodeBlock/Line/index.tsx +48 -0
- package/src/theme/CodeBlock/Line/styles.module.css +51 -0
- package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
- package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
- package/src/theme/CodeBlock/index.tsx +29 -165
- package/src/theme/ColorModeToggle/index.tsx +67 -0
- package/src/theme/ColorModeToggle/styles.module.css +35 -0
- package/src/theme/Details/index.tsx +1 -1
- package/src/theme/DocBreadcrumbs/index.tsx +65 -16
- package/src/theme/DocBreadcrumbs/styles.module.css +8 -15
- package/src/theme/DocCard/index.tsx +24 -17
- package/src/theme/DocCard/styles.module.css +8 -17
- package/src/theme/DocCardList/index.tsx +19 -10
- package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +34 -7
- package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +8 -0
- package/src/theme/DocItem/index.tsx +72 -56
- package/src/theme/DocItem/styles.module.css +6 -0
- package/src/theme/DocPage/Layout/Main/index.tsx +37 -0
- package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
- package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
- package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
- package/src/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
- package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
- package/src/theme/{BlogPostAuthor/styles.module.css → DocPage/Layout/index.module.css} +6 -3
- package/src/theme/DocPage/Layout/index.tsx +39 -0
- package/src/theme/DocPage/index.tsx +30 -160
- package/src/theme/DocPaginator/index.tsx +25 -28
- package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
- package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
- package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
- package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
- package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
- package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
- package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
- package/src/theme/DocSidebar/index.tsx +6 -121
- package/src/theme/DocSidebarItem/Category.tsx +210 -0
- package/src/theme/DocSidebarItem/{styles.module.css → Html.module.css} +0 -0
- package/src/theme/DocSidebarItem/Html.tsx +34 -0
- package/src/theme/DocSidebarItem/Link.module.css +10 -0
- package/src/theme/DocSidebarItem/Link.tsx +58 -0
- package/src/theme/DocSidebarItem/index.tsx +4 -260
- package/src/theme/DocSidebarItems/index.tsx +1 -6
- package/src/theme/DocTagDocListPage/index.tsx +40 -33
- package/src/theme/DocTagsListPage/index.tsx +21 -16
- package/src/theme/DocVersionBanner/index.tsx +5 -6
- package/src/theme/Footer/Copyright/index.tsx +20 -0
- package/src/theme/Footer/Layout/index.tsx +34 -0
- package/src/theme/Footer/LinkItem/index.tsx +36 -0
- package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
- package/src/theme/Footer/Links/Simple/index.tsx +42 -0
- package/src/theme/Footer/Links/index.tsx +21 -0
- package/src/theme/Footer/Logo/index.tsx +41 -0
- package/src/theme/Footer/{styles.module.css → Logo/styles.module.css} +0 -0
- package/src/theme/Footer/index.tsx +12 -186
- package/src/theme/Heading/index.tsx +10 -22
- package/src/theme/IconDarkMode/index.tsx +20 -0
- package/src/theme/IconExternalLink/styles.module.css +0 -2
- package/src/theme/IconHome/index.tsx +20 -0
- package/src/theme/IconLanguage/index.tsx +3 -3
- package/src/theme/IconLightMode/index.tsx +20 -0
- package/src/theme/LastUpdated/index.tsx +1 -0
- package/src/theme/Layout/index.tsx +15 -10
- package/src/theme/LayoutProviders/index.tsx +5 -4
- package/src/theme/MDXComponents/A.tsx +14 -0
- package/src/theme/MDXComponents/Code.tsx +37 -0
- package/src/theme/MDXComponents/Details.tsx +25 -0
- package/src/theme/MDXComponents/Head.tsx +29 -0
- package/src/theme/MDXComponents/Heading.tsx +14 -0
- package/{lib-next/theme/MDXComponents/styles.css → src/theme/MDXComponents/Img.module.css} +1 -6
- package/src/theme/MDXComponents/Img.tsx +26 -0
- package/src/theme/MDXComponents/Pre.tsx +22 -0
- package/src/theme/MDXComponents/Ul.tsx +24 -0
- package/src/theme/MDXComponents/index.tsx +23 -66
- package/src/theme/MDXContent/index.tsx +15 -0
- package/src/theme/MDXPage/index.tsx +33 -28
- package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
- package/src/theme/Navbar/Content/index.tsx +86 -0
- package/src/theme/Navbar/Content/styles.module.css +15 -0
- package/src/theme/Navbar/Layout/index.tsx +57 -0
- package/{lib-next/theme/Navbar → src/theme/Navbar/Layout}/styles.module.css +0 -13
- package/src/theme/Navbar/Logo/index.tsx +19 -0
- package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
- package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
- package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
- package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
- package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
- package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
- package/src/theme/Navbar/Search/index.tsx +15 -0
- package/src/theme/Navbar/Search/styles.module.css +20 -0
- package/src/theme/Navbar/index.tsx +6 -286
- package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +2 -2
- package/src/theme/NavbarItem/DocNavbarItem.tsx +13 -32
- package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +9 -49
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +26 -33
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +3 -10
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +15 -3
- package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx +5 -9
- package/src/theme/NavbarItem/NavbarNavLink.tsx +41 -29
- package/src/theme/NavbarItem/SearchNavbarItem.tsx +6 -1
- package/src/theme/NavbarItem/index.tsx +9 -39
- package/src/theme/NavbarItem/utils.ts +5 -2
- package/src/theme/NotFound.tsx +38 -33
- package/src/theme/PaginatorNavLink/index.tsx +8 -2
- package/src/theme/SearchMetadata/index.tsx +9 -0
- package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +19 -33
- package/src/theme/SkipToContent/index.tsx +3 -29
- package/{lib-next/theme/TOCCollapsible/styles.module.css → src/theme/TOCCollapsible/CollapseButton.module.css} +1 -22
- package/src/theme/TOCCollapsible/CollapseButton.tsx +35 -0
- package/src/theme/TOCCollapsible/index.module.css +31 -0
- package/src/theme/TOCCollapsible/index.tsx +4 -17
- package/src/theme/TOCItems/Tree.tsx +46 -0
- package/src/theme/TOCItems/index.tsx +2 -41
- package/src/theme/TabItem/index.tsx +7 -1
- package/src/theme/TabItem/styles.module.css +10 -0
- package/src/theme/Tabs/index.tsx +8 -9
- package/src/theme/Tabs/styles.module.css +4 -0
- package/src/theme/Tag/index.tsx +6 -8
- package/src/theme/TagsListInline/index.tsx +1 -1
- package/src/theme/ThemedImage/index.tsx +4 -3
- package/src/theme-classic.d.ts +600 -76
- package/src/translations.ts +12 -6
- package/src/validateThemeConfig.ts +90 -39
- package/lib/types.d.ts +0 -11
- package/lib-next/theme/DocPage/styles.module.css +0 -86
- package/lib-next/theme/DocSidebar/styles.module.css +0 -107
- package/lib-next/theme/Seo/index.js +0 -40
- package/lib-next/theme/Toggle/index.js +0 -100
- package/lib-next/theme/Toggle/styles.module.css +0 -106
- package/src/theme/DocPage/styles.module.css +0 -86
- package/src/theme/DocSidebar/styles.module.css +0 -107
- package/src/theme/Seo/index.tsx +0 -49
- package/src/theme/Toggle/index.tsx +0 -117
- package/src/theme/Toggle/styles.module.css +0 -106
- package/src/types.d.ts +0 -11
package/src/translations.ts
CHANGED
|
@@ -50,8 +50,11 @@ function getNavbarTranslationFile(navbar: Navbar): TranslationFileContent {
|
|
|
50
50
|
}
|
|
51
51
|
function translateNavbar(
|
|
52
52
|
navbar: Navbar,
|
|
53
|
-
navbarTranslations: TranslationFileContent,
|
|
53
|
+
navbarTranslations: TranslationFileContent | undefined,
|
|
54
54
|
): Navbar {
|
|
55
|
+
if (!navbarTranslations) {
|
|
56
|
+
return navbar;
|
|
57
|
+
}
|
|
55
58
|
return {
|
|
56
59
|
...navbar,
|
|
57
60
|
title: navbarTranslations.title?.message ?? navbar.title,
|
|
@@ -76,7 +79,7 @@ function translateNavbar(
|
|
|
76
79
|
function isMultiColumnFooterLinks(
|
|
77
80
|
links: MultiColumnFooter['links'] | SimpleFooter['links'],
|
|
78
81
|
): links is MultiColumnFooter['links'] {
|
|
79
|
-
return links.length > 0 && 'title' in links[0]
|
|
82
|
+
return links.length > 0 && 'title' in links[0]!;
|
|
80
83
|
}
|
|
81
84
|
|
|
82
85
|
function getFooterTranslationFile(footer: Footer): TranslationFileContent {
|
|
@@ -121,8 +124,11 @@ function getFooterTranslationFile(footer: Footer): TranslationFileContent {
|
|
|
121
124
|
}
|
|
122
125
|
function translateFooter(
|
|
123
126
|
footer: Footer,
|
|
124
|
-
footerTranslations: TranslationFileContent,
|
|
127
|
+
footerTranslations: TranslationFileContent | undefined,
|
|
125
128
|
): Footer {
|
|
129
|
+
if (!footerTranslations) {
|
|
130
|
+
return footer;
|
|
131
|
+
}
|
|
126
132
|
const links = isMultiColumnFooterLinks(footer.links)
|
|
127
133
|
? footer.links.map((link) => ({
|
|
128
134
|
...link,
|
|
@@ -178,7 +184,7 @@ export function translateThemeConfig({
|
|
|
178
184
|
themeConfig: ThemeConfig;
|
|
179
185
|
translationFiles: TranslationFile[];
|
|
180
186
|
}): ThemeConfig {
|
|
181
|
-
const translationFilesMap:
|
|
187
|
+
const translationFilesMap: {[fileName: string]: TranslationFile} = _.keyBy(
|
|
182
188
|
translationFiles,
|
|
183
189
|
(f) => f.path,
|
|
184
190
|
);
|
|
@@ -187,10 +193,10 @@ export function translateThemeConfig({
|
|
|
187
193
|
...themeConfig,
|
|
188
194
|
navbar: translateNavbar(
|
|
189
195
|
themeConfig.navbar,
|
|
190
|
-
translationFilesMap.navbar
|
|
196
|
+
translationFilesMap.navbar?.content,
|
|
191
197
|
),
|
|
192
198
|
footer: themeConfig.footer
|
|
193
|
-
? translateFooter(themeConfig.footer, translationFilesMap.footer
|
|
199
|
+
? translateFooter(themeConfig.footer, translationFilesMap.footer?.content)
|
|
194
200
|
: undefined,
|
|
195
201
|
};
|
|
196
202
|
}
|
|
@@ -5,28 +5,36 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
import defaultPrismTheme from 'prism-react-renderer/themes/palenight';
|
|
8
9
|
import {Joi, URISchema} from '@docusaurus/utils-validation';
|
|
9
|
-
import type {
|
|
10
|
+
import type {
|
|
11
|
+
ThemeConfig,
|
|
12
|
+
ThemeConfigValidationContext,
|
|
13
|
+
} from '@docusaurus/types';
|
|
10
14
|
|
|
11
15
|
const DEFAULT_DOCS_CONFIG = {
|
|
12
16
|
versionPersistence: 'localStorage',
|
|
17
|
+
sidebar: {
|
|
18
|
+
hideable: false,
|
|
19
|
+
autoCollapseCategories: false,
|
|
20
|
+
},
|
|
13
21
|
};
|
|
14
22
|
const DocsSchema = Joi.object({
|
|
15
23
|
versionPersistence: Joi.string()
|
|
16
24
|
.equal('localStorage', 'none')
|
|
17
25
|
.default(DEFAULT_DOCS_CONFIG.versionPersistence),
|
|
26
|
+
sidebar: Joi.object({
|
|
27
|
+
hideable: Joi.bool().default(DEFAULT_DOCS_CONFIG.sidebar.hideable),
|
|
28
|
+
autoCollapseCategories: Joi.bool().default(
|
|
29
|
+
DEFAULT_DOCS_CONFIG.sidebar.autoCollapseCategories,
|
|
30
|
+
),
|
|
31
|
+
}).default(DEFAULT_DOCS_CONFIG.sidebar),
|
|
18
32
|
}).default(DEFAULT_DOCS_CONFIG);
|
|
19
33
|
|
|
20
34
|
const DEFAULT_COLOR_MODE_CONFIG = {
|
|
21
35
|
defaultMode: 'light',
|
|
22
36
|
disableSwitch: false,
|
|
23
37
|
respectPrefersColorScheme: false,
|
|
24
|
-
switchConfig: {
|
|
25
|
-
darkIcon: '🌜',
|
|
26
|
-
darkIconStyle: {},
|
|
27
|
-
lightIcon: '🌞',
|
|
28
|
-
lightIconStyle: {},
|
|
29
|
-
},
|
|
30
38
|
};
|
|
31
39
|
|
|
32
40
|
export const DEFAULT_CONFIG = {
|
|
@@ -35,13 +43,19 @@ export const DEFAULT_CONFIG = {
|
|
|
35
43
|
metadata: [],
|
|
36
44
|
prism: {
|
|
37
45
|
additionalLanguages: [],
|
|
46
|
+
theme: defaultPrismTheme,
|
|
47
|
+
magicComments: [
|
|
48
|
+
{
|
|
49
|
+
className: 'theme-code-block-highlighted-line',
|
|
50
|
+
line: 'highlight-next-line',
|
|
51
|
+
block: {start: 'highlight-start', end: 'highlight-end'},
|
|
52
|
+
},
|
|
53
|
+
],
|
|
38
54
|
},
|
|
39
55
|
navbar: {
|
|
40
56
|
hideOnScroll: false,
|
|
41
57
|
items: [],
|
|
42
58
|
},
|
|
43
|
-
hideableSidebar: false,
|
|
44
|
-
autoCollapseSidebarCategories: false,
|
|
45
59
|
tableOfContents: {
|
|
46
60
|
minHeadingLevel: 2,
|
|
47
61
|
maxHeadingLevel: 3,
|
|
@@ -52,8 +66,10 @@ const NavbarItemPosition = Joi.string().equal('left', 'right').default('left');
|
|
|
52
66
|
|
|
53
67
|
const NavbarItemBaseSchema = Joi.object({
|
|
54
68
|
label: Joi.string(),
|
|
69
|
+
html: Joi.string(),
|
|
55
70
|
className: Joi.string(),
|
|
56
71
|
})
|
|
72
|
+
.nand('html', 'label')
|
|
57
73
|
// We allow any unknown attributes on the links (users may need additional
|
|
58
74
|
// attributes like target, aria-role, data-customAttribute...)
|
|
59
75
|
.unknown();
|
|
@@ -92,11 +108,28 @@ const DocSidebarItemSchema = NavbarItemBaseSchema.append({
|
|
|
92
108
|
docsPluginId: Joi.string(),
|
|
93
109
|
});
|
|
94
110
|
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
111
|
+
const HtmlNavbarItemSchema = Joi.object({
|
|
112
|
+
className: Joi.string(),
|
|
113
|
+
type: Joi.string().equal('html').required(),
|
|
114
|
+
value: Joi.string().required(),
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// A temporary workaround to allow users to add custom navbar items
|
|
118
|
+
// See https://github.com/facebook/docusaurus/issues/7227
|
|
119
|
+
const CustomNavbarItemRegexp = /custom-.*/;
|
|
120
|
+
const CustomNavbarItemSchema = Joi.object({
|
|
121
|
+
type: Joi.string().regex(CustomNavbarItemRegexp).required(),
|
|
122
|
+
}).unknown();
|
|
123
|
+
|
|
124
|
+
const itemWithType = (type: string | RegExp | undefined) => {
|
|
125
|
+
// Because equal(undefined) is not supported :/
|
|
126
|
+
const typeSchema =
|
|
127
|
+
// eslint-disable-next-line no-nested-ternary
|
|
128
|
+
type instanceof RegExp
|
|
129
|
+
? Joi.string().required().regex(type)
|
|
130
|
+
: type
|
|
131
|
+
? Joi.string().required().equal(type)
|
|
132
|
+
: Joi.string().forbidden();
|
|
100
133
|
return Joi.object({
|
|
101
134
|
type: typeSchema,
|
|
102
135
|
})
|
|
@@ -124,6 +157,14 @@ const DropdownSubitemSchema = Joi.object({
|
|
|
124
157
|
is: itemWithType(undefined),
|
|
125
158
|
then: DefaultNavbarItemSchema,
|
|
126
159
|
},
|
|
160
|
+
{
|
|
161
|
+
is: itemWithType('html'),
|
|
162
|
+
then: HtmlNavbarItemSchema,
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
is: itemWithType(CustomNavbarItemRegexp),
|
|
166
|
+
then: CustomNavbarItemSchema,
|
|
167
|
+
},
|
|
127
168
|
{
|
|
128
169
|
is: Joi.alternatives().try(
|
|
129
170
|
itemWithType('dropdown'),
|
|
@@ -195,6 +236,14 @@ const NavbarItemSchema = Joi.object({
|
|
|
195
236
|
is: itemWithType('search'),
|
|
196
237
|
then: SearchItemSchema,
|
|
197
238
|
},
|
|
239
|
+
{
|
|
240
|
+
is: itemWithType('html'),
|
|
241
|
+
then: HtmlNavbarItemSchema,
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
is: itemWithType(CustomNavbarItemRegexp),
|
|
245
|
+
then: CustomNavbarItemSchema,
|
|
246
|
+
},
|
|
198
247
|
{
|
|
199
248
|
is: itemWithType(undefined),
|
|
200
249
|
then: Joi.object().when('.', {
|
|
@@ -220,23 +269,12 @@ const ColorModeSchema = Joi.object({
|
|
|
220
269
|
respectPrefersColorScheme: Joi.bool().default(
|
|
221
270
|
DEFAULT_COLOR_MODE_CONFIG.respectPrefersColorScheme,
|
|
222
271
|
),
|
|
223
|
-
switchConfig: Joi.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
darkIconStyle: Joi.object().default(
|
|
228
|
-
DEFAULT_COLOR_MODE_CONFIG.switchConfig.darkIconStyle,
|
|
229
|
-
),
|
|
230
|
-
lightIcon: Joi.string().default(
|
|
231
|
-
DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIcon,
|
|
232
|
-
),
|
|
233
|
-
lightIconStyle: Joi.object().default(
|
|
234
|
-
DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIconStyle,
|
|
235
|
-
),
|
|
236
|
-
}).default(DEFAULT_COLOR_MODE_CONFIG.switchConfig),
|
|
272
|
+
switchConfig: Joi.any().forbidden().messages({
|
|
273
|
+
'any.unknown':
|
|
274
|
+
'colorMode.switchConfig is deprecated. If you want to customize the icons for light and dark mode, swizzle IconLightMode, IconDarkMode, or ColorModeToggle instead.',
|
|
275
|
+
}),
|
|
237
276
|
}).default(DEFAULT_COLOR_MODE_CONFIG);
|
|
238
277
|
|
|
239
|
-
// schema can probably be improved
|
|
240
278
|
const HtmlMetadataSchema = Joi.object({
|
|
241
279
|
id: Joi.string(),
|
|
242
280
|
name: Joi.string(),
|
|
@@ -320,7 +358,7 @@ export const ThemeConfigSchema = Joi.object({
|
|
|
320
358
|
style: Joi.string().equal('dark', 'light').default('light'),
|
|
321
359
|
logo: Joi.object({
|
|
322
360
|
alt: Joi.string().allow(''),
|
|
323
|
-
src: Joi.string(),
|
|
361
|
+
src: Joi.string().required(),
|
|
324
362
|
srcDark: Joi.string(),
|
|
325
363
|
// TODO infer this from reading the image
|
|
326
364
|
width: Joi.alternatives().try(Joi.string(), Joi.number()),
|
|
@@ -346,7 +384,7 @@ export const ThemeConfigSchema = Joi.object({
|
|
|
346
384
|
theme: Joi.object({
|
|
347
385
|
plain: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
|
|
348
386
|
styles: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
|
|
349
|
-
}),
|
|
387
|
+
}).default(DEFAULT_CONFIG.prism.theme),
|
|
350
388
|
darkTheme: Joi.object({
|
|
351
389
|
plain: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
|
|
352
390
|
styles: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
|
|
@@ -355,13 +393,29 @@ export const ThemeConfigSchema = Joi.object({
|
|
|
355
393
|
additionalLanguages: Joi.array()
|
|
356
394
|
.items(Joi.string())
|
|
357
395
|
.default(DEFAULT_CONFIG.prism.additionalLanguages),
|
|
396
|
+
magicComments: Joi.array()
|
|
397
|
+
.items(
|
|
398
|
+
Joi.object({
|
|
399
|
+
className: Joi.string().required(),
|
|
400
|
+
line: Joi.string(),
|
|
401
|
+
block: Joi.object({
|
|
402
|
+
start: Joi.string().required(),
|
|
403
|
+
end: Joi.string().required(),
|
|
404
|
+
}),
|
|
405
|
+
}).or('line', 'block'),
|
|
406
|
+
)
|
|
407
|
+
.default(DEFAULT_CONFIG.prism.magicComments),
|
|
358
408
|
})
|
|
359
409
|
.default(DEFAULT_CONFIG.prism)
|
|
360
410
|
.unknown(),
|
|
361
|
-
hideableSidebar: Joi.
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
),
|
|
411
|
+
hideableSidebar: Joi.forbidden().messages({
|
|
412
|
+
'any.unknown':
|
|
413
|
+
'themeConfig.hideableSidebar has been moved to themeConfig.docs.sidebar.hideable.',
|
|
414
|
+
}),
|
|
415
|
+
autoCollapseSidebarCategories: Joi.forbidden().messages({
|
|
416
|
+
'any.unknown':
|
|
417
|
+
'themeConfig.autoCollapseSidebarCategories has been moved to themeConfig.docs.sidebar.autoCollapseCategories.',
|
|
418
|
+
}),
|
|
365
419
|
sidebarCollapsible: Joi.forbidden().messages({
|
|
366
420
|
'any.unknown':
|
|
367
421
|
'The themeConfig.sidebarCollapsible has been moved to docs plugin options. See: https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs',
|
|
@@ -389,9 +443,6 @@ export const ThemeConfigSchema = Joi.object({
|
|
|
389
443
|
export function validateThemeConfig({
|
|
390
444
|
validate,
|
|
391
445
|
themeConfig,
|
|
392
|
-
}: {
|
|
393
|
-
validate: Validate<ThemeConfig>;
|
|
394
|
-
themeConfig: ThemeConfig;
|
|
395
|
-
}): ValidationResult<ThemeConfig> {
|
|
446
|
+
}: ThemeConfigValidationContext<ThemeConfig>): ThemeConfig {
|
|
396
447
|
return validate(ThemeConfigSchema, themeConfig);
|
|
397
448
|
}
|
package/lib/types.d.ts
DELETED
|
@@ -1,11 +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
|
-
/// <reference types="@docusaurus/module-type-aliases" />
|
|
9
|
-
/// <reference types="@docusaurus/plugin-content-blog" />
|
|
10
|
-
/// <reference types="@docusaurus/plugin-content-docs" />
|
|
11
|
-
/// <reference types="@docusaurus/plugin-content-pages" />
|
|
@@ -1,86 +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
|
-
:root {
|
|
9
|
-
--doc-sidebar-width: 300px;
|
|
10
|
-
--doc-sidebar-hidden-width: 30px;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
:global(.docs-wrapper) {
|
|
14
|
-
display: flex;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.docPage,
|
|
18
|
-
.docMainContainer {
|
|
19
|
-
display: flex;
|
|
20
|
-
width: 100%;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.docSidebarContainer {
|
|
24
|
-
display: none;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@media (min-width: 997px) {
|
|
28
|
-
.docMainContainer {
|
|
29
|
-
flex-grow: 1;
|
|
30
|
-
max-width: calc(100% - var(--doc-sidebar-width));
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.docMainContainerEnhanced {
|
|
34
|
-
max-width: calc(100% - var(--doc-sidebar-hidden-width));
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.docSidebarContainer {
|
|
38
|
-
display: block;
|
|
39
|
-
width: var(--doc-sidebar-width);
|
|
40
|
-
margin-top: calc(-1 * var(--ifm-navbar-height));
|
|
41
|
-
border-right: 1px solid var(--ifm-toc-border-color);
|
|
42
|
-
will-change: width;
|
|
43
|
-
transition: width var(--ifm-transition-fast) ease;
|
|
44
|
-
clip-path: inset(0);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.docSidebarContainerHidden {
|
|
48
|
-
width: var(--doc-sidebar-hidden-width);
|
|
49
|
-
cursor: pointer;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.collapsedDocSidebar {
|
|
53
|
-
position: sticky;
|
|
54
|
-
top: 0;
|
|
55
|
-
height: 100%;
|
|
56
|
-
max-height: 100vh;
|
|
57
|
-
display: flex;
|
|
58
|
-
align-items: center;
|
|
59
|
-
justify-content: center;
|
|
60
|
-
transition: background-color var(--ifm-transition-fast) ease;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.collapsedDocSidebar:hover,
|
|
64
|
-
.collapsedDocSidebar:focus {
|
|
65
|
-
background-color: var(--ifm-color-emphasis-200);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.expandSidebarButtonIcon {
|
|
69
|
-
transform: rotate(0);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
[dir='rtl'] .expandSidebarButtonIcon {
|
|
73
|
-
transform: rotate(180deg);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
[data-theme='dark'] .collapsedDocSidebar:hover,
|
|
77
|
-
[data-theme='dark'] .collapsedDocSidebar:focus {
|
|
78
|
-
background-color: var(--collapse-button-bg-color-dark);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.docItemWrapperEnhanced {
|
|
82
|
-
max-width: calc(
|
|
83
|
-
var(--ifm-container-width) + var(--doc-sidebar-width)
|
|
84
|
-
) !important;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
@@ -1,107 +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
|
-
:root {
|
|
9
|
-
--collapse-button-bg-color-dark: #2e333a;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
@media (min-width: 997px) {
|
|
13
|
-
.sidebar {
|
|
14
|
-
display: flex;
|
|
15
|
-
flex-direction: column;
|
|
16
|
-
max-height: 100vh;
|
|
17
|
-
height: 100%;
|
|
18
|
-
position: sticky;
|
|
19
|
-
top: 0;
|
|
20
|
-
padding-top: var(--ifm-navbar-height);
|
|
21
|
-
width: var(--doc-sidebar-width);
|
|
22
|
-
transition: opacity 50ms ease;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.sidebarWithHideableNavbar {
|
|
26
|
-
padding-top: 0;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.sidebarHidden {
|
|
30
|
-
opacity: 0;
|
|
31
|
-
height: 0;
|
|
32
|
-
overflow: hidden;
|
|
33
|
-
visibility: hidden;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.sidebarLogo {
|
|
37
|
-
display: flex !important;
|
|
38
|
-
align-items: center;
|
|
39
|
-
margin: 0 var(--ifm-navbar-padding-horizontal);
|
|
40
|
-
min-height: var(--ifm-navbar-height);
|
|
41
|
-
max-height: var(--ifm-navbar-height);
|
|
42
|
-
color: inherit !important;
|
|
43
|
-
text-decoration: none !important;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.sidebarLogo img {
|
|
47
|
-
margin-right: 0.5rem;
|
|
48
|
-
height: 2rem;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.menu {
|
|
52
|
-
flex-grow: 1;
|
|
53
|
-
padding: 0.5rem;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.menuWithAnnouncementBar {
|
|
57
|
-
margin-bottom: var(--docusaurus-announcement-bar-height);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.collapseSidebarButton {
|
|
61
|
-
display: block !important;
|
|
62
|
-
background-color: var(--ifm-button-background-color);
|
|
63
|
-
height: 40px;
|
|
64
|
-
position: sticky;
|
|
65
|
-
bottom: 0;
|
|
66
|
-
border-radius: 0;
|
|
67
|
-
border: 1px solid var(--ifm-toc-border-color);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.collapseSidebarButtonIcon {
|
|
71
|
-
transform: rotate(180deg);
|
|
72
|
-
margin-top: 4px;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
[dir='rtl'] .collapseSidebarButtonIcon {
|
|
76
|
-
transform: rotate(0);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
[data-theme='dark'] .collapseSidebarButton {
|
|
80
|
-
background-color: var(--collapse-button-bg-color-dark);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
[data-theme='dark'] .collapseSidebarButton:hover,
|
|
84
|
-
[data-theme='dark'] .collapseSidebarButton:focus {
|
|
85
|
-
background-color: var(--ifm-color-emphasis-200);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.sidebarLogo,
|
|
90
|
-
.collapseSidebarButton {
|
|
91
|
-
display: none;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.sidebarMenuIcon {
|
|
95
|
-
vertical-align: middle;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.sidebarMenuCloseIcon {
|
|
99
|
-
display: inline-flex;
|
|
100
|
-
justify-content: center;
|
|
101
|
-
align-items: center;
|
|
102
|
-
height: 24px;
|
|
103
|
-
font-size: 1.5rem;
|
|
104
|
-
font-weight: var(--ifm-font-weight-bold);
|
|
105
|
-
line-height: 0.9;
|
|
106
|
-
width: 24px;
|
|
107
|
-
}
|
|
@@ -1,40 +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 React from 'react';
|
|
8
|
-
import Head from '@docusaurus/Head';
|
|
9
|
-
import {useTitleFormatter} from '@docusaurus/theme-common';
|
|
10
|
-
import {useBaseUrlUtils} from '@docusaurus/useBaseUrl';
|
|
11
|
-
export default function Seo({title, description, keywords, image, children}) {
|
|
12
|
-
const pageTitle = useTitleFormatter(title);
|
|
13
|
-
const {withBaseUrl} = useBaseUrlUtils();
|
|
14
|
-
const pageImage = image
|
|
15
|
-
? withBaseUrl(image, {
|
|
16
|
-
absolute: true,
|
|
17
|
-
})
|
|
18
|
-
: undefined;
|
|
19
|
-
return (
|
|
20
|
-
<Head>
|
|
21
|
-
{title && <title>{pageTitle}</title>}
|
|
22
|
-
{title && <meta property="og:title" content={pageTitle} />}
|
|
23
|
-
|
|
24
|
-
{description && <meta name="description" content={description} />}
|
|
25
|
-
{description && <meta property="og:description" content={description} />}
|
|
26
|
-
|
|
27
|
-
{keywords && (
|
|
28
|
-
<meta
|
|
29
|
-
name="keywords"
|
|
30
|
-
content={Array.isArray(keywords) ? keywords.join(',') : keywords}
|
|
31
|
-
/>
|
|
32
|
-
)}
|
|
33
|
-
|
|
34
|
-
{pageImage && <meta property="og:image" content={pageImage} />}
|
|
35
|
-
{pageImage && <meta name="twitter:image" content={pageImage} />}
|
|
36
|
-
|
|
37
|
-
{children}
|
|
38
|
-
</Head>
|
|
39
|
-
);
|
|
40
|
-
}
|
|
@@ -1,100 +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 React, {useState, useRef, useEffect, memo} from 'react';
|
|
8
|
-
import {useThemeConfig} from '@docusaurus/theme-common';
|
|
9
|
-
import useIsBrowser from '@docusaurus/useIsBrowser';
|
|
10
|
-
import {translate} from '@docusaurus/Translate';
|
|
11
|
-
import clsx from 'clsx';
|
|
12
|
-
import styles from './styles.module.css'; // Based on react-toggle (https://github.com/aaronshaf/react-toggle/).
|
|
13
|
-
|
|
14
|
-
const ToggleComponent = memo(
|
|
15
|
-
({className, switchConfig, checked: defaultChecked, disabled, onChange}) => {
|
|
16
|
-
const {darkIcon, darkIconStyle, lightIcon, lightIconStyle} = switchConfig;
|
|
17
|
-
const [checked, setChecked] = useState(defaultChecked);
|
|
18
|
-
const [focused, setFocused] = useState(false);
|
|
19
|
-
const inputRef = useRef(null);
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
setChecked(defaultChecked);
|
|
22
|
-
}, [defaultChecked]);
|
|
23
|
-
return (
|
|
24
|
-
<div
|
|
25
|
-
className={clsx(styles.toggle, className, {
|
|
26
|
-
[styles.toggleChecked]: checked,
|
|
27
|
-
[styles.toggleFocused]: focused,
|
|
28
|
-
[styles.toggleDisabled]: disabled,
|
|
29
|
-
})}>
|
|
30
|
-
{/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}
|
|
31
|
-
<div
|
|
32
|
-
className={styles.toggleTrack}
|
|
33
|
-
role="button"
|
|
34
|
-
tabIndex={-1}
|
|
35
|
-
onClick={() => inputRef.current?.click()}>
|
|
36
|
-
<div className={styles.toggleTrackCheck}>
|
|
37
|
-
<span className={styles.toggleIcon} style={darkIconStyle}>
|
|
38
|
-
{darkIcon}
|
|
39
|
-
</span>
|
|
40
|
-
</div>
|
|
41
|
-
<div className={styles.toggleTrackX}>
|
|
42
|
-
<span className={styles.toggleIcon} style={lightIconStyle}>
|
|
43
|
-
{lightIcon}
|
|
44
|
-
</span>
|
|
45
|
-
</div>
|
|
46
|
-
<div className={styles.toggleTrackThumb} />
|
|
47
|
-
</div>
|
|
48
|
-
|
|
49
|
-
<input
|
|
50
|
-
ref={inputRef}
|
|
51
|
-
checked={checked}
|
|
52
|
-
type="checkbox"
|
|
53
|
-
className={styles.toggleScreenReader}
|
|
54
|
-
aria-label={translate(
|
|
55
|
-
{
|
|
56
|
-
message: 'Switch between dark and light mode (currently {mode})',
|
|
57
|
-
id: 'theme.colorToggle.ariaLabel',
|
|
58
|
-
description: 'The ARIA label for the navbar color mode toggle',
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
mode: checked
|
|
62
|
-
? translate({
|
|
63
|
-
message: 'dark mode',
|
|
64
|
-
id: 'theme.colorToggle.ariaLabel.mode.dark',
|
|
65
|
-
description: 'The name for the dark color mode',
|
|
66
|
-
})
|
|
67
|
-
: translate({
|
|
68
|
-
message: 'light mode',
|
|
69
|
-
id: 'theme.colorToggle.ariaLabel.mode.light',
|
|
70
|
-
description: 'The name for the light color mode',
|
|
71
|
-
}),
|
|
72
|
-
},
|
|
73
|
-
)}
|
|
74
|
-
onChange={onChange}
|
|
75
|
-
onClick={() => setChecked(!checked)}
|
|
76
|
-
onFocus={() => setFocused(true)}
|
|
77
|
-
onBlur={() => setFocused(false)}
|
|
78
|
-
onKeyDown={(e) => {
|
|
79
|
-
if (e.key === 'Enter') {
|
|
80
|
-
inputRef.current?.click();
|
|
81
|
-
}
|
|
82
|
-
}}
|
|
83
|
-
/>
|
|
84
|
-
</div>
|
|
85
|
-
);
|
|
86
|
-
},
|
|
87
|
-
);
|
|
88
|
-
export default function Toggle(props) {
|
|
89
|
-
const {
|
|
90
|
-
colorMode: {switchConfig},
|
|
91
|
-
} = useThemeConfig();
|
|
92
|
-
const isBrowser = useIsBrowser();
|
|
93
|
-
return (
|
|
94
|
-
<ToggleComponent
|
|
95
|
-
switchConfig={switchConfig}
|
|
96
|
-
disabled={!isBrowser}
|
|
97
|
-
{...props}
|
|
98
|
-
/>
|
|
99
|
-
);
|
|
100
|
-
}
|