@docusaurus/theme-classic 2.0.0-beta.138b4c997 → 2.0.0-beta.14
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 +1 -1
- package/lib/admonitions.css +35 -0
- package/lib/deps.d.ts +13 -0
- package/lib/index.js +16 -15
- package/lib/prism-include-languages.js +9 -5
- package/{lib-next/types.d.ts → lib/theme-classic.d.ts} +374 -150
- package/lib/translations.js +16 -7
- package/lib/types.d.ts +0 -587
- package/lib/validateThemeConfig.js +232 -246
- package/lib-next/theme/Admonition/index.js +101 -0
- package/lib-next/theme/AnnouncementBar/index.js +7 -12
- 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 +42 -0
- package/lib-next/theme/BlogArchivePage/index.js +80 -0
- package/lib-next/theme/BlogLayout/index.js +40 -0
- package/lib-next/theme/BlogListPage/index.js +17 -25
- package/lib-next/theme/BlogPostAuthor/index.js +46 -0
- package/{lib/theme/MDXPage → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -2
- package/lib-next/theme/BlogPostAuthors/index.js +34 -0
- package/{lib/theme/IconExternalLink → lib-next/theme/BlogPostAuthors}/styles.module.css +3 -4
- package/lib-next/theme/BlogPostItem/index.js +79 -86
- package/lib-next/theme/BlogPostPage/index.js +70 -35
- package/lib-next/theme/BlogSidebar/index.js +11 -13
- package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
- package/lib-next/theme/BlogTagsListPage/index.js +14 -55
- package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
- package/lib-next/theme/CodeBlock/index.js +23 -149
- package/lib-next/theme/CodeBlock/styles.module.css +12 -9
- package/lib-next/theme/Details/index.js +20 -0
- package/lib-next/theme/Details/styles.module.css +13 -0
- package/lib-next/theme/DocCard/index.js +80 -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 +49 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/lib-next/theme/DocItem/index.js +40 -51
- package/lib-next/theme/DocItem/styles.module.css +5 -9
- 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 +46 -49
- package/lib-next/theme/DocPage/styles.module.css +5 -6
- package/lib-next/theme/DocPaginator/index.js +5 -33
- package/lib-next/theme/DocPaginatorNavLink/index.js +36 -0
- package/lib-next/theme/DocSidebar/index.js +65 -285
- package/lib-next/theme/DocSidebar/styles.module.css +0 -18
- package/lib-next/theme/DocSidebarItem/index.js +217 -0
- package/{lib/theme/ThemedImage → lib-next/theme/DocSidebarItem}/styles.module.css +10 -9
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +38 -0
- package/lib-next/theme/DocVersionBadge/index.js +27 -0
- package/lib-next/theme/DocVersionBanner/index.js +28 -14
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/ErrorPageContent.js +35 -0
- package/lib-next/theme/Footer/index.js +100 -40
- package/lib-next/theme/Heading/index.js +24 -29
- package/lib-next/theme/Heading/styles.css +5 -6
- package/lib-next/theme/Heading/styles.module.css +9 -5
- package/lib-next/theme/IconArrow/index.js +2 -2
- package/lib-next/theme/IconClose/index.js +23 -0
- package/lib-next/theme/IconEdit/index.js +2 -2
- package/lib-next/theme/IconExternalLink/index.js +2 -2
- package/lib-next/theme/IconLanguage/index.js +2 -2
- package/lib-next/theme/IconMenu/index.js +2 -2
- package/lib-next/theme/LastUpdated/index.js +3 -2
- package/lib-next/theme/Layout/index.js +3 -1
- package/lib-next/theme/LayoutHead/index.js +18 -23
- package/lib-next/theme/LayoutProviders/index.js +9 -3
- package/lib-next/theme/Logo/index.js +25 -21
- package/lib-next/theme/MDXComponents/index.js +34 -7
- package/{lib/theme/hooks → lib-next/theme/MDXComponents}/styles.css +3 -2
- package/lib-next/theme/MDXPage/index.js +10 -2
- package/lib-next/theme/Navbar/index.js +193 -56
- package/lib-next/theme/Navbar/styles.module.css +10 -3
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +158 -0
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/index.js +25 -12
- package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
- package/lib-next/theme/Seo/index.js +11 -7
- package/lib-next/theme/SkipToContent/index.js +5 -2
- package/lib-next/theme/TOC/index.js +12 -36
- 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 -28
- package/lib-next/theme/TOCItems/index.js +85 -0
- package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
- package/lib-next/theme/Tabs/index.js +103 -48
- package/lib-next/theme/Tabs/styles.module.css +0 -13
- package/lib-next/theme/Tag/index.js +27 -0
- package/lib-next/theme/Tag/styles.module.css +70 -0
- package/lib-next/theme/TagsListByLetter/index.js +42 -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/ThemeProvider/index.js +10 -7
- package/lib-next/theme/ThemedImage/index.js +5 -5
- package/lib-next/theme/Toggle/index.js +34 -37
- package/lib-next/theme/Toggle/styles.module.css +91 -3
- package/lib-next/theme/UserPreferencesProvider/index.js +9 -6
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
- package/lib-next/theme/hooks/useTheme.js +4 -5
- package/lib-next/theme/hooks/useWindowSize.js +34 -20
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/package.json +27 -25
- package/src/admonitions.css +35 -0
- package/src/deps.d.ts +13 -0
- package/src/index.ts +23 -20
- 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 +8 -12
- package/src/theme/AnnouncementBar/styles.module.css +23 -32
- package/src/theme/BackToTopButton/index.tsx +142 -0
- package/src/theme/BackToTopButton/styles.module.css +42 -0
- package/src/theme/BlogArchivePage/index.tsx +91 -0
- package/src/theme/BlogLayout/index.tsx +44 -0
- package/src/theme/BlogListPage/index.tsx +18 -25
- package/src/theme/BlogPostAuthor/index.tsx +49 -0
- package/{lib/theme/IconEdit → src/theme/BlogPostAuthor}/styles.module.css +4 -3
- package/src/theme/BlogPostAuthors/index.tsx +39 -0
- package/src/theme/BlogPostAuthors/styles.module.css +11 -0
- package/src/theme/BlogPostItem/index.tsx +70 -80
- package/src/theme/BlogPostPage/index.tsx +72 -35
- package/src/theme/BlogSidebar/index.tsx +11 -13
- package/src/theme/BlogSidebar/styles.module.css +2 -2
- package/src/theme/BlogTagsListPage/index.tsx +14 -57
- package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
- package/src/theme/CodeBlock/index.tsx +27 -151
- package/src/theme/CodeBlock/styles.module.css +12 -9
- package/src/theme/Details/index.tsx +24 -0
- package/src/theme/Details/styles.module.css +13 -0
- package/src/theme/DocCard/index.tsx +100 -0
- package/src/theme/DocCard/styles.module.css +43 -0
- package/src/theme/DocCardList/index.tsx +27 -0
- package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
- package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/src/theme/DocItem/index.tsx +43 -51
- package/src/theme/DocItem/styles.module.css +5 -9
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/{lib/theme/BlogPostItem → src/theme/DocItemFooter}/styles.module.css +8 -8
- package/src/theme/DocPage/index.tsx +44 -42
- package/src/theme/DocPage/styles.module.css +5 -6
- package/src/theme/DocPaginator/index.tsx +5 -33
- package/src/theme/DocPaginatorNavLink/index.tsx +38 -0
- package/src/theme/DocSidebar/index.tsx +76 -297
- package/src/theme/DocSidebar/styles.module.css +0 -18
- package/src/theme/DocSidebarItem/index.tsx +242 -0
- package/{lib/theme/Footer → src/theme/DocSidebarItem}/styles.module.css +10 -6
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +41 -0
- package/src/theme/DocVersionBadge/index.tsx +30 -0
- package/src/theme/DocVersionBanner/index.tsx +48 -21
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/ErrorPageContent.tsx +41 -0
- package/src/theme/Footer/index.tsx +113 -43
- package/src/theme/Heading/index.tsx +24 -31
- package/src/theme/Heading/styles.css +5 -6
- package/src/theme/Heading/styles.module.css +9 -5
- package/src/theme/IconArrow/index.tsx +2 -2
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/IconEdit/index.tsx +2 -2
- package/src/theme/IconExternalLink/index.tsx +2 -5
- package/src/theme/IconLanguage/index.tsx +2 -6
- package/src/theme/IconMenu/index.tsx +3 -3
- package/src/theme/LastUpdated/index.tsx +3 -2
- package/src/theme/Layout/index.tsx +3 -1
- package/src/theme/LayoutHead/index.tsx +18 -17
- package/src/theme/LayoutProviders/index.tsx +9 -3
- package/src/theme/Logo/index.tsx +21 -17
- package/src/theme/MDXComponents/index.tsx +39 -5
- package/src/theme/MDXComponents/styles.css +11 -0
- package/src/theme/MDXPage/index.tsx +10 -2
- package/src/theme/Navbar/index.tsx +203 -61
- package/src/theme/Navbar/styles.module.css +10 -3
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
- package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +180 -0
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/index.tsx +41 -16
- package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
- package/src/theme/Seo/index.tsx +7 -4
- package/src/theme/SkipToContent/index.tsx +5 -2
- package/src/theme/TOC/index.tsx +12 -41
- 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 +13 -32
- package/src/theme/TOCItems/index.tsx +96 -0
- package/src/theme/Tabs/index.tsx +110 -54
- package/src/theme/Tabs/styles.module.css +0 -13
- package/src/theme/Tag/index.tsx +31 -0
- package/src/theme/Tag/styles.module.css +70 -0
- package/src/theme/TagsListByLetter/index.tsx +45 -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/ThemeProvider/index.tsx +6 -2
- package/src/theme/ThemedImage/index.tsx +5 -5
- package/src/theme/Toggle/index.tsx +36 -43
- package/src/theme/Toggle/styles.module.css +91 -3
- package/src/theme/UserPreferencesProvider/index.tsx +9 -6
- package/src/theme/hooks/useHideableNavbar.ts +32 -45
- package/src/theme/hooks/useTabGroupChoice.ts +2 -2
- package/src/theme/hooks/useTheme.ts +4 -5
- package/src/theme/hooks/useWindowSize.ts +38 -20
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/theme-classic.d.ts +822 -0
- package/src/translations.ts +41 -23
- package/src/types.d.ts +0 -587
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +160 -98
- 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 -86
- package/lib/theme/DocPaginator/index.js +0 -63
- package/lib/theme/DocSidebar/index.js +0 -306
- 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 -108
- 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 -63
- 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/Toggle/index.js +0 -94
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/Toggle/styles.module.css +0 -17
- 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/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
- package/lib-next/theme/hooks/useLocationHash.js +0 -20
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/lib-next/translations.js +0 -145
- 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/Toggle/styles.css +0 -103
- package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
- package/src/theme/hooks/useLocationHash.ts +0 -25
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
- package/tsconfig.json +0 -12
- package/update-code-translations.js +0 -240
- package/update-code-translations.test.js +0 -33
|
@@ -4,18 +4,21 @@
|
|
|
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 from 'react';
|
|
7
|
+
import React, {useMemo} from 'react';
|
|
8
8
|
import useTabGroupChoice from '@theme/hooks/useTabGroupChoice';
|
|
9
9
|
import UserPreferencesContext from '@theme/UserPreferencesContext';
|
|
10
10
|
|
|
11
11
|
function UserPreferencesProvider(props) {
|
|
12
12
|
const {tabGroupChoices, setTabGroupChoices} = useTabGroupChoice();
|
|
13
|
+
const contextValue = useMemo(
|
|
14
|
+
() => ({
|
|
15
|
+
tabGroupChoices,
|
|
16
|
+
setTabGroupChoices,
|
|
17
|
+
}),
|
|
18
|
+
[tabGroupChoices, setTabGroupChoices],
|
|
19
|
+
);
|
|
13
20
|
return (
|
|
14
|
-
<UserPreferencesContext.Provider
|
|
15
|
-
value={{
|
|
16
|
-
tabGroupChoices,
|
|
17
|
-
setTabGroupChoices,
|
|
18
|
-
}}>
|
|
21
|
+
<UserPreferencesContext.Provider value={contextValue}>
|
|
19
22
|
{props.children}
|
|
20
23
|
</UserPreferencesContext.Provider>
|
|
21
24
|
);
|
|
@@ -4,72 +4,59 @@
|
|
|
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 {useState, useCallback,
|
|
8
|
-
import {
|
|
9
|
-
import useScrollPosition from '@theme/hooks/useScrollPosition';
|
|
10
|
-
import {useLocationChange} from '@docusaurus/theme-common';
|
|
7
|
+
import {useState, useCallback, useRef} from 'react';
|
|
8
|
+
import {useLocationChange, useScrollPosition} from '@docusaurus/theme-common';
|
|
11
9
|
|
|
12
10
|
const useHideableNavbar = (hideOnScroll) => {
|
|
13
|
-
const location = useLocation();
|
|
14
11
|
const [isNavbarVisible, setIsNavbarVisible] = useState(hideOnScroll);
|
|
15
12
|
const isFocusedAnchor = useRef(false);
|
|
16
|
-
const
|
|
13
|
+
const navbarHeight = useRef(0);
|
|
17
14
|
const navbarRef = useCallback((node) => {
|
|
18
15
|
if (node !== null) {
|
|
19
|
-
|
|
16
|
+
navbarHeight.current = node.getBoundingClientRect().height;
|
|
20
17
|
}
|
|
21
18
|
}, []);
|
|
22
|
-
useScrollPosition(
|
|
23
|
-
(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (scrollTop < navbarHeight) {
|
|
29
|
-
setIsNavbarVisible(true);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (isFocusedAnchor.current) {
|
|
34
|
-
isFocusedAnchor.current = false;
|
|
35
|
-
setIsNavbarVisible(false);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
19
|
+
useScrollPosition((currentPosition, lastPosition) => {
|
|
20
|
+
if (!hideOnScroll) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
38
23
|
|
|
39
|
-
|
|
40
|
-
setIsNavbarVisible(true);
|
|
41
|
-
}
|
|
24
|
+
const scrollTop = currentPosition.scrollY; // It needed for mostly to handle rubber band scrolling
|
|
42
25
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
26
|
+
if (scrollTop < navbarHeight.current) {
|
|
27
|
+
setIsNavbarVisible(true);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
46
30
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
} else if (scrollTop + windowHeight < documentHeight) {
|
|
50
|
-
setIsNavbarVisible(true);
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
[navbarHeight, isFocusedAnchor],
|
|
54
|
-
);
|
|
55
|
-
useLocationChange((locationChangeEvent) => {
|
|
56
|
-
if (!hideOnScroll || locationChangeEvent.location.hash) {
|
|
31
|
+
if (isFocusedAnchor.current) {
|
|
32
|
+
isFocusedAnchor.current = false;
|
|
57
33
|
return;
|
|
58
34
|
}
|
|
59
35
|
|
|
60
|
-
|
|
36
|
+
const lastScrollTop = lastPosition?.scrollY;
|
|
37
|
+
const documentHeight =
|
|
38
|
+
document.documentElement.scrollHeight - navbarHeight.current;
|
|
39
|
+
const windowHeight = window.innerHeight;
|
|
40
|
+
|
|
41
|
+
if (lastScrollTop && scrollTop >= lastScrollTop) {
|
|
42
|
+
setIsNavbarVisible(false);
|
|
43
|
+
} else if (scrollTop + windowHeight < documentHeight) {
|
|
44
|
+
setIsNavbarVisible(true);
|
|
45
|
+
}
|
|
61
46
|
});
|
|
62
|
-
|
|
47
|
+
useLocationChange((locationChangeEvent) => {
|
|
63
48
|
if (!hideOnScroll) {
|
|
64
49
|
return;
|
|
65
50
|
}
|
|
66
51
|
|
|
67
|
-
if (
|
|
52
|
+
if (locationChangeEvent.location.hash) {
|
|
53
|
+
isFocusedAnchor.current = true;
|
|
54
|
+
setIsNavbarVisible(false);
|
|
68
55
|
return;
|
|
69
56
|
}
|
|
70
57
|
|
|
71
|
-
|
|
72
|
-
}
|
|
58
|
+
setIsNavbarVisible(true);
|
|
59
|
+
});
|
|
73
60
|
return {
|
|
74
61
|
navbarRef,
|
|
75
62
|
isNavbarVisible,
|
|
@@ -14,9 +14,8 @@ const themes = {
|
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
// Ensure to always return a valid theme even if input is invalid
|
|
17
|
-
const coerceToTheme = (theme) =>
|
|
18
|
-
|
|
19
|
-
};
|
|
17
|
+
const coerceToTheme = (theme) =>
|
|
18
|
+
theme === themes.dark ? themes.dark : themes.light;
|
|
20
19
|
|
|
21
20
|
const getInitialTheme = (defaultMode) => {
|
|
22
21
|
if (!ExecutionEnvironment.canUseDOM) {
|
|
@@ -60,7 +59,7 @@ const useTheme = () => {
|
|
|
60
59
|
} catch (err) {
|
|
61
60
|
console.error(err);
|
|
62
61
|
}
|
|
63
|
-
}, [setTheme]);
|
|
62
|
+
}, [disableSwitch, setTheme]);
|
|
64
63
|
useEffect(() => {
|
|
65
64
|
if (disableSwitch && !respectPrefersColorScheme) {
|
|
66
65
|
return;
|
|
@@ -71,7 +70,7 @@ const useTheme = () => {
|
|
|
71
70
|
.addListener(({matches}) => {
|
|
72
71
|
setTheme(matches ? themes.dark : themes.light);
|
|
73
72
|
});
|
|
74
|
-
}, []);
|
|
73
|
+
}, [disableSwitch, respectPrefersColorScheme]);
|
|
75
74
|
return {
|
|
76
75
|
isDarkTheme: theme === themes.dark,
|
|
77
76
|
setLightTheme,
|
|
@@ -6,40 +6,54 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import {useEffect, useState} from 'react';
|
|
8
8
|
import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
|
|
9
|
-
const desktopThresholdWidth = 996;
|
|
10
9
|
const windowSizes = {
|
|
11
10
|
desktop: 'desktop',
|
|
12
11
|
mobile: 'mobile',
|
|
12
|
+
// This "ssr" value is very important to handle hydration FOUC / layout shifts
|
|
13
|
+
// You have to handle server-rendering explicitly on the call-site
|
|
14
|
+
// On the server, you may need to render BOTH the mobile/desktop elements (and hide one of them with mediaquery)
|
|
15
|
+
// We don't return "undefined" on purpose, to make it more explicit
|
|
16
|
+
ssr: 'ssr',
|
|
13
17
|
};
|
|
18
|
+
const DesktopThresholdWidth = 996;
|
|
14
19
|
|
|
15
|
-
function
|
|
16
|
-
|
|
20
|
+
function getWindowSize() {
|
|
21
|
+
if (!ExecutionEnvironment.canUseDOM) {
|
|
22
|
+
return windowSizes.ssr;
|
|
23
|
+
}
|
|
17
24
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
return window.innerWidth > DesktopThresholdWidth
|
|
26
|
+
? windowSizes.desktop
|
|
27
|
+
: windowSizes.mobile;
|
|
28
|
+
} // Simulate the SSR window size in dev, so that potential hydration FOUC/layout shift problems can be seen in dev too!
|
|
22
29
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
30
|
+
const DevSimulateSSR = process.env.NODE_ENV === 'development' && true; // This hook returns an enum value on purpose!
|
|
31
|
+
// We don't want it to return the actual width value, for resize perf reasons
|
|
32
|
+
// We only want to re-render once a breakpoint is crossed
|
|
27
33
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (
|
|
31
|
-
return
|
|
34
|
+
function useWindowSize() {
|
|
35
|
+
const [windowSize, setWindowSize] = useState(() => {
|
|
36
|
+
if (DevSimulateSSR) {
|
|
37
|
+
return 'ssr';
|
|
32
38
|
}
|
|
33
39
|
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
return getWindowSize();
|
|
41
|
+
});
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
function updateWindowSize() {
|
|
44
|
+
setWindowSize(getWindowSize());
|
|
36
45
|
}
|
|
37
46
|
|
|
38
|
-
|
|
39
|
-
|
|
47
|
+
const timeout = DevSimulateSSR
|
|
48
|
+
? window.setTimeout(updateWindowSize, 1000)
|
|
49
|
+
: undefined;
|
|
50
|
+
window.addEventListener('resize', updateWindowSize);
|
|
51
|
+
return () => {
|
|
52
|
+
window.removeEventListener('resize', updateWindowSize);
|
|
53
|
+
clearTimeout(timeout);
|
|
54
|
+
};
|
|
40
55
|
}, []);
|
|
41
56
|
return windowSize;
|
|
42
57
|
}
|
|
43
58
|
|
|
44
|
-
export {windowSizes};
|
|
45
59
|
export default useWindowSize;
|
|
@@ -10,8 +10,9 @@ import siteConfig from '@generated/docusaurus.config';
|
|
|
10
10
|
const prismIncludeLanguages = (PrismObject) => {
|
|
11
11
|
if (ExecutionEnvironment.canUseDOM) {
|
|
12
12
|
const {
|
|
13
|
-
themeConfig: {prism
|
|
13
|
+
themeConfig: {prism = {}},
|
|
14
14
|
} = siteConfig;
|
|
15
|
+
const {additionalLanguages = []} = prism;
|
|
15
16
|
window.Prism = PrismObject;
|
|
16
17
|
additionalLanguages.forEach((lang) => {
|
|
17
18
|
require(`prismjs/components/prism-${lang}`); // eslint-disable-line
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/theme-classic",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.14",
|
|
4
4
|
"description": "Classic theme for Docusaurus",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
|
-
"types": "src/
|
|
6
|
+
"types": "src/theme-classic.d.ts",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -14,50 +14,52 @@
|
|
|
14
14
|
},
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "tsc --noEmit && yarn babel:lib && yarn babel:lib-next && yarn
|
|
18
|
-
"watch": "concurrently
|
|
17
|
+
"build": "tsc --noEmit && yarn babel:lib && yarn babel:lib-next && yarn format:lib-next",
|
|
18
|
+
"watch": "concurrently --names \"lib,lib-next,tsc\" --kill-others \"yarn babel:lib --watch\" \"yarn babel:lib-next --watch\" \"yarn tsc --watch\"",
|
|
19
19
|
"babel:lib": "cross-env BABEL_ENV=lib babel src -d lib --extensions \".tsx,.ts\" --ignore \"**/*.d.ts\" --copy-files",
|
|
20
20
|
"babel:lib-next": "cross-env BABEL_ENV=lib-next babel src -d lib-next --extensions \".tsx,.ts\" --ignore \"**/*.d.ts\" --copy-files",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
21
|
+
"format": "prettier --config ../../.prettierrc --ignore-path ../../.prettierignore --write \"**/*.{js,ts,jsx,tsc}\"",
|
|
22
|
+
"format:lib-next": "prettier --config ../../.prettierrc --write \"lib-next/**/*.{js,ts,jsx,tsc}\"",
|
|
23
23
|
"update-code-translations": "node -e 'require(\"./update-code-translations.js\").run()'"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
27
|
-
"@docusaurus/plugin-content-blog": "2.0.0-beta.
|
|
28
|
-
"@docusaurus/plugin-content-docs": "2.0.0-beta.
|
|
29
|
-
"@docusaurus/plugin-content-pages": "2.0.0-beta.
|
|
30
|
-
"@docusaurus/theme-common": "2.0.0-beta.
|
|
31
|
-
"@docusaurus/
|
|
32
|
-
"@docusaurus/utils": "2.0.0-beta.
|
|
33
|
-
"@docusaurus/utils-
|
|
34
|
-
"@docusaurus/utils-validation": "2.0.0-beta.138b4c997",
|
|
26
|
+
"@docusaurus/core": "2.0.0-beta.14",
|
|
27
|
+
"@docusaurus/plugin-content-blog": "2.0.0-beta.14",
|
|
28
|
+
"@docusaurus/plugin-content-docs": "2.0.0-beta.14",
|
|
29
|
+
"@docusaurus/plugin-content-pages": "2.0.0-beta.14",
|
|
30
|
+
"@docusaurus/theme-common": "2.0.0-beta.14",
|
|
31
|
+
"@docusaurus/theme-translations": "2.0.0-beta.14",
|
|
32
|
+
"@docusaurus/utils": "2.0.0-beta.14",
|
|
33
|
+
"@docusaurus/utils-validation": "2.0.0-beta.14",
|
|
35
34
|
"@mdx-js/mdx": "^1.6.21",
|
|
36
35
|
"@mdx-js/react": "^1.6.21",
|
|
37
|
-
"chalk": "^4.1.1",
|
|
38
36
|
"clsx": "^1.1.1",
|
|
39
37
|
"copy-text-to-clipboard": "^3.0.1",
|
|
40
|
-
"fs-extra": "^10.0.0",
|
|
41
38
|
"globby": "^11.0.2",
|
|
42
|
-
"infima": "0.2.0-alpha.
|
|
39
|
+
"infima": "0.2.0-alpha.37",
|
|
43
40
|
"lodash": "^4.17.20",
|
|
44
|
-
"
|
|
45
|
-
"postcss": "^8.2.15",
|
|
41
|
+
"postcss": "^8.3.7",
|
|
46
42
|
"prism-react-renderer": "^1.2.1",
|
|
47
43
|
"prismjs": "^1.23.0",
|
|
48
|
-
"prop-types": "^15.7.2",
|
|
49
44
|
"react-router-dom": "^5.2.0",
|
|
50
|
-
"rtlcss": "^3.
|
|
45
|
+
"rtlcss": "^3.3.0"
|
|
51
46
|
},
|
|
52
47
|
"devDependencies": {
|
|
53
|
-
"@docusaurus/module-type-aliases": "2.0.0-beta.
|
|
48
|
+
"@docusaurus/module-type-aliases": "2.0.0-beta.14",
|
|
49
|
+
"@docusaurus/types": "2.0.0-beta.14",
|
|
50
|
+
"@types/mdx-js__react": "^1.5.4",
|
|
51
|
+
"@types/parse-numeric-range": "^0.0.1",
|
|
52
|
+
"@types/rtlcss": "^3.1.1",
|
|
53
|
+
"fs-extra": "^10.0.0",
|
|
54
|
+
"react-test-renderer": "^17.0.2",
|
|
55
|
+
"utility-types": "^3.10.0"
|
|
54
56
|
},
|
|
55
57
|
"peerDependencies": {
|
|
56
58
|
"react": "^16.8.4 || ^17.0.0",
|
|
57
59
|
"react-dom": "^16.8.4 || ^17.0.0"
|
|
58
60
|
},
|
|
59
61
|
"engines": {
|
|
60
|
-
"node": ">=
|
|
62
|
+
"node": ">=14"
|
|
61
63
|
},
|
|
62
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "c4824a8937d8f1aa0806667749cbc74058e2b294"
|
|
63
65
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
.admonition h5 {
|
|
9
|
+
margin-top: 0;
|
|
10
|
+
margin-bottom: 8px;
|
|
11
|
+
text-transform: uppercase;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.admonition-icon {
|
|
15
|
+
display: inline-block;
|
|
16
|
+
vertical-align: middle;
|
|
17
|
+
margin-right: 0.4em;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.admonition-icon svg {
|
|
21
|
+
display: inline-block;
|
|
22
|
+
width: 22px;
|
|
23
|
+
height: 22px;
|
|
24
|
+
stroke-width: 0;
|
|
25
|
+
fill: var(--ifm-alert-foreground-color);
|
|
26
|
+
stroke: var(--ifm-alert-foreground-color);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.admonition-content > :last-child {
|
|
30
|
+
margin-bottom: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.admonition {
|
|
34
|
+
margin-bottom: 1em;
|
|
35
|
+
}
|
package/src/deps.d.ts
ADDED
|
@@ -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
|
+
declare module 'prism-react-renderer/prism' {
|
|
9
|
+
import type * as PrismNamespace from 'prismjs';
|
|
10
|
+
|
|
11
|
+
const Prism: typeof PrismNamespace;
|
|
12
|
+
export default Prism;
|
|
13
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {DocusaurusContext, Plugin} from '@docusaurus/types';
|
|
8
|
+
import {DocusaurusContext, Plugin, PostCssOptions} from '@docusaurus/types';
|
|
9
9
|
import type {ThemeConfig} from '@docusaurus/theme-common';
|
|
10
10
|
import {getTranslationFiles, translateThemeConfig} from './translations';
|
|
11
11
|
import path from 'path';
|
|
12
|
-
import
|
|
13
|
-
import type {
|
|
12
|
+
import {createRequire} from 'module';
|
|
13
|
+
import type {Plugin as PostCssPlugin} from 'postcss';
|
|
14
14
|
import rtlcss from 'rtlcss';
|
|
15
|
-
import {readDefaultCodeTranslationMessages} from '@docusaurus/
|
|
15
|
+
import {readDefaultCodeTranslationMessages} from '@docusaurus/theme-translations';
|
|
16
|
+
import type {Options} from '@docusaurus/theme-classic';
|
|
16
17
|
|
|
17
|
-
const createRequire = Module.createRequire || Module.createRequireFromPath;
|
|
18
18
|
const requireFromDocusaurusCore = createRequire(
|
|
19
19
|
require.resolve('@docusaurus/core/package.json'),
|
|
20
20
|
);
|
|
@@ -25,8 +25,10 @@ const ContextReplacementPlugin = requireFromDocusaurusCore(
|
|
|
25
25
|
// Need to be inlined to prevent dark mode FOUC
|
|
26
26
|
// Make sure that the 'storageKey' is the same as the one in `/theme/hooks/useTheme.js`
|
|
27
27
|
const ThemeStorageKey = 'theme';
|
|
28
|
-
const noFlashColorMode = ({
|
|
29
|
-
|
|
28
|
+
const noFlashColorMode = ({
|
|
29
|
+
defaultMode,
|
|
30
|
+
respectPrefersColorScheme,
|
|
31
|
+
}: ThemeConfig['colorMode']) => `(function() {
|
|
30
32
|
var defaultMode = '${defaultMode}';
|
|
31
33
|
var respectPrefersColorScheme = ${respectPrefersColorScheme};
|
|
32
34
|
|
|
@@ -61,7 +63,6 @@ const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
|
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
})();`;
|
|
64
|
-
};
|
|
65
66
|
|
|
66
67
|
// Duplicated constant. Unfortunately we can't import it from theme-common, as we need to support older nodejs versions without ESM support
|
|
67
68
|
// TODO: import from theme-common once we only support Node.js with ESM support
|
|
@@ -83,19 +84,15 @@ const AnnouncementBarInlineJavaScript = `
|
|
|
83
84
|
document.documentElement.setAttribute('${AnnouncementBarDismissDataAttribute}', isDismissed());
|
|
84
85
|
})();`;
|
|
85
86
|
|
|
86
|
-
function getInfimaCSSFile(direction) {
|
|
87
|
+
function getInfimaCSSFile(direction: string) {
|
|
87
88
|
return `infima/dist/css/default/default${
|
|
88
89
|
direction === 'rtl' ? '-rtl' : ''
|
|
89
90
|
}.css`;
|
|
90
91
|
}
|
|
91
92
|
|
|
92
|
-
type PluginOptions = {
|
|
93
|
-
customCss?: string;
|
|
94
|
-
};
|
|
95
|
-
|
|
96
93
|
export default function docusaurusThemeClassic(
|
|
97
94
|
context: DocusaurusContext, // TODO: LoadContext is missing some of properties
|
|
98
|
-
options:
|
|
95
|
+
options: Options,
|
|
99
96
|
): Plugin<void> {
|
|
100
97
|
const {
|
|
101
98
|
siteConfig: {themeConfig: roughlyTypedThemeConfig},
|
|
@@ -132,12 +129,17 @@ export default function docusaurusThemeClassic(
|
|
|
132
129
|
},
|
|
133
130
|
|
|
134
131
|
getTranslationFiles: async () => getTranslationFiles({themeConfig}),
|
|
135
|
-
translateThemeConfig,
|
|
136
132
|
|
|
137
|
-
|
|
133
|
+
translateThemeConfig: (params) =>
|
|
134
|
+
translateThemeConfig({
|
|
135
|
+
themeConfig: params.themeConfig as ThemeConfig,
|
|
136
|
+
translationFiles: params.translationFiles,
|
|
137
|
+
}),
|
|
138
|
+
|
|
139
|
+
getDefaultCodeTranslationMessages() {
|
|
138
140
|
return readDefaultCodeTranslationMessages({
|
|
139
|
-
dirPath: path.resolve(__dirname, '..', 'codeTranslations'),
|
|
140
141
|
locale: currentLocale,
|
|
142
|
+
name: 'theme-common',
|
|
141
143
|
});
|
|
142
144
|
},
|
|
143
145
|
|
|
@@ -145,6 +147,7 @@ export default function docusaurusThemeClassic(
|
|
|
145
147
|
const modules = [
|
|
146
148
|
require.resolve(getInfimaCSSFile(direction)),
|
|
147
149
|
path.resolve(__dirname, './prism-include-languages'),
|
|
150
|
+
path.resolve(__dirname, './admonitions.css'),
|
|
148
151
|
];
|
|
149
152
|
|
|
150
153
|
if (customCss) {
|
|
@@ -177,18 +180,18 @@ export default function docusaurusThemeClassic(
|
|
|
177
180
|
};
|
|
178
181
|
},
|
|
179
182
|
|
|
180
|
-
configurePostCss(postCssOptions:
|
|
183
|
+
configurePostCss(postCssOptions: PostCssOptions) {
|
|
181
184
|
if (direction === 'rtl') {
|
|
182
185
|
const resolvedInfimaFile = require.resolve(getInfimaCSSFile(direction));
|
|
183
186
|
const plugin: PostCssPlugin = {
|
|
184
187
|
postcssPlugin: 'RtlCssPlugin',
|
|
185
|
-
prepare: (result
|
|
188
|
+
prepare: (result) => {
|
|
186
189
|
const file = result.root?.source?.input?.file;
|
|
187
190
|
// Skip Infima as we are using the its RTL version.
|
|
188
191
|
if (file === resolvedInfimaFile) {
|
|
189
192
|
return {};
|
|
190
193
|
}
|
|
191
|
-
return rtlcss(result.root);
|
|
194
|
+
return rtlcss(result.root as unknown as rtlcss.ConfigOptions);
|
|
192
195
|
},
|
|
193
196
|
};
|
|
194
197
|
postCssOptions.plugins.push(plugin);
|
|
File without changes
|
|
@@ -0,0 +1,106 @@
|
|
|
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
|
+
import {Props} from '@theme/Admonition';
|
|
11
|
+
|
|
12
|
+
const icons = {
|
|
13
|
+
note: (
|
|
14
|
+
<svg
|
|
15
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
16
|
+
width="14"
|
|
17
|
+
height="16"
|
|
18
|
+
viewBox="0 0 14 16">
|
|
19
|
+
<path
|
|
20
|
+
fillRule="evenodd"
|
|
21
|
+
d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"
|
|
22
|
+
/>
|
|
23
|
+
</svg>
|
|
24
|
+
),
|
|
25
|
+
tip: (
|
|
26
|
+
<svg
|
|
27
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
28
|
+
width="12"
|
|
29
|
+
height="16"
|
|
30
|
+
viewBox="0 0 12 16">
|
|
31
|
+
<path
|
|
32
|
+
fillRule="evenodd"
|
|
33
|
+
d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"
|
|
34
|
+
/>
|
|
35
|
+
</svg>
|
|
36
|
+
),
|
|
37
|
+
danger: (
|
|
38
|
+
<svg
|
|
39
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
40
|
+
width="12"
|
|
41
|
+
height="16"
|
|
42
|
+
viewBox="0 0 12 16">
|
|
43
|
+
<path
|
|
44
|
+
fillRule="evenodd"
|
|
45
|
+
d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"
|
|
46
|
+
/>
|
|
47
|
+
</svg>
|
|
48
|
+
),
|
|
49
|
+
info: (
|
|
50
|
+
<svg
|
|
51
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
52
|
+
width="14"
|
|
53
|
+
height="16"
|
|
54
|
+
viewBox="0 0 14 16">
|
|
55
|
+
<path
|
|
56
|
+
fillRule="evenodd"
|
|
57
|
+
d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"
|
|
58
|
+
/>
|
|
59
|
+
</svg>
|
|
60
|
+
),
|
|
61
|
+
caution: (
|
|
62
|
+
<svg
|
|
63
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
64
|
+
width="16"
|
|
65
|
+
height="16"
|
|
66
|
+
viewBox="0 0 16 16">
|
|
67
|
+
<path
|
|
68
|
+
fillRule="evenodd"
|
|
69
|
+
d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"
|
|
70
|
+
/>
|
|
71
|
+
</svg>
|
|
72
|
+
),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const ifmClassNames = {
|
|
76
|
+
note: 'secondary',
|
|
77
|
+
tip: 'success',
|
|
78
|
+
danger: 'danger',
|
|
79
|
+
info: 'info',
|
|
80
|
+
caution: 'warning',
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export default function Admonition({
|
|
84
|
+
children,
|
|
85
|
+
type,
|
|
86
|
+
title = type,
|
|
87
|
+
icon = icons[type],
|
|
88
|
+
}: Props): JSX.Element {
|
|
89
|
+
return (
|
|
90
|
+
<div
|
|
91
|
+
className={clsx(
|
|
92
|
+
'admonition',
|
|
93
|
+
`admonition-${type}`,
|
|
94
|
+
'alert',
|
|
95
|
+
`alert--${ifmClassNames[type]}`,
|
|
96
|
+
)}>
|
|
97
|
+
<div className="admonition-heading">
|
|
98
|
+
<h5>
|
|
99
|
+
<span className="admonition-icon">{icon}</span>
|
|
100
|
+
{title}
|
|
101
|
+
</h5>
|
|
102
|
+
</div>
|
|
103
|
+
<div className="admonition-content">{children}</div>
|
|
104
|
+
</div>
|
|
105
|
+
);
|
|
106
|
+
}
|
|
@@ -9,32 +9,28 @@ import React from 'react';
|
|
|
9
9
|
import clsx from 'clsx';
|
|
10
10
|
import {useThemeConfig, useAnnouncementBar} from '@docusaurus/theme-common';
|
|
11
11
|
import {translate} from '@docusaurus/Translate';
|
|
12
|
+
import IconClose from '@theme/IconClose';
|
|
12
13
|
|
|
13
14
|
import styles from './styles.module.css';
|
|
14
15
|
|
|
15
16
|
function AnnouncementBar(): JSX.Element | null {
|
|
16
|
-
const {
|
|
17
|
+
const {isActive, close} = useAnnouncementBar();
|
|
17
18
|
const {announcementBar} = useThemeConfig();
|
|
18
19
|
|
|
19
|
-
if (!
|
|
20
|
+
if (!isActive) {
|
|
20
21
|
return null;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
const {content, backgroundColor, textColor, isCloseable} = announcementBar
|
|
24
|
-
|
|
25
|
-
if (!content || (isCloseable && isClosed)) {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
24
|
+
const {content, backgroundColor, textColor, isCloseable} = announcementBar!;
|
|
28
25
|
|
|
29
26
|
return (
|
|
30
27
|
<div
|
|
31
28
|
className={styles.announcementBar}
|
|
32
29
|
style={{backgroundColor, color: textColor}}
|
|
33
30
|
role="banner">
|
|
31
|
+
{isCloseable && <div className={styles.announcementBarPlaceholder} />}
|
|
34
32
|
<div
|
|
35
|
-
className={
|
|
36
|
-
[styles.announcementBarCloseable]: isCloseable,
|
|
37
|
-
})}
|
|
33
|
+
className={styles.announcementBarContent}
|
|
38
34
|
// Developer provided the HTML, so assume it's safe.
|
|
39
35
|
// eslint-disable-next-line react/no-danger
|
|
40
36
|
dangerouslySetInnerHTML={{__html: content}}
|
|
@@ -42,14 +38,14 @@ function AnnouncementBar(): JSX.Element | null {
|
|
|
42
38
|
{isCloseable ? (
|
|
43
39
|
<button
|
|
44
40
|
type="button"
|
|
45
|
-
className={clsx(
|
|
41
|
+
className={clsx('clean-btn close', styles.announcementBarClose)}
|
|
46
42
|
onClick={close}
|
|
47
43
|
aria-label={translate({
|
|
48
44
|
id: 'theme.AnnouncementBar.closeButtonAriaLabel',
|
|
49
45
|
message: 'Close',
|
|
50
46
|
description: 'The ARIA label for close button of announcement bar',
|
|
51
47
|
})}>
|
|
52
|
-
<
|
|
48
|
+
<IconClose width={14} height={14} strokeWidth={3.1} />
|
|
53
49
|
</button>
|
|
54
50
|
) : null}
|
|
55
51
|
</div>
|