@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
|
@@ -0,0 +1,41 @@
|
|
|
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 React from 'react';
|
|
9
|
+
|
|
10
|
+
import Link from '@docusaurus/Link';
|
|
11
|
+
import {useBaseUrlUtils} from '@docusaurus/useBaseUrl';
|
|
12
|
+
import styles from './styles.module.css';
|
|
13
|
+
import ThemedImage from '@theme/ThemedImage';
|
|
14
|
+
import type {Props} from '@theme/Footer/Logo';
|
|
15
|
+
|
|
16
|
+
function LogoImage({logo}: Props) {
|
|
17
|
+
const {withBaseUrl} = useBaseUrlUtils();
|
|
18
|
+
const sources = {
|
|
19
|
+
light: withBaseUrl(logo.src),
|
|
20
|
+
dark: withBaseUrl(logo.srcDark ?? logo.src),
|
|
21
|
+
};
|
|
22
|
+
return (
|
|
23
|
+
<ThemedImage
|
|
24
|
+
className="footer__logo"
|
|
25
|
+
alt={logo.alt}
|
|
26
|
+
sources={sources}
|
|
27
|
+
width={logo.width}
|
|
28
|
+
height={logo.height}
|
|
29
|
+
/>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default function FooterLogo({logo}: Props): JSX.Element {
|
|
34
|
+
return logo.href ? (
|
|
35
|
+
<Link href={logo.href} className={styles.footerLogoLink}>
|
|
36
|
+
<LogoImage logo={logo} />
|
|
37
|
+
</Link>
|
|
38
|
+
) : (
|
|
39
|
+
<LogoImage logo={logo} />
|
|
40
|
+
);
|
|
41
|
+
}
|
|
File without changes
|
|
@@ -6,201 +6,27 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import React from 'react';
|
|
9
|
-
import clsx from 'clsx';
|
|
10
9
|
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
type SimpleFooter,
|
|
17
|
-
} from '@docusaurus/theme-common';
|
|
18
|
-
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
19
|
-
import isInternalUrl from '@docusaurus/isInternalUrl';
|
|
20
|
-
import styles from './styles.module.css';
|
|
21
|
-
import ThemedImage, {type Props as ThemedImageProps} from '@theme/ThemedImage';
|
|
22
|
-
import IconExternalLink from '@theme/IconExternalLink';
|
|
23
|
-
|
|
24
|
-
function FooterLink({
|
|
25
|
-
to,
|
|
26
|
-
href,
|
|
27
|
-
label,
|
|
28
|
-
prependBaseUrlToHref,
|
|
29
|
-
...props
|
|
30
|
-
}: FooterLinkItem) {
|
|
31
|
-
const toUrl = useBaseUrl(to);
|
|
32
|
-
const normalizedHref = useBaseUrl(href, {forcePrependBaseUrl: true});
|
|
33
|
-
|
|
34
|
-
return (
|
|
35
|
-
<Link
|
|
36
|
-
className="footer__link-item"
|
|
37
|
-
{...(href
|
|
38
|
-
? {
|
|
39
|
-
href: prependBaseUrlToHref ? normalizedHref : href,
|
|
40
|
-
}
|
|
41
|
-
: {
|
|
42
|
-
to: toUrl,
|
|
43
|
-
})}
|
|
44
|
-
{...props}>
|
|
45
|
-
{href && !isInternalUrl(href) ? (
|
|
46
|
-
<span>
|
|
47
|
-
{label}
|
|
48
|
-
<IconExternalLink />
|
|
49
|
-
</span>
|
|
50
|
-
) : (
|
|
51
|
-
label
|
|
52
|
-
)}
|
|
53
|
-
</Link>
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function FooterLogo({
|
|
58
|
-
sources,
|
|
59
|
-
alt,
|
|
60
|
-
width,
|
|
61
|
-
height,
|
|
62
|
-
}: Pick<ThemedImageProps, 'sources' | 'alt' | 'width' | 'height'>) {
|
|
63
|
-
return (
|
|
64
|
-
<ThemedImage
|
|
65
|
-
className="footer__logo"
|
|
66
|
-
alt={alt}
|
|
67
|
-
sources={sources}
|
|
68
|
-
width={width}
|
|
69
|
-
height={height}
|
|
70
|
-
/>
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
function MultiColumnLinks({links}: {links: MultiColumnFooter['links']}) {
|
|
75
|
-
return (
|
|
76
|
-
<>
|
|
77
|
-
{links.map((linkItem, i) => (
|
|
78
|
-
<div key={i} className="col footer__col">
|
|
79
|
-
<div className="footer__title">{linkItem.title}</div>
|
|
80
|
-
<ul className="footer__items">
|
|
81
|
-
{linkItem.items.map((item, key) =>
|
|
82
|
-
item.html ? (
|
|
83
|
-
<li
|
|
84
|
-
key={key}
|
|
85
|
-
className="footer__item"
|
|
86
|
-
// Developer provided the HTML, so assume it's safe.
|
|
87
|
-
// eslint-disable-next-line react/no-danger
|
|
88
|
-
dangerouslySetInnerHTML={{
|
|
89
|
-
__html: item.html,
|
|
90
|
-
}}
|
|
91
|
-
/>
|
|
92
|
-
) : (
|
|
93
|
-
<li key={item.href || item.to} className="footer__item">
|
|
94
|
-
<FooterLink {...item} />
|
|
95
|
-
</li>
|
|
96
|
-
),
|
|
97
|
-
)}
|
|
98
|
-
</ul>
|
|
99
|
-
</div>
|
|
100
|
-
))}
|
|
101
|
-
</>
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function SimpleLinks({links}: {links: SimpleFooter['links']}) {
|
|
106
|
-
return (
|
|
107
|
-
<div className="footer__links">
|
|
108
|
-
{links.map((item, key) => (
|
|
109
|
-
<React.Fragment key={key}>
|
|
110
|
-
{item.html ? (
|
|
111
|
-
<span
|
|
112
|
-
className="footer__link-item"
|
|
113
|
-
// Developer provided the HTML, so assume it's safe.
|
|
114
|
-
// eslint-disable-next-line react/no-danger
|
|
115
|
-
dangerouslySetInnerHTML={{
|
|
116
|
-
__html: item.html,
|
|
117
|
-
}}
|
|
118
|
-
/>
|
|
119
|
-
) : (
|
|
120
|
-
<FooterLink {...item} />
|
|
121
|
-
)}
|
|
122
|
-
{links.length !== key + 1 && (
|
|
123
|
-
<span className="footer__link-separator">·</span>
|
|
124
|
-
)}
|
|
125
|
-
</React.Fragment>
|
|
126
|
-
))}
|
|
127
|
-
</div>
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
function isMultiColumnFooterLinks(
|
|
132
|
-
links: MultiColumnFooter['links'] | SimpleFooter['links'],
|
|
133
|
-
): links is MultiColumnFooter['links'] {
|
|
134
|
-
return 'title' in links[0];
|
|
135
|
-
}
|
|
10
|
+
import {useThemeConfig} from '@docusaurus/theme-common';
|
|
11
|
+
import FooterLinks from '@theme/Footer/Links';
|
|
12
|
+
import FooterLogo from '@theme/Footer/Logo';
|
|
13
|
+
import FooterCopyright from '@theme/Footer/Copyright';
|
|
14
|
+
import FooterLayout from '@theme/Footer/Layout';
|
|
136
15
|
|
|
137
16
|
function Footer(): JSX.Element | null {
|
|
138
17
|
const {footer} = useThemeConfig();
|
|
139
|
-
|
|
140
|
-
const {copyright, links = [], logo = {}} = footer || {};
|
|
141
|
-
const sources = {
|
|
142
|
-
light: useBaseUrl(logo.src),
|
|
143
|
-
dark: useBaseUrl(logo.srcDark || logo.src),
|
|
144
|
-
};
|
|
145
|
-
|
|
146
18
|
if (!footer) {
|
|
147
19
|
return null;
|
|
148
20
|
}
|
|
21
|
+
const {copyright, links, logo, style} = footer;
|
|
149
22
|
|
|
150
23
|
return (
|
|
151
|
-
<
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
<
|
|
156
|
-
|
|
157
|
-
links.length > 0 &&
|
|
158
|
-
(isMultiColumnFooterLinks(links) ? (
|
|
159
|
-
<div className="row footer__links">
|
|
160
|
-
<MultiColumnLinks links={links} />
|
|
161
|
-
</div>
|
|
162
|
-
) : (
|
|
163
|
-
<div className="footer__links text--center">
|
|
164
|
-
<SimpleLinks links={links} />
|
|
165
|
-
</div>
|
|
166
|
-
))}
|
|
167
|
-
{(logo || copyright) && (
|
|
168
|
-
<div className="footer__bottom text--center">
|
|
169
|
-
{logo && (logo.src || logo.srcDark) && (
|
|
170
|
-
<div className="margin-bottom--sm">
|
|
171
|
-
{logo.href ? (
|
|
172
|
-
<Link href={logo.href} className={styles.footerLogoLink}>
|
|
173
|
-
<FooterLogo
|
|
174
|
-
alt={logo.alt}
|
|
175
|
-
sources={sources}
|
|
176
|
-
width={logo.width}
|
|
177
|
-
height={logo.height}
|
|
178
|
-
/>
|
|
179
|
-
</Link>
|
|
180
|
-
) : (
|
|
181
|
-
<FooterLogo
|
|
182
|
-
alt={logo.alt}
|
|
183
|
-
sources={sources}
|
|
184
|
-
width={logo.width}
|
|
185
|
-
height={logo.height}
|
|
186
|
-
/>
|
|
187
|
-
)}
|
|
188
|
-
</div>
|
|
189
|
-
)}
|
|
190
|
-
{copyright ? (
|
|
191
|
-
<div
|
|
192
|
-
className="footer__copyright"
|
|
193
|
-
// Developer provided the HTML, so assume it's safe.
|
|
194
|
-
// eslint-disable-next-line react/no-danger
|
|
195
|
-
dangerouslySetInnerHTML={{
|
|
196
|
-
__html: copyright,
|
|
197
|
-
}}
|
|
198
|
-
/>
|
|
199
|
-
) : null}
|
|
200
|
-
</div>
|
|
201
|
-
)}
|
|
202
|
-
</div>
|
|
203
|
-
</footer>
|
|
24
|
+
<FooterLayout
|
|
25
|
+
style={style}
|
|
26
|
+
links={links && links.length > 0 && <FooterLinks links={links} />}
|
|
27
|
+
logo={logo && <FooterLogo logo={logo} />}
|
|
28
|
+
copyright={copyright && <FooterCopyright copyright={copyright} />}
|
|
29
|
+
/>
|
|
204
30
|
);
|
|
205
31
|
}
|
|
206
32
|
|
|
@@ -13,22 +13,24 @@ import {useThemeConfig} from '@docusaurus/theme-common';
|
|
|
13
13
|
|
|
14
14
|
import styles from './styles.module.css';
|
|
15
15
|
|
|
16
|
-
function
|
|
16
|
+
export default function Heading({as: As, id, ...props}: Props): JSX.Element {
|
|
17
17
|
const {
|
|
18
18
|
navbar: {hideOnScroll},
|
|
19
19
|
} = useThemeConfig();
|
|
20
|
-
|
|
21
|
-
if (!id) {
|
|
22
|
-
return <As {...props} />;
|
|
20
|
+
// H1 headings do not need an id because they don't appear in the TOC.
|
|
21
|
+
if (As === 'h1' || !id) {
|
|
22
|
+
return <As {...props} id={undefined} />;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
return (
|
|
26
26
|
<As
|
|
27
27
|
{...props}
|
|
28
|
-
className={clsx(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
className={clsx(
|
|
29
|
+
'anchor',
|
|
30
|
+
hideOnScroll
|
|
31
|
+
? styles.anchorWithHideOnScrollNavbar
|
|
32
|
+
: styles.anchorWithStickyNavbar,
|
|
33
|
+
)}
|
|
32
34
|
id={id}>
|
|
33
35
|
{props.children}
|
|
34
36
|
<a
|
|
@@ -44,17 +46,3 @@ function AnchorHeading({as: As, id, ...props}: Props) {
|
|
|
44
46
|
</As>
|
|
45
47
|
);
|
|
46
48
|
}
|
|
47
|
-
|
|
48
|
-
export default function Heading({as, ...props}: Props): JSX.Element {
|
|
49
|
-
if (as === 'h1') {
|
|
50
|
-
return (
|
|
51
|
-
<h1
|
|
52
|
-
{...props}
|
|
53
|
-
id={undefined} // h1 headings do not need an id because they don't appear in the TOC
|
|
54
|
-
>
|
|
55
|
-
{props.children}
|
|
56
|
-
</h1>
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
return <AnchorHeading as={as} {...props} />;
|
|
60
|
-
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 React from 'react';
|
|
9
|
+
import type {Props} from '@theme/IconDarkMode';
|
|
10
|
+
|
|
11
|
+
export default function IconDarkMode(props: Props): JSX.Element {
|
|
12
|
+
return (
|
|
13
|
+
<svg viewBox="0 0 24 24" width={24} height={24} {...props}>
|
|
14
|
+
<path
|
|
15
|
+
fill="currentColor"
|
|
16
|
+
d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"
|
|
17
|
+
/>
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 React from 'react';
|
|
9
|
+
import type {Props} from '@theme/IconHome';
|
|
10
|
+
|
|
11
|
+
export default function IconHome(props: Props): JSX.Element {
|
|
12
|
+
return (
|
|
13
|
+
<svg viewBox="0 0 24 24" {...props}>
|
|
14
|
+
<path
|
|
15
|
+
d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z"
|
|
16
|
+
fill="currentColor"
|
|
17
|
+
/>
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -15,14 +15,14 @@ export default function IconLanguage({
|
|
|
15
15
|
}: Props): JSX.Element {
|
|
16
16
|
return (
|
|
17
17
|
<svg
|
|
18
|
-
viewBox="0 0
|
|
18
|
+
viewBox="0 0 24 24"
|
|
19
19
|
width={width}
|
|
20
20
|
height={height}
|
|
21
|
-
aria-hidden
|
|
21
|
+
aria-hidden
|
|
22
22
|
{...props}>
|
|
23
23
|
<path
|
|
24
24
|
fill="currentColor"
|
|
25
|
-
d="
|
|
25
|
+
d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"
|
|
26
26
|
/>
|
|
27
27
|
</svg>
|
|
28
28
|
);
|
|
@@ -0,0 +1,20 @@
|
|
|
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 React from 'react';
|
|
9
|
+
import type {Props} from '@theme/IconLightMode';
|
|
10
|
+
|
|
11
|
+
export default function IconLightMode(props: Props): JSX.Element {
|
|
12
|
+
return (
|
|
13
|
+
<svg viewBox="0 0 24 24" width={24} height={24} {...props}>
|
|
14
|
+
<path
|
|
15
|
+
fill="currentColor"
|
|
16
|
+
d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"
|
|
17
|
+
/>
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -13,20 +13,30 @@ import AnnouncementBar from '@theme/AnnouncementBar';
|
|
|
13
13
|
import Navbar from '@theme/Navbar';
|
|
14
14
|
import Footer from '@theme/Footer';
|
|
15
15
|
import LayoutProviders from '@theme/LayoutProviders';
|
|
16
|
-
import LayoutHead from '@theme/LayoutHead';
|
|
17
16
|
import type {Props} from '@theme/Layout';
|
|
18
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
PageMetadata,
|
|
19
|
+
ThemeClassNames,
|
|
20
|
+
useKeyboardNavigation,
|
|
21
|
+
} from '@docusaurus/theme-common';
|
|
19
22
|
import ErrorPageContent from '@theme/ErrorPageContent';
|
|
20
23
|
import './styles.css';
|
|
21
24
|
|
|
22
25
|
export default function Layout(props: Props): JSX.Element {
|
|
23
|
-
const {
|
|
26
|
+
const {
|
|
27
|
+
children,
|
|
28
|
+
noFooter,
|
|
29
|
+
wrapperClassName,
|
|
30
|
+
// Not really layout-related, but kept for convenience/retro-compatibility
|
|
31
|
+
title,
|
|
32
|
+
description,
|
|
33
|
+
} = props;
|
|
24
34
|
|
|
25
35
|
useKeyboardNavigation();
|
|
26
36
|
|
|
27
37
|
return (
|
|
28
38
|
<LayoutProviders>
|
|
29
|
-
<
|
|
39
|
+
<PageMetadata title={title} description={description} />
|
|
30
40
|
|
|
31
41
|
<SkipToContent />
|
|
32
42
|
|
|
@@ -34,12 +44,7 @@ export default function Layout(props: Props): JSX.Element {
|
|
|
34
44
|
|
|
35
45
|
<Navbar />
|
|
36
46
|
|
|
37
|
-
<div
|
|
38
|
-
className={clsx(
|
|
39
|
-
ThemeClassNames.wrapper.main,
|
|
40
|
-
wrapperClassName,
|
|
41
|
-
pageClassName,
|
|
42
|
-
)}>
|
|
47
|
+
<div className={clsx(ThemeClassNames.wrapper.main, wrapperClassName)}>
|
|
43
48
|
<ErrorBoundary fallback={ErrorPageContent}>{children}</ErrorBoundary>
|
|
44
49
|
</div>
|
|
45
50
|
|
|
@@ -11,8 +11,9 @@ import {
|
|
|
11
11
|
TabGroupChoiceProvider,
|
|
12
12
|
AnnouncementBarProvider,
|
|
13
13
|
DocsPreferredVersionContextProvider,
|
|
14
|
-
MobileSecondaryMenuProvider,
|
|
15
14
|
ScrollControllerProvider,
|
|
15
|
+
NavbarProvider,
|
|
16
|
+
PluginHtmlClassNameProvider,
|
|
16
17
|
} from '@docusaurus/theme-common';
|
|
17
18
|
import type {Props} from '@theme/LayoutProviders';
|
|
18
19
|
|
|
@@ -23,9 +24,9 @@ export default function LayoutProviders({children}: Props): JSX.Element {
|
|
|
23
24
|
<TabGroupChoiceProvider>
|
|
24
25
|
<ScrollControllerProvider>
|
|
25
26
|
<DocsPreferredVersionContextProvider>
|
|
26
|
-
<
|
|
27
|
-
{children}
|
|
28
|
-
</
|
|
27
|
+
<PluginHtmlClassNameProvider>
|
|
28
|
+
<NavbarProvider>{children}</NavbarProvider>
|
|
29
|
+
</PluginHtmlClassNameProvider>
|
|
29
30
|
</DocsPreferredVersionContextProvider>
|
|
30
31
|
</ScrollControllerProvider>
|
|
31
32
|
</TabGroupChoiceProvider>
|
|
@@ -0,0 +1,14 @@
|
|
|
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 React from 'react';
|
|
9
|
+
import Link from '@docusaurus/Link';
|
|
10
|
+
import type {Props} from '@theme/MDXComponents/A';
|
|
11
|
+
|
|
12
|
+
export default function MDXA(props: Props): JSX.Element {
|
|
13
|
+
return <Link {...props} />;
|
|
14
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
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 type {ComponentProps} from 'react';
|
|
9
|
+
import React, {isValidElement} from 'react';
|
|
10
|
+
import CodeBlock from '@theme/CodeBlock';
|
|
11
|
+
import type {Props} from '@theme/MDXComponents/Code';
|
|
12
|
+
|
|
13
|
+
export default function MDXCode(props: Props): JSX.Element {
|
|
14
|
+
const inlineElements = [
|
|
15
|
+
'a',
|
|
16
|
+
'b',
|
|
17
|
+
'big',
|
|
18
|
+
'i',
|
|
19
|
+
'span',
|
|
20
|
+
'em',
|
|
21
|
+
'strong',
|
|
22
|
+
'sup',
|
|
23
|
+
'sub',
|
|
24
|
+
'small',
|
|
25
|
+
];
|
|
26
|
+
const shouldBeInline = React.Children.toArray(props.children).every(
|
|
27
|
+
(el) =>
|
|
28
|
+
(typeof el === 'string' && !el.includes('\n')) ||
|
|
29
|
+
(isValidElement(el) && inlineElements.includes(el.props.mdxType)),
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
return shouldBeInline ? (
|
|
33
|
+
<code {...props} />
|
|
34
|
+
) : (
|
|
35
|
+
<CodeBlock {...(props as ComponentProps<typeof CodeBlock>)} />
|
|
36
|
+
);
|
|
37
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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 React, {type ComponentProps, type ReactElement} from 'react';
|
|
9
|
+
import Details from '@theme/Details';
|
|
10
|
+
import type {Props} from '@theme/MDXComponents/Details';
|
|
11
|
+
|
|
12
|
+
export default function MDXDetails(props: Props): JSX.Element {
|
|
13
|
+
const items = React.Children.toArray(props.children) as ReactElement[];
|
|
14
|
+
// Split summary item from the rest to pass it as a separate prop to the
|
|
15
|
+
// Details theme component
|
|
16
|
+
const summary: ReactElement<ComponentProps<'summary'>> | undefined =
|
|
17
|
+
items.find((item) => item?.props?.mdxType === 'summary');
|
|
18
|
+
const children = <>{items.filter((item) => item !== summary)}</>;
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<Details {...props} summary={summary}>
|
|
22
|
+
{children}
|
|
23
|
+
</Details>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 React, {type ReactElement, type ComponentProps} from 'react';
|
|
9
|
+
import Head from '@docusaurus/Head';
|
|
10
|
+
import type {Props} from '@theme/MDXComponents/Head';
|
|
11
|
+
|
|
12
|
+
// MDX elements are wrapped through the MDX pragma. In some cases (notably usage
|
|
13
|
+
// with Head/Helmet) we need to unwrap those elements.
|
|
14
|
+
function unwrapMDXElement(element: ReactElement) {
|
|
15
|
+
if (element?.props?.mdxType && element?.props?.originalType) {
|
|
16
|
+
const {mdxType, originalType, ...newProps} = element.props;
|
|
17
|
+
return React.createElement(element.props.originalType, newProps);
|
|
18
|
+
}
|
|
19
|
+
return element;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default function MDXHead(props: Props): JSX.Element {
|
|
23
|
+
const unwrappedChildren = React.Children.map(props.children, (child) =>
|
|
24
|
+
unwrapMDXElement(child as ReactElement),
|
|
25
|
+
);
|
|
26
|
+
return (
|
|
27
|
+
<Head {...(props as ComponentProps<typeof Head>)}>{unwrappedChildren}</Head>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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 React from 'react';
|
|
9
|
+
import Heading from '@theme/Heading';
|
|
10
|
+
import type {Props} from '@theme/MDXComponents/Heading';
|
|
11
|
+
|
|
12
|
+
export default function MDXHeading(props: Props): JSX.Element {
|
|
13
|
+
return <Heading {...props} />;
|
|
14
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 React from 'react';
|
|
9
|
+
import type {Props} from '@theme/MDXComponents/Img';
|
|
10
|
+
import styles from './Img.module.css';
|
|
11
|
+
import clsx from 'clsx';
|
|
12
|
+
|
|
13
|
+
function transformImgClassName(className?: string): string {
|
|
14
|
+
return clsx(className, styles.img);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default function MDXImg(props: Props): JSX.Element {
|
|
18
|
+
return (
|
|
19
|
+
// eslint-disable-next-line jsx-a11y/alt-text
|
|
20
|
+
<img
|
|
21
|
+
loading="lazy"
|
|
22
|
+
{...props}
|
|
23
|
+
className={transformImgClassName(props.className)}
|
|
24
|
+
/>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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 React, {isValidElement} from 'react';
|
|
9
|
+
import CodeBlock from '@theme/CodeBlock';
|
|
10
|
+
import type {Props} from '@theme/MDXComponents/Pre';
|
|
11
|
+
|
|
12
|
+
export default function MDXPre(props: Props): JSX.Element {
|
|
13
|
+
return (
|
|
14
|
+
<CodeBlock
|
|
15
|
+
// If this pre is created by a ``` fenced codeblock, unwrap the children
|
|
16
|
+
{...(isValidElement(props.children) &&
|
|
17
|
+
props.children.props.originalType === 'code'
|
|
18
|
+
? props.children?.props
|
|
19
|
+
: {...props})}
|
|
20
|
+
/>
|
|
21
|
+
);
|
|
22
|
+
}
|