@docusaurus/theme-classic 2.0.0-beta.8bda3b2db → 2.0.0-beta.9
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/codeTranslations/ar.json +12 -7
- package/codeTranslations/base.json +17 -7
- package/codeTranslations/bn.json +11 -5
- package/codeTranslations/cs.json +62 -0
- package/codeTranslations/da.json +8 -3
- package/codeTranslations/de.json +8 -3
- package/codeTranslations/es.json +15 -10
- package/codeTranslations/fa.json +31 -26
- package/codeTranslations/fil.json +8 -3
- package/codeTranslations/fr.json +8 -3
- package/codeTranslations/he.json +9 -4
- package/codeTranslations/hi.json +9 -4
- package/codeTranslations/ja.json +8 -3
- package/codeTranslations/ko.json +8 -3
- package/codeTranslations/pl.json +8 -3
- package/codeTranslations/pt-BR.json +16 -11
- package/codeTranslations/pt-PT.json +8 -3
- package/codeTranslations/ru.json +10 -5
- package/codeTranslations/sr.json +62 -0
- package/codeTranslations/tr.json +9 -4
- package/codeTranslations/vi.json +10 -5
- package/codeTranslations/zh-Hans.json +9 -4
- package/codeTranslations/zh-Hant.json +9 -4
- package/lib/__tests__/validateThemeConfig.test.js +277 -3
- package/lib/admonitions.css +35 -0
- package/lib/index.js +31 -8
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme/AnnouncementBar/index.js +10 -16
- package/lib/theme/AnnouncementBar/styles.module.css +25 -30
- package/lib/theme/BackToTopButton/index.js +140 -0
- package/lib/theme/BackToTopButton/styles.module.css +42 -0
- package/lib/theme/BlogArchivePage/index.js +89 -0
- package/lib/theme/BlogLayout/index.js +51 -0
- package/lib/theme/BlogListPage/index.js +10 -21
- package/lib/theme/BlogPostAuthor/index.js +51 -0
- package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib/theme/BlogPostAuthors/index.js +47 -0
- package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
- package/lib/theme/BlogPostItem/index.js +58 -67
- package/lib/theme/BlogPostPage/index.js +37 -24
- package/lib/theme/BlogSidebar/styles.module.css +2 -2
- package/lib/theme/BlogTagsListPage/index.js +8 -44
- package/lib/theme/BlogTagsPostsPage/index.js +24 -38
- package/lib/theme/CodeBlock/index.js +45 -41
- package/lib/theme/CodeBlock/styles.module.css +6 -9
- package/lib/theme/Details/index.js +30 -0
- package/lib/theme/Details/styles.module.css +13 -0
- package/lib/theme/DocItem/index.js +29 -45
- package/lib/theme/DocItem/styles.module.css +5 -9
- package/lib/theme/DocItemFooter/index.js +79 -0
- package/lib/theme/DocItemFooter/styles.module.css +18 -0
- package/lib/theme/DocPage/index.js +25 -49
- package/lib/theme/DocPage/styles.module.css +8 -23
- package/lib/theme/DocSidebar/index.js +45 -227
- package/lib/theme/DocSidebar/styles.module.css +0 -18
- package/lib/theme/DocSidebarItem/index.js +177 -0
- package/lib/theme/DocSidebarItem/styles.module.css +15 -0
- package/lib/theme/DocTagDocListPage/index.js +89 -0
- package/lib/theme/DocTagsListPage/index.js +44 -0
- package/lib/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +37 -18
- package/lib/theme/EditThisPage/index.js +3 -1
- package/lib/theme/Footer/index.js +13 -4
- package/lib/theme/Heading/index.js +7 -9
- package/lib/theme/Heading/styles.css +4 -6
- package/lib/theme/Heading/styles.module.css +9 -5
- package/lib/theme/IconClose/index.js +31 -0
- package/lib/theme/LastUpdated/index.js +4 -2
- package/lib/theme/LayoutHead/index.js +13 -11
- package/lib/theme/LayoutProviders/index.js +11 -5
- package/lib/theme/Logo/index.js +14 -12
- package/lib/theme/MDXComponents/index.js +45 -4
- package/lib/theme/MDXComponents/styles.css +11 -0
- package/lib/theme/MDXPage/index.js +2 -1
- package/lib/theme/Navbar/index.js +164 -42
- package/lib/theme/Navbar/styles.module.css +10 -3
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -123
- package/lib/theme/NavbarItem/DocNavbarItem.js +6 -5
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
- package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
- package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +5 -6
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib/theme/NavbarItem/index.js +31 -11
- package/lib/theme/Seo/index.js +10 -7
- package/lib/theme/SkipToContent/index.js +9 -3
- package/lib/theme/SkipToContent/styles.module.css +1 -0
- package/lib/theme/TOC/index.js +9 -29
- package/lib/theme/TOC/styles.module.css +1 -1
- package/lib/theme/TOCCollapsible/index.js +53 -0
- package/lib/theme/TOCCollapsible/styles.module.css +50 -0
- package/lib/theme/TOCInline/index.js +7 -27
- package/lib/theme/TOCItems/index.js +78 -0
- package/lib/theme/Tabs/__tests__/index.test.js +123 -0
- package/lib/theme/Tabs/index.js +73 -50
- package/lib/theme/Tabs/styles.module.css +0 -13
- package/lib/theme/Tag/index.js +40 -0
- package/lib/theme/Tag/styles.module.css +70 -0
- package/lib/theme/TagsListByLetter/index.js +48 -0
- package/lib/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib/theme/TagsListInline/index.js +44 -0
- package/lib/theme/TagsListInline/styles.module.css +15 -0
- package/lib/theme/ThemedImage/index.js +4 -5
- package/lib/theme/Toggle/index.js +23 -18
- package/lib/theme/Toggle/styles.module.css +91 -0
- package/lib/theme/UserPreferencesProvider/index.js +1 -9
- package/lib/theme/hooks/useHideableNavbar.js +14 -32
- package/lib/theme/hooks/useTabGroupChoice.js +2 -4
- package/lib/theme/hooks/useTheme.js +2 -2
- package/lib/theme/hooks/useWindowSize.js +33 -20
- package/lib/theme/prism-include-languages.js +4 -3
- package/lib/translations.js +4 -4
- package/lib/types.d.ts +338 -138
- package/lib/validateThemeConfig.js +226 -245
- package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
- package/lib-next/admonitions.css +35 -0
- package/lib-next/index.js +33 -7
- package/lib-next/prism-include-languages.js +0 -2
- package/lib-next/theme/AnnouncementBar/index.js +9 -18
- package/lib-next/theme/AnnouncementBar/styles.module.css +25 -30
- 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 +16 -24
- package/lib-next/theme/BlogPostAuthor/index.js +46 -0
- package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib-next/theme/BlogPostAuthors/index.js +34 -0
- package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
- package/lib-next/theme/BlogPostItem/index.js +79 -86
- package/lib-next/theme/BlogPostPage/index.js +70 -35
- package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
- package/lib-next/theme/BlogTagsListPage/index.js +13 -54
- package/lib-next/theme/BlogTagsPostsPage/index.js +28 -38
- package/lib-next/theme/CodeBlock/index.js +54 -53
- package/lib-next/theme/CodeBlock/styles.module.css +6 -9
- package/lib-next/theme/Details/index.js +20 -0
- package/lib-next/theme/Details/styles.module.css +13 -0
- package/lib-next/theme/DocItem/index.js +46 -55
- package/lib-next/theme/DocItem/styles.module.css +5 -9
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
- package/lib-next/theme/DocPage/index.js +25 -43
- package/lib-next/theme/DocPage/styles.module.css +8 -23
- package/lib-next/theme/DocSidebar/index.js +59 -288
- package/lib-next/theme/DocSidebar/styles.module.css +0 -18
- package/lib-next/theme/DocSidebarItem/index.js +181 -0
- package/lib-next/theme/DocSidebarItem/styles.module.css +15 -0
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +38 -0
- package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +44 -36
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/Footer/index.js +24 -4
- package/lib-next/theme/Heading/index.js +10 -13
- package/lib-next/theme/Heading/styles.css +4 -6
- package/lib-next/theme/Heading/styles.module.css +9 -5
- package/lib-next/theme/IconClose/index.js +23 -0
- package/lib-next/theme/LastUpdated/index.js +3 -2
- package/lib-next/theme/LayoutHead/index.js +9 -15
- package/lib-next/theme/LayoutProviders/index.js +17 -6
- package/lib-next/theme/Logo/index.js +23 -19
- package/lib-next/theme/MDXComponents/index.js +34 -7
- package/lib-next/theme/MDXComponents/styles.css +11 -0
- package/lib-next/theme/MDXPage/index.js +10 -2
- package/lib-next/theme/Navbar/index.js +192 -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 +6 -5
- 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 -8
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/index.js +25 -12
- package/lib-next/theme/Seo/index.js +11 -7
- package/lib-next/theme/SkipToContent/index.js +5 -6
- package/lib-next/theme/SkipToContent/styles.module.css +1 -0
- 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 +91 -43
- 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/ThemedImage/index.js +5 -6
- package/lib-next/theme/Toggle/index.js +20 -15
- package/lib-next/theme/Toggle/styles.module.css +91 -0
- package/lib-next/theme/UserPreferencesProvider/index.js +0 -4
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
- package/lib-next/theme/hooks/useTabGroupChoice.js +2 -4
- package/lib-next/theme/hooks/useTheme.js +2 -2
- package/lib-next/theme/hooks/useWindowSize.js +34 -20
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/lib-next/translations.js +6 -10
- package/lib-next/types.d.ts +338 -138
- package/lib-next/validateThemeConfig.js +134 -110
- package/package.json +24 -19
- package/src/__tests__/validateThemeConfig.test.js +277 -3
- package/src/admonitions.css +35 -0
- package/src/index.ts +44 -14
- package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
- package/src/theme/AnnouncementBar/index.tsx +10 -17
- package/src/theme/AnnouncementBar/styles.module.css +25 -30
- 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 +17 -24
- package/src/theme/BlogPostAuthor/index.tsx +49 -0
- package/src/theme/BlogPostAuthor/styles.module.css +12 -0
- package/src/theme/BlogPostAuthors/index.tsx +36 -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/styles.module.css +2 -2
- package/src/theme/BlogTagsListPage/index.tsx +13 -56
- package/src/theme/BlogTagsPostsPage/index.tsx +28 -38
- package/src/theme/CodeBlock/index.tsx +70 -55
- package/src/theme/CodeBlock/styles.module.css +6 -9
- package/src/theme/Details/index.tsx +24 -0
- package/src/theme/Details/styles.module.css +13 -0
- package/src/theme/DocItem/index.tsx +49 -55
- package/src/theme/DocItem/styles.module.css +5 -9
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/src/theme/DocItemFooter/styles.module.css +18 -0
- package/src/theme/DocPage/index.tsx +24 -38
- package/src/theme/DocPage/styles.module.css +8 -23
- package/src/theme/DocSidebar/index.tsx +70 -300
- package/src/theme/DocSidebar/styles.module.css +0 -18
- package/src/theme/DocSidebarItem/index.tsx +206 -0
- package/src/theme/DocSidebarItem/styles.module.css +15 -0
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +41 -0
- package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +58 -44
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/Footer/index.tsx +26 -4
- package/src/theme/Heading/index.tsx +10 -13
- package/src/theme/Heading/styles.css +4 -6
- package/src/theme/Heading/styles.module.css +9 -5
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/LastUpdated/index.tsx +3 -2
- package/src/theme/LayoutHead/index.tsx +9 -9
- package/src/theme/LayoutProviders/index.tsx +17 -6
- package/src/theme/Logo/index.tsx +19 -15
- 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 +202 -61
- package/src/theme/Navbar/styles.module.css +10 -3
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
- package/src/theme/NavbarItem/DocNavbarItem.tsx +11 -14
- 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 -7
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/index.tsx +41 -16
- package/src/theme/Seo/index.tsx +7 -4
- package/src/theme/SkipToContent/index.tsx +5 -6
- package/src/theme/SkipToContent/styles.module.css +1 -0
- 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/__tests__/index.test.tsx +129 -0
- package/src/theme/Tabs/index.tsx +93 -49
- 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/ThemedImage/index.tsx +6 -6
- package/src/theme/Toggle/index.tsx +20 -15
- package/src/theme/Toggle/styles.module.css +91 -0
- package/src/theme/UserPreferencesProvider/index.tsx +0 -5
- package/src/theme/hooks/useContextualSearchFilters.ts +1 -1
- package/src/theme/hooks/useHideableNavbar.ts +32 -45
- package/src/theme/hooks/useTabGroupChoice.ts +4 -4
- package/src/theme/hooks/useTheme.ts +2 -2
- package/src/theme/hooks/useWindowSize.ts +38 -20
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/translations.ts +6 -10
- package/src/types.d.ts +338 -138
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +144 -90
- package/tsconfig.json +1 -2
- package/update-code-translations.js +10 -6
- package/update-code-translations.test.js +1 -1
- package/update.js +151 -0
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/hooks/useAnnouncementBar.js +0 -63
- package/lib/theme/hooks/useScrollPosition.js +0 -49
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/hooks/useAnnouncementBar.ts +0 -58
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
|
@@ -0,0 +1,70 @@
|
|
|
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
|
+
:root {
|
|
9
|
+
--docusaurus-tag-list-border: var(--ifm-color-emphasis-300);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.tag {
|
|
13
|
+
border: 1px solid var(--docusaurus-tag-list-border);
|
|
14
|
+
transition: border var(--ifm-transition-fast);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.tag:hover {
|
|
18
|
+
--docusaurus-tag-list-border: var(--ifm-link-color);
|
|
19
|
+
text-decoration: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.tagRegular {
|
|
23
|
+
border-radius: 0.5rem;
|
|
24
|
+
padding: 0.3rem 0.5rem;
|
|
25
|
+
font-size: 90%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.tagWithCount {
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
position: relative;
|
|
32
|
+
padding: 0 0.5rem 0 1rem;
|
|
33
|
+
border-left: 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.tagWithCount:before,
|
|
37
|
+
.tagWithCount:after {
|
|
38
|
+
content: '';
|
|
39
|
+
position: absolute;
|
|
40
|
+
top: 50%;
|
|
41
|
+
border: 1px solid var(--docusaurus-tag-list-border);
|
|
42
|
+
transition: inherit;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.tagWithCount:before {
|
|
46
|
+
right: 100%;
|
|
47
|
+
transform: translate(50%, -50%) rotate(-45deg);
|
|
48
|
+
width: 1.18rem;
|
|
49
|
+
height: 1.18rem;
|
|
50
|
+
border-right: 0;
|
|
51
|
+
border-bottom: 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.tagWithCount:after {
|
|
55
|
+
left: 0;
|
|
56
|
+
transform: translateY(-50%);
|
|
57
|
+
width: 0.5rem;
|
|
58
|
+
height: 0.5rem;
|
|
59
|
+
border-radius: 50%;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.tagWithCount span {
|
|
63
|
+
background: var(--ifm-color-secondary);
|
|
64
|
+
color: var(--ifm-color-black);
|
|
65
|
+
font-size: 0.7rem;
|
|
66
|
+
line-height: 1.2;
|
|
67
|
+
border-radius: var(--ifm-global-radius);
|
|
68
|
+
padding: 0.1rem 0.4rem;
|
|
69
|
+
margin-left: 0.3rem;
|
|
70
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _Tag = _interopRequireDefault(require("@theme/Tag"));
|
|
11
|
+
|
|
12
|
+
var _themeCommon = require("@docusaurus/theme-common");
|
|
13
|
+
|
|
14
|
+
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
20
|
+
*
|
|
21
|
+
* This source code is licensed under the MIT license found in the
|
|
22
|
+
* LICENSE file in the root directory of this source tree.
|
|
23
|
+
*/
|
|
24
|
+
function TagLetterEntryItem({
|
|
25
|
+
letterEntry
|
|
26
|
+
}) {
|
|
27
|
+
return <article>
|
|
28
|
+
<h2>{letterEntry.letter}</h2>
|
|
29
|
+
<ul className="padding--none">
|
|
30
|
+
{letterEntry.tags.map(tag => <li key={tag.permalink} className={_stylesModule.default.tag}>
|
|
31
|
+
<_Tag.default {...tag} />
|
|
32
|
+
</li>)}
|
|
33
|
+
</ul>
|
|
34
|
+
<hr />
|
|
35
|
+
</article>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function TagsListByLetter({
|
|
39
|
+
tags
|
|
40
|
+
}) {
|
|
41
|
+
const letterList = (0, _themeCommon.listTagsByLetters)(tags);
|
|
42
|
+
return <section className="margin-vert--lg">
|
|
43
|
+
{letterList.map(letterEntry => <TagLetterEntryItem key={letterEntry.letter} letterEntry={letterEntry} />)}
|
|
44
|
+
</section>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var _default = TagsListByLetter;
|
|
48
|
+
exports.default = _default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
.tag {
|
|
9
|
+
display: inline-block;
|
|
10
|
+
margin: 0.5rem 0.5rem 0 1rem;
|
|
11
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = TagsListInline;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
|
+
|
|
12
|
+
var _Translate = _interopRequireDefault(require("@docusaurus/Translate"));
|
|
13
|
+
|
|
14
|
+
var _Tag = _interopRequireDefault(require("@theme/Tag"));
|
|
15
|
+
|
|
16
|
+
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
22
|
+
*
|
|
23
|
+
* This source code is licensed under the MIT license found in the
|
|
24
|
+
* LICENSE file in the root directory of this source tree.
|
|
25
|
+
*/
|
|
26
|
+
function TagsListInline({
|
|
27
|
+
tags
|
|
28
|
+
}) {
|
|
29
|
+
return <>
|
|
30
|
+
<b>
|
|
31
|
+
<_Translate.default id="theme.tags.tagsListLabel" description="The label alongside a tag list">
|
|
32
|
+
Tags:
|
|
33
|
+
</_Translate.default>
|
|
34
|
+
</b>
|
|
35
|
+
<ul className={(0, _clsx.default)(_stylesModule.default.tags, 'padding--none', 'margin-left--sm')}>
|
|
36
|
+
{tags.map(({
|
|
37
|
+
label,
|
|
38
|
+
permalink: tagPermalink
|
|
39
|
+
}) => <li key={tagPermalink} className={_stylesModule.default.tag}>
|
|
40
|
+
<_Tag.default name={label} permalink={tagPermalink} />
|
|
41
|
+
</li>)}
|
|
42
|
+
</ul>
|
|
43
|
+
</>;
|
|
44
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
.tags {
|
|
9
|
+
display: inline;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.tag {
|
|
13
|
+
margin: 0 0.4rem 0.5rem 0;
|
|
14
|
+
display: inline-block;
|
|
15
|
+
}
|
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _useIsBrowser = _interopRequireDefault(require("@docusaurus/useIsBrowser"));
|
|
13
13
|
|
|
14
14
|
var _useThemeContext = _interopRequireDefault(require("@theme/hooks/useThemeContext"));
|
|
15
15
|
|
|
@@ -24,9 +24,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
24
24
|
* LICENSE file in the root directory of this source tree.
|
|
25
25
|
*/
|
|
26
26
|
const ThemedImage = props => {
|
|
27
|
-
const
|
|
28
|
-
isClient
|
|
29
|
-
} = (0, _useDocusaurusContext.default)();
|
|
27
|
+
const isBrowser = (0, _useIsBrowser.default)();
|
|
30
28
|
const {
|
|
31
29
|
isDarkTheme
|
|
32
30
|
} = (0, _useThemeContext.default)();
|
|
@@ -36,7 +34,8 @@ const ThemedImage = props => {
|
|
|
36
34
|
alt = '',
|
|
37
35
|
...propsRest
|
|
38
36
|
} = props;
|
|
39
|
-
const
|
|
37
|
+
const clientThemes = isDarkTheme ? ['dark'] : ['light'];
|
|
38
|
+
const renderedSourceNames = isBrowser ? clientThemes : // We need to render both images on the server to avoid flash
|
|
40
39
|
// See https://github.com/facebook/docusaurus/pull/3730
|
|
41
40
|
['light', 'dark'];
|
|
42
41
|
return <>
|
|
@@ -9,12 +9,10 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _themeCommon = require("@docusaurus/theme-common");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _useIsBrowser = _interopRequireDefault(require("@docusaurus/useIsBrowser"));
|
|
13
13
|
|
|
14
14
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
15
15
|
|
|
16
|
-
require("./styles.css");
|
|
17
|
-
|
|
18
16
|
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
19
17
|
|
|
20
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -32,14 +30,14 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
32
30
|
const Dark = ({
|
|
33
31
|
icon,
|
|
34
32
|
style
|
|
35
|
-
}) => <span className={(0, _clsx.default)(_stylesModule.default.
|
|
33
|
+
}) => <span className={(0, _clsx.default)(_stylesModule.default.toggleIcon, _stylesModule.default.dark)} style={style}>
|
|
36
34
|
{icon}
|
|
37
35
|
</span>;
|
|
38
36
|
|
|
39
37
|
const Light = ({
|
|
40
38
|
icon,
|
|
41
39
|
style
|
|
42
|
-
}) => <span className={(0, _clsx.default)(_stylesModule.default.
|
|
40
|
+
}) => <span className={(0, _clsx.default)(_stylesModule.default.toggleIcon, _stylesModule.default.light)} style={style}>
|
|
43
41
|
{icon}
|
|
44
42
|
</span>; // Based on react-toggle (https://github.com/aaronshaf/react-toggle/).
|
|
45
43
|
|
|
@@ -54,22 +52,31 @@ const Toggle = (0, _react.memo)(({
|
|
|
54
52
|
const [checked, setChecked] = (0, _react.useState)(defaultChecked);
|
|
55
53
|
const [focused, setFocused] = (0, _react.useState)(false);
|
|
56
54
|
const inputRef = (0, _react.useRef)(null);
|
|
57
|
-
return <div className={(0, _clsx.default)(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
return <div className={(0, _clsx.default)(_stylesModule.default.toggle, className, {
|
|
56
|
+
[_stylesModule.default.toggleChecked]: checked,
|
|
57
|
+
[_stylesModule.default.toggleFocused]: focused,
|
|
58
|
+
[_stylesModule.default.toggleDisabled]: disabled
|
|
61
59
|
})}>
|
|
62
|
-
|
|
60
|
+
{
|
|
61
|
+
/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */
|
|
62
|
+
}
|
|
63
|
+
<div className={_stylesModule.default.toggleTrack} role="button" tabIndex={-1} onClick={() => {
|
|
63
64
|
var _inputRef$current;
|
|
64
65
|
|
|
65
66
|
return (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
|
|
66
67
|
}}>
|
|
67
|
-
<div className=
|
|
68
|
-
<div className=
|
|
69
|
-
<div className=
|
|
68
|
+
<div className={_stylesModule.default.toggleTrackCheck}>{icons.checked}</div>
|
|
69
|
+
<div className={_stylesModule.default.toggleTrackX}>{icons.unchecked}</div>
|
|
70
|
+
<div className={_stylesModule.default.toggleTrackThumb} />
|
|
70
71
|
</div>
|
|
71
72
|
|
|
72
|
-
<input ref={inputRef} checked={checked} type="checkbox" className=
|
|
73
|
+
<input ref={inputRef} checked={checked} type="checkbox" className={_stylesModule.default.toggleScreenReader} aria-label="Switch between dark and light mode" onChange={onChange} onClick={() => setChecked(!checked)} onFocus={() => setFocused(true)} onBlur={() => setFocused(false)} onKeyDown={e => {
|
|
74
|
+
if (e.key === 'Enter') {
|
|
75
|
+
var _inputRef$current2;
|
|
76
|
+
|
|
77
|
+
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.click();
|
|
78
|
+
}
|
|
79
|
+
}} />
|
|
73
80
|
</div>;
|
|
74
81
|
});
|
|
75
82
|
|
|
@@ -84,10 +91,8 @@ function _default(props) {
|
|
|
84
91
|
}
|
|
85
92
|
}
|
|
86
93
|
} = (0, _themeCommon.useThemeConfig)();
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
} = (0, _useDocusaurusContext.default)();
|
|
90
|
-
return <Toggle disabled={!isClient} icons={{
|
|
94
|
+
const isBrowser = (0, _useIsBrowser.default)();
|
|
95
|
+
return <Toggle disabled={!isBrowser} icons={{
|
|
91
96
|
checked: <Dark icon={darkIcon} style={darkIconStyle} />,
|
|
92
97
|
unchecked: <Light icon={lightIcon} style={lightIconStyle} />
|
|
93
98
|
}} {...props} />;
|
|
@@ -6,6 +6,97 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
.toggle {
|
|
9
|
+
touch-action: pan-x;
|
|
10
|
+
position: relative;
|
|
11
|
+
cursor: pointer;
|
|
12
|
+
user-select: none;
|
|
13
|
+
-webkit-tap-highlight-color: transparent;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.toggleScreenReader {
|
|
17
|
+
border: 0;
|
|
18
|
+
clip: rect(0 0 0 0);
|
|
19
|
+
height: 1px;
|
|
20
|
+
margin: -1px;
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
position: absolute;
|
|
23
|
+
width: 1px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.toggleDisabled {
|
|
27
|
+
cursor: not-allowed;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.toggleTrack {
|
|
31
|
+
width: 50px;
|
|
32
|
+
height: 24px;
|
|
33
|
+
border-radius: 30px;
|
|
34
|
+
background-color: #4d4d4d;
|
|
35
|
+
transition: all 0.2s ease;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.toggleTrackCheck {
|
|
39
|
+
position: absolute;
|
|
40
|
+
width: 14px;
|
|
41
|
+
height: 10px;
|
|
42
|
+
top: 0px;
|
|
43
|
+
bottom: 0px;
|
|
44
|
+
margin: auto 0;
|
|
45
|
+
left: 8px;
|
|
46
|
+
opacity: 0;
|
|
47
|
+
transition: opacity 0.25s ease;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
[data-theme='dark'] .toggle .toggleTrackCheck,
|
|
51
|
+
.toggleChecked .toggleTrackCheck {
|
|
52
|
+
opacity: 1;
|
|
53
|
+
transition: opacity 0.25s ease;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.toggleTrackX {
|
|
57
|
+
position: absolute;
|
|
58
|
+
width: 10px;
|
|
59
|
+
height: 10px;
|
|
60
|
+
top: 0px;
|
|
61
|
+
bottom: 0px;
|
|
62
|
+
margin: auto 0;
|
|
63
|
+
right: 10px;
|
|
64
|
+
opacity: 1;
|
|
65
|
+
transition: opacity 0.25s ease;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
[data-theme='dark'] .toggle .toggleTrackX,
|
|
69
|
+
.toggleChecked .toggleTrackX {
|
|
70
|
+
opacity: 0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.toggleTrackThumb {
|
|
74
|
+
position: absolute;
|
|
75
|
+
top: 1px;
|
|
76
|
+
left: 1px;
|
|
77
|
+
width: 22px;
|
|
78
|
+
height: 22px;
|
|
79
|
+
border: 1px solid #4d4d4d;
|
|
80
|
+
border-radius: 50%;
|
|
81
|
+
background-color: #fafafa;
|
|
82
|
+
transition: all 0.25s ease;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
[data-theme='dark'] .toggle .toggleTrackThumb,
|
|
86
|
+
.toggleChecked .toggleTrackThumb {
|
|
87
|
+
left: 27px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.toggleFocused .toggleTrackThumb,
|
|
91
|
+
.toggle:hover .toggleTrackThumb {
|
|
92
|
+
box-shadow: 0px 0px 2px 3px var(--ifm-color-primary);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.toggle:active:not(.toggleDisabled) .toggleTrackThumb {
|
|
96
|
+
box-shadow: 0px 0px 5px 5px var(--ifm-color-primary);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.toggleIcon {
|
|
9
100
|
align-items: center;
|
|
10
101
|
display: flex;
|
|
11
102
|
height: 10px;
|
|
@@ -9,8 +9,6 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _useTabGroupChoice = _interopRequireDefault(require("@theme/hooks/useTabGroupChoice"));
|
|
11
11
|
|
|
12
|
-
var _useAnnouncementBar = _interopRequireDefault(require("@theme/hooks/useAnnouncementBar"));
|
|
13
|
-
|
|
14
12
|
var _UserPreferencesContext = _interopRequireDefault(require("@theme/UserPreferencesContext"));
|
|
15
13
|
|
|
16
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -26,15 +24,9 @@ function UserPreferencesProvider(props) {
|
|
|
26
24
|
tabGroupChoices,
|
|
27
25
|
setTabGroupChoices
|
|
28
26
|
} = (0, _useTabGroupChoice.default)();
|
|
29
|
-
const {
|
|
30
|
-
isAnnouncementBarClosed,
|
|
31
|
-
closeAnnouncementBar
|
|
32
|
-
} = (0, _useAnnouncementBar.default)();
|
|
33
27
|
return <_UserPreferencesContext.default.Provider value={{
|
|
34
28
|
tabGroupChoices,
|
|
35
|
-
setTabGroupChoices
|
|
36
|
-
isAnnouncementBarClosed,
|
|
37
|
-
closeAnnouncementBar
|
|
29
|
+
setTabGroupChoices
|
|
38
30
|
}}>
|
|
39
31
|
{props.children}
|
|
40
32
|
</_UserPreferencesContext.default.Provider>;
|
|
@@ -7,14 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
|
|
10
|
-
var _router = require("@docusaurus/router");
|
|
11
|
-
|
|
12
|
-
var _useScrollPosition = _interopRequireDefault(require("@theme/hooks/useScrollPosition"));
|
|
13
|
-
|
|
14
10
|
var _themeCommon = require("@docusaurus/theme-common");
|
|
15
11
|
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
/**
|
|
19
13
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
20
14
|
*
|
|
@@ -22,40 +16,33 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
22
16
|
* LICENSE file in the root directory of this source tree.
|
|
23
17
|
*/
|
|
24
18
|
const useHideableNavbar = hideOnScroll => {
|
|
25
|
-
const location = (0, _router.useLocation)();
|
|
26
19
|
const [isNavbarVisible, setIsNavbarVisible] = (0, _react.useState)(hideOnScroll);
|
|
27
20
|
const isFocusedAnchor = (0, _react.useRef)(false);
|
|
28
|
-
const
|
|
21
|
+
const navbarHeight = (0, _react.useRef)(0);
|
|
29
22
|
const navbarRef = (0, _react.useCallback)(node => {
|
|
30
23
|
if (node !== null) {
|
|
31
|
-
|
|
24
|
+
navbarHeight.current = node.getBoundingClientRect().height;
|
|
32
25
|
}
|
|
33
26
|
}, []);
|
|
34
|
-
(0,
|
|
35
|
-
scrollY: scrollTop
|
|
36
|
-
}, {
|
|
37
|
-
scrollY: lastScrollTop
|
|
38
|
-
}) => {
|
|
27
|
+
(0, _themeCommon.useScrollPosition)((currentPosition, lastPosition) => {
|
|
39
28
|
if (!hideOnScroll) {
|
|
40
29
|
return;
|
|
41
30
|
}
|
|
42
31
|
|
|
43
|
-
|
|
32
|
+
const scrollTop = currentPosition.scrollY; // It needed for mostly to handle rubber band scrolling
|
|
33
|
+
|
|
34
|
+
if (scrollTop < navbarHeight.current) {
|
|
44
35
|
setIsNavbarVisible(true);
|
|
45
36
|
return;
|
|
46
37
|
}
|
|
47
38
|
|
|
48
39
|
if (isFocusedAnchor.current) {
|
|
49
40
|
isFocusedAnchor.current = false;
|
|
50
|
-
setIsNavbarVisible(false);
|
|
51
41
|
return;
|
|
52
42
|
}
|
|
53
43
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const documentHeight = document.documentElement.scrollHeight - navbarHeight;
|
|
44
|
+
const lastScrollTop = lastPosition === null || lastPosition === void 0 ? void 0 : lastPosition.scrollY;
|
|
45
|
+
const documentHeight = document.documentElement.scrollHeight - navbarHeight.current;
|
|
59
46
|
const windowHeight = window.innerHeight;
|
|
60
47
|
|
|
61
48
|
if (lastScrollTop && scrollTop >= lastScrollTop) {
|
|
@@ -63,25 +50,20 @@ const useHideableNavbar = hideOnScroll => {
|
|
|
63
50
|
} else if (scrollTop + windowHeight < documentHeight) {
|
|
64
51
|
setIsNavbarVisible(true);
|
|
65
52
|
}
|
|
66
|
-
}, [navbarHeight, isFocusedAnchor]);
|
|
67
|
-
(0, _themeCommon.useLocationChange)(locationChangeEvent => {
|
|
68
|
-
if (!hideOnScroll || locationChangeEvent.location.hash) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
setIsNavbarVisible(true);
|
|
73
53
|
});
|
|
74
|
-
(0,
|
|
54
|
+
(0, _themeCommon.useLocationChange)(locationChangeEvent => {
|
|
75
55
|
if (!hideOnScroll) {
|
|
76
56
|
return;
|
|
77
57
|
}
|
|
78
58
|
|
|
79
|
-
if (
|
|
59
|
+
if (locationChangeEvent.location.hash) {
|
|
60
|
+
isFocusedAnchor.current = true;
|
|
61
|
+
setIsNavbarVisible(false);
|
|
80
62
|
return;
|
|
81
63
|
}
|
|
82
64
|
|
|
83
|
-
|
|
84
|
-
}
|
|
65
|
+
setIsNavbarVisible(true);
|
|
66
|
+
});
|
|
85
67
|
return {
|
|
86
68
|
navbarRef,
|
|
87
69
|
isNavbarVisible
|
|
@@ -25,14 +25,12 @@ const useTabGroupChoice = () => {
|
|
|
25
25
|
(0, _react.useEffect)(() => {
|
|
26
26
|
try {
|
|
27
27
|
const localStorageChoices = {};
|
|
28
|
-
|
|
29
|
-
for (const storageKey of (0, _themeCommon.listStorageKeys)()) {
|
|
28
|
+
(0, _themeCommon.listStorageKeys)().forEach(storageKey => {
|
|
30
29
|
if (storageKey.startsWith(TAB_CHOICE_PREFIX)) {
|
|
31
30
|
const groupId = storageKey.substring(TAB_CHOICE_PREFIX.length);
|
|
32
31
|
localStorageChoices[groupId] = (0, _themeCommon.createStorageSlot)(storageKey).get();
|
|
33
32
|
}
|
|
34
|
-
}
|
|
35
|
-
|
|
33
|
+
});
|
|
36
34
|
setChoices(localStorageChoices);
|
|
37
35
|
} catch (err) {
|
|
38
36
|
console.error(err);
|
|
@@ -76,7 +76,7 @@ const useTheme = () => {
|
|
|
76
76
|
} catch (err) {
|
|
77
77
|
console.error(err);
|
|
78
78
|
}
|
|
79
|
-
}, [setTheme]);
|
|
79
|
+
}, [disableSwitch, setTheme]);
|
|
80
80
|
(0, _react.useEffect)(() => {
|
|
81
81
|
if (disableSwitch && !respectPrefersColorScheme) {
|
|
82
82
|
return;
|
|
@@ -87,7 +87,7 @@ const useTheme = () => {
|
|
|
87
87
|
}) => {
|
|
88
88
|
setTheme(matches ? themes.dark : themes.light);
|
|
89
89
|
});
|
|
90
|
-
}, []);
|
|
90
|
+
}, [disableSwitch, respectPrefersColorScheme]);
|
|
91
91
|
return {
|
|
92
92
|
isDarkTheme: theme === themes.dark,
|
|
93
93
|
setLightTheme,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
|
|
@@ -17,36 +17,49 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
17
17
|
* This source code is licensed under the MIT license found in the
|
|
18
18
|
* LICENSE file in the root directory of this source tree.
|
|
19
19
|
*/
|
|
20
|
-
const desktopThresholdWidth = 996;
|
|
21
20
|
const windowSizes = {
|
|
22
21
|
desktop: 'desktop',
|
|
23
|
-
mobile: 'mobile'
|
|
22
|
+
mobile: 'mobile',
|
|
23
|
+
// This "ssr" value is very important to handle hydration FOUC / layout shifts
|
|
24
|
+
// You have to handle server-rendering explicitly on the call-site
|
|
25
|
+
// On the server, you may need to render BOTH the mobile/desktop elements (and hide one of them with mediaquery)
|
|
26
|
+
// We don't return "undefined" on purpose, to make it more explicit
|
|
27
|
+
ssr: 'ssr'
|
|
24
28
|
};
|
|
25
|
-
|
|
29
|
+
const DesktopThresholdWidth = 996;
|
|
26
30
|
|
|
27
|
-
function
|
|
28
|
-
|
|
31
|
+
function getWindowSize() {
|
|
32
|
+
if (!_ExecutionEnvironment.default.canUseDOM) {
|
|
33
|
+
return windowSizes.ssr;
|
|
34
|
+
}
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
36
|
+
return window.innerWidth > DesktopThresholdWidth ? windowSizes.desktop : windowSizes.mobile;
|
|
37
|
+
} // Simulate the SSR window size in dev, so that potential hydration FOUC/layout shift problems can be seen in dev too!
|
|
34
38
|
|
|
35
|
-
return window.innerWidth > desktopThresholdWidth ? windowSizes.desktop : windowSizes.mobile;
|
|
36
|
-
}
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
const DevSimulateSSR = process.env.NODE_ENV === 'development' && true; // This hook returns an enum value on purpose!
|
|
41
|
+
// We don't want it to return the actual width value, for resize perf reasons
|
|
42
|
+
// We only want to re-render once a breakpoint is crossed
|
|
43
|
+
|
|
44
|
+
function useWindowSize() {
|
|
45
|
+
const [windowSize, setWindowSize] = (0, _react.useState)(() => {
|
|
46
|
+
if (DevSimulateSSR) {
|
|
47
|
+
return 'ssr';
|
|
42
48
|
}
|
|
43
49
|
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
return getWindowSize();
|
|
51
|
+
});
|
|
52
|
+
(0, _react.useEffect)(() => {
|
|
53
|
+
function updateWindowSize() {
|
|
54
|
+
setWindowSize(getWindowSize());
|
|
46
55
|
}
|
|
47
56
|
|
|
48
|
-
window.
|
|
49
|
-
|
|
57
|
+
const timeout = DevSimulateSSR ? window.setTimeout(updateWindowSize, 1000) : undefined;
|
|
58
|
+
window.addEventListener('resize', updateWindowSize);
|
|
59
|
+
return () => {
|
|
60
|
+
window.removeEventListener('resize', updateWindowSize);
|
|
61
|
+
clearTimeout(timeout);
|
|
62
|
+
};
|
|
50
63
|
}, []);
|
|
51
64
|
return windowSize;
|
|
52
65
|
}
|
|
@@ -21,11 +21,12 @@ const prismIncludeLanguages = PrismObject => {
|
|
|
21
21
|
if (_ExecutionEnvironment.default.canUseDOM) {
|
|
22
22
|
const {
|
|
23
23
|
themeConfig: {
|
|
24
|
-
prism
|
|
25
|
-
additionalLanguages = []
|
|
26
|
-
} = {}
|
|
24
|
+
prism = {}
|
|
27
25
|
}
|
|
28
26
|
} = _docusaurus.default;
|
|
27
|
+
const {
|
|
28
|
+
additionalLanguages = []
|
|
29
|
+
} = prism;
|
|
29
30
|
window.Prism = PrismObject;
|
|
30
31
|
additionalLanguages.forEach(lang => {
|
|
31
32
|
require(`prismjs/components/prism-${lang}`); // eslint-disable-line
|