@docusaurus/theme-classic 2.0.0-beta.1decd6f80 → 2.0.0-beta.20
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 +2 -2
- package/lib/admonitions.css +39 -0
- package/lib/deps.d.ts +13 -0
- package/lib/getSwizzleConfig.js +243 -0
- package/lib/index.js +65 -54
- package/lib/nprogress.css +41 -0
- package/lib/nprogress.js +46 -0
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme-classic.d.ts +1279 -0
- package/lib/translations.js +52 -36
- package/lib/validateThemeConfig.js +298 -248
- package/lib-next/theme/Admonition/index.js +101 -0
- package/lib-next/theme/AnnouncementBar/index.js +10 -22
- package/lib-next/theme/AnnouncementBar/styles.module.css +26 -35
- package/lib-next/theme/BackToTopButton/index.js +33 -0
- package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
- package/lib-next/theme/BlogArchivePage/index.js +84 -0
- package/lib-next/theme/BlogLayout/index.js +33 -0
- package/lib-next/theme/BlogListPage/index.js +45 -35
- package/lib-next/theme/BlogListPaginator/index.js +27 -33
- package/lib-next/theme/BlogPostAuthor/index.js +49 -0
- package/lib-next/theme/BlogPostAuthors/index.js +44 -0
- package/lib-next/theme/BlogPostAuthors/styles.module.css +21 -0
- package/lib-next/theme/BlogPostItem/index.js +112 -97
- package/lib-next/theme/BlogPostItem/styles.module.css +14 -1
- package/lib-next/theme/BlogPostPage/index.js +84 -41
- package/lib-next/theme/BlogPostPaginator/index.js +28 -38
- package/lib-next/theme/BlogSidebar/Desktop/index.js +41 -0
- package/{lib/theme/BlogSidebar → lib-next/theme/BlogSidebar/Desktop}/styles.module.css +8 -9
- package/lib-next/theme/BlogSidebar/Mobile/index.js +36 -0
- package/lib-next/theme/BlogSidebar/index.js +11 -24
- package/lib-next/theme/BlogTagsListPage/index.js +24 -71
- package/lib-next/theme/BlogTagsPostsPage/index.js +55 -62
- 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/{src/theme/CodeBlock → lib-next/theme/CodeBlock/Content}/styles.module.css +47 -32
- 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 +28 -255
- 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 +21 -0
- package/lib-next/theme/Details/styles.module.css +13 -0
- package/lib-next/theme/DocBreadcrumbs/index.js +120 -0
- package/{lib/theme/Heading/styles.css → lib-next/theme/DocBreadcrumbs/styles.module.css} +9 -13
- package/lib-next/theme/DocCard/index.js +93 -0
- package/lib-next/theme/DocCard/styles.module.css +34 -0
- package/lib-next/theme/DocCardList/index.js +33 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
- package/lib-next/theme/DocItem/index.js +99 -86
- package/lib-next/theme/DocItem/styles.module.css +12 -12
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/{lib/theme/Layout/styles.css → lib-next/theme/DocItemFooter/styles.module.css} +8 -11
- 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/theme/BlogPostItem/styles.module.css → lib-next/theme/DocPage/Layout/index.module.css} +5 -4
- package/lib-next/theme/DocPage/index.js +40 -133
- package/lib-next/theme/DocPaginator/index.js +29 -41
- 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 +13 -333
- package/lib-next/theme/DocSidebarItem/Category.js +197 -0
- package/lib-next/theme/DocSidebarItem/Html.js +27 -0
- package/lib-next/theme/DocSidebarItem/Html.module.css +13 -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 +23 -0
- package/lib-next/theme/DocSidebarItems/index.js +23 -0
- package/lib-next/theme/DocTagDocListPage/index.js +96 -0
- package/lib-next/theme/DocTagsListPage/index.js +40 -0
- package/lib-next/theme/DocVersionBadge/index.js +34 -0
- package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +55 -37
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/ErrorPageContent.js +35 -0
- 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} +2 -1
- package/lib-next/theme/Footer/index.js +12 -100
- package/lib-next/theme/Heading/index.js +31 -38
- package/lib-next/theme/Heading/styles.module.css +27 -2
- package/lib-next/theme/IconArrow/index.js +3 -6
- package/lib-next/theme/IconClose/index.js +23 -0
- package/lib-next/theme/IconDarkMode/index.js +17 -0
- package/lib-next/theme/IconEdit/index.js +5 -10
- package/lib-next/theme/IconExternalLink/index.js +23 -0
- package/lib-next/theme/{LastUpdated → IconExternalLink}/styles.module.css +2 -2
- package/lib-next/theme/IconHome/index.js +17 -0
- package/lib-next/theme/IconLanguage/index.js +5 -8
- package/lib-next/theme/IconLightMode/index.js +17 -0
- package/lib-next/theme/IconMenu/index.js +8 -9
- package/lib-next/theme/LastUpdated/index.js +36 -39
- package/lib-next/theme/Layout/index.js +19 -16
- package/lib-next/theme/Layout/styles.css +6 -0
- package/lib-next/theme/LayoutProviders/index.js +22 -10
- package/lib-next/theme/Logo/index.js +21 -16
- package/lib-next/theme/{ThemeContext.js → MDXComponents/A.js} +4 -2
- 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/{lib/theme/LastUpdated/styles.module.css → lib-next/theme/MDXComponents/Img.module.css} +2 -2
- 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 -42
- package/lib-next/theme/MDXContent/index.js +12 -0
- package/lib-next/theme/MDXPage/index.js +38 -39
- package/{lib/theme/IconEdit → lib-next/theme/MDXPage}/styles.module.css +2 -3
- 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 +1 -7
- 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 +7 -137
- package/lib-next/theme/NavbarItem/ComponentTypes.js +27 -0
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +33 -186
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +14 -14
- package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +41 -0
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +55 -45
- package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +2 -6
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +167 -0
- package/lib-next/theme/NavbarItem/HtmlNavbarItem.js +30 -0
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +16 -22
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/NavbarNavLink.js +84 -0
- package/lib-next/theme/NavbarItem/SearchNavbarItem.js +6 -1
- package/lib-next/theme/NavbarItem/index.js +18 -25
- package/lib-next/theme/NavbarItem/utils.js +10 -0
- package/lib-next/theme/NotFound.js +40 -34
- package/lib-next/theme/PaginatorNavLink/index.js +23 -0
- package/lib-next/theme/SearchBar.js +1 -1
- package/lib-next/theme/SearchMetadata/index.js +34 -0
- package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +31 -46
- package/lib-next/theme/SkipToContent/index.js +7 -32
- package/lib-next/theme/SkipToContent/styles.module.css +8 -3
- package/lib-next/theme/TOC/index.js +12 -39
- package/lib-next/theme/TOC/styles.module.css +2 -2
- package/lib-next/theme/TOCCollapsible/CollapseButton.js +29 -0
- package/lib-next/theme/TOCCollapsible/CollapseButton.module.css +29 -0
- package/lib-next/theme/TOCCollapsible/index.js +42 -0
- package/lib-next/theme/TOCCollapsible/index.module.css +31 -0
- package/lib-next/theme/TOCInline/index.js +10 -31
- package/lib-next/theme/TOCItems/Tree.js +40 -0
- package/lib-next/theme/TOCItems/index.js +54 -0
- package/lib-next/theme/TabItem/index.js +4 -5
- package/lib-next/theme/TabItem/styles.module.css +10 -0
- package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
- package/lib-next/theme/Tabs/index.js +111 -53
- package/lib-next/theme/Tabs/styles.module.css +4 -13
- package/lib-next/theme/Tag/index.js +23 -0
- package/lib-next/theme/Tag/styles.module.css +70 -0
- package/lib-next/theme/TagsListByLetter/index.js +40 -0
- package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib-next/theme/TagsListInline/index.js +31 -0
- package/{lib/theme/Heading → lib-next/theme/TagsListInline}/styles.module.css +7 -2
- package/lib-next/theme/ThemedImage/index.js +10 -14
- package/lib-next/theme/ThemedImage/styles.module.css +9 -2
- package/lib-next/theme/prism-include-languages.js +17 -15
- package/package.json +37 -31
- package/src/admonitions.css +39 -0
- package/src/deps.d.ts +13 -0
- package/src/getSwizzleConfig.ts +252 -0
- package/src/index.ts +76 -75
- package/src/nprogress.css +41 -0
- package/src/nprogress.ts +31 -0
- 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 +11 -20
- package/src/theme/AnnouncementBar/styles.module.css +26 -35
- package/src/theme/BackToTopButton/index.tsx +34 -0
- package/src/theme/BackToTopButton/styles.module.css +44 -0
- package/src/theme/BlogArchivePage/index.tsx +92 -0
- package/src/theme/BlogLayout/index.tsx +38 -0
- package/src/theme/BlogListPage/index.tsx +45 -35
- package/src/theme/BlogListPaginator/index.tsx +27 -32
- package/src/theme/BlogPostAuthor/index.tsx +50 -0
- package/src/theme/BlogPostAuthors/index.tsx +49 -0
- package/src/theme/BlogPostAuthors/styles.module.css +21 -0
- package/src/theme/BlogPostItem/index.tsx +103 -93
- package/src/theme/BlogPostItem/styles.module.css +14 -1
- package/src/theme/BlogPostPage/index.tsx +84 -42
- package/src/theme/BlogPostPaginator/index.tsx +28 -37
- package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
- package/{lib-next/theme/BlogSidebar → src/theme/BlogSidebar/Desktop}/styles.module.css +8 -9
- package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
- package/src/theme/BlogSidebar/index.tsx +10 -24
- package/src/theme/BlogTagsListPage/index.tsx +24 -71
- package/src/theme/BlogTagsPostsPage/index.tsx +57 -65
- 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/{lib/theme/CodeBlock → src/theme/CodeBlock/Content}/styles.module.css +47 -32
- 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 -252
- package/src/theme/ColorModeToggle/index.tsx +67 -0
- package/src/theme/ColorModeToggle/styles.module.css +35 -0
- package/src/theme/Details/index.tsx +25 -0
- package/src/theme/Details/styles.module.css +13 -0
- package/src/theme/DocBreadcrumbs/index.tsx +140 -0
- package/src/theme/{Heading/styles.css → DocBreadcrumbs/styles.module.css} +9 -13
- package/src/theme/DocCard/index.tsx +116 -0
- package/src/theme/DocCard/styles.module.css +34 -0
- package/src/theme/DocCardList/index.tsx +36 -0
- package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
- package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
- package/src/theme/DocItem/index.tsx +93 -79
- package/src/theme/DocItem/styles.module.css +12 -12
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/src/theme/DocItemFooter/styles.module.css +18 -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/{lib-next/theme/hooks/styles.css → src/theme/DocPage/Layout/index.module.css} +7 -2
- package/src/theme/DocPage/Layout/index.tsx +39 -0
- package/src/theme/DocPage/index.tsx +40 -146
- package/src/theme/DocPaginator/index.tsx +29 -40
- 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 +14 -343
- package/src/theme/DocSidebarItem/Category.tsx +210 -0
- package/src/theme/DocSidebarItem/Html.module.css +13 -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 +27 -0
- package/src/theme/DocSidebarItems/index.tsx +27 -0
- package/src/theme/DocTagDocListPage/index.tsx +96 -0
- package/src/theme/DocTagsListPage/index.tsx +44 -0
- package/src/theme/DocVersionBadge/index.tsx +35 -0
- package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +78 -49
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/ErrorPageContent.tsx +41 -0
- 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/{lib/theme/Footer → src/theme/Footer/Logo}/styles.module.css +2 -1
- package/src/theme/Footer/index.tsx +13 -113
- package/src/theme/Heading/index.tsx +33 -39
- package/src/theme/Heading/styles.module.css +27 -2
- package/src/theme/IconArrow/index.tsx +3 -5
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/IconDarkMode/index.tsx +20 -0
- package/src/theme/IconEdit/index.tsx +8 -9
- package/src/theme/IconExternalLink/index.tsx +30 -0
- package/src/theme/IconExternalLink/styles.module.css +10 -0
- package/src/theme/IconHome/index.tsx +20 -0
- package/src/theme/IconLanguage/index.tsx +6 -8
- package/src/theme/IconLightMode/index.tsx +20 -0
- package/src/theme/IconMenu/index.tsx +4 -9
- package/src/theme/LastUpdated/index.tsx +36 -39
- package/src/theme/Layout/index.tsx +19 -15
- package/src/theme/Layout/styles.css +6 -0
- package/src/theme/LayoutProviders/index.tsx +22 -10
- package/src/theme/Logo/index.tsx +21 -15
- package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
- 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/src/theme/{LastUpdated/styles.module.css → MDXComponents/Img.module.css} +2 -2
- 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 -42
- package/src/theme/MDXContent/index.tsx +15 -0
- package/src/theme/MDXPage/index.tsx +39 -39
- package/src/theme/MDXPage/styles.module.css +10 -0
- 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 +1 -7
- 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 +7 -147
- package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
- package/src/theme/NavbarItem/DocNavbarItem.tsx +17 -18
- package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +44 -0
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +60 -51
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +5 -8
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +193 -0
- package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +19 -17
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/NavbarNavLink.tsx +80 -0
- package/src/theme/NavbarItem/SearchNavbarItem.tsx +6 -1
- package/src/theme/NavbarItem/index.tsx +23 -30
- package/src/theme/NavbarItem/utils.ts +13 -0
- package/src/theme/NotFound.tsx +40 -33
- package/src/theme/PaginatorNavLink/index.tsx +26 -0
- package/src/theme/SearchBar.tsx +2 -1
- package/src/theme/SearchMetadata/index.tsx +43 -0
- package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +31 -40
- package/src/theme/SkipToContent/index.tsx +7 -32
- package/src/theme/SkipToContent/styles.module.css +8 -3
- package/src/theme/TOC/index.tsx +13 -44
- package/src/theme/TOC/styles.module.css +2 -2
- package/src/theme/TOCCollapsible/CollapseButton.module.css +29 -0
- package/src/theme/TOCCollapsible/CollapseButton.tsx +35 -0
- package/src/theme/TOCCollapsible/index.module.css +31 -0
- package/src/theme/TOCCollapsible/index.tsx +45 -0
- package/src/theme/TOCInline/index.tsx +14 -35
- package/src/theme/TOCItems/Tree.tsx +46 -0
- package/src/theme/TOCItems/index.tsx +61 -0
- package/src/theme/TabItem/index.tsx +12 -4
- package/src/theme/TabItem/styles.module.css +10 -0
- package/src/theme/Tabs/index.tsx +120 -62
- package/src/theme/Tabs/styles.module.css +4 -13
- package/src/theme/Tag/index.tsx +27 -0
- package/src/theme/Tag/styles.module.css +70 -0
- package/src/theme/TagsListByLetter/index.tsx +43 -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/ThemedImage/index.tsx +12 -13
- package/src/theme/ThemedImage/styles.module.css +9 -2
- package/src/theme/prism-include-languages.ts +20 -15
- package/src/theme-classic.d.ts +1279 -0
- package/src/translations.ts +84 -58
- package/src/validateThemeConfig.ts +448 -0
- package/babel.config.js +0 -35
- package/codeTranslations/README.md +0 -20
- package/codeTranslations/ar.json +0 -55
- package/codeTranslations/base.json +0 -108
- package/codeTranslations/da.json +0 -55
- package/codeTranslations/de.json +0 -55
- package/codeTranslations/es.json +0 -55
- package/codeTranslations/fa.json +0 -55
- package/codeTranslations/fil.json +0 -55
- package/codeTranslations/fr.json +0 -55
- package/codeTranslations/he.json +0 -55
- package/codeTranslations/hi.json +0 -55
- package/codeTranslations/ja.json +0 -55
- package/codeTranslations/ko.json +0 -55
- package/codeTranslations/pl.json +0 -55
- package/codeTranslations/pt-BR.json +0 -55
- package/codeTranslations/pt-PT.json +0 -55
- package/codeTranslations/ru.json +0 -55
- package/codeTranslations/tr.json +0 -55
- package/codeTranslations/vi.json +0 -55
- package/codeTranslations/zh-Hans.json +0 -55
- package/codeTranslations/zh-Hant.json +0 -55
- 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 -74
- 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 -152
- package/lib/theme/BlogPostPage/index.js +0 -75
- package/lib/theme/BlogPostPaginator/index.js +0 -64
- package/lib/theme/BlogSidebar/index.js +0 -43
- package/lib/theme/BlogTagsListPage/index.js +0 -81
- package/lib/theme/BlogTagsPostsPage/index.js +0 -104
- package/lib/theme/CodeBlock/index.js +0 -253
- package/lib/theme/DocItem/index.js +0 -120
- package/lib/theme/DocItem/styles.module.css +0 -28
- package/lib/theme/DocPage/index.js +0 -141
- package/lib/theme/DocPage/styles.module.css +0 -98
- package/lib/theme/DocPaginator/index.js +0 -63
- package/lib/theme/DocSidebar/index.js +0 -307
- package/lib/theme/DocSidebar/styles.module.css +0 -138
- package/lib/theme/DocVersionSuggestions/index.js +0 -111
- package/lib/theme/EditThisPage/index.js +0 -31
- package/lib/theme/Footer/index.js +0 -108
- package/lib/theme/Heading/index.js +0 -60
- package/lib/theme/IconArrow/index.js +0 -28
- package/lib/theme/IconEdit/index.js +0 -34
- package/lib/theme/IconLanguage/index.js +0 -29
- package/lib/theme/IconMenu/index.js +0 -31
- package/lib/theme/LastUpdated/index.js +0 -65
- package/lib/theme/Layout/index.js +0 -64
- package/lib/theme/LayoutHead/index.js +0 -142
- package/lib/theme/LayoutProviders/index.js +0 -34
- package/lib/theme/Logo/index.js +0 -59
- package/lib/theme/MDXComponents/index.js +0 -65
- package/lib/theme/MDXPage/index.js +0 -68
- package/lib/theme/Navbar/index.js +0 -147
- package/lib/theme/Navbar/styles.module.css +0 -20
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
- package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
- 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 -50
- package/lib/theme/SearchBar.js +0 -15
- package/lib/theme/SearchMetadatas/index.js +0 -33
- package/lib/theme/Seo/index.js +0 -50
- package/lib/theme/SkipToContent/index.js +0 -61
- package/lib/theme/SkipToContent/styles.module.css +0 -16
- 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 -48
- package/lib/theme/ThemedImage/styles.module.css +0 -11
- package/lib/theme/Toggle/index.js +0 -106
- package/lib/theme/Toggle/styles.module.css +0 -114
- package/lib/theme/UserPreferencesContext.js +0 -18
- package/lib/theme/UserPreferencesProvider/index.js +0 -44
- package/lib/theme/hooks/styles.css +0 -10
- package/lib/theme/hooks/useAnnouncementBar.js +0 -63
- 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 -53
- 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/types.d.ts +0 -600
- 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 -198
- package/lib-next/theme/CodeBlock/styles.module.css +0 -71
- package/lib-next/theme/DocPage/styles.module.css +0 -98
- package/lib-next/theme/DocSidebar/styles.module.css +0 -138
- package/lib-next/theme/Heading/styles.css +0 -23
- package/lib-next/theme/SearchMetadatas/index.js +0 -20
- package/lib-next/theme/Seo/index.js +0 -37
- package/lib-next/theme/ThemeProvider/index.js +0 -25
- package/lib-next/theme/Toggle/index.js +0 -95
- package/lib-next/theme/Toggle/styles.module.css +0 -114
- package/lib-next/theme/UserPreferencesContext.js +0 -9
- package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
- package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
- package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
- package/lib-next/theme/hooks/useDocs.js +0 -10
- package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
- package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
- package/lib-next/theme/hooks/useLocationHash.js +0 -20
- package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
- package/lib-next/theme/hooks/usePrismTheme.js +0 -20
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
- package/lib-next/theme/hooks/useTheme.js +0 -82
- package/lib-next/theme/hooks/useThemeContext.js +0 -22
- package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
- package/lib-next/theme/hooks/useWindowSize.js +0 -45
- package/lib-next/translations.js +0 -145
- package/lib-next/types.d.ts +0 -600
- 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/BlogSidebar/styles.module.css +0 -46
- package/src/theme/DocPage/styles.module.css +0 -98
- package/src/theme/DocSidebar/styles.module.css +0 -138
- package/src/theme/Footer/styles.module.css +0 -15
- package/src/theme/SearchMetadatas/index.tsx +0 -28
- package/src/theme/Seo/index.tsx +0 -47
- package/src/theme/ThemeProvider/index.tsx +0 -24
- package/src/theme/Toggle/index.tsx +0 -113
- package/src/theme/Toggle/styles.module.css +0 -114
- package/src/theme/UserPreferencesContext.ts +0 -12
- package/src/theme/UserPreferencesProvider/index.tsx +0 -32
- package/src/theme/hooks/styles.css +0 -10
- package/src/theme/hooks/useAnnouncementBar.ts +0 -58
- package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
- package/src/theme/hooks/useDocs.ts +0 -11
- package/src/theme/hooks/useHideableNavbar.ts +0 -85
- package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
- package/src/theme/hooks/useLocationHash.ts +0 -25
- package/src/theme/hooks/useLockBodyScroll.ts +0 -20
- package/src/theme/hooks/usePrismTheme.ts +0 -22
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
- package/src/theme/hooks/useTabGroupChoice.ts +0 -46
- package/src/theme/hooks/useTheme.ts +0 -92
- package/src/theme/hooks/useThemeContext.ts +0 -23
- package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
- package/src/theme/hooks/useWindowSize.ts +0 -51
- package/src/types.d.ts +0 -600
- package/src/validateThemeConfig.js +0 -317
- package/tsconfig.json +0 -12
- package/update-code-translations.js +0 -239
- package/update-code-translations.test.js +0 -33
|
@@ -0,0 +1,167 @@
|
|
|
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} from 'react';
|
|
8
|
+
import clsx from 'clsx';
|
|
9
|
+
import {
|
|
10
|
+
isSamePath,
|
|
11
|
+
useCollapsible,
|
|
12
|
+
Collapsible,
|
|
13
|
+
isRegexpStringMatch,
|
|
14
|
+
useLocalPathname,
|
|
15
|
+
} from '@docusaurus/theme-common';
|
|
16
|
+
import NavbarNavLink from '@theme/NavbarItem/NavbarNavLink';
|
|
17
|
+
import NavbarItem from '@theme/NavbarItem';
|
|
18
|
+
const dropdownLinkActiveClass = 'dropdown__link--active';
|
|
19
|
+
|
|
20
|
+
function isItemActive(item, localPathname) {
|
|
21
|
+
if (isSamePath(item.to, localPathname)) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (isRegexpStringMatch(item.activeBaseRegex, localPathname)) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (item.activeBasePath && localPathname.startsWith(item.activeBasePath)) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function containsActiveItems(items, localPathname) {
|
|
37
|
+
return items.some((item) => isItemActive(item, localPathname));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function DropdownNavbarItemDesktop({items, position, className, ...props}) {
|
|
41
|
+
const dropdownRef = useRef(null);
|
|
42
|
+
const [showDropdown, setShowDropdown] = useState(false);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
const handleClickOutside = (event) => {
|
|
45
|
+
if (!dropdownRef.current || dropdownRef.current.contains(event.target)) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
setShowDropdown(false);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
53
|
+
document.addEventListener('touchstart', handleClickOutside);
|
|
54
|
+
return () => {
|
|
55
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
56
|
+
document.removeEventListener('touchstart', handleClickOutside);
|
|
57
|
+
};
|
|
58
|
+
}, [dropdownRef]);
|
|
59
|
+
return (
|
|
60
|
+
<div
|
|
61
|
+
ref={dropdownRef}
|
|
62
|
+
className={clsx('navbar__item', 'dropdown', 'dropdown--hoverable', {
|
|
63
|
+
'dropdown--right': position === 'right',
|
|
64
|
+
'dropdown--show': showDropdown,
|
|
65
|
+
})}>
|
|
66
|
+
<NavbarNavLink
|
|
67
|
+
aria-haspopup="true"
|
|
68
|
+
aria-expanded={showDropdown}
|
|
69
|
+
role="button"
|
|
70
|
+
href={props.to ? undefined : '#'}
|
|
71
|
+
className={clsx('navbar__link', className)}
|
|
72
|
+
{...props}
|
|
73
|
+
onClick={props.to ? undefined : (e) => e.preventDefault()}
|
|
74
|
+
onKeyDown={(e) => {
|
|
75
|
+
if (e.key === 'Enter') {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
setShowDropdown(!showDropdown);
|
|
78
|
+
}
|
|
79
|
+
}}>
|
|
80
|
+
{props.children ?? props.label}
|
|
81
|
+
</NavbarNavLink>
|
|
82
|
+
<ul className="dropdown__menu">
|
|
83
|
+
{items.map((childItemProps, i) => (
|
|
84
|
+
<NavbarItem
|
|
85
|
+
isDropdownItem
|
|
86
|
+
onKeyDown={(e) => {
|
|
87
|
+
if (i === items.length - 1 && e.key === 'Tab') {
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
setShowDropdown(false);
|
|
90
|
+
const nextNavbarItem = dropdownRef.current.nextElementSibling;
|
|
91
|
+
|
|
92
|
+
if (nextNavbarItem) {
|
|
93
|
+
const targetItem =
|
|
94
|
+
nextNavbarItem instanceof HTMLAnchorElement
|
|
95
|
+
? nextNavbarItem // Next item is another dropdown; focus on the inner
|
|
96
|
+
: // anchor element instead so there's outline
|
|
97
|
+
nextNavbarItem.querySelector('a');
|
|
98
|
+
targetItem.focus();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}}
|
|
102
|
+
activeClassName={dropdownLinkActiveClass}
|
|
103
|
+
{...childItemProps}
|
|
104
|
+
key={i}
|
|
105
|
+
/>
|
|
106
|
+
))}
|
|
107
|
+
</ul>
|
|
108
|
+
</div>
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function DropdownNavbarItemMobile({
|
|
113
|
+
items,
|
|
114
|
+
className,
|
|
115
|
+
position,
|
|
116
|
+
// Need to destructure position from props so that it doesn't get passed on.
|
|
117
|
+
...props
|
|
118
|
+
}) {
|
|
119
|
+
const localPathname = useLocalPathname();
|
|
120
|
+
const containsActive = containsActiveItems(items, localPathname);
|
|
121
|
+
const {collapsed, toggleCollapsed, setCollapsed} = useCollapsible({
|
|
122
|
+
initialState: () => !containsActive,
|
|
123
|
+
}); // Expand/collapse if any item active after a navigation
|
|
124
|
+
|
|
125
|
+
useEffect(() => {
|
|
126
|
+
if (containsActive) {
|
|
127
|
+
setCollapsed(!containsActive);
|
|
128
|
+
}
|
|
129
|
+
}, [localPathname, containsActive, setCollapsed]);
|
|
130
|
+
return (
|
|
131
|
+
<li
|
|
132
|
+
className={clsx('menu__list-item', {
|
|
133
|
+
'menu__list-item--collapsed': collapsed,
|
|
134
|
+
})}>
|
|
135
|
+
<NavbarNavLink
|
|
136
|
+
role="button"
|
|
137
|
+
className={clsx(
|
|
138
|
+
'menu__link menu__link--sublist menu__link--sublist-caret',
|
|
139
|
+
className,
|
|
140
|
+
)}
|
|
141
|
+
{...props}
|
|
142
|
+
onClick={(e) => {
|
|
143
|
+
e.preventDefault();
|
|
144
|
+
toggleCollapsed();
|
|
145
|
+
}}>
|
|
146
|
+
{props.children ?? props.label}
|
|
147
|
+
</NavbarNavLink>
|
|
148
|
+
<Collapsible lazy as="ul" className="menu__list" collapsed={collapsed}>
|
|
149
|
+
{items.map((childItemProps, i) => (
|
|
150
|
+
<NavbarItem
|
|
151
|
+
mobile
|
|
152
|
+
isDropdownItem
|
|
153
|
+
onClick={props.onClick}
|
|
154
|
+
activeClassName="menu__link--active"
|
|
155
|
+
{...childItemProps}
|
|
156
|
+
key={i}
|
|
157
|
+
/>
|
|
158
|
+
))}
|
|
159
|
+
</Collapsible>
|
|
160
|
+
</li>
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export default function DropdownNavbarItem({mobile = false, ...props}) {
|
|
165
|
+
const Comp = mobile ? DropdownNavbarItemMobile : DropdownNavbarItemDesktop;
|
|
166
|
+
return <Comp {...props} />;
|
|
167
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
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 clsx from 'clsx';
|
|
9
|
+
export default function HtmlNavbarItem({
|
|
10
|
+
value,
|
|
11
|
+
className,
|
|
12
|
+
mobile = false,
|
|
13
|
+
isDropdownItem = false,
|
|
14
|
+
}) {
|
|
15
|
+
const Comp = isDropdownItem ? 'li' : 'div';
|
|
16
|
+
return (
|
|
17
|
+
<Comp
|
|
18
|
+
className={clsx(
|
|
19
|
+
{
|
|
20
|
+
navbar__item: !mobile && !isDropdownItem,
|
|
21
|
+
'menu__list-item': mobile,
|
|
22
|
+
},
|
|
23
|
+
className,
|
|
24
|
+
)}
|
|
25
|
+
dangerouslySetInnerHTML={{
|
|
26
|
+
__html: value,
|
|
27
|
+
}}
|
|
28
|
+
/>
|
|
29
|
+
);
|
|
30
|
+
}
|
package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js}
RENAMED
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
|
-
import
|
|
8
|
+
import DropdownNavbarItem from '@theme/NavbarItem/DropdownNavbarItem';
|
|
9
9
|
import IconLanguage from '@theme/IconLanguage';
|
|
10
10
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
11
11
|
import {useAlternatePageUtils} from '@docusaurus/theme-common';
|
|
12
|
+
import {translate} from '@docusaurus/Translate';
|
|
13
|
+
import styles from './styles.module.css';
|
|
12
14
|
export default function LocaleDropdownNavbarItem({
|
|
13
15
|
mobile,
|
|
14
16
|
dropdownItemsBefore,
|
|
@@ -19,11 +21,6 @@ export default function LocaleDropdownNavbarItem({
|
|
|
19
21
|
i18n: {currentLocale, locales, localeConfigs},
|
|
20
22
|
} = useDocusaurusContext();
|
|
21
23
|
const alternatePageUtils = useAlternatePageUtils();
|
|
22
|
-
|
|
23
|
-
function getLocaleLabel(locale) {
|
|
24
|
-
return localeConfigs[locale].label;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
24
|
const localeItems = locales.map((locale) => {
|
|
28
25
|
const to = `pathname://${alternatePageUtils.createUrl({
|
|
29
26
|
locale,
|
|
@@ -31,34 +28,31 @@ export default function LocaleDropdownNavbarItem({
|
|
|
31
28
|
})}`;
|
|
32
29
|
return {
|
|
33
30
|
isNavLink: true,
|
|
34
|
-
label:
|
|
31
|
+
label: localeConfigs[locale].label,
|
|
35
32
|
to,
|
|
36
33
|
target: '_self',
|
|
37
34
|
autoAddBaseUrl: false,
|
|
38
35
|
className: locale === currentLocale ? 'dropdown__link--active' : '',
|
|
39
|
-
style: {
|
|
40
|
-
textTransform: 'capitalize',
|
|
41
|
-
},
|
|
42
36
|
};
|
|
43
37
|
});
|
|
44
38
|
const items = [...dropdownItemsBefore, ...localeItems, ...dropdownItemsAfter]; // Mobile is handled a bit differently
|
|
45
39
|
|
|
46
|
-
const dropdownLabel = mobile
|
|
40
|
+
const dropdownLabel = mobile
|
|
41
|
+
? translate({
|
|
42
|
+
message: 'Languages',
|
|
43
|
+
id: 'theme.navbar.mobileLanguageDropdown.label',
|
|
44
|
+
description: 'The label for the mobile language switcher dropdown',
|
|
45
|
+
})
|
|
46
|
+
: localeConfigs[currentLocale].label;
|
|
47
47
|
return (
|
|
48
|
-
<
|
|
48
|
+
<DropdownNavbarItem
|
|
49
49
|
{...props}
|
|
50
|
-
href="#"
|
|
51
50
|
mobile={mobile}
|
|
52
51
|
label={
|
|
53
|
-
|
|
54
|
-
<IconLanguage
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
marginRight: 5,
|
|
58
|
-
}}
|
|
59
|
-
/>
|
|
60
|
-
<span>{dropdownLabel}</span>
|
|
61
|
-
</span>
|
|
52
|
+
<>
|
|
53
|
+
<IconLanguage className={styles.iconLanguage} />
|
|
54
|
+
{dropdownLabel}
|
|
55
|
+
</>
|
|
62
56
|
}
|
|
63
57
|
items={items}
|
|
64
58
|
/>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
.iconLanguage {
|
|
9
|
+
vertical-align: text-bottom;
|
|
10
|
+
margin-right: 5px;
|
|
11
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
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 Link from '@docusaurus/Link';
|
|
9
|
+
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
10
|
+
import IconExternalLink from '@theme/IconExternalLink';
|
|
11
|
+
import isInternalUrl from '@docusaurus/isInternalUrl';
|
|
12
|
+
import {isRegexpStringMatch} from '@docusaurus/theme-common';
|
|
13
|
+
const dropdownLinkActiveClass = 'dropdown__link--active';
|
|
14
|
+
export default function NavbarNavLink({
|
|
15
|
+
activeBasePath,
|
|
16
|
+
activeBaseRegex,
|
|
17
|
+
to,
|
|
18
|
+
href,
|
|
19
|
+
label,
|
|
20
|
+
html,
|
|
21
|
+
activeClassName = '',
|
|
22
|
+
prependBaseUrlToHref,
|
|
23
|
+
...props
|
|
24
|
+
}) {
|
|
25
|
+
// TODO all this seems hacky
|
|
26
|
+
// {to: 'version'} should probably be forbidden, in favor of {to: '/version'}
|
|
27
|
+
const toUrl = useBaseUrl(to);
|
|
28
|
+
const activeBaseUrl = useBaseUrl(activeBasePath);
|
|
29
|
+
const normalizedHref = useBaseUrl(href, {
|
|
30
|
+
forcePrependBaseUrl: true,
|
|
31
|
+
});
|
|
32
|
+
const isExternalLink = label && href && !isInternalUrl(href);
|
|
33
|
+
const isDropdownLink = activeClassName === dropdownLinkActiveClass; // Link content is set through html XOR label
|
|
34
|
+
|
|
35
|
+
const linkContentProps = html
|
|
36
|
+
? {
|
|
37
|
+
dangerouslySetInnerHTML: {
|
|
38
|
+
__html: html,
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
: {
|
|
42
|
+
children: (
|
|
43
|
+
<>
|
|
44
|
+
{label}
|
|
45
|
+
{isExternalLink && (
|
|
46
|
+
<IconExternalLink
|
|
47
|
+
{...(isDropdownLink && {
|
|
48
|
+
width: 12,
|
|
49
|
+
height: 12,
|
|
50
|
+
})}
|
|
51
|
+
/>
|
|
52
|
+
)}
|
|
53
|
+
</>
|
|
54
|
+
),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
if (href) {
|
|
58
|
+
return (
|
|
59
|
+
<Link
|
|
60
|
+
href={prependBaseUrlToHref ? normalizedHref : href}
|
|
61
|
+
{...props}
|
|
62
|
+
{...linkContentProps}
|
|
63
|
+
/>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<Link
|
|
69
|
+
to={toUrl}
|
|
70
|
+
isNavLink
|
|
71
|
+
activeClassName={
|
|
72
|
+
!props.className?.includes(activeClassName) ? activeClassName : ''
|
|
73
|
+
}
|
|
74
|
+
{...((activeBasePath || activeBaseRegex) && {
|
|
75
|
+
isActive: (_match, location) =>
|
|
76
|
+
activeBaseRegex
|
|
77
|
+
? isRegexpStringMatch(activeBaseRegex, location.pathname)
|
|
78
|
+
: location.pathname.startsWith(activeBaseUrl),
|
|
79
|
+
})}
|
|
80
|
+
{...props}
|
|
81
|
+
{...linkContentProps}
|
|
82
|
+
/>
|
|
83
|
+
);
|
|
84
|
+
}
|
|
@@ -6,10 +6,15 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import SearchBar from '@theme/SearchBar';
|
|
9
|
+
import NavbarSearch from '@theme/Navbar/Search';
|
|
9
10
|
export default function SearchNavbarItem({mobile}) {
|
|
10
11
|
if (mobile) {
|
|
11
12
|
return null;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
return
|
|
15
|
+
return (
|
|
16
|
+
<NavbarSearch>
|
|
17
|
+
<SearchBar />
|
|
18
|
+
</NavbarSearch>
|
|
19
|
+
);
|
|
15
20
|
}
|
|
@@ -5,37 +5,30 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
|
-
import
|
|
9
|
-
import LocaleDropdownNavbarItem from '@theme/NavbarItem/LocaleDropdownNavbarItem';
|
|
10
|
-
import SearchNavbarItem from '@theme/NavbarItem/SearchNavbarItem';
|
|
11
|
-
const NavbarItemComponents = {
|
|
12
|
-
default: () => DefaultNavbarItem,
|
|
13
|
-
localeDropdown: () => LocaleDropdownNavbarItem,
|
|
14
|
-
search: () => SearchNavbarItem,
|
|
15
|
-
// Need to lazy load these items as we don't know for sure the docs plugin is loaded
|
|
16
|
-
// See https://github.com/facebook/docusaurus/issues/3360
|
|
17
|
-
docsVersion: () =>
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
|
|
19
|
-
require('@theme/NavbarItem/DocsVersionNavbarItem').default,
|
|
20
|
-
docsVersionDropdown: () =>
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
|
|
22
|
-
require('@theme/NavbarItem/DocsVersionDropdownNavbarItem').default,
|
|
23
|
-
doc: () =>
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
|
|
25
|
-
require('@theme/NavbarItem/DocNavbarItem').default,
|
|
26
|
-
};
|
|
8
|
+
import ComponentTypes from '@theme/NavbarItem/ComponentTypes';
|
|
27
9
|
|
|
28
|
-
const getNavbarItemComponent = (type
|
|
29
|
-
const
|
|
10
|
+
const getNavbarItemComponent = (type) => {
|
|
11
|
+
const component = ComponentTypes[type];
|
|
30
12
|
|
|
31
|
-
if (!
|
|
32
|
-
throw new Error(`No NavbarItem component found for type
|
|
13
|
+
if (!component) {
|
|
14
|
+
throw new Error(`No NavbarItem component found for type "${type}".`);
|
|
33
15
|
}
|
|
34
16
|
|
|
35
|
-
return
|
|
17
|
+
return component;
|
|
36
18
|
};
|
|
37
19
|
|
|
20
|
+
function getComponentType(type, isDropdown) {
|
|
21
|
+
// Backward compatibility: navbar item with no type set
|
|
22
|
+
// but containing dropdown items should use the type "dropdown"
|
|
23
|
+
if (!type || type === 'default') {
|
|
24
|
+
return isDropdown ? 'dropdown' : 'default';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return type;
|
|
28
|
+
}
|
|
29
|
+
|
|
38
30
|
export default function NavbarItem({type, ...props}) {
|
|
39
|
-
const
|
|
31
|
+
const componentType = getComponentType(type, props.items !== undefined);
|
|
32
|
+
const NavbarItemComponent = getNavbarItemComponent(componentType);
|
|
40
33
|
return <NavbarItemComponent {...props} />;
|
|
41
34
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
/* eslint-disable import/no-named-export */
|
|
9
|
+
export const getInfimaActiveClassName = (mobile) =>
|
|
10
|
+
mobile ? 'menu__link--active' : 'navbar__link--active';
|
|
@@ -6,41 +6,47 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import Layout from '@theme/Layout';
|
|
9
|
-
import Translate from '@docusaurus/Translate';
|
|
10
|
-
|
|
11
|
-
function NotFound() {
|
|
9
|
+
import Translate, {translate} from '@docusaurus/Translate';
|
|
10
|
+
import {PageMetadata} from '@docusaurus/theme-common';
|
|
11
|
+
export default function NotFound() {
|
|
12
12
|
return (
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
</
|
|
38
|
-
|
|
13
|
+
<>
|
|
14
|
+
<PageMetadata
|
|
15
|
+
title={translate({
|
|
16
|
+
id: 'theme.NotFound.title',
|
|
17
|
+
message: 'Page Not Found',
|
|
18
|
+
})}
|
|
19
|
+
/>
|
|
20
|
+
<Layout>
|
|
21
|
+
<main className="container margin-vert--xl">
|
|
22
|
+
<div className="row">
|
|
23
|
+
<div className="col col--6 col--offset-3">
|
|
24
|
+
<h1 className="hero__title">
|
|
25
|
+
<Translate
|
|
26
|
+
id="theme.NotFound.title"
|
|
27
|
+
description="The title of the 404 page">
|
|
28
|
+
Page Not Found
|
|
29
|
+
</Translate>
|
|
30
|
+
</h1>
|
|
31
|
+
<p>
|
|
32
|
+
<Translate
|
|
33
|
+
id="theme.NotFound.p1"
|
|
34
|
+
description="The first paragraph of the 404 page">
|
|
35
|
+
We could not find what you were looking for.
|
|
36
|
+
</Translate>
|
|
37
|
+
</p>
|
|
38
|
+
<p>
|
|
39
|
+
<Translate
|
|
40
|
+
id="theme.NotFound.p2"
|
|
41
|
+
description="The 2nd paragraph of the 404 page">
|
|
42
|
+
Please contact the owner of the site that linked you to the
|
|
43
|
+
original URL and let them know their link is broken.
|
|
44
|
+
</Translate>
|
|
45
|
+
</p>
|
|
46
|
+
</div>
|
|
39
47
|
</div>
|
|
40
|
-
</
|
|
41
|
-
</
|
|
42
|
-
|
|
48
|
+
</main>
|
|
49
|
+
</Layout>
|
|
50
|
+
</>
|
|
43
51
|
);
|
|
44
52
|
}
|
|
45
|
-
|
|
46
|
-
export default NotFound;
|
|
@@ -0,0 +1,23 @@
|
|
|
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 clsx from 'clsx';
|
|
9
|
+
import Link from '@docusaurus/Link';
|
|
10
|
+
export default function PaginatorNavLink(props) {
|
|
11
|
+
const {permalink, title, subLabel, isNext} = props;
|
|
12
|
+
return (
|
|
13
|
+
<Link
|
|
14
|
+
className={clsx(
|
|
15
|
+
'pagination-nav__link',
|
|
16
|
+
isNext ? 'pagination-nav__link--next' : 'pagination-nav__link--prev',
|
|
17
|
+
)}
|
|
18
|
+
to={permalink}>
|
|
19
|
+
{subLabel && <div className="pagination-nav__sublabel">{subLabel}</div>}
|
|
20
|
+
<div className="pagination-nav__label">{title}</div>
|
|
21
|
+
</Link>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
// By default, the classic theme does not provide any SearchBar implementation
|
|
8
|
-
// If you swizzled this
|
|
8
|
+
// If you swizzled this, it is your responsibility to provide an implementation
|
|
9
9
|
// Tip: swizzle the SearchBar from the Algolia theme for inspiration:
|
|
10
10
|
// npm run swizzle @docusaurus/theme-search-algolia SearchBar
|
|
11
11
|
export {default} from '@docusaurus/Noop';
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
// Note: we bias toward using Algolia metadata on purpose
|
|
10
|
+
// Not doing so leads to confusion in the community,
|
|
11
|
+
// as it requires to first crawl the site with the Algolia plugin enabled first
|
|
12
|
+
// - https://github.com/facebook/docusaurus/issues/6693
|
|
13
|
+
// - https://github.com/facebook/docusaurus/issues/4555
|
|
14
|
+
export default function SearchMetadata({locale, version, tag}) {
|
|
15
|
+
// Seems safe to consider here the locale is the language, as the existing
|
|
16
|
+
// docsearch:language filter is afaik a regular string-based filter
|
|
17
|
+
const language = locale;
|
|
18
|
+
return (
|
|
19
|
+
<Head>
|
|
20
|
+
{/*
|
|
21
|
+
Docusaurus metadata, used by third-party search plugin
|
|
22
|
+
See https://github.com/cmfcmf/docusaurus-search-local/issues/99
|
|
23
|
+
*/}
|
|
24
|
+
{locale && <meta name="docusaurus_locale" content={locale} />}
|
|
25
|
+
{version && <meta name="docusaurus_version" content={version} />}
|
|
26
|
+
{tag && <meta name="docusaurus_tag" content={tag} />}
|
|
27
|
+
|
|
28
|
+
{/* Algolia DocSearch metadata */}
|
|
29
|
+
{language && <meta name="docsearch:language" content={language} />}
|
|
30
|
+
{version && <meta name="docsearch:version" content={version} />}
|
|
31
|
+
{tag && <meta name="docsearch:docusaurus_tag" content={tag} />}
|
|
32
|
+
</Head>
|
|
33
|
+
);
|
|
34
|
+
}
|