@docusaurus/theme-classic 2.0.0-beta.15a2b59f9 → 2.0.0-beta.17
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-next/theme/Toggle/styles.module.css → lib/deps.d.ts} +5 -9
- package/lib/getSwizzleConfig.js +125 -0
- package/lib/index.js +36 -41
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme-classic.d.ts +771 -0
- package/lib/translations.js +40 -34
- package/lib/types.d.ts +0 -587
- package/lib/validateThemeConfig.js +242 -250
- package/lib-next/theme/Admonition/index.js +101 -0
- package/lib-next/theme/AnnouncementBar/index.js +8 -16
- package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
- package/lib-next/theme/BackToTopButton/index.js +131 -0
- package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
- package/lib-next/theme/BlogArchivePage/index.js +80 -0
- package/lib-next/theme/BlogLayout/index.js +37 -0
- package/lib-next/theme/BlogListPage/index.js +18 -29
- package/lib-next/theme/BlogListPaginator/index.js +13 -16
- package/lib-next/theme/BlogPostAuthor/index.js +52 -0
- package/{lib/theme/IconEdit → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -3
- package/lib-next/theme/BlogPostAuthors/index.js +44 -0
- package/{src/theme/Toggle → lib-next/theme/BlogPostAuthors}/styles.module.css +11 -7
- package/lib-next/theme/BlogPostItem/index.js +94 -96
- package/lib-next/theme/BlogPostPage/index.js +75 -39
- package/lib-next/theme/BlogPostPaginator/index.js +12 -19
- package/lib-next/theme/BlogSidebar/index.js +11 -13
- package/lib-next/theme/BlogSidebar/styles.module.css +4 -2
- package/lib-next/theme/BlogTagsListPage/index.js +15 -59
- package/lib-next/theme/BlogTagsPostsPage/index.js +33 -41
- package/lib-next/theme/CodeBlock/index.js +64 -154
- package/lib-next/theme/CodeBlock/styles.module.css +17 -9
- package/lib-next/theme/ColorModeToggle/index.js +83 -0
- package/lib-next/theme/ColorModeToggle/styles.module.css +51 -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 +76 -0
- package/lib-next/theme/DocBreadcrumbs/styles.module.css +26 -0
- package/lib-next/theme/DocCard/index.js +91 -0
- package/lib-next/theme/DocCard/styles.module.css +43 -0
- package/lib-next/theme/DocCardList/index.js +19 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +54 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/lib-next/theme/DocItem/index.js +53 -58
- package/lib-next/theme/DocItem/styles.module.css +6 -10
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
- package/lib-next/theme/DocPage/index.js +54 -55
- package/lib-next/theme/DocPage/styles.module.css +9 -3
- package/lib-next/theme/DocPaginator/index.js +15 -24
- package/lib-next/theme/DocSidebar/index.js +65 -286
- package/lib-next/theme/DocSidebar/styles.module.css +5 -22
- package/lib-next/theme/DocSidebarItem/index.js +264 -0
- package/{lib/theme/BlogPostItem → lib-next/theme/DocSidebarItem}/styles.module.css +5 -10
- package/lib-next/theme/DocSidebarItems/index.js +28 -0
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +35 -0
- package/lib-next/theme/DocVersionBadge/index.js +34 -0
- package/lib-next/theme/DocVersionBanner/index.js +32 -15
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/ErrorPageContent.js +35 -0
- package/lib-next/theme/Footer/index.js +95 -40
- package/lib-next/theme/Footer/styles.module.css +2 -1
- package/lib-next/theme/Heading/index.js +39 -48
- package/lib-next/theme/Heading/styles.module.css +25 -5
- package/lib-next/theme/IconArrow/index.js +2 -5
- 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 +2 -5
- package/lib-next/theme/IconExternalLink/index.js +2 -5
- 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 +7 -5
- package/lib-next/theme/LastUpdated/index.js +3 -2
- package/lib-next/theme/Layout/index.js +5 -7
- package/lib-next/theme/LayoutHead/index.js +27 -32
- package/lib-next/theme/LayoutProviders/index.js +15 -9
- package/lib-next/theme/Logo/index.js +25 -24
- package/lib-next/theme/MDXComponents/index.js +59 -30
- package/{src/theme/hooks → lib-next/theme/MDXComponents}/styles.css +7 -2
- package/lib-next/theme/MDXPage/index.js +10 -12
- package/lib-next/theme/Navbar/index.js +199 -64
- package/lib-next/theme/Navbar/styles.module.css +10 -3
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +35 -201
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +11 -8
- package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +34 -20
- package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +156 -0
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
- package/{lib/theme/hooks/styles.css → lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css} +3 -2
- package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
- package/lib-next/theme/NavbarItem/index.js +26 -14
- package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
- package/lib-next/theme/NotFound.js +1 -4
- 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/Seo/index.js +11 -7
- package/lib-next/theme/SkipToContent/index.js +3 -5
- package/lib-next/theme/SkipToContent/styles.module.css +7 -0
- package/lib-next/theme/TOC/index.js +12 -39
- package/lib-next/theme/TOC/styles.module.css +1 -1
- package/lib-next/theme/TOCCollapsible/index.js +54 -0
- package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
- package/lib-next/theme/TOCInline/index.js +10 -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/{hooks/styles.css → TagsListByLetter/styles.module.css} +3 -2
- package/lib-next/theme/TagsListInline/index.js +31 -0
- package/lib-next/theme/TagsListInline/styles.module.css +15 -0
- package/lib-next/theme/ThemedImage/index.js +7 -10
- package/lib-next/theme/ThemedImage/styles.module.css +2 -2
- package/lib-next/theme/prism-include-languages.js +17 -15
- package/package.json +31 -31
- package/src/admonitions.css +35 -0
- package/src/deps.d.ts +13 -0
- package/src/getSwizzleConfig.ts +123 -0
- package/src/index.ts +39 -61
- 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 +9 -15
- package/src/theme/AnnouncementBar/styles.module.css +23 -32
- package/src/theme/BackToTopButton/index.tsx +143 -0
- package/src/theme/BackToTopButton/styles.module.css +44 -0
- package/src/theme/BlogArchivePage/index.tsx +91 -0
- package/src/theme/BlogLayout/index.tsx +42 -0
- package/src/theme/BlogListPage/index.tsx +19 -28
- package/src/theme/BlogListPaginator/index.tsx +13 -15
- package/src/theme/BlogPostAuthor/index.tsx +54 -0
- package/{lib/theme/MDXPage → src/theme/BlogPostAuthor}/styles.module.css +4 -2
- package/src/theme/BlogPostAuthors/index.tsx +49 -0
- package/src/theme/BlogPostAuthors/styles.module.css +21 -0
- package/src/theme/BlogPostItem/index.tsx +84 -90
- package/src/theme/BlogPostPage/index.tsx +77 -38
- package/src/theme/BlogPostPaginator/index.tsx +12 -18
- package/src/theme/BlogSidebar/index.tsx +11 -13
- package/src/theme/BlogSidebar/styles.module.css +4 -2
- package/src/theme/BlogTagsListPage/index.tsx +15 -60
- package/src/theme/BlogTagsPostsPage/index.tsx +32 -40
- package/src/theme/CodeBlock/index.tsx +68 -156
- package/src/theme/CodeBlock/styles.module.css +17 -9
- package/src/theme/ColorModeToggle/index.tsx +92 -0
- package/src/theme/ColorModeToggle/styles.module.css +51 -0
- package/src/theme/Details/index.tsx +25 -0
- package/src/theme/Details/styles.module.css +13 -0
- package/src/theme/DocBreadcrumbs/index.tsx +91 -0
- package/src/theme/DocBreadcrumbs/styles.module.css +26 -0
- package/src/theme/DocCard/index.tsx +109 -0
- package/src/theme/DocCard/styles.module.css +43 -0
- package/src/theme/DocCardList/index.tsx +27 -0
- package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +59 -0
- package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/src/theme/DocItem/index.tsx +56 -58
- package/src/theme/DocItem/styles.module.css +6 -10
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/{lib/theme/Toggle → src/theme/DocItemFooter}/styles.module.css +9 -8
- package/src/theme/DocPage/index.tsx +53 -49
- package/src/theme/DocPage/styles.module.css +9 -3
- package/src/theme/DocPaginator/index.tsx +15 -23
- package/src/theme/DocSidebar/index.tsx +76 -298
- package/src/theme/DocSidebar/styles.module.css +5 -22
- package/src/theme/DocSidebarItem/index.tsx +283 -0
- package/src/theme/DocSidebarItem/styles.module.css +13 -0
- package/src/theme/DocSidebarItems/index.tsx +32 -0
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +39 -0
- package/src/theme/DocVersionBadge/index.tsx +35 -0
- package/src/theme/DocVersionBanner/index.tsx +49 -22
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/ErrorPageContent.tsx +41 -0
- package/src/theme/Footer/index.tsx +109 -44
- package/src/theme/Footer/styles.module.css +2 -1
- package/src/theme/Heading/index.tsx +38 -53
- package/src/theme/Heading/styles.module.css +25 -5
- package/src/theme/IconArrow/index.tsx +2 -4
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/IconDarkMode/index.tsx +20 -0
- package/src/theme/IconEdit/index.tsx +5 -4
- package/src/theme/IconExternalLink/index.tsx +3 -5
- package/src/theme/IconLanguage/index.tsx +6 -8
- package/src/theme/IconLightMode/index.tsx +20 -0
- package/src/theme/IconMenu/index.tsx +3 -5
- package/src/theme/LastUpdated/index.tsx +3 -2
- package/src/theme/Layout/index.tsx +5 -6
- package/src/theme/LayoutHead/index.tsx +26 -25
- package/src/theme/LayoutProviders/index.tsx +15 -9
- package/src/theme/Logo/index.tsx +21 -19
- package/src/theme/MDXComponents/index.tsx +70 -32
- package/{lib/theme/IconExternalLink/styles.module.css → src/theme/MDXComponents/styles.css} +7 -4
- package/src/theme/MDXPage/index.tsx +10 -12
- package/src/theme/Navbar/index.tsx +208 -68
- package/src/theme/Navbar/styles.module.css +10 -3
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -207
- package/src/theme/NavbarItem/DocNavbarItem.tsx +17 -18
- package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +39 -24
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +16 -10
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
- package/src/theme/NavbarItem/index.tsx +41 -18
- package/src/theme/NavbarItem/utils.ts +10 -0
- package/src/theme/NotFound.tsx +1 -3
- 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/Seo/index.tsx +7 -4
- package/src/theme/SkipToContent/index.tsx +3 -5
- package/src/theme/SkipToContent/styles.module.css +7 -0
- package/src/theme/TOC/index.tsx +13 -44
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/index.tsx +58 -0
- package/src/theme/TOCCollapsible/styles.module.css +50 -0
- package/src/theme/TOCInline/index.tsx +14 -35
- package/src/theme/TOCItems/index.tsx +100 -0
- package/src/theme/TabItem/index.tsx +5 -3
- package/src/theme/Tabs/index.tsx +115 -56
- 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 +7 -9
- package/src/theme/ThemedImage/styles.module.css +2 -2
- package/src/theme/prism-include-languages.ts +20 -15
- package/src/theme-classic.d.ts +771 -0
- package/src/translations.ts +74 -54
- package/src/types.d.ts +0 -587
- package/src/validateThemeConfig.ts +381 -0
- package/babel.config.js +0 -35
- package/codeTranslations/README.md +0 -20
- package/codeTranslations/ar.json +0 -57
- package/codeTranslations/base.json +0 -112
- package/codeTranslations/bn.json +0 -56
- package/codeTranslations/da.json +0 -57
- package/codeTranslations/de.json +0 -57
- package/codeTranslations/es.json +0 -57
- package/codeTranslations/fa.json +0 -57
- package/codeTranslations/fil.json +0 -57
- package/codeTranslations/fr.json +0 -57
- package/codeTranslations/he.json +0 -57
- package/codeTranslations/hi.json +0 -57
- package/codeTranslations/ja.json +0 -57
- package/codeTranslations/ko.json +0 -57
- package/codeTranslations/pl.json +0 -57
- package/codeTranslations/pt-BR.json +0 -57
- package/codeTranslations/pt-PT.json +0 -57
- package/codeTranslations/ru.json +0 -57
- package/codeTranslations/tr.json +0 -57
- package/codeTranslations/vi.json +0 -57
- package/codeTranslations/zh-Hans.json +0 -57
- package/codeTranslations/zh-Hant.json +0 -57
- package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib/__tests__/translations.test.js +0 -112
- package/lib/__tests__/validateThemeConfig.test.js +0 -333
- package/lib/theme/AnnouncementBar/index.js +0 -72
- package/lib/theme/AnnouncementBar/styles.module.css +0 -72
- package/lib/theme/BlogListPage/index.js +0 -71
- package/lib/theme/BlogListPaginator/index.js +0 -63
- package/lib/theme/BlogPostItem/index.js +0 -161
- package/lib/theme/BlogPostPage/index.js +0 -69
- package/lib/theme/BlogPostPaginator/index.js +0 -64
- package/lib/theme/BlogSidebar/index.js +0 -51
- package/lib/theme/BlogSidebar/styles.module.css +0 -44
- package/lib/theme/BlogTagsListPage/index.js +0 -76
- package/lib/theme/BlogTagsPostsPage/index.js +0 -100
- package/lib/theme/CodeBlock/index.js +0 -253
- package/lib/theme/CodeBlock/styles.module.css +0 -68
- package/lib/theme/DocItem/index.js +0 -129
- package/lib/theme/DocPage/index.js +0 -173
- package/lib/theme/DocPage/styles.module.css +0 -80
- package/lib/theme/DocPaginator/index.js +0 -63
- package/lib/theme/DocSidebar/index.js +0 -309
- package/lib/theme/DocSidebar/styles.module.css +0 -124
- package/lib/theme/DocVersionBanner/index.js +0 -128
- package/lib/theme/EditThisPage/index.js +0 -31
- package/lib/theme/Footer/index.js +0 -115
- package/lib/theme/Footer/styles.module.css +0 -15
- package/lib/theme/Heading/index.js +0 -76
- package/lib/theme/Heading/styles.css +0 -23
- package/lib/theme/Heading/styles.module.css +0 -15
- package/lib/theme/IconArrow/index.js +0 -28
- package/lib/theme/IconEdit/index.js +0 -34
- package/lib/theme/IconExternalLink/index.js +0 -30
- package/lib/theme/IconLanguage/index.js +0 -29
- package/lib/theme/IconMenu/index.js +0 -30
- package/lib/theme/LastUpdated/index.js +0 -61
- package/lib/theme/Layout/index.js +0 -64
- package/lib/theme/Layout/styles.css +0 -27
- package/lib/theme/LayoutHead/index.js +0 -144
- package/lib/theme/LayoutProviders/index.js +0 -36
- package/lib/theme/Logo/index.js +0 -60
- package/lib/theme/MDXComponents/index.js +0 -65
- package/lib/theme/MDXPage/index.js +0 -66
- package/lib/theme/Navbar/index.js +0 -147
- package/lib/theme/Navbar/styles.module.css +0 -20
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
- package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
- package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
- package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
- package/lib/theme/NavbarItem/index.js +0 -54
- package/lib/theme/NotFound.js +0 -57
- package/lib/theme/SearchBar.js +0 -15
- package/lib/theme/SearchMetadatas/index.js +0 -33
- package/lib/theme/Seo/index.js +0 -49
- package/lib/theme/SkipToContent/index.js +0 -71
- package/lib/theme/SkipToContent/styles.module.css +0 -14
- package/lib/theme/TOC/index.js +0 -59
- package/lib/theme/TOC/styles.module.css +0 -23
- package/lib/theme/TOCInline/index.js +0 -53
- package/lib/theme/TOCInline/styles.module.css +0 -12
- package/lib/theme/TabItem/index.js +0 -32
- package/lib/theme/Tabs/index.js +0 -150
- package/lib/theme/Tabs/styles.module.css +0 -23
- package/lib/theme/ThemeContext.js +0 -21
- package/lib/theme/ThemeProvider/index.js +0 -38
- package/lib/theme/ThemedImage/index.js +0 -49
- package/lib/theme/ThemedImage/styles.module.css +0 -18
- package/lib/theme/Toggle/index.js +0 -94
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/UserPreferencesContext.js +0 -18
- package/lib/theme/UserPreferencesProvider/index.js +0 -36
- package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
- package/lib/theme/hooks/useDocs.js +0 -18
- package/lib/theme/hooks/useHideableNavbar.js +0 -92
- package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
- package/lib/theme/hooks/useLocationHash.js +0 -28
- package/lib/theme/hooks/useLockBodyScroll.js +0 -26
- package/lib/theme/hooks/usePrismTheme.js +0 -36
- package/lib/theme/hooks/useScrollPosition.js +0 -49
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib/theme/hooks/useTabGroupChoice.js +0 -51
- package/lib/theme/hooks/useTheme.js +0 -99
- package/lib/theme/hooks/useThemeContext.js +0 -31
- package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
- package/lib/theme/hooks/useWindowSize.js +0 -55
- package/lib/theme/prism-include-languages.js +0 -39
- package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib-next/__tests__/translations.test.js +0 -128
- package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
- package/lib-next/index.js +0 -221
- package/lib-next/theme/Heading/styles.css +0 -23
- package/lib-next/theme/SearchMetadatas/index.js +0 -20
- package/lib-next/theme/ThemeContext.js +0 -9
- package/lib-next/theme/ThemeProvider/index.js +0 -25
- package/lib-next/theme/Toggle/index.js +0 -80
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/UserPreferencesProvider/index.js +0 -24
- 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 -39
- 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 -598
- 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/Heading/styles.css +0 -23
- package/src/theme/SearchMetadatas/index.tsx +0 -28
- package/src/theme/ThemeContext.ts +0 -15
- package/src/theme/ThemeProvider/index.tsx +0 -24
- package/src/theme/Toggle/index.tsx +0 -100
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/UserPreferencesContext.ts +0 -12
- package/src/theme/UserPreferencesProvider/index.tsx +0 -27
- 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 -240
- package/update-code-translations.test.js +0 -33
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import React, {type ReactNode} from 'react';
|
|
9
|
+
import Link from '@docusaurus/Link';
|
|
10
|
+
import type {
|
|
11
|
+
PropSidebarItemCategory,
|
|
12
|
+
PropSidebarItemLink,
|
|
13
|
+
} from '@docusaurus/plugin-content-docs';
|
|
14
|
+
import type {Props} from '@theme/DocCard';
|
|
15
|
+
import {findFirstCategoryLink, useDocById} from '@docusaurus/theme-common';
|
|
16
|
+
import clsx from 'clsx';
|
|
17
|
+
import styles from './styles.module.css';
|
|
18
|
+
import isInternalUrl from '@docusaurus/isInternalUrl';
|
|
19
|
+
import {translate} from '@docusaurus/Translate';
|
|
20
|
+
|
|
21
|
+
function CardContainer({
|
|
22
|
+
href,
|
|
23
|
+
children,
|
|
24
|
+
}: {
|
|
25
|
+
href?: string;
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
}): JSX.Element {
|
|
28
|
+
const className = clsx(
|
|
29
|
+
'card margin-bottom--lg padding--lg',
|
|
30
|
+
styles.cardContainer,
|
|
31
|
+
href && styles.cardContainerLink,
|
|
32
|
+
);
|
|
33
|
+
return href ? (
|
|
34
|
+
<Link href={href} className={className}>
|
|
35
|
+
{children}
|
|
36
|
+
</Link>
|
|
37
|
+
) : (
|
|
38
|
+
<div className={className}>{children}</div>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function CardLayout({
|
|
43
|
+
href,
|
|
44
|
+
icon,
|
|
45
|
+
title,
|
|
46
|
+
description,
|
|
47
|
+
}: {
|
|
48
|
+
href?: string;
|
|
49
|
+
icon: ReactNode;
|
|
50
|
+
title: string;
|
|
51
|
+
description?: string;
|
|
52
|
+
}): JSX.Element {
|
|
53
|
+
return (
|
|
54
|
+
<CardContainer href={href}>
|
|
55
|
+
<h2 className={clsx('text--truncate', styles.cardTitle)} title={title}>
|
|
56
|
+
{icon} {title}
|
|
57
|
+
</h2>
|
|
58
|
+
<div
|
|
59
|
+
className={clsx('text--truncate', styles.cardDescription)}
|
|
60
|
+
title={description}>
|
|
61
|
+
{description}
|
|
62
|
+
</div>
|
|
63
|
+
</CardContainer>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function CardCategory({item}: {item: PropSidebarItemCategory}): JSX.Element {
|
|
68
|
+
const href = findFirstCategoryLink(item);
|
|
69
|
+
return (
|
|
70
|
+
<CardLayout
|
|
71
|
+
href={href}
|
|
72
|
+
icon="🗃️"
|
|
73
|
+
title={item.label}
|
|
74
|
+
description={translate(
|
|
75
|
+
{
|
|
76
|
+
message: '{count} items',
|
|
77
|
+
id: 'theme.docs.DocCard.categoryDescription',
|
|
78
|
+
description:
|
|
79
|
+
'The default description for a category card in the generated index about how many items this category includes',
|
|
80
|
+
},
|
|
81
|
+
{count: item.items.length},
|
|
82
|
+
)}
|
|
83
|
+
/>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function CardLink({item}: {item: PropSidebarItemLink}): JSX.Element {
|
|
88
|
+
const icon = isInternalUrl(item.href) ? '📄️' : '🔗';
|
|
89
|
+
const doc = useDocById(item.docId ?? undefined);
|
|
90
|
+
return (
|
|
91
|
+
<CardLayout
|
|
92
|
+
href={item.href}
|
|
93
|
+
icon={icon}
|
|
94
|
+
title={item.label}
|
|
95
|
+
description={doc?.description}
|
|
96
|
+
/>
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export default function DocCard({item}: Props): JSX.Element {
|
|
101
|
+
switch (item.type) {
|
|
102
|
+
case 'link':
|
|
103
|
+
return <CardLink item={item} />;
|
|
104
|
+
case 'category':
|
|
105
|
+
return <CardCategory item={item} />;
|
|
106
|
+
default:
|
|
107
|
+
throw new Error(`unknown item type ${JSON.stringify(item)}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
.cardContainer {
|
|
9
|
+
height: 8rem;
|
|
10
|
+
color: var(--ifm-color-emphasis-800);
|
|
11
|
+
--ifm-link-color: var(--ifm-color-emphasis-800);
|
|
12
|
+
--ifm-link-hover-color: var(--ifm-color-emphasis-800);
|
|
13
|
+
--ifm-link-hover-decoration: none;
|
|
14
|
+
|
|
15
|
+
/* box-shadow: var(--ifm-global-shadow-lw); */
|
|
16
|
+
box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%);
|
|
17
|
+
border: 1px solid var(--ifm-color-emphasis-200);
|
|
18
|
+
transition: box-shadow var(--ifm-transition-fast) ease,
|
|
19
|
+
background-color var(--ifm-transition-fast) ease;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.cardContainer.cardContainerLink:hover {
|
|
23
|
+
/* box-shadow: var(--ifm-global-shadow-md); */
|
|
24
|
+
box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[data-theme='dark'] .cardContainer.cardContainerLink:hover {
|
|
28
|
+
--ifm-card-background-color: #2d2d2d; /* original, non-hovered color is #242526 */
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.cardContainer:not(.cardContainerLink) {
|
|
32
|
+
cursor: not-allowed;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.cardTitle {
|
|
36
|
+
font-size: 1.2rem;
|
|
37
|
+
min-height: 1.2rem;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.cardDescription {
|
|
41
|
+
font-size: 0.8rem;
|
|
42
|
+
min-height: 0.8rem;
|
|
43
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import React from 'react';
|
|
9
|
+
|
|
10
|
+
import DocCard from '@theme/DocCard';
|
|
11
|
+
import type {PropSidebarItem} from '@docusaurus/plugin-content-docs';
|
|
12
|
+
|
|
13
|
+
export default function DocCardList({
|
|
14
|
+
items,
|
|
15
|
+
}: {
|
|
16
|
+
items: PropSidebarItem[];
|
|
17
|
+
}): JSX.Element {
|
|
18
|
+
return (
|
|
19
|
+
<div className="row">
|
|
20
|
+
{items.map((item, index) => (
|
|
21
|
+
<article key={index} className="col col--6">
|
|
22
|
+
<DocCard item={item} />
|
|
23
|
+
</article>
|
|
24
|
+
))}
|
|
25
|
+
</div>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
|
10
|
+
import type {Props} from '@theme/DocCategoryGeneratedIndexPage';
|
|
11
|
+
import DocCardList from '@theme/DocCardList';
|
|
12
|
+
import DocPaginator from '@theme/DocPaginator';
|
|
13
|
+
import Seo from '@theme/Seo';
|
|
14
|
+
import DocVersionBanner from '@theme/DocVersionBanner';
|
|
15
|
+
import DocVersionBadge from '@theme/DocVersionBadge';
|
|
16
|
+
import DocBreadcrumbs from '@theme/DocBreadcrumbs';
|
|
17
|
+
import Heading from '@theme/Heading';
|
|
18
|
+
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
19
|
+
|
|
20
|
+
import styles from './styles.module.css';
|
|
21
|
+
|
|
22
|
+
export default function DocCategoryGeneratedIndexPage({
|
|
23
|
+
categoryGeneratedIndex,
|
|
24
|
+
}: Props): JSX.Element {
|
|
25
|
+
const category = useCurrentSidebarCategory();
|
|
26
|
+
return (
|
|
27
|
+
<>
|
|
28
|
+
<Seo
|
|
29
|
+
title={categoryGeneratedIndex.title}
|
|
30
|
+
description={categoryGeneratedIndex.description}
|
|
31
|
+
keywords={categoryGeneratedIndex.keywords}
|
|
32
|
+
// TODO `require` this?
|
|
33
|
+
image={useBaseUrl(categoryGeneratedIndex.image)}
|
|
34
|
+
/>
|
|
35
|
+
<div className={styles.generatedIndexPage}>
|
|
36
|
+
<DocVersionBanner />
|
|
37
|
+
<DocBreadcrumbs />
|
|
38
|
+
<DocVersionBadge />
|
|
39
|
+
<header>
|
|
40
|
+
<Heading as="h1" className={styles.title}>
|
|
41
|
+
{categoryGeneratedIndex.title}
|
|
42
|
+
</Heading>
|
|
43
|
+
{categoryGeneratedIndex.description && (
|
|
44
|
+
<p>{categoryGeneratedIndex.description}</p>
|
|
45
|
+
)}
|
|
46
|
+
</header>
|
|
47
|
+
<main className="margin-top--lg">
|
|
48
|
+
<DocCardList items={category.items} />
|
|
49
|
+
</main>
|
|
50
|
+
<footer className="margin-top--lg">
|
|
51
|
+
<DocPaginator
|
|
52
|
+
previous={categoryGeneratedIndex.navigation.previous}
|
|
53
|
+
next={categoryGeneratedIndex.navigation.next}
|
|
54
|
+
/>
|
|
55
|
+
</footer>
|
|
56
|
+
</div>
|
|
57
|
+
</>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
@media (min-width: 997px) {
|
|
9
|
+
.generatedIndexPage {
|
|
10
|
+
max-width: 75% !important;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* Duplicated from .markdown h1 */
|
|
15
|
+
.title {
|
|
16
|
+
--ifm-h1-font-size: 3rem;
|
|
17
|
+
margin-bottom: calc(1.25 * var(--ifm-leading));
|
|
18
|
+
}
|
|
@@ -6,51 +6,47 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import React from 'react';
|
|
9
|
+
import clsx from 'clsx';
|
|
9
10
|
import DocPaginator from '@theme/DocPaginator';
|
|
10
11
|
import DocVersionBanner from '@theme/DocVersionBanner';
|
|
12
|
+
import DocVersionBadge from '@theme/DocVersionBadge';
|
|
11
13
|
import Seo from '@theme/Seo';
|
|
12
|
-
import LastUpdated from '@theme/LastUpdated';
|
|
13
14
|
import type {Props} from '@theme/DocItem';
|
|
15
|
+
import DocItemFooter from '@theme/DocItemFooter';
|
|
14
16
|
import TOC from '@theme/TOC';
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
|
|
18
|
-
import clsx from 'clsx';
|
|
17
|
+
import TOCCollapsible from '@theme/TOCCollapsible';
|
|
18
|
+
import Heading from '@theme/Heading';
|
|
19
19
|
import styles from './styles.module.css';
|
|
20
|
-
import {
|
|
20
|
+
import {ThemeClassNames, useWindowSize} from '@docusaurus/theme-common';
|
|
21
|
+
import DocBreadcrumbs from '@theme/DocBreadcrumbs';
|
|
21
22
|
|
|
22
|
-
function DocItem(props: Props): JSX.Element {
|
|
23
|
-
const {content: DocContent
|
|
24
|
-
const {metadata, frontMatter} = DocContent;
|
|
23
|
+
export default function DocItem(props: Props): JSX.Element {
|
|
24
|
+
const {content: DocContent} = props;
|
|
25
|
+
const {metadata, frontMatter, assets} = DocContent;
|
|
25
26
|
const {
|
|
26
|
-
image,
|
|
27
27
|
keywords,
|
|
28
28
|
hide_title: hideTitle,
|
|
29
29
|
hide_table_of_contents: hideTableOfContents,
|
|
30
|
+
toc_min_heading_level: tocMinHeadingLevel,
|
|
31
|
+
toc_max_heading_level: tocMaxHeadingLevel,
|
|
30
32
|
} = frontMatter;
|
|
31
|
-
const {
|
|
32
|
-
|
|
33
|
-
title,
|
|
34
|
-
editUrl,
|
|
35
|
-
lastUpdatedAt,
|
|
36
|
-
formattedLastUpdatedAt,
|
|
37
|
-
lastUpdatedBy,
|
|
38
|
-
} = metadata;
|
|
39
|
-
|
|
40
|
-
const {pluginId} = useActivePlugin({failfast: true});
|
|
41
|
-
const versions = useVersions(pluginId);
|
|
42
|
-
|
|
43
|
-
// If site is not versioned or only one version is included
|
|
44
|
-
// we don't show the version badge
|
|
45
|
-
// See https://github.com/facebook/docusaurus/issues/3362
|
|
46
|
-
const showVersionBadge = versions.length > 1;
|
|
33
|
+
const {description, title} = metadata;
|
|
34
|
+
const image = assets.image ?? frontMatter.image;
|
|
47
35
|
|
|
48
36
|
// We only add a title if:
|
|
49
|
-
// - user asks to hide it with
|
|
37
|
+
// - user asks to hide it with front matter
|
|
50
38
|
// - the markdown content does not already contain a top-level h1 heading
|
|
51
39
|
const shouldAddTitle =
|
|
52
40
|
!hideTitle && typeof DocContent.contentTitle === 'undefined';
|
|
53
41
|
|
|
42
|
+
const windowSize = useWindowSize();
|
|
43
|
+
|
|
44
|
+
const canRenderTOC =
|
|
45
|
+
!hideTableOfContents && DocContent.toc && DocContent.toc.length > 0;
|
|
46
|
+
|
|
47
|
+
const renderTocDesktop =
|
|
48
|
+
canRenderTOC && (windowSize === 'desktop' || windowSize === 'ssr');
|
|
49
|
+
|
|
54
50
|
return (
|
|
55
51
|
<>
|
|
56
52
|
<Seo {...{title, description, keywords, image}} />
|
|
@@ -60,56 +56,58 @@ function DocItem(props: Props): JSX.Element {
|
|
|
60
56
|
className={clsx('col', {
|
|
61
57
|
[styles.docItemCol]: !hideTableOfContents,
|
|
62
58
|
})}>
|
|
63
|
-
<DocVersionBanner
|
|
59
|
+
<DocVersionBanner />
|
|
64
60
|
<div className={styles.docItemContainer}>
|
|
65
61
|
<article>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
<DocBreadcrumbs />
|
|
63
|
+
<DocVersionBadge />
|
|
64
|
+
|
|
65
|
+
{canRenderTOC && (
|
|
66
|
+
<TOCCollapsible
|
|
67
|
+
toc={DocContent.toc}
|
|
68
|
+
minHeadingLevel={tocMinHeadingLevel}
|
|
69
|
+
maxHeadingLevel={tocMaxHeadingLevel}
|
|
70
|
+
className={clsx(
|
|
71
|
+
ThemeClassNames.docs.docTocMobile,
|
|
72
|
+
styles.tocMobile,
|
|
73
|
+
)}
|
|
74
|
+
/>
|
|
70
75
|
)}
|
|
71
76
|
|
|
72
|
-
<div
|
|
77
|
+
<div
|
|
78
|
+
className={clsx(ThemeClassNames.docs.docMarkdown, 'markdown')}>
|
|
73
79
|
{/*
|
|
74
|
-
Title can be declared inside md content or declared through
|
|
75
|
-
To make both cases consistent,
|
|
80
|
+
Title can be declared inside md content or declared through
|
|
81
|
+
front matter and added manually. To make both cases consistent,
|
|
82
|
+
the added title is added under the same div.markdown block
|
|
76
83
|
See https://github.com/facebook/docusaurus/pull/4882#issuecomment-853021120
|
|
77
84
|
*/}
|
|
78
|
-
{shouldAddTitle &&
|
|
85
|
+
{shouldAddTitle && (
|
|
86
|
+
<header>
|
|
87
|
+
<Heading as="h1">{title}</Heading>
|
|
88
|
+
</header>
|
|
89
|
+
)}
|
|
79
90
|
|
|
80
91
|
<DocContent />
|
|
81
92
|
</div>
|
|
82
93
|
|
|
83
|
-
{
|
|
84
|
-
<footer className="row docusaurus-mt-lg">
|
|
85
|
-
<div className="col">
|
|
86
|
-
{editUrl && <EditThisPage editUrl={editUrl} />}
|
|
87
|
-
</div>
|
|
88
|
-
|
|
89
|
-
<div className={clsx('col', styles.lastUpdated)}>
|
|
90
|
-
{(lastUpdatedAt || lastUpdatedBy) && (
|
|
91
|
-
<LastUpdated
|
|
92
|
-
lastUpdatedAt={lastUpdatedAt}
|
|
93
|
-
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
94
|
-
lastUpdatedBy={lastUpdatedBy}
|
|
95
|
-
/>
|
|
96
|
-
)}
|
|
97
|
-
</div>
|
|
98
|
-
</footer>
|
|
99
|
-
)}
|
|
94
|
+
<DocItemFooter {...props} />
|
|
100
95
|
</article>
|
|
101
96
|
|
|
102
|
-
<DocPaginator metadata={metadata} />
|
|
97
|
+
<DocPaginator previous={metadata.previous} next={metadata.next} />
|
|
103
98
|
</div>
|
|
104
99
|
</div>
|
|
105
|
-
{
|
|
100
|
+
{renderTocDesktop && (
|
|
106
101
|
<div className="col col--3">
|
|
107
|
-
<TOC
|
|
102
|
+
<TOC
|
|
103
|
+
toc={DocContent.toc}
|
|
104
|
+
minHeadingLevel={tocMinHeadingLevel}
|
|
105
|
+
maxHeadingLevel={tocMaxHeadingLevel}
|
|
106
|
+
className={ThemeClassNames.docs.docTocDesktop}
|
|
107
|
+
/>
|
|
108
108
|
</div>
|
|
109
109
|
)}
|
|
110
110
|
</div>
|
|
111
111
|
</>
|
|
112
112
|
);
|
|
113
113
|
}
|
|
114
|
-
|
|
115
|
-
export default DocItem;
|
|
@@ -5,22 +5,18 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
.docItemContainer header +
|
|
8
|
+
.docItemContainer header + *,
|
|
9
|
+
.docItemContainer article > *:first-child {
|
|
9
10
|
margin-top: 0;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
margin-top: 0.2rem;
|
|
14
|
-
font-style: italic;
|
|
15
|
-
font-size: smaller;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@media only screen and (min-width: 997px) {
|
|
13
|
+
@media (min-width: 997px) {
|
|
19
14
|
.docItemCol {
|
|
20
15
|
max-width: 75% !important;
|
|
21
16
|
}
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
/* Prevent hydration FOUC, as the mobile TOC needs to be server-rendered */
|
|
19
|
+
.tocMobile {
|
|
20
|
+
display: none;
|
|
25
21
|
}
|
|
26
22
|
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import clsx from 'clsx';
|
|
10
|
+
|
|
11
|
+
import LastUpdated from '@theme/LastUpdated';
|
|
12
|
+
import type {Props} from '@theme/DocItem';
|
|
13
|
+
import EditThisPage from '@theme/EditThisPage';
|
|
14
|
+
import TagsListInline, {
|
|
15
|
+
type Props as TagsListInlineProps,
|
|
16
|
+
} from '@theme/TagsListInline';
|
|
17
|
+
|
|
18
|
+
import styles from './styles.module.css';
|
|
19
|
+
import {ThemeClassNames} from '@docusaurus/theme-common';
|
|
20
|
+
|
|
21
|
+
function TagsRow(props: TagsListInlineProps) {
|
|
22
|
+
return (
|
|
23
|
+
<div
|
|
24
|
+
className={clsx(
|
|
25
|
+
ThemeClassNames.docs.docFooterTagsRow,
|
|
26
|
+
'row margin-bottom--sm',
|
|
27
|
+
)}>
|
|
28
|
+
<div className="col">
|
|
29
|
+
<TagsListInline {...props} />
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type EditMetaRowProps = Pick<
|
|
36
|
+
Props['content']['metadata'],
|
|
37
|
+
'editUrl' | 'lastUpdatedAt' | 'lastUpdatedBy' | 'formattedLastUpdatedAt'
|
|
38
|
+
>;
|
|
39
|
+
function EditMetaRow({
|
|
40
|
+
editUrl,
|
|
41
|
+
lastUpdatedAt,
|
|
42
|
+
lastUpdatedBy,
|
|
43
|
+
formattedLastUpdatedAt,
|
|
44
|
+
}: EditMetaRowProps) {
|
|
45
|
+
return (
|
|
46
|
+
<div className={clsx(ThemeClassNames.docs.docFooterEditMetaRow, 'row')}>
|
|
47
|
+
<div className="col">{editUrl && <EditThisPage editUrl={editUrl} />}</div>
|
|
48
|
+
|
|
49
|
+
<div className={clsx('col', styles.lastUpdated)}>
|
|
50
|
+
{(lastUpdatedAt || lastUpdatedBy) && (
|
|
51
|
+
<LastUpdated
|
|
52
|
+
lastUpdatedAt={lastUpdatedAt}
|
|
53
|
+
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
54
|
+
lastUpdatedBy={lastUpdatedBy}
|
|
55
|
+
/>
|
|
56
|
+
)}
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export default function DocItemFooter(props: Props): JSX.Element | null {
|
|
63
|
+
const {content: DocContent} = props;
|
|
64
|
+
const {metadata} = DocContent;
|
|
65
|
+
const {editUrl, lastUpdatedAt, formattedLastUpdatedAt, lastUpdatedBy, tags} =
|
|
66
|
+
metadata;
|
|
67
|
+
|
|
68
|
+
const canDisplayTagsRow = tags.length > 0;
|
|
69
|
+
const canDisplayEditMetaRow = !!(editUrl || lastUpdatedAt || lastUpdatedBy);
|
|
70
|
+
|
|
71
|
+
const canDisplayFooter = canDisplayTagsRow || canDisplayEditMetaRow;
|
|
72
|
+
|
|
73
|
+
if (!canDisplayFooter) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return (
|
|
78
|
+
<footer
|
|
79
|
+
className={clsx(ThemeClassNames.docs.docFooter, 'docusaurus-mt-lg')}>
|
|
80
|
+
{canDisplayTagsRow && <TagsRow tags={tags} />}
|
|
81
|
+
{canDisplayEditMetaRow && (
|
|
82
|
+
<EditMetaRow
|
|
83
|
+
editUrl={editUrl}
|
|
84
|
+
lastUpdatedAt={lastUpdatedAt}
|
|
85
|
+
lastUpdatedBy={lastUpdatedBy}
|
|
86
|
+
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
87
|
+
/>
|
|
88
|
+
)}
|
|
89
|
+
</footer>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
justify-content: center;
|
|
13
|
-
width: 10px;
|
|
8
|
+
.lastUpdated {
|
|
9
|
+
margin-top: 0.2rem;
|
|
10
|
+
font-style: italic;
|
|
11
|
+
font-size: smaller;
|
|
14
12
|
}
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
|
|
14
|
+
@media (min-width: 997px) {
|
|
15
|
+
.lastUpdated {
|
|
16
|
+
text-align: right;
|
|
17
|
+
}
|
|
17
18
|
}
|