@docusaurus/theme-classic 2.0.0-beta.15d451942 → 2.0.0-beta.16
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 +102 -0
- package/lib/index.js +59 -43
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme-classic.d.ts +755 -0
- package/lib/translations.js +40 -34
- package/lib/types.d.ts +0 -589
- package/lib/validateThemeConfig.js +247 -246
- 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 +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 +40 -0
- package/{lib/theme/IconEdit → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -3
- 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 +110 -95
- package/lib-next/theme/BlogPostItem/styles.module.css +5 -1
- package/lib-next/theme/BlogPostPage/index.js +75 -43
- 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 +16 -66
- package/lib-next/theme/BlogTagsPostsPage/index.js +47 -59
- package/lib-next/theme/CodeBlock/index.js +73 -162
- package/lib-next/theme/CodeBlock/styles.module.css +18 -13
- 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 +64 -69
- 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 +59 -33
- package/lib-next/theme/DocPage/styles.module.css +14 -26
- package/lib-next/theme/DocPaginator/index.js +16 -25
- package/lib-next/theme/DocSidebar/index.js +72 -285
- package/lib-next/theme/DocSidebar/styles.module.css +5 -36
- package/lib-next/theme/DocSidebarItem/index.js +264 -0
- package/lib-next/theme/DocSidebarItem/styles.module.css +13 -0
- 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/{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/index.js +105 -41
- package/lib-next/theme/Footer/styles.module.css +2 -1
- package/lib-next/theme/Heading/index.js +40 -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/IconEdit/index.js +5 -10
- package/lib-next/theme/IconExternalLink/index.js +23 -0
- package/{lib/theme/BlogPostItem → lib-next/theme/IconExternalLink}/styles.module.css +4 -6
- package/lib-next/theme/IconLanguage/index.js +3 -6
- 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 +5 -7
- package/lib-next/theme/Layout/styles.css +6 -0
- package/lib-next/theme/LayoutHead/index.js +27 -32
- package/lib-next/theme/LayoutProviders/index.js +21 -10
- package/lib-next/theme/Logo/index.js +21 -16
- package/lib-next/theme/MDXComponents/index.js +45 -30
- package/lib-next/theme/{hooks → MDXComponents}/styles.css +7 -2
- package/lib-next/theme/MDXPage/index.js +22 -28
- package/{lib/theme/LastUpdated → lib-next/theme/MDXPage}/styles.module.css +2 -2
- package/lib-next/theme/Navbar/index.js +199 -64
- package/lib-next/theme/Navbar/styles.module.css +11 -4
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +36 -185
- 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 +156 -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 +70 -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 +7 -6
- package/lib-next/theme/PaginatorNavLink/index.js +17 -0
- package/lib-next/theme/SearchBar.js +1 -1
- package/lib-next/theme/SearchMetadata/index.js +25 -0
- package/lib-next/theme/Seo/index.js +11 -7
- 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 +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/TagsListByLetter/styles.module.css +11 -0
- 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 +9 -13
- package/lib-next/theme/ThemedImage/styles.module.css +9 -2
- package/lib-next/theme/Toggle/index.js +65 -60
- package/lib-next/theme/Toggle/styles.module.css +30 -38
- package/lib-next/theme/prism-include-languages.js +17 -15
- package/package.json +31 -30
- package/src/admonitions.css +35 -0
- package/src/deps.d.ts +13 -0
- package/src/getSwizzleConfig.ts +101 -0
- package/src/index.ts +68 -66
- 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 +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 +44 -0
- package/src/theme/{LastUpdated → 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 +101 -91
- package/src/theme/BlogPostItem/styles.module.css +5 -1
- package/src/theme/BlogPostPage/index.tsx +77 -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 +16 -66
- package/src/theme/BlogTagsPostsPage/index.tsx +43 -61
- package/src/theme/CodeBlock/index.tsx +77 -164
- package/src/theme/CodeBlock/styles.module.css +18 -13
- 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 +66 -68
- 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 +58 -34
- package/src/theme/DocPage/styles.module.css +14 -26
- package/src/theme/DocPaginator/index.tsx +16 -24
- package/src/theme/DocSidebar/index.tsx +83 -297
- package/src/theme/DocSidebar/styles.module.css +5 -36
- 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/{DocVersionSuggestions → DocVersionBanner}/index.tsx +77 -47
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/ErrorPageContent.tsx +41 -0
- package/src/theme/Footer/index.tsx +119 -45
- package/src/theme/Footer/styles.module.css +2 -1
- package/src/theme/Heading/index.tsx +41 -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/IconEdit/index.tsx +8 -9
- package/src/theme/IconExternalLink/index.tsx +30 -0
- package/{lib/theme/Heading → src/theme/IconExternalLink}/styles.module.css +4 -2
- package/src/theme/IconLanguage/index.tsx +4 -6
- package/src/theme/IconMenu/index.tsx +4 -9
- package/src/theme/LastUpdated/index.tsx +35 -39
- package/src/theme/Layout/index.tsx +5 -6
- package/src/theme/Layout/styles.css +6 -0
- package/src/theme/LayoutHead/index.tsx +26 -25
- package/src/theme/LayoutProviders/index.tsx +21 -10
- package/src/theme/Logo/index.tsx +21 -15
- package/src/theme/MDXComponents/index.tsx +56 -32
- package/{lib/theme/hooks → src/theme/MDXComponents}/styles.css +7 -2
- package/src/theme/MDXPage/index.tsx +23 -28
- package/{lib-next/theme/LastUpdated → src/theme/MDXPage}/styles.module.css +2 -2
- package/src/theme/Navbar/index.tsx +208 -68
- package/src/theme/Navbar/styles.module.css +11 -4
- 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 +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 +42 -19
- package/src/theme/NavbarItem/utils.ts +10 -0
- package/src/theme/NotFound.tsx +7 -5
- package/src/theme/PaginatorNavLink/index.tsx +20 -0
- package/src/theme/SearchBar.tsx +2 -1
- package/src/theme/SearchMetadata/index.tsx +34 -0
- package/src/theme/Seo/index.tsx +7 -4
- 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 +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 +10 -12
- package/src/theme/ThemedImage/styles.module.css +9 -2
- package/src/theme/Toggle/index.tsx +66 -62
- package/src/theme/Toggle/styles.module.css +30 -38
- package/src/theme/prism-include-languages.ts +20 -15
- package/src/theme-classic.d.ts +755 -0
- package/src/translations.ts +74 -54
- package/src/types.d.ts +0 -589
- package/{lib-next/validateThemeConfig.js → src/validateThemeConfig.ts} +184 -104
- 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/Footer/styles.module.css +0 -15
- 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/Navbar/styles.module.css +0 -20
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
- package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
- package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
- package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
- package/lib/theme/NavbarItem/index.js +0 -54
- package/lib/theme/NotFound.js +0 -50
- package/lib/theme/SearchBar.js +0 -15
- package/lib/theme/SearchMetadatas/index.js +0 -33
- package/lib/theme/Seo/index.js +0 -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/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/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/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/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/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
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
|
-
import Layout from '@theme/Layout';
|
|
9
|
-
import BlogPostItem from '@theme/BlogPostItem';
|
|
10
8
|
import Link from '@docusaurus/Link';
|
|
11
|
-
import
|
|
9
|
+
import BlogLayout from '@theme/BlogLayout';
|
|
10
|
+
import BlogPostItem from '@theme/BlogPostItem';
|
|
12
11
|
import Translate, {translate} from '@docusaurus/Translate';
|
|
13
|
-
import {ThemeClassNames, usePluralForm} from '@docusaurus/theme-common';
|
|
12
|
+
import {ThemeClassNames, usePluralForm} from '@docusaurus/theme-common';
|
|
13
|
+
import BlogListPaginator from '@theme/BlogListPaginator'; // Very simple pluralization: probably good enough for now
|
|
14
14
|
|
|
15
15
|
function useBlogPostsPlural() {
|
|
16
16
|
const {selectMessage} = usePluralForm();
|
|
@@ -31,66 +31,54 @@ function useBlogPostsPlural() {
|
|
|
31
31
|
);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
function
|
|
34
|
+
export default function BlogTagsPostsPage(props) {
|
|
35
|
+
const {metadata, items, sidebar, listMetadata} = props;
|
|
36
|
+
const {allTagsPath, name: tagName, count} = metadata;
|
|
35
37
|
const blogPostsPlural = useBlogPostsPlural();
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
id
|
|
39
|
-
description
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
const title = translate(
|
|
39
|
+
{
|
|
40
|
+
id: 'theme.blog.tagTitle',
|
|
41
|
+
description: 'The title of the page for a blog tag',
|
|
42
|
+
message: '{nPosts} tagged with "{tagName}"',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
nPosts: blogPostsPlural(count),
|
|
46
|
+
tagName,
|
|
47
|
+
},
|
|
46
48
|
);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function BlogTagsPostPage(props) {
|
|
50
|
-
const {metadata, items, sidebar} = props;
|
|
51
|
-
const {allTagsPath, name: tagName, count} = metadata;
|
|
52
49
|
return (
|
|
53
|
-
<
|
|
54
|
-
title={
|
|
55
|
-
description={`Blog | Tagged "${tagName}"`}
|
|
50
|
+
<BlogLayout
|
|
51
|
+
title={title}
|
|
56
52
|
wrapperClassName={ThemeClassNames.wrapper.blogPages}
|
|
57
|
-
pageClassName={ThemeClassNames.page.
|
|
58
|
-
|
|
53
|
+
pageClassName={ThemeClassNames.page.blogTagPostListPage}
|
|
54
|
+
searchMetadata={{
|
|
59
55
|
// assign unique search tag to exclude this page from search results!
|
|
60
56
|
tag: 'blog_tags_posts',
|
|
61
|
-
}}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
))}
|
|
88
|
-
</div>
|
|
89
|
-
</main>
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
92
|
-
</Layout>
|
|
57
|
+
}}
|
|
58
|
+
sidebar={sidebar}>
|
|
59
|
+
<header className="margin-bottom--xl">
|
|
60
|
+
<h1>{title}</h1>
|
|
61
|
+
|
|
62
|
+
<Link href={allTagsPath}>
|
|
63
|
+
<Translate
|
|
64
|
+
id="theme.tags.tagsPageLink"
|
|
65
|
+
description="The label of the link targeting the tag list page">
|
|
66
|
+
View All Tags
|
|
67
|
+
</Translate>
|
|
68
|
+
</Link>
|
|
69
|
+
</header>
|
|
70
|
+
|
|
71
|
+
{items.map(({content: BlogPostContent}) => (
|
|
72
|
+
<BlogPostItem
|
|
73
|
+
key={BlogPostContent.metadata.permalink}
|
|
74
|
+
frontMatter={BlogPostContent.frontMatter}
|
|
75
|
+
assets={BlogPostContent.assets}
|
|
76
|
+
metadata={BlogPostContent.metadata}
|
|
77
|
+
truncated>
|
|
78
|
+
<BlogPostContent />
|
|
79
|
+
</BlogPostItem>
|
|
80
|
+
))}
|
|
81
|
+
<BlogListPaginator metadata={listMetadata} />
|
|
82
|
+
</BlogLayout>
|
|
93
83
|
);
|
|
94
84
|
}
|
|
95
|
-
|
|
96
|
-
export default BlogTagsPostPage;
|
|
@@ -4,90 +4,26 @@
|
|
|
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, {useEffect, useState
|
|
7
|
+
import React, {isValidElement, useEffect, useState} from 'react';
|
|
8
8
|
import clsx from 'clsx';
|
|
9
9
|
import Highlight, {defaultProps} from 'prism-react-renderer';
|
|
10
10
|
import copy from 'copy-text-to-clipboard';
|
|
11
|
-
import rangeParser from 'parse-numeric-range';
|
|
12
|
-
import usePrismTheme from '@theme/hooks/usePrismTheme';
|
|
13
11
|
import Translate, {translate} from '@docusaurus/Translate';
|
|
12
|
+
import {
|
|
13
|
+
useThemeConfig,
|
|
14
|
+
parseCodeBlockTitle,
|
|
15
|
+
parseLanguage,
|
|
16
|
+
parseLines,
|
|
17
|
+
ThemeClassNames,
|
|
18
|
+
usePrismTheme,
|
|
19
|
+
} from '@docusaurus/theme-common';
|
|
14
20
|
import styles from './styles.module.css';
|
|
15
|
-
import {useThemeConfig, parseCodeBlockTitle} from '@docusaurus/theme-common';
|
|
16
|
-
const highlightLinesRangeRegex = /{([\d,-]+)}/;
|
|
17
|
-
|
|
18
|
-
const getHighlightDirectiveRegex = (
|
|
19
|
-
languages = ['js', 'jsBlock', 'jsx', 'python', 'html'],
|
|
20
|
-
) => {
|
|
21
|
-
// supported types of comments
|
|
22
|
-
const comments = {
|
|
23
|
-
js: {
|
|
24
|
-
start: '\\/\\/',
|
|
25
|
-
end: '',
|
|
26
|
-
},
|
|
27
|
-
jsBlock: {
|
|
28
|
-
start: '\\/\\*',
|
|
29
|
-
end: '\\*\\/',
|
|
30
|
-
},
|
|
31
|
-
jsx: {
|
|
32
|
-
start: '\\{\\s*\\/\\*',
|
|
33
|
-
end: '\\*\\/\\s*\\}',
|
|
34
|
-
},
|
|
35
|
-
python: {
|
|
36
|
-
start: '#',
|
|
37
|
-
end: '',
|
|
38
|
-
},
|
|
39
|
-
html: {
|
|
40
|
-
start: '<!--',
|
|
41
|
-
end: '-->',
|
|
42
|
-
},
|
|
43
|
-
}; // supported directives
|
|
44
|
-
|
|
45
|
-
const directives = [
|
|
46
|
-
'highlight-next-line',
|
|
47
|
-
'highlight-start',
|
|
48
|
-
'highlight-end',
|
|
49
|
-
].join('|'); // to be more reliable, the opening and closing comment must match
|
|
50
|
-
|
|
51
|
-
const commentPattern = languages
|
|
52
|
-
.map(
|
|
53
|
-
(lang) =>
|
|
54
|
-
`(?:${comments[lang].start}\\s*(${directives})\\s*${comments[lang].end})`,
|
|
55
|
-
)
|
|
56
|
-
.join('|'); // white space is allowed, but otherwise it should be on it's own line
|
|
57
|
-
|
|
58
|
-
return new RegExp(`^\\s*(?:${commentPattern})\\s*$`);
|
|
59
|
-
}; // select comment styles based on language
|
|
60
|
-
|
|
61
|
-
const highlightDirectiveRegex = (lang) => {
|
|
62
|
-
switch (lang) {
|
|
63
|
-
case 'js':
|
|
64
|
-
case 'javascript':
|
|
65
|
-
case 'ts':
|
|
66
|
-
case 'typescript':
|
|
67
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock']);
|
|
68
|
-
|
|
69
|
-
case 'jsx':
|
|
70
|
-
case 'tsx':
|
|
71
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock', 'jsx']);
|
|
72
|
-
|
|
73
|
-
case 'html':
|
|
74
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock', 'html']);
|
|
75
|
-
|
|
76
|
-
case 'python':
|
|
77
|
-
case 'py':
|
|
78
|
-
return getHighlightDirectiveRegex(['python']);
|
|
79
|
-
|
|
80
|
-
default:
|
|
81
|
-
// all comment types
|
|
82
|
-
return getHighlightDirectiveRegex();
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
21
|
export default function CodeBlock({
|
|
87
22
|
children,
|
|
88
|
-
className:
|
|
23
|
+
className: blockClassName = '',
|
|
89
24
|
metastring,
|
|
90
25
|
title,
|
|
26
|
+
language: languageProp,
|
|
91
27
|
}) {
|
|
92
28
|
const {prism} = useThemeConfig();
|
|
93
29
|
const [showCopied, setShowCopied] = useState(false);
|
|
@@ -101,80 +37,47 @@ export default function CodeBlock({
|
|
|
101
37
|
|
|
102
38
|
useEffect(() => {
|
|
103
39
|
setMounted(true);
|
|
104
|
-
}, []); //
|
|
105
|
-
//
|
|
106
|
-
//
|
|
40
|
+
}, []); // We still parse the metastring in case we want to support more syntax in the
|
|
41
|
+
// future. Note that MDX doesn't strip quotes when parsing metastring:
|
|
42
|
+
// "title=\"xyz\"" => title: "\"xyz\""
|
|
107
43
|
|
|
108
44
|
const codeBlockTitle = parseCodeBlockTitle(metastring) || title;
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
45
|
+
const prismTheme = usePrismTheme(); // <pre> tags in markdown map to CodeBlocks and they may contain JSX children.
|
|
46
|
+
// When the children is not a simple string, we just return a styled block
|
|
47
|
+
// without actually highlighting.
|
|
48
|
+
|
|
49
|
+
if (React.Children.toArray(children).some((el) => isValidElement(el))) {
|
|
50
|
+
return (
|
|
51
|
+
<Highlight
|
|
52
|
+
{...defaultProps}
|
|
53
|
+
key={String(mounted)}
|
|
54
|
+
theme={prismTheme}
|
|
55
|
+
code=""
|
|
56
|
+
language={'text'}>
|
|
57
|
+
{({className, style}) => (
|
|
58
|
+
<pre
|
|
59
|
+
/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
|
|
60
|
+
tabIndex={0}
|
|
61
|
+
className={clsx(
|
|
62
|
+
className,
|
|
63
|
+
styles.codeBlockStandalone,
|
|
64
|
+
'thin-scrollbar',
|
|
65
|
+
styles.codeBlockContainer,
|
|
66
|
+
blockClassName,
|
|
67
|
+
ThemeClassNames.common.codeBlock,
|
|
68
|
+
)}
|
|
69
|
+
style={style}>
|
|
70
|
+
<code className={styles.codeBlockLines}>{children}</code>
|
|
71
|
+
</pre>
|
|
72
|
+
)}
|
|
73
|
+
</Highlight>
|
|
74
|
+
);
|
|
75
|
+
} // The children is now guaranteed to be one/more plain strings
|
|
112
76
|
|
|
113
77
|
const content = Array.isArray(children) ? children.join('') : children;
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
118
|
-
const highlightLinesRange = metastring.match(highlightLinesRangeRegex)[1];
|
|
119
|
-
highlightLines = rangeParser(highlightLinesRange).filter((n) => n > 0);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
let language =
|
|
123
|
-
languageClassName && // Force Prism's language union type to `any` because it does not contain all available languages
|
|
124
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
125
|
-
languageClassName.replace(/language-/, '');
|
|
126
|
-
|
|
127
|
-
if (!language && prism.defaultLanguage) {
|
|
128
|
-
language = prism.defaultLanguage;
|
|
129
|
-
} // only declaration OR directive highlight can be used for a block
|
|
130
|
-
|
|
131
|
-
let code = content.replace(/\n$/, '');
|
|
132
|
-
|
|
133
|
-
if (highlightLines.length === 0 && language !== undefined) {
|
|
134
|
-
let range = '';
|
|
135
|
-
const directiveRegex = highlightDirectiveRegex(language); // go through line by line
|
|
136
|
-
|
|
137
|
-
const lines = content.replace(/\n$/, '').split('\n');
|
|
138
|
-
let blockStart; // loop through lines
|
|
139
|
-
|
|
140
|
-
for (let index = 0; index < lines.length; ) {
|
|
141
|
-
const line = lines[index]; // adjust for 0-index
|
|
142
|
-
|
|
143
|
-
const lineNumber = index + 1;
|
|
144
|
-
const match = line.match(directiveRegex);
|
|
145
|
-
|
|
146
|
-
if (match !== null) {
|
|
147
|
-
const directive = match
|
|
148
|
-
.slice(1)
|
|
149
|
-
.reduce((final, item) => final || item, undefined);
|
|
150
|
-
|
|
151
|
-
switch (directive) {
|
|
152
|
-
case 'highlight-next-line':
|
|
153
|
-
range += `${lineNumber},`;
|
|
154
|
-
break;
|
|
155
|
-
|
|
156
|
-
case 'highlight-start':
|
|
157
|
-
blockStart = lineNumber;
|
|
158
|
-
break;
|
|
159
|
-
|
|
160
|
-
case 'highlight-end':
|
|
161
|
-
range += `${blockStart}-${lineNumber - 1},`;
|
|
162
|
-
break;
|
|
163
|
-
|
|
164
|
-
default:
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
lines.splice(index, 1);
|
|
169
|
-
} else {
|
|
170
|
-
// lines without directives are unchanged
|
|
171
|
-
index += 1;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
highlightLines = rangeParser(range);
|
|
176
|
-
code = lines.join('\n');
|
|
177
|
-
}
|
|
78
|
+
const language =
|
|
79
|
+
languageProp ?? parseLanguage(blockClassName) ?? prism.defaultLanguage;
|
|
80
|
+
const {highlightLines, code} = parseLines(content, metastring, language);
|
|
178
81
|
|
|
179
82
|
const handleCopyCode = () => {
|
|
180
83
|
copy(code);
|
|
@@ -188,25 +91,33 @@ export default function CodeBlock({
|
|
|
188
91
|
key={String(mounted)}
|
|
189
92
|
theme={prismTheme}
|
|
190
93
|
code={code}
|
|
191
|
-
language={language}>
|
|
94
|
+
language={language ?? 'text'}>
|
|
192
95
|
{({className, style, tokens, getLineProps, getTokenProps}) => (
|
|
193
|
-
<div
|
|
96
|
+
<div
|
|
97
|
+
className={clsx(
|
|
98
|
+
styles.codeBlockContainer,
|
|
99
|
+
blockClassName,
|
|
100
|
+
{
|
|
101
|
+
[`language-${language}`]:
|
|
102
|
+
language && !blockClassName.includes(`language-${language}`),
|
|
103
|
+
},
|
|
104
|
+
ThemeClassNames.common.codeBlock,
|
|
105
|
+
)}>
|
|
194
106
|
{codeBlockTitle && (
|
|
195
107
|
<div style={style} className={styles.codeBlockTitle}>
|
|
196
108
|
{codeBlockTitle}
|
|
197
109
|
</div>
|
|
198
110
|
)}
|
|
199
111
|
<div className={clsx(styles.codeBlockContent, language)}>
|
|
200
|
-
<
|
|
112
|
+
<pre
|
|
201
113
|
/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
|
|
202
114
|
tabIndex={0}
|
|
203
|
-
className={clsx(className, styles.codeBlock, 'thin-scrollbar'
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
<div className={styles.codeBlockLines} style={style}>
|
|
115
|
+
className={clsx(className, styles.codeBlock, 'thin-scrollbar')}
|
|
116
|
+
style={style}>
|
|
117
|
+
<code className={styles.codeBlockLines}>
|
|
207
118
|
{tokens.map((line, i) => {
|
|
208
|
-
if (line.length === 1 && line[0].content === '') {
|
|
209
|
-
line[0].content = '
|
|
119
|
+
if (line.length === 1 && line[0].content === '\n') {
|
|
120
|
+
line[0].content = '';
|
|
210
121
|
}
|
|
211
122
|
|
|
212
123
|
const lineProps = getLineProps({
|
|
@@ -214,12 +125,12 @@ export default function CodeBlock({
|
|
|
214
125
|
key: i,
|
|
215
126
|
});
|
|
216
127
|
|
|
217
|
-
if (highlightLines.includes(i
|
|
218
|
-
lineProps.className
|
|
128
|
+
if (highlightLines.includes(i)) {
|
|
129
|
+
lineProps.className += ' docusaurus-highlight-code-line';
|
|
219
130
|
}
|
|
220
131
|
|
|
221
132
|
return (
|
|
222
|
-
<
|
|
133
|
+
<span key={i} {...lineProps}>
|
|
223
134
|
{line.map((token, key) => (
|
|
224
135
|
<span
|
|
225
136
|
key={key}
|
|
@@ -229,21 +140,21 @@ export default function CodeBlock({
|
|
|
229
140
|
})}
|
|
230
141
|
/>
|
|
231
142
|
))}
|
|
232
|
-
|
|
143
|
+
<br />
|
|
144
|
+
</span>
|
|
233
145
|
);
|
|
234
146
|
})}
|
|
235
|
-
</
|
|
236
|
-
</
|
|
147
|
+
</code>
|
|
148
|
+
</pre>
|
|
237
149
|
|
|
238
150
|
<button
|
|
239
|
-
ref={button}
|
|
240
151
|
type="button"
|
|
241
152
|
aria-label={translate({
|
|
242
153
|
id: 'theme.CodeBlock.copyButtonAriaLabel',
|
|
243
154
|
message: 'Copy code to clipboard',
|
|
244
155
|
description: 'The ARIA label for copy code blocks button',
|
|
245
156
|
})}
|
|
246
|
-
className={clsx(styles.copyButton)}
|
|
157
|
+
className={clsx(styles.copyButton, 'clean-btn')}
|
|
247
158
|
onClick={handleCopyCode}>
|
|
248
159
|
{showCopied ? (
|
|
249
160
|
<Translate
|
|
@@ -7,39 +7,45 @@
|
|
|
7
7
|
|
|
8
8
|
.codeBlockContainer {
|
|
9
9
|
margin-bottom: var(--ifm-leading);
|
|
10
|
+
border-radius: var(--ifm-global-radius);
|
|
11
|
+
box-shadow: var(--ifm-global-shadow-lw);
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
.codeBlockContent {
|
|
13
15
|
position: relative;
|
|
14
|
-
/*rtl:ignore*/
|
|
16
|
+
/* rtl:ignore */
|
|
15
17
|
direction: ltr;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
.codeBlockTitle {
|
|
19
|
-
border-top-left-radius: var(--ifm-global-radius);
|
|
20
|
-
border-top-right-radius: var(--ifm-global-radius);
|
|
21
21
|
border-bottom: 1px solid var(--ifm-color-emphasis-300);
|
|
22
22
|
font-size: var(--ifm-code-font-size);
|
|
23
23
|
font-weight: 500;
|
|
24
24
|
padding: 0.75rem var(--ifm-pre-padding);
|
|
25
|
+
border-top-left-radius: var(--ifm-global-radius);
|
|
26
|
+
border-top-right-radius: var(--ifm-global-radius);
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
.codeBlock {
|
|
28
|
-
|
|
30
|
+
margin: 0;
|
|
31
|
+
padding: 0;
|
|
29
32
|
border-radius: var(--ifm-global-radius);
|
|
30
33
|
}
|
|
31
34
|
|
|
32
|
-
.
|
|
35
|
+
.codeBlockTitle + .codeBlockContent .codeBlock {
|
|
33
36
|
border-top-left-radius: 0;
|
|
34
37
|
border-top-right-radius: 0;
|
|
35
38
|
}
|
|
36
39
|
|
|
40
|
+
.codeBlockStandalone {
|
|
41
|
+
padding: 0;
|
|
42
|
+
border-radius: var(--ifm-global-radius);
|
|
43
|
+
}
|
|
44
|
+
|
|
37
45
|
.copyButton {
|
|
38
|
-
background:
|
|
39
|
-
border: none;
|
|
46
|
+
background: rgb(0 0 0 / 30%);
|
|
40
47
|
border-radius: var(--ifm-global-radius);
|
|
41
48
|
color: var(--ifm-color-white);
|
|
42
|
-
cursor: pointer;
|
|
43
49
|
opacity: 0;
|
|
44
50
|
user-select: none;
|
|
45
51
|
padding: 0.4rem 0.5rem;
|
|
@@ -49,16 +55,15 @@
|
|
|
49
55
|
transition: opacity 200ms ease-in-out;
|
|
50
56
|
}
|
|
51
57
|
|
|
52
|
-
.
|
|
58
|
+
.copyButton:focus,
|
|
53
59
|
.codeBlockContent:hover > .copyButton,
|
|
54
|
-
.
|
|
60
|
+
.codeBlockTitle:hover + .codeBlockContent .copyButton {
|
|
55
61
|
opacity: 1;
|
|
56
62
|
}
|
|
57
63
|
|
|
58
64
|
.codeBlockLines {
|
|
59
|
-
font:
|
|
60
|
-
|
|
61
|
-
white-space: pre;
|
|
65
|
+
font: inherit;
|
|
66
|
+
/* rtl:ignore */
|
|
62
67
|
float: left;
|
|
63
68
|
min-width: 100%;
|
|
64
69
|
padding: var(--ifm-pre-padding);
|
|
@@ -0,0 +1,21 @@
|
|
|
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 {Details as DetailsGeneric} from '@docusaurus/theme-common';
|
|
10
|
+
import styles from './styles.module.css'; // Should we have a custom details/summary comp in Infima instead of reusing
|
|
11
|
+
// alert classes?
|
|
12
|
+
|
|
13
|
+
const InfimaClasses = 'alert alert--info';
|
|
14
|
+
export default function Details({...props}) {
|
|
15
|
+
return (
|
|
16
|
+
<DetailsGeneric
|
|
17
|
+
{...props}
|
|
18
|
+
className={clsx(InfimaClasses, styles.details, props.className)}
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
.details {
|
|
9
|
+
--docusaurus-details-decoration-color: var(--ifm-alert-border-color);
|
|
10
|
+
--docusaurus-details-transition: transform var(--ifm-transition-fast) ease;
|
|
11
|
+
margin: 0 0 var(--ifm-spacing-vertical);
|
|
12
|
+
border: 1px solid var(--ifm-alert-border-color);
|
|
13
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
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 {
|
|
9
|
+
ThemeClassNames,
|
|
10
|
+
useSidebarBreadcrumbs,
|
|
11
|
+
useHomePageRoute,
|
|
12
|
+
} from '@docusaurus/theme-common';
|
|
13
|
+
import styles from './styles.module.css';
|
|
14
|
+
import clsx from 'clsx';
|
|
15
|
+
import Link from '@docusaurus/Link';
|
|
16
|
+
import useBaseUrl from '@docusaurus/useBaseUrl'; // TODO move to design system folder
|
|
17
|
+
|
|
18
|
+
function BreadcrumbsItemLink({children, href}) {
|
|
19
|
+
const className = clsx('breadcrumbs__link', styles.breadcrumbsItemLink);
|
|
20
|
+
return href ? (
|
|
21
|
+
<Link className={className} href={href}>
|
|
22
|
+
{children}
|
|
23
|
+
</Link>
|
|
24
|
+
) : (
|
|
25
|
+
<span className={className}>{children}</span>
|
|
26
|
+
);
|
|
27
|
+
} // TODO move to design system folder
|
|
28
|
+
|
|
29
|
+
function BreadcrumbsItem({children, active}) {
|
|
30
|
+
return (
|
|
31
|
+
<li
|
|
32
|
+
className={clsx('breadcrumbs__item', {
|
|
33
|
+
'breadcrumbs__item--active': active,
|
|
34
|
+
})}>
|
|
35
|
+
{children}
|
|
36
|
+
</li>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function HomeBreadcrumbItem() {
|
|
41
|
+
const homeHref = useBaseUrl('/');
|
|
42
|
+
return (
|
|
43
|
+
<BreadcrumbsItem>
|
|
44
|
+
<BreadcrumbsItemLink href={homeHref}>🏠</BreadcrumbsItemLink>
|
|
45
|
+
</BreadcrumbsItem>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export default function DocBreadcrumbs() {
|
|
50
|
+
const breadcrumbs = useSidebarBreadcrumbs();
|
|
51
|
+
const homePageRoute = useHomePageRoute();
|
|
52
|
+
|
|
53
|
+
if (!breadcrumbs) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<nav
|
|
59
|
+
className={clsx(
|
|
60
|
+
ThemeClassNames.docs.docBreadcrumbs,
|
|
61
|
+
styles.breadcrumbsContainer,
|
|
62
|
+
)}
|
|
63
|
+
aria-label="breadcrumbs">
|
|
64
|
+
<ul className="breadcrumbs">
|
|
65
|
+
{homePageRoute && <HomeBreadcrumbItem />}
|
|
66
|
+
{breadcrumbs.map((item, idx) => (
|
|
67
|
+
<BreadcrumbsItem key={idx} active={idx === breadcrumbs.length - 1}>
|
|
68
|
+
<BreadcrumbsItemLink href={item.href}>
|
|
69
|
+
{item.label}
|
|
70
|
+
</BreadcrumbsItemLink>
|
|
71
|
+
</BreadcrumbsItem>
|
|
72
|
+
))}
|
|
73
|
+
</ul>
|
|
74
|
+
</nav>
|
|
75
|
+
);
|
|
76
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
.breadcrumbsContainer {
|
|
9
|
+
margin-bottom: 0.4rem;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.breadcrumbsItemLink {
|
|
13
|
+
--ifm-breadcrumb-size-multiplier: 0.7 !important;
|
|
14
|
+
margin-bottom: 0.4rem;
|
|
15
|
+
background: var(--ifm-color-gray-100);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
html[data-theme='dark'] .breadcrumbsItemLink {
|
|
19
|
+
background-color: var(--ifm-color-gray-900);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@media (min-width: 997px) {
|
|
23
|
+
.breadcrumbsItemLink {
|
|
24
|
+
--ifm-breadcrumb-size-multiplier: 0.8;
|
|
25
|
+
}
|
|
26
|
+
}
|