@docusaurus/theme-classic 2.0.0-beta.15d451942 → 2.0.0-beta.18
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 +35 -0
- package/lib/deps.d.ts +13 -0
- package/lib/getSwizzleConfig.js +236 -0
- package/lib/index.js +63 -52
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme-classic.d.ts +997 -0
- package/lib/translations.js +52 -36
- package/lib/types.d.ts +0 -589
- package/lib/validateThemeConfig.js +242 -250
- 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 +129 -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 +37 -0
- package/lib-next/theme/BlogListPage/index.js +45 -35
- package/lib-next/theme/BlogListPaginator/index.js +13 -16
- package/lib-next/theme/BlogPostAuthor/index.js +52 -0
- package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -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 +5 -1
- package/lib-next/theme/BlogPostPage/index.js +84 -41
- package/lib-next/theme/BlogPostPaginator/index.js +13 -20
- package/lib-next/theme/BlogSidebar/index.js +23 -16
- package/lib-next/theme/BlogSidebar/styles.module.css +8 -8
- package/lib-next/theme/BlogTagsListPage/index.js +24 -70
- package/lib-next/theme/BlogTagsPostsPage/index.js +57 -62
- package/lib-next/theme/CodeBlock/CopyButton/index.js +60 -0
- package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +66 -0
- package/lib-next/theme/CodeBlock/index.js +74 -195
- package/lib-next/theme/CodeBlock/styles.module.css +13 -28
- 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 +93 -0
- package/{lib/theme/Heading → lib-next/theme/DocBreadcrumbs}/styles.module.css +3 -2
- 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 +31 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/lib-next/theme/DocItem/index.js +99 -86
- package/lib-next/theme/DocItem/styles.module.css +7 -13
- 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/index.js +124 -99
- package/lib-next/theme/DocPage/styles.module.css +14 -30
- package/lib-next/theme/DocPaginator/index.js +16 -25
- package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
- package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +44 -0
- package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
- package/{lib/theme/Footer → lib-next/theme/DocSidebar/Desktop/Content}/styles.module.css +8 -6
- package/lib-next/theme/DocSidebar/Desktop/index.js +34 -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/index.js +265 -0
- package/lib-next/theme/DocSidebarItem/styles.module.css +17 -0
- package/lib-next/theme/DocSidebarItems/index.js +28 -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 +54 -36
- 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/{src/theme/Footer → lib-next/theme/Footer/Logo}/styles.module.css +2 -1
- package/lib-next/theme/Footer/index.js +12 -100
- package/lib-next/theme/Heading/index.js +42 -33
- 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/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 +35 -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/{hooks/styles.css → MDXComponents/Heading.js} +4 -3
- 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 +23 -0
- package/lib-next/theme/MDXComponents/Ul.module.css +11 -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 +70 -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/index.js +7 -137
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +33 -186
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +31 -14
- package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +38 -24
- package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +164 -0
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/NavbarNavLink.js +66 -0
- package/lib-next/theme/NavbarItem/index.js +27 -15
- package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
- package/lib-next/theme/NotFound.js +40 -34
- package/lib-next/theme/PaginatorNavLink/index.js +17 -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 +25 -45
- package/lib-next/theme/SkipToContent/index.js +9 -8
- 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/index.js +52 -0
- package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
- package/lib-next/theme/TOCInline/index.js +10 -31
- package/lib-next/theme/TOCItems/index.js +85 -0
- package/lib-next/theme/TabItem/index.js +1 -4
- package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
- package/lib-next/theme/Tabs/index.js +108 -50
- package/lib-next/theme/Tabs/styles.module.css +0 -13
- package/lib-next/theme/Tag/index.js +24 -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/BlogPostItem → lib-next/theme/TagsListInline}/styles.module.css +5 -4
- 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 +32 -31
- package/src/admonitions.css +35 -0
- package/src/deps.d.ts +13 -0
- package/src/getSwizzleConfig.ts +244 -0
- package/src/index.ts +72 -72
- 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 +141 -0
- package/src/theme/BackToTopButton/styles.module.css +44 -0
- package/src/theme/BlogArchivePage/index.tsx +92 -0
- package/src/theme/BlogLayout/index.tsx +42 -0
- package/src/theme/BlogListPage/index.tsx +45 -35
- package/src/theme/BlogListPaginator/index.tsx +13 -15
- package/src/theme/BlogPostAuthor/index.tsx +54 -0
- package/src/theme/BlogPostAuthor/styles.module.css +12 -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 +5 -1
- package/src/theme/BlogPostPage/index.tsx +84 -42
- package/src/theme/BlogPostPaginator/index.tsx +13 -19
- package/src/theme/BlogSidebar/index.tsx +23 -16
- package/src/theme/BlogSidebar/styles.module.css +8 -8
- package/src/theme/BlogTagsListPage/index.tsx +24 -70
- package/src/theme/BlogTagsPostsPage/index.tsx +54 -65
- package/src/theme/CodeBlock/CopyButton/index.tsx +66 -0
- package/src/theme/CodeBlock/CopyButton/styles.module.css +66 -0
- package/src/theme/CodeBlock/index.tsx +77 -196
- package/src/theme/CodeBlock/styles.module.css +13 -28
- 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 +110 -0
- package/src/theme/DocBreadcrumbs/styles.module.css +11 -0
- package/src/theme/DocCard/index.tsx +116 -0
- package/src/theme/DocCard/styles.module.css +34 -0
- package/src/theme/DocCardList/index.tsx +38 -0
- package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
- package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/src/theme/DocItem/index.tsx +93 -79
- package/src/theme/DocItem/styles.module.css +7 -13
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/src/theme/DocItemFooter/styles.module.css +18 -0
- package/src/theme/DocPage/index.tsx +124 -101
- package/src/theme/DocPage/styles.module.css +14 -30
- package/src/theme/DocPaginator/index.tsx +16 -24
- package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
- package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +44 -0
- package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
- package/src/theme/DocSidebar/Desktop/Content/styles.module.css +17 -0
- package/src/theme/DocSidebar/Desktop/index.tsx +38 -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/index.tsx +282 -0
- package/src/theme/DocSidebarItem/styles.module.css +17 -0
- package/src/theme/DocSidebarItems/index.tsx +32 -0
- package/src/theme/DocTagDocListPage/index.tsx +97 -0
- package/src/theme/DocTagsListPage/index.tsx +44 -0
- package/src/theme/DocVersionBadge/index.tsx +35 -0
- package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +76 -47
- 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-next/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 +43 -35
- 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/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 +35 -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 +26 -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.module.css +11 -0
- package/src/theme/MDXComponents/Ul.tsx +28 -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 +81 -0
- package/src/theme/Navbar/Content/styles.module.css +15 -0
- package/src/theme/Navbar/Layout/index.tsx +57 -0
- package/{lib/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/index.tsx +7 -147
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
- package/src/theme/NavbarItem/DocNavbarItem.tsx +33 -15
- package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +44 -28
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +190 -0
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +17 -11
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/NavbarNavLink.tsx +64 -0
- package/src/theme/NavbarItem/index.tsx +41 -19
- package/src/theme/NavbarItem/utils.ts +10 -0
- package/src/theme/NotFound.tsx +40 -33
- package/src/theme/PaginatorNavLink/index.tsx +20 -0
- package/src/theme/SearchBar.tsx +2 -1
- package/src/theme/SearchMetadata/index.tsx +43 -0
- package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +25 -38
- package/src/theme/SkipToContent/index.tsx +9 -8
- 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/index.tsx +56 -0
- package/src/theme/TOCCollapsible/styles.module.css +50 -0
- package/src/theme/TOCInline/index.tsx +14 -35
- package/src/theme/TOCItems/index.tsx +100 -0
- package/src/theme/TabItem/index.tsx +5 -3
- package/src/theme/Tabs/index.tsx +117 -59
- package/src/theme/Tabs/styles.module.css +0 -13
- package/src/theme/Tag/index.tsx +29 -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 +997 -0
- package/src/translations.ts +84 -58
- package/src/types.d.ts +0 -589
- package/src/validateThemeConfig.ts +381 -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/BlogSidebar/styles.module.css +0 -46
- 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/CodeBlock/styles.module.css +0 -71
- 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/Heading/styles.css +0 -23
- 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 -144
- 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/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 -49
- 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-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/DocSidebar/styles.module.css +0 -138
- package/lib-next/theme/Heading/styles.css +0 -23
- package/lib-next/theme/Navbar/styles.module.css +0 -20
- package/lib-next/theme/SearchMetadatas/index.js +0 -20
- package/lib-next/theme/Seo/index.js +0 -36
- 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/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/DocSidebar/styles.module.css +0 -138
- package/src/theme/Heading/styles.css +0 -23
- package/src/theme/SearchMetadatas/index.tsx +0 -28
- package/src/theme/Seo/index.tsx +0 -46
- 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/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,17 @@
|
|
|
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 Logo from '@theme/Logo';
|
|
9
|
+
export default function NavbarLogo() {
|
|
10
|
+
return (
|
|
11
|
+
<Logo
|
|
12
|
+
className="navbar__brand"
|
|
13
|
+
imageClassName="navbar__logo"
|
|
14
|
+
titleClassName="navbar__title"
|
|
15
|
+
/>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 NavbarColorModeToggle from '@theme/Navbar/ColorModeToggle';
|
|
9
|
+
import IconClose from '@theme/IconClose';
|
|
10
|
+
import NavbarLogo from '@theme/Navbar/Logo';
|
|
11
|
+
import {useNavbarMobileSidebar} from '@docusaurus/theme-common';
|
|
12
|
+
|
|
13
|
+
function CloseButton() {
|
|
14
|
+
const mobileSidebar = useNavbarMobileSidebar();
|
|
15
|
+
return (
|
|
16
|
+
<button
|
|
17
|
+
type="button"
|
|
18
|
+
className="clean-btn navbar-sidebar__close"
|
|
19
|
+
onClick={() => mobileSidebar.toggle()}>
|
|
20
|
+
<IconClose color="var(--ifm-color-emphasis-600)" />
|
|
21
|
+
</button>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default function NavbarMobileSidebarHeader() {
|
|
26
|
+
return (
|
|
27
|
+
<div className="navbar-sidebar__brand">
|
|
28
|
+
<NavbarLogo />
|
|
29
|
+
<NavbarColorModeToggle className="margin-right--md" />
|
|
30
|
+
<CloseButton />
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 {useNavbarSecondaryMenu} from '@docusaurus/theme-common';
|
|
10
|
+
export default function NavbarMobileSidebarLayout({
|
|
11
|
+
header,
|
|
12
|
+
primaryMenu,
|
|
13
|
+
secondaryMenu,
|
|
14
|
+
}) {
|
|
15
|
+
const {shown: secondaryMenuShown} = useNavbarSecondaryMenu();
|
|
16
|
+
return (
|
|
17
|
+
<div className="navbar-sidebar">
|
|
18
|
+
{header}
|
|
19
|
+
<div
|
|
20
|
+
className={clsx('navbar-sidebar__items', {
|
|
21
|
+
'navbar-sidebar__items--show-secondary': secondaryMenuShown,
|
|
22
|
+
})}>
|
|
23
|
+
<div className="navbar-sidebar__item menu">{primaryMenu}</div>
|
|
24
|
+
<div className="navbar-sidebar__item menu">{secondaryMenu}</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 {useNavbarMobileSidebar, useThemeConfig} from '@docusaurus/theme-common';
|
|
9
|
+
import NavbarItem from '../../../NavbarItem';
|
|
10
|
+
|
|
11
|
+
function useNavbarItems() {
|
|
12
|
+
// TODO temporary casting until ThemeConfig type is improved
|
|
13
|
+
return useThemeConfig().navbar.items;
|
|
14
|
+
} // The primary menu displays the navbar items
|
|
15
|
+
|
|
16
|
+
export default function NavbarMobilePrimaryMenu() {
|
|
17
|
+
const mobileSidebar = useNavbarMobileSidebar(); // TODO how can the order be defined for mobile?
|
|
18
|
+
// Should we allow providing a different list of items?
|
|
19
|
+
|
|
20
|
+
const items = useNavbarItems();
|
|
21
|
+
return (
|
|
22
|
+
<ul className="menu__list">
|
|
23
|
+
{items.map((item, i) => (
|
|
24
|
+
<NavbarItem
|
|
25
|
+
mobile
|
|
26
|
+
{...item}
|
|
27
|
+
onClick={() => mobileSidebar.toggle()}
|
|
28
|
+
key={i}
|
|
29
|
+
/>
|
|
30
|
+
))}
|
|
31
|
+
</ul>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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 {useNavbarSecondaryMenu, useThemeConfig} from '@docusaurus/theme-common';
|
|
9
|
+
import Translate from '@docusaurus/Translate';
|
|
10
|
+
|
|
11
|
+
function SecondaryMenuBackButton(props) {
|
|
12
|
+
return (
|
|
13
|
+
<button {...props} type="button" className="clean-btn navbar-sidebar__back">
|
|
14
|
+
<Translate
|
|
15
|
+
id="theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel"
|
|
16
|
+
description="The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)">
|
|
17
|
+
← Back to main menu
|
|
18
|
+
</Translate>
|
|
19
|
+
</button>
|
|
20
|
+
);
|
|
21
|
+
} // The secondary menu slides from the right and shows contextual information
|
|
22
|
+
// such as the docs sidebar
|
|
23
|
+
|
|
24
|
+
export default function NavbarMobileSidebarSecondaryMenu() {
|
|
25
|
+
const isPrimaryMenuEmpty = useThemeConfig().navbar.items.length === 0;
|
|
26
|
+
const secondaryMenu = useNavbarSecondaryMenu();
|
|
27
|
+
return (
|
|
28
|
+
<>
|
|
29
|
+
{/* edge-case: prevent returning to the primaryMenu when it's empty */}
|
|
30
|
+
{!isPrimaryMenuEmpty && (
|
|
31
|
+
<SecondaryMenuBackButton onClick={() => secondaryMenu.hide()} />
|
|
32
|
+
)}
|
|
33
|
+
{secondaryMenu.content}
|
|
34
|
+
</>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
@@ -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 IconMenu from '@theme/IconMenu';
|
|
9
|
+
import {useNavbarMobileSidebar} from '@docusaurus/theme-common';
|
|
10
|
+
export default function MobileSidebarToggle() {
|
|
11
|
+
const mobileSidebar = useNavbarMobileSidebar();
|
|
12
|
+
return (
|
|
13
|
+
<button
|
|
14
|
+
onClick={mobileSidebar.toggle}
|
|
15
|
+
onKeyDown={mobileSidebar.toggle}
|
|
16
|
+
aria-label="Navigation bar toggle"
|
|
17
|
+
className="navbar__toggle clean-btn"
|
|
18
|
+
type="button"
|
|
19
|
+
tabIndex={0}>
|
|
20
|
+
<IconMenu />
|
|
21
|
+
</button>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
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 NavbarMobileSidebarLayout from '@theme/Navbar/MobileSidebar/Layout';
|
|
9
|
+
import NavbarMobileSidebarHeader from '@theme/Navbar/MobileSidebar/Header';
|
|
10
|
+
import {
|
|
11
|
+
useLockBodyScroll,
|
|
12
|
+
useNavbarMobileSidebar,
|
|
13
|
+
} from '@docusaurus/theme-common';
|
|
14
|
+
import NavbarMobileSidebarPrimaryMenu from '@theme/Navbar/MobileSidebar/PrimaryMenu';
|
|
15
|
+
import NavbarMobileSidebarSecondaryMenu from '@theme/Navbar/MobileSidebar/SecondaryMenu';
|
|
16
|
+
export default function NavbarMobileSidebar() {
|
|
17
|
+
const mobileSidebar = useNavbarMobileSidebar();
|
|
18
|
+
useLockBodyScroll(mobileSidebar.shown);
|
|
19
|
+
|
|
20
|
+
if (!mobileSidebar.shouldRender) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<NavbarMobileSidebarLayout
|
|
26
|
+
header={<NavbarMobileSidebarHeader />}
|
|
27
|
+
primaryMenu={<NavbarMobileSidebarPrimaryMenu />}
|
|
28
|
+
secondaryMenu={<NavbarMobileSidebarSecondaryMenu />}
|
|
29
|
+
/>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
@@ -4,143 +4,13 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import React
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
import useThemeContext from '@theme/hooks/useThemeContext';
|
|
12
|
-
import {useThemeConfig} from '@docusaurus/theme-common';
|
|
13
|
-
import useHideableNavbar from '@theme/hooks/useHideableNavbar';
|
|
14
|
-
import useLockBodyScroll from '@theme/hooks/useLockBodyScroll';
|
|
15
|
-
import useWindowSize, {windowSizes} from '@theme/hooks/useWindowSize';
|
|
16
|
-
import NavbarItem from '@theme/NavbarItem';
|
|
17
|
-
import Logo from '@theme/Logo';
|
|
18
|
-
import IconMenu from '@theme/IconMenu';
|
|
19
|
-
import styles from './styles.module.css'; // retrocompatible with v1
|
|
20
|
-
|
|
21
|
-
const DefaultNavItemPosition = 'right'; // If split links by left/right
|
|
22
|
-
// if position is unspecified, fallback to right (as v1)
|
|
23
|
-
|
|
24
|
-
function splitNavItemsByPosition(items) {
|
|
25
|
-
const leftItems = items.filter(
|
|
26
|
-
(item) => (item.position ?? DefaultNavItemPosition) === 'left',
|
|
27
|
-
);
|
|
28
|
-
const rightItems = items.filter(
|
|
29
|
-
(item) => (item.position ?? DefaultNavItemPosition) === 'right',
|
|
30
|
-
);
|
|
31
|
-
return {
|
|
32
|
-
leftItems,
|
|
33
|
-
rightItems,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function Navbar() {
|
|
38
|
-
const {
|
|
39
|
-
navbar: {items, hideOnScroll, style},
|
|
40
|
-
colorMode: {disableSwitch: disableColorModeSwitch},
|
|
41
|
-
} = useThemeConfig();
|
|
42
|
-
const [sidebarShown, setSidebarShown] = useState(false);
|
|
43
|
-
const {isDarkTheme, setLightTheme, setDarkTheme} = useThemeContext();
|
|
44
|
-
const {navbarRef, isNavbarVisible} = useHideableNavbar(hideOnScroll);
|
|
45
|
-
useLockBodyScroll(sidebarShown);
|
|
46
|
-
const showSidebar = useCallback(() => {
|
|
47
|
-
setSidebarShown(true);
|
|
48
|
-
}, [setSidebarShown]);
|
|
49
|
-
const hideSidebar = useCallback(() => {
|
|
50
|
-
setSidebarShown(false);
|
|
51
|
-
}, [setSidebarShown]);
|
|
52
|
-
const onToggleChange = useCallback(
|
|
53
|
-
(e) => (e.target.checked ? setDarkTheme() : setLightTheme()),
|
|
54
|
-
[setLightTheme, setDarkTheme],
|
|
55
|
-
);
|
|
56
|
-
const windowSize = useWindowSize();
|
|
57
|
-
useEffect(() => {
|
|
58
|
-
if (windowSize === windowSizes.desktop) {
|
|
59
|
-
setSidebarShown(false);
|
|
60
|
-
}
|
|
61
|
-
}, [windowSize]);
|
|
62
|
-
const hasSearchNavbarItem = items.some((item) => item.type === 'search');
|
|
63
|
-
const {leftItems, rightItems} = splitNavItemsByPosition(items);
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import NavbarLayout from '@theme/Navbar/Layout';
|
|
9
|
+
import NavbarContent from '@theme/Navbar/Content';
|
|
10
|
+
export default function Navbar() {
|
|
64
11
|
return (
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
'navbar--dark': style === 'dark',
|
|
69
|
-
'navbar--primary': style === 'primary',
|
|
70
|
-
'navbar-sidebar--show': sidebarShown,
|
|
71
|
-
[styles.navbarHideable]: hideOnScroll,
|
|
72
|
-
[styles.navbarHidden]: hideOnScroll && !isNavbarVisible,
|
|
73
|
-
})}>
|
|
74
|
-
<div className="navbar__inner">
|
|
75
|
-
<div className="navbar__items">
|
|
76
|
-
{items != null && items.length !== 0 && (
|
|
77
|
-
<button
|
|
78
|
-
aria-label="Navigation bar toggle"
|
|
79
|
-
className="navbar__toggle"
|
|
80
|
-
type="button"
|
|
81
|
-
tabIndex={0}
|
|
82
|
-
onClick={showSidebar}
|
|
83
|
-
onKeyDown={showSidebar}>
|
|
84
|
-
<IconMenu />
|
|
85
|
-
</button>
|
|
86
|
-
)}
|
|
87
|
-
<Logo
|
|
88
|
-
className="navbar__brand"
|
|
89
|
-
imageClassName="navbar__logo"
|
|
90
|
-
titleClassName={clsx('navbar__title')}
|
|
91
|
-
/>
|
|
92
|
-
{leftItems.map((item, i) => (
|
|
93
|
-
<NavbarItem {...item} key={i} />
|
|
94
|
-
))}
|
|
95
|
-
</div>
|
|
96
|
-
<div className="navbar__items navbar__items--right">
|
|
97
|
-
{rightItems.map((item, i) => (
|
|
98
|
-
<NavbarItem {...item} key={i} />
|
|
99
|
-
))}
|
|
100
|
-
{!disableColorModeSwitch && (
|
|
101
|
-
<Toggle
|
|
102
|
-
className={styles.displayOnlyInLargeViewport}
|
|
103
|
-
checked={isDarkTheme}
|
|
104
|
-
onChange={onToggleChange}
|
|
105
|
-
/>
|
|
106
|
-
)}
|
|
107
|
-
{!hasSearchNavbarItem && <SearchBar />}
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
<div
|
|
111
|
-
role="presentation"
|
|
112
|
-
className="navbar-sidebar__backdrop"
|
|
113
|
-
onClick={hideSidebar}
|
|
114
|
-
/>
|
|
115
|
-
<div className="navbar-sidebar">
|
|
116
|
-
<div className="navbar-sidebar__brand">
|
|
117
|
-
<Logo
|
|
118
|
-
className="navbar__brand"
|
|
119
|
-
imageClassName="navbar__logo"
|
|
120
|
-
titleClassName="navbar__title"
|
|
121
|
-
onClick={hideSidebar}
|
|
122
|
-
/>
|
|
123
|
-
{!disableColorModeSwitch && sidebarShown && (
|
|
124
|
-
<Toggle checked={isDarkTheme} onChange={onToggleChange} />
|
|
125
|
-
)}
|
|
126
|
-
</div>
|
|
127
|
-
<div className="navbar-sidebar__items">
|
|
128
|
-
<div className="menu">
|
|
129
|
-
<ul className="menu__list">
|
|
130
|
-
{items.map((item, i) => (
|
|
131
|
-
<NavbarItem
|
|
132
|
-
mobile
|
|
133
|
-
{...item} // TODO fix typing
|
|
134
|
-
onClick={hideSidebar}
|
|
135
|
-
key={i}
|
|
136
|
-
/>
|
|
137
|
-
))}
|
|
138
|
-
</ul>
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
</div>
|
|
142
|
-
</nav>
|
|
12
|
+
<NavbarLayout>
|
|
13
|
+
<NavbarContent />
|
|
14
|
+
</NavbarLayout>
|
|
143
15
|
);
|
|
144
16
|
}
|
|
145
|
-
|
|
146
|
-
export default Navbar;
|
|
@@ -4,207 +4,54 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import React
|
|
7
|
+
import React from 'react';
|
|
8
8
|
import clsx from 'clsx';
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import {useLocation} from '@docusaurus/router';
|
|
12
|
-
import {isSamePath} from '@docusaurus/theme-common';
|
|
9
|
+
import NavbarNavLink from '@theme/NavbarItem/NavbarNavLink';
|
|
10
|
+
import {getInfimaActiveClassName} from '@theme/NavbarItem/utils';
|
|
13
11
|
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
to,
|
|
18
|
-
href,
|
|
19
|
-
label,
|
|
20
|
-
activeClassName = 'navbar__link--active',
|
|
21
|
-
prependBaseUrlToHref,
|
|
12
|
+
function DefaultNavbarItemDesktop({
|
|
13
|
+
className,
|
|
14
|
+
isDropdownItem = false,
|
|
22
15
|
...props
|
|
23
16
|
}) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<Link
|
|
33
|
-
{...(href
|
|
34
|
-
? {
|
|
35
|
-
href: prependBaseUrlToHref ? normalizedHref : href,
|
|
36
|
-
}
|
|
37
|
-
: {
|
|
38
|
-
isNavLink: true,
|
|
39
|
-
activeClassName,
|
|
40
|
-
to: toUrl,
|
|
41
|
-
...(activeBasePath || activeBaseRegex
|
|
42
|
-
? {
|
|
43
|
-
isActive: (_match, location) =>
|
|
44
|
-
activeBaseRegex
|
|
45
|
-
? new RegExp(activeBaseRegex).test(location.pathname)
|
|
46
|
-
: location.pathname.startsWith(activeBaseUrl),
|
|
47
|
-
}
|
|
48
|
-
: null),
|
|
49
|
-
})}
|
|
50
|
-
{...props}>
|
|
51
|
-
{label}
|
|
52
|
-
</Link>
|
|
17
|
+
const element = (
|
|
18
|
+
<NavbarNavLink
|
|
19
|
+
className={clsx(
|
|
20
|
+
isDropdownItem ? 'dropdown__link' : 'navbar__item navbar__link',
|
|
21
|
+
className,
|
|
22
|
+
)}
|
|
23
|
+
{...props}
|
|
24
|
+
/>
|
|
53
25
|
);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function NavItemDesktop({items, position, className, ...props}) {
|
|
57
|
-
const dropdownRef = useRef(null);
|
|
58
|
-
const dropdownMenuRef = useRef(null);
|
|
59
|
-
const [showDropdown, setShowDropdown] = useState(false);
|
|
60
|
-
useEffect(() => {
|
|
61
|
-
const handleClickOutside = (event) => {
|
|
62
|
-
if (!dropdownRef.current || dropdownRef.current.contains(event.target)) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
setShowDropdown(false);
|
|
67
|
-
};
|
|
68
26
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return () => {
|
|
72
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
73
|
-
document.removeEventListener('touchstart', handleClickOutside);
|
|
74
|
-
};
|
|
75
|
-
}, [dropdownRef]);
|
|
76
|
-
|
|
77
|
-
const navLinkClassNames = (extraClassName, isDropdownItem = false) =>
|
|
78
|
-
clsx(
|
|
79
|
-
{
|
|
80
|
-
'navbar__item navbar__link': !isDropdownItem,
|
|
81
|
-
dropdown__link: isDropdownItem,
|
|
82
|
-
},
|
|
83
|
-
extraClassName,
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
if (!items) {
|
|
87
|
-
return <NavLink className={navLinkClassNames(className)} {...props} />;
|
|
27
|
+
if (isDropdownItem) {
|
|
28
|
+
return <li>{element}</li>;
|
|
88
29
|
}
|
|
89
30
|
|
|
90
|
-
return
|
|
91
|
-
|
|
92
|
-
ref={dropdownRef}
|
|
93
|
-
className={clsx('navbar__item', 'dropdown', 'dropdown--hoverable', {
|
|
94
|
-
'dropdown--left': position === 'left',
|
|
95
|
-
'dropdown--right': position === 'right',
|
|
96
|
-
'dropdown--show': showDropdown,
|
|
97
|
-
})}>
|
|
98
|
-
<NavLink
|
|
99
|
-
className={navLinkClassNames(className)}
|
|
100
|
-
{...props}
|
|
101
|
-
onClick={props.to ? undefined : (e) => e.preventDefault()}
|
|
102
|
-
onKeyDown={(e) => {
|
|
103
|
-
if (e.key === 'Enter') {
|
|
104
|
-
e.preventDefault();
|
|
105
|
-
setShowDropdown(!showDropdown);
|
|
106
|
-
}
|
|
107
|
-
}}>
|
|
108
|
-
{props.children ?? props.label}
|
|
109
|
-
</NavLink>
|
|
110
|
-
<ul ref={dropdownMenuRef} className="dropdown__menu">
|
|
111
|
-
{items.map(({className: childItemClassName, ...childItemProps}, i) => (
|
|
112
|
-
<li key={i}>
|
|
113
|
-
<NavLink
|
|
114
|
-
onKeyDown={(e) => {
|
|
115
|
-
if (i === items.length - 1 && e.key === 'Tab') {
|
|
116
|
-
e.preventDefault();
|
|
117
|
-
setShowDropdown(false);
|
|
118
|
-
const nextNavbarItem = dropdownRef.current.nextElementSibling;
|
|
31
|
+
return element;
|
|
32
|
+
}
|
|
119
33
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
activeClassName="dropdown__link--active"
|
|
126
|
-
className={navLinkClassNames(childItemClassName, true)}
|
|
127
|
-
{...childItemProps}
|
|
128
|
-
/>
|
|
129
|
-
</li>
|
|
130
|
-
))}
|
|
131
|
-
</ul>
|
|
132
|
-
</div>
|
|
34
|
+
function DefaultNavbarItemMobile({className, isDropdownItem, ...props}) {
|
|
35
|
+
return (
|
|
36
|
+
<li className="menu__list-item">
|
|
37
|
+
<NavbarNavLink className={clsx('menu__link', className)} {...props} />
|
|
38
|
+
</li>
|
|
133
39
|
);
|
|
134
40
|
}
|
|
135
41
|
|
|
136
|
-
function
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
position: _position,
|
|
42
|
+
export default function DefaultNavbarItem({
|
|
43
|
+
mobile = false,
|
|
44
|
+
position,
|
|
140
45
|
// Need to destructure position from props so that it doesn't get passed on.
|
|
141
46
|
...props
|
|
142
47
|
}) {
|
|
143
|
-
const
|
|
144
|
-
const {pathname} = useLocation();
|
|
145
|
-
const [collapsed, setCollapsed] = useState(
|
|
146
|
-
() => !items?.some((item) => isSamePath(item.to, pathname)) ?? true,
|
|
147
|
-
);
|
|
148
|
-
|
|
149
|
-
const navLinkClassNames = (extraClassName, isSubList = false) =>
|
|
150
|
-
clsx(
|
|
151
|
-
'menu__link',
|
|
152
|
-
{
|
|
153
|
-
'menu__link--sublist': isSubList,
|
|
154
|
-
},
|
|
155
|
-
extraClassName,
|
|
156
|
-
);
|
|
157
|
-
|
|
158
|
-
if (!items) {
|
|
159
|
-
return (
|
|
160
|
-
<li className="menu__list-item">
|
|
161
|
-
<NavLink className={navLinkClassNames(className)} {...props} />
|
|
162
|
-
</li>
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const menuListHeight = menuListRef.current?.scrollHeight
|
|
167
|
-
? `${menuListRef.current?.scrollHeight}px`
|
|
168
|
-
: undefined;
|
|
48
|
+
const Comp = mobile ? DefaultNavbarItemMobile : DefaultNavbarItemDesktop;
|
|
169
49
|
return (
|
|
170
|
-
<
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
className={navLinkClassNames(className, true)}
|
|
177
|
-
{...props}
|
|
178
|
-
onClick={(e) => {
|
|
179
|
-
e.preventDefault();
|
|
180
|
-
setCollapsed((state) => !state);
|
|
181
|
-
}}>
|
|
182
|
-
{props.children ?? props.label}
|
|
183
|
-
</NavLink>
|
|
184
|
-
<ul
|
|
185
|
-
className="menu__list"
|
|
186
|
-
ref={menuListRef}
|
|
187
|
-
style={{
|
|
188
|
-
height: !collapsed ? menuListHeight : undefined,
|
|
189
|
-
}}>
|
|
190
|
-
{items.map(({className: childItemClassName, ...childItemProps}, i) => (
|
|
191
|
-
<li className="menu__list-item" key={i}>
|
|
192
|
-
<NavLink
|
|
193
|
-
activeClassName="menu__link--active"
|
|
194
|
-
className={navLinkClassNames(childItemClassName)}
|
|
195
|
-
{...childItemProps}
|
|
196
|
-
onClick={props.onClick}
|
|
197
|
-
/>
|
|
198
|
-
</li>
|
|
199
|
-
))}
|
|
200
|
-
</ul>
|
|
201
|
-
</li>
|
|
50
|
+
<Comp
|
|
51
|
+
{...props}
|
|
52
|
+
activeClassName={
|
|
53
|
+
props.activeClassName ?? getInfimaActiveClassName(mobile)
|
|
54
|
+
}
|
|
55
|
+
/>
|
|
202
56
|
);
|
|
203
57
|
}
|
|
204
|
-
|
|
205
|
-
function DefaultNavbarItem({mobile = false, ...props}) {
|
|
206
|
-
const Comp = mobile ? NavItemMobile : NavItemDesktop;
|
|
207
|
-
return <Comp {...props} />;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
export default DefaultNavbarItem;
|
|
@@ -6,36 +6,53 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem';
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
useLatestVersion,
|
|
11
|
+
useActiveDocContext,
|
|
12
|
+
} from '@docusaurus/plugin-content-docs/client';
|
|
10
13
|
import clsx from 'clsx';
|
|
11
|
-
import {
|
|
14
|
+
import {getInfimaActiveClassName} from '@theme/NavbarItem/utils';
|
|
15
|
+
import {useDocsPreferredVersion, uniq} from '@docusaurus/theme-common';
|
|
16
|
+
|
|
17
|
+
function getDocInVersions(versions, docId) {
|
|
18
|
+
const allDocs = versions.flatMap((version) => version.docs);
|
|
19
|
+
const doc = allDocs.find((versionDoc) => versionDoc.id === docId);
|
|
20
|
+
|
|
21
|
+
if (!doc) {
|
|
22
|
+
const docIds = allDocs.map((versionDoc) => versionDoc.id).join('\n- ');
|
|
23
|
+
throw new Error(`DocNavbarItem: couldn't find any doc with id "${docId}" in version${
|
|
24
|
+
versions.length ? 's' : ''
|
|
25
|
+
} ${versions.map((version) => version.name).join(', ')}".
|
|
26
|
+
Available doc ids are:\n- ${docIds}`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return doc;
|
|
30
|
+
}
|
|
31
|
+
|
|
12
32
|
export default function DocNavbarItem({
|
|
13
33
|
docId,
|
|
14
|
-
activeSidebarClassName,
|
|
15
34
|
label: staticLabel,
|
|
16
35
|
docsPluginId,
|
|
17
36
|
...props
|
|
18
37
|
}) {
|
|
19
38
|
const {activeVersion, activeDoc} = useActiveDocContext(docsPluginId);
|
|
20
39
|
const {preferredVersion} = useDocsPreferredVersion(docsPluginId);
|
|
21
|
-
const latestVersion = useLatestVersion(docsPluginId);
|
|
22
|
-
const version = activeVersion ?? preferredVersion ?? latestVersion;
|
|
23
|
-
const doc = version.docs.find((versionDoc) => versionDoc.id === docId);
|
|
24
|
-
|
|
25
|
-
if (!doc) {
|
|
26
|
-
const docIds = version.docs.map((versionDoc) => versionDoc.id).join('\n- ');
|
|
27
|
-
throw new Error(`DocNavbarItem: couldn't find any doc with id=${docId} in version ${version.name}.
|
|
28
|
-
Available docIds=\n- ${docIds}`);
|
|
29
|
-
}
|
|
40
|
+
const latestVersion = useLatestVersion(docsPluginId); // Versions used to look for the doc to link to, ordered + no duplicate
|
|
30
41
|
|
|
42
|
+
const versions = uniq(
|
|
43
|
+
[activeVersion, preferredVersion, latestVersion].filter(Boolean),
|
|
44
|
+
);
|
|
45
|
+
const doc = getDocInVersions(versions, docId);
|
|
46
|
+
const activeDocInfimaClassName = getInfimaActiveClassName(props.mobile);
|
|
31
47
|
return (
|
|
32
48
|
<DefaultNavbarItem
|
|
33
49
|
exact
|
|
34
50
|
{...props}
|
|
35
51
|
className={clsx(props.className, {
|
|
36
|
-
[
|
|
37
|
-
activeDoc && activeDoc.sidebar === doc.sidebar,
|
|
52
|
+
[activeDocInfimaClassName]:
|
|
53
|
+
activeDoc?.sidebar && activeDoc.sidebar === doc.sidebar,
|
|
38
54
|
})}
|
|
55
|
+
activeClassName={activeDocInfimaClassName}
|
|
39
56
|
label={staticLabel ?? doc.id}
|
|
40
57
|
to={doc.path}
|
|
41
58
|
/>
|