@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
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
var _themeCommon = require("@docusaurus/theme-common");
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the MIT license found in the
|
|
16
|
-
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/
|
|
18
|
-
const DismissStorage = (0, _themeCommon.createStorageSlot)('docusaurus.announcement.dismiss');
|
|
19
|
-
const IdStorage = (0, _themeCommon.createStorageSlot)('docusaurus.announcement.id');
|
|
20
|
-
|
|
21
|
-
const useAnnouncementBar = () => {
|
|
22
|
-
const {
|
|
23
|
-
announcementBar
|
|
24
|
-
} = (0, _themeCommon.useThemeConfig)();
|
|
25
|
-
const [isClosed, setClosed] = (0, _react.useState)(true);
|
|
26
|
-
const handleClose = (0, _react.useCallback)(() => {
|
|
27
|
-
DismissStorage.set('true');
|
|
28
|
-
setClosed(true);
|
|
29
|
-
}, []);
|
|
30
|
-
(0, _react.useEffect)(() => {
|
|
31
|
-
if (!announcementBar) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const {
|
|
36
|
-
id
|
|
37
|
-
} = announcementBar;
|
|
38
|
-
let viewedId = IdStorage.get(); // retrocompatibility due to spelling mistake of default id
|
|
39
|
-
// see https://github.com/facebook/docusaurus/issues/3338
|
|
40
|
-
|
|
41
|
-
if (viewedId === 'annoucement-bar') {
|
|
42
|
-
viewedId = 'announcement-bar';
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const isNewAnnouncement = id !== viewedId;
|
|
46
|
-
IdStorage.set(id);
|
|
47
|
-
|
|
48
|
-
if (isNewAnnouncement) {
|
|
49
|
-
DismissStorage.set('false');
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (isNewAnnouncement || DismissStorage.get() === 'false') {
|
|
53
|
-
setClosed(false);
|
|
54
|
-
}
|
|
55
|
-
}, []);
|
|
56
|
-
return {
|
|
57
|
-
isAnnouncementBarClosed: isClosed,
|
|
58
|
-
closeAnnouncementBar: handleClose
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
var _default = useAnnouncementBar;
|
|
63
|
-
exports.default = _default;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
var _ExecutionEnvironment = _interopRequireDefault(require("@docusaurus/ExecutionEnvironment"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
16
|
-
*
|
|
17
|
-
* This source code is licensed under the MIT license found in the
|
|
18
|
-
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/
|
|
20
|
-
const getScrollPosition = () => ({
|
|
21
|
-
scrollX: _ExecutionEnvironment.default.canUseDOM ? window.pageXOffset : 0,
|
|
22
|
-
scrollY: _ExecutionEnvironment.default.canUseDOM ? window.pageYOffset : 0
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
const useScrollPosition = (effect, deps = []) => {
|
|
26
|
-
const scrollPosition = (0, _react.useRef)(getScrollPosition());
|
|
27
|
-
|
|
28
|
-
const handleScroll = () => {
|
|
29
|
-
const currentScrollPosition = getScrollPosition();
|
|
30
|
-
|
|
31
|
-
if (effect) {
|
|
32
|
-
effect(currentScrollPosition, scrollPosition.current);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
scrollPosition.current = currentScrollPosition;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
(0, _react.useEffect)(() => {
|
|
39
|
-
const opts = {
|
|
40
|
-
passive: true
|
|
41
|
-
};
|
|
42
|
-
handleScroll();
|
|
43
|
-
window.addEventListener('scroll', handleScroll, opts);
|
|
44
|
-
return () => window.removeEventListener('scroll', handleScroll, opts);
|
|
45
|
-
}, deps);
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
var _default = useScrollPosition;
|
|
49
|
-
exports.default = _default;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
12
|
-
*
|
|
13
|
-
* This source code is licensed under the MIT license found in the
|
|
14
|
-
* LICENSE file in the root directory of this source tree.
|
|
15
|
-
*/
|
|
16
|
-
function useTOCHighlight(linkClassName, linkActiveClassName, topOffset) {
|
|
17
|
-
const [lastActiveLink, setLastActiveLink] = (0, _react.useState)(undefined);
|
|
18
|
-
(0, _react.useEffect)(() => {
|
|
19
|
-
function setActiveLink() {
|
|
20
|
-
function getActiveHeaderAnchor() {
|
|
21
|
-
const headersAnchors = Array.from(document.getElementsByClassName('anchor'));
|
|
22
|
-
const firstAnchorUnderViewportTop = headersAnchors.find(anchor => {
|
|
23
|
-
const {
|
|
24
|
-
top
|
|
25
|
-
} = anchor.getBoundingClientRect();
|
|
26
|
-
return top >= topOffset;
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
if (firstAnchorUnderViewportTop) {
|
|
30
|
-
// If first anchor in viewport is under a certain threshold, we consider it's not the active anchor.
|
|
31
|
-
// In such case, the active anchor is the previous one (if it exists), that may be above the viewport
|
|
32
|
-
if (firstAnchorUnderViewportTop.getBoundingClientRect().top >= topOffset) {
|
|
33
|
-
const previousAnchor = headersAnchors[headersAnchors.indexOf(firstAnchorUnderViewportTop) - 1];
|
|
34
|
-
return previousAnchor !== null && previousAnchor !== void 0 ? previousAnchor : firstAnchorUnderViewportTop;
|
|
35
|
-
} // If the anchor is at the top of the viewport, we consider it's the first anchor
|
|
36
|
-
else {
|
|
37
|
-
return firstAnchorUnderViewportTop;
|
|
38
|
-
}
|
|
39
|
-
} // no anchor under viewport top? (ie we are at the bottom of the page)
|
|
40
|
-
else {
|
|
41
|
-
// highlight the last anchor found
|
|
42
|
-
return headersAnchors[headersAnchors.length - 1];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const activeHeaderAnchor = getActiveHeaderAnchor();
|
|
47
|
-
|
|
48
|
-
if (activeHeaderAnchor) {
|
|
49
|
-
let index = 0;
|
|
50
|
-
let itemHighlighted = false; // @ts-expect-error: Must be <a> tags.
|
|
51
|
-
|
|
52
|
-
const links = document.getElementsByClassName(linkClassName);
|
|
53
|
-
|
|
54
|
-
while (index < links.length && !itemHighlighted) {
|
|
55
|
-
const link = links[index];
|
|
56
|
-
const {
|
|
57
|
-
href
|
|
58
|
-
} = link;
|
|
59
|
-
const anchorValue = decodeURIComponent(href.substring(href.indexOf('#') + 1));
|
|
60
|
-
|
|
61
|
-
if (activeHeaderAnchor.id === anchorValue) {
|
|
62
|
-
if (lastActiveLink) {
|
|
63
|
-
lastActiveLink.classList.remove(linkActiveClassName);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
link.classList.add(linkActiveClassName);
|
|
67
|
-
setLastActiveLink(link);
|
|
68
|
-
itemHighlighted = true;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
index += 1;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
document.addEventListener('scroll', setActiveLink);
|
|
77
|
-
document.addEventListener('resize', setActiveLink);
|
|
78
|
-
setActiveLink();
|
|
79
|
-
return () => {
|
|
80
|
-
document.removeEventListener('scroll', setActiveLink);
|
|
81
|
-
document.removeEventListener('resize', setActiveLink);
|
|
82
|
-
};
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
var _default = useTOCHighlight;
|
|
87
|
-
exports.default = _default;
|
|
@@ -1,103 +0,0 @@
|
|
|
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
|
-
/**
|
|
9
|
-
* Styles for React Toggle
|
|
10
|
-
* copied over because we want to allow user to swizzle it and modify the css
|
|
11
|
-
* and also to make sure its compatible with our dark mode
|
|
12
|
-
* https://github.com/aaronshaf/react-toggle/blob/master/style.css
|
|
13
|
-
*/
|
|
14
|
-
.react-toggle {
|
|
15
|
-
touch-action: pan-x;
|
|
16
|
-
position: relative;
|
|
17
|
-
cursor: pointer;
|
|
18
|
-
user-select: none;
|
|
19
|
-
-webkit-tap-highlight-color: transparent;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.react-toggle-screenreader-only {
|
|
23
|
-
border: 0;
|
|
24
|
-
clip: rect(0 0 0 0);
|
|
25
|
-
height: 1px;
|
|
26
|
-
margin: -1px;
|
|
27
|
-
overflow: hidden;
|
|
28
|
-
position: absolute;
|
|
29
|
-
width: 1px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.react-toggle--disabled {
|
|
33
|
-
cursor: not-allowed;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.react-toggle-track {
|
|
37
|
-
width: 50px;
|
|
38
|
-
height: 24px;
|
|
39
|
-
border-radius: 30px;
|
|
40
|
-
background-color: #4d4d4d;
|
|
41
|
-
transition: all 0.2s ease;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.react-toggle-track-check {
|
|
45
|
-
position: absolute;
|
|
46
|
-
width: 14px;
|
|
47
|
-
height: 10px;
|
|
48
|
-
top: 0px;
|
|
49
|
-
bottom: 0px;
|
|
50
|
-
margin: auto 0;
|
|
51
|
-
left: 8px;
|
|
52
|
-
opacity: 0;
|
|
53
|
-
transition: opacity 0.25s ease;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
[data-theme='dark'] .react-toggle .react-toggle-track-check,
|
|
57
|
-
.react-toggle--checked .react-toggle-track-check {
|
|
58
|
-
opacity: 1;
|
|
59
|
-
transition: opacity 0.25s ease;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.react-toggle-track-x {
|
|
63
|
-
position: absolute;
|
|
64
|
-
width: 10px;
|
|
65
|
-
height: 10px;
|
|
66
|
-
top: 0px;
|
|
67
|
-
bottom: 0px;
|
|
68
|
-
margin: auto 0;
|
|
69
|
-
right: 10px;
|
|
70
|
-
opacity: 1;
|
|
71
|
-
transition: opacity 0.25s ease;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
[data-theme='dark'] .react-toggle .react-toggle-track-x,
|
|
75
|
-
.react-toggle--checked .react-toggle-track-x {
|
|
76
|
-
opacity: 0;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.react-toggle-thumb {
|
|
80
|
-
position: absolute;
|
|
81
|
-
top: 1px;
|
|
82
|
-
left: 1px;
|
|
83
|
-
width: 22px;
|
|
84
|
-
height: 22px;
|
|
85
|
-
border: 1px solid #4d4d4d;
|
|
86
|
-
border-radius: 50%;
|
|
87
|
-
background-color: #fafafa;
|
|
88
|
-
transition: all 0.25s ease;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
[data-theme='dark'] .react-toggle .react-toggle-thumb,
|
|
92
|
-
.react-toggle--checked .react-toggle-thumb {
|
|
93
|
-
left: 27px;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.react-toggle--focus .react-toggle-thumb,
|
|
97
|
-
.react-toggle:hover .react-toggle-thumb {
|
|
98
|
-
box-shadow: 0px 0px 2px 3px var(--ifm-color-primary);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb {
|
|
102
|
-
box-shadow: 0px 0px 5px 5px var(--ifm-color-primary);
|
|
103
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
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 {useState, useEffect, useCallback} from 'react';
|
|
8
|
-
import {useThemeConfig, createStorageSlot} from '@docusaurus/theme-common';
|
|
9
|
-
const DismissStorage = createStorageSlot('docusaurus.announcement.dismiss');
|
|
10
|
-
const IdStorage = createStorageSlot('docusaurus.announcement.id');
|
|
11
|
-
|
|
12
|
-
const useAnnouncementBar = () => {
|
|
13
|
-
const {announcementBar} = useThemeConfig();
|
|
14
|
-
const [isClosed, setClosed] = useState(true);
|
|
15
|
-
const handleClose = useCallback(() => {
|
|
16
|
-
DismissStorage.set('true');
|
|
17
|
-
setClosed(true);
|
|
18
|
-
}, []);
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
if (!announcementBar) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const {id} = announcementBar;
|
|
25
|
-
let viewedId = IdStorage.get(); // retrocompatibility due to spelling mistake of default id
|
|
26
|
-
// see https://github.com/facebook/docusaurus/issues/3338
|
|
27
|
-
|
|
28
|
-
if (viewedId === 'annoucement-bar') {
|
|
29
|
-
viewedId = 'announcement-bar';
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const isNewAnnouncement = id !== viewedId;
|
|
33
|
-
IdStorage.set(id);
|
|
34
|
-
|
|
35
|
-
if (isNewAnnouncement) {
|
|
36
|
-
DismissStorage.set('false');
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (isNewAnnouncement || DismissStorage.get() === 'false') {
|
|
40
|
-
setClosed(false);
|
|
41
|
-
}
|
|
42
|
-
}, []);
|
|
43
|
-
return {
|
|
44
|
-
isAnnouncementBarClosed: isClosed,
|
|
45
|
-
closeAnnouncementBar: handleClose,
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
export default useAnnouncementBar;
|
|
@@ -1,38 +0,0 @@
|
|
|
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 {useEffect, useRef} from 'react';
|
|
8
|
-
import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
|
|
9
|
-
|
|
10
|
-
const getScrollPosition = () => ({
|
|
11
|
-
scrollX: ExecutionEnvironment.canUseDOM ? window.pageXOffset : 0,
|
|
12
|
-
scrollY: ExecutionEnvironment.canUseDOM ? window.pageYOffset : 0,
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
const useScrollPosition = (effect, deps = []) => {
|
|
16
|
-
const scrollPosition = useRef(getScrollPosition());
|
|
17
|
-
|
|
18
|
-
const handleScroll = () => {
|
|
19
|
-
const currentScrollPosition = getScrollPosition();
|
|
20
|
-
|
|
21
|
-
if (effect) {
|
|
22
|
-
effect(currentScrollPosition, scrollPosition.current);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
scrollPosition.current = currentScrollPosition;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
useEffect(() => {
|
|
29
|
-
const opts = {
|
|
30
|
-
passive: true,
|
|
31
|
-
};
|
|
32
|
-
handleScroll();
|
|
33
|
-
window.addEventListener('scroll', handleScroll, opts);
|
|
34
|
-
return () => window.removeEventListener('scroll', handleScroll, opts);
|
|
35
|
-
}, deps);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export default useScrollPosition;
|
|
@@ -1,84 +0,0 @@
|
|
|
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 {useEffect, useState} from 'react';
|
|
8
|
-
|
|
9
|
-
function useTOCHighlight(linkClassName, linkActiveClassName, topOffset) {
|
|
10
|
-
const [lastActiveLink, setLastActiveLink] = useState(undefined);
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
function setActiveLink() {
|
|
13
|
-
function getActiveHeaderAnchor() {
|
|
14
|
-
const headersAnchors = Array.from(
|
|
15
|
-
document.getElementsByClassName('anchor'),
|
|
16
|
-
);
|
|
17
|
-
const firstAnchorUnderViewportTop = headersAnchors.find((anchor) => {
|
|
18
|
-
const {top} = anchor.getBoundingClientRect();
|
|
19
|
-
return top >= topOffset;
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
if (firstAnchorUnderViewportTop) {
|
|
23
|
-
// If first anchor in viewport is under a certain threshold, we consider it's not the active anchor.
|
|
24
|
-
// In such case, the active anchor is the previous one (if it exists), that may be above the viewport
|
|
25
|
-
if (
|
|
26
|
-
firstAnchorUnderViewportTop.getBoundingClientRect().top >= topOffset
|
|
27
|
-
) {
|
|
28
|
-
const previousAnchor =
|
|
29
|
-
headersAnchors[
|
|
30
|
-
headersAnchors.indexOf(firstAnchorUnderViewportTop) - 1
|
|
31
|
-
];
|
|
32
|
-
return previousAnchor ?? firstAnchorUnderViewportTop;
|
|
33
|
-
} // If the anchor is at the top of the viewport, we consider it's the first anchor
|
|
34
|
-
else {
|
|
35
|
-
return firstAnchorUnderViewportTop;
|
|
36
|
-
}
|
|
37
|
-
} // no anchor under viewport top? (ie we are at the bottom of the page)
|
|
38
|
-
else {
|
|
39
|
-
// highlight the last anchor found
|
|
40
|
-
return headersAnchors[headersAnchors.length - 1];
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const activeHeaderAnchor = getActiveHeaderAnchor();
|
|
45
|
-
|
|
46
|
-
if (activeHeaderAnchor) {
|
|
47
|
-
let index = 0;
|
|
48
|
-
let itemHighlighted = false; // @ts-expect-error: Must be <a> tags.
|
|
49
|
-
|
|
50
|
-
const links = document.getElementsByClassName(linkClassName);
|
|
51
|
-
|
|
52
|
-
while (index < links.length && !itemHighlighted) {
|
|
53
|
-
const link = links[index];
|
|
54
|
-
const {href} = link;
|
|
55
|
-
const anchorValue = decodeURIComponent(
|
|
56
|
-
href.substring(href.indexOf('#') + 1),
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
if (activeHeaderAnchor.id === anchorValue) {
|
|
60
|
-
if (lastActiveLink) {
|
|
61
|
-
lastActiveLink.classList.remove(linkActiveClassName);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
link.classList.add(linkActiveClassName);
|
|
65
|
-
setLastActiveLink(link);
|
|
66
|
-
itemHighlighted = true;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
index += 1;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
document.addEventListener('scroll', setActiveLink);
|
|
75
|
-
document.addEventListener('resize', setActiveLink);
|
|
76
|
-
setActiveLink();
|
|
77
|
-
return () => {
|
|
78
|
-
document.removeEventListener('scroll', setActiveLink);
|
|
79
|
-
document.removeEventListener('resize', setActiveLink);
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export default useTOCHighlight;
|
|
@@ -1,103 +0,0 @@
|
|
|
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
|
-
/**
|
|
9
|
-
* Styles for React Toggle
|
|
10
|
-
* copied over because we want to allow user to swizzle it and modify the css
|
|
11
|
-
* and also to make sure its compatible with our dark mode
|
|
12
|
-
* https://github.com/aaronshaf/react-toggle/blob/master/style.css
|
|
13
|
-
*/
|
|
14
|
-
.react-toggle {
|
|
15
|
-
touch-action: pan-x;
|
|
16
|
-
position: relative;
|
|
17
|
-
cursor: pointer;
|
|
18
|
-
user-select: none;
|
|
19
|
-
-webkit-tap-highlight-color: transparent;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.react-toggle-screenreader-only {
|
|
23
|
-
border: 0;
|
|
24
|
-
clip: rect(0 0 0 0);
|
|
25
|
-
height: 1px;
|
|
26
|
-
margin: -1px;
|
|
27
|
-
overflow: hidden;
|
|
28
|
-
position: absolute;
|
|
29
|
-
width: 1px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.react-toggle--disabled {
|
|
33
|
-
cursor: not-allowed;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.react-toggle-track {
|
|
37
|
-
width: 50px;
|
|
38
|
-
height: 24px;
|
|
39
|
-
border-radius: 30px;
|
|
40
|
-
background-color: #4d4d4d;
|
|
41
|
-
transition: all 0.2s ease;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.react-toggle-track-check {
|
|
45
|
-
position: absolute;
|
|
46
|
-
width: 14px;
|
|
47
|
-
height: 10px;
|
|
48
|
-
top: 0px;
|
|
49
|
-
bottom: 0px;
|
|
50
|
-
margin: auto 0;
|
|
51
|
-
left: 8px;
|
|
52
|
-
opacity: 0;
|
|
53
|
-
transition: opacity 0.25s ease;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
[data-theme='dark'] .react-toggle .react-toggle-track-check,
|
|
57
|
-
.react-toggle--checked .react-toggle-track-check {
|
|
58
|
-
opacity: 1;
|
|
59
|
-
transition: opacity 0.25s ease;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.react-toggle-track-x {
|
|
63
|
-
position: absolute;
|
|
64
|
-
width: 10px;
|
|
65
|
-
height: 10px;
|
|
66
|
-
top: 0px;
|
|
67
|
-
bottom: 0px;
|
|
68
|
-
margin: auto 0;
|
|
69
|
-
right: 10px;
|
|
70
|
-
opacity: 1;
|
|
71
|
-
transition: opacity 0.25s ease;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
[data-theme='dark'] .react-toggle .react-toggle-track-x,
|
|
75
|
-
.react-toggle--checked .react-toggle-track-x {
|
|
76
|
-
opacity: 0;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.react-toggle-thumb {
|
|
80
|
-
position: absolute;
|
|
81
|
-
top: 1px;
|
|
82
|
-
left: 1px;
|
|
83
|
-
width: 22px;
|
|
84
|
-
height: 22px;
|
|
85
|
-
border: 1px solid #4d4d4d;
|
|
86
|
-
border-radius: 50%;
|
|
87
|
-
background-color: #fafafa;
|
|
88
|
-
transition: all 0.25s ease;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
[data-theme='dark'] .react-toggle .react-toggle-thumb,
|
|
92
|
-
.react-toggle--checked .react-toggle-thumb {
|
|
93
|
-
left: 27px;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.react-toggle--focus .react-toggle-thumb,
|
|
97
|
-
.react-toggle:hover .react-toggle-thumb {
|
|
98
|
-
box-shadow: 0px 0px 2px 3px var(--ifm-color-primary);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb {
|
|
102
|
-
box-shadow: 0px 0px 5px 5px var(--ifm-color-primary);
|
|
103
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
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 {useState, useEffect, useCallback} from 'react';
|
|
9
|
-
import {useThemeConfig, createStorageSlot} from '@docusaurus/theme-common';
|
|
10
|
-
import type {useAnnouncementBarReturns} from '@theme/hooks/useAnnouncementBar';
|
|
11
|
-
|
|
12
|
-
const DismissStorage = createStorageSlot('docusaurus.announcement.dismiss');
|
|
13
|
-
const IdStorage = createStorageSlot('docusaurus.announcement.id');
|
|
14
|
-
|
|
15
|
-
const useAnnouncementBar = (): useAnnouncementBarReturns => {
|
|
16
|
-
const {announcementBar} = useThemeConfig();
|
|
17
|
-
|
|
18
|
-
const [isClosed, setClosed] = useState(true);
|
|
19
|
-
|
|
20
|
-
const handleClose = useCallback(() => {
|
|
21
|
-
DismissStorage.set('true');
|
|
22
|
-
setClosed(true);
|
|
23
|
-
}, []);
|
|
24
|
-
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (!announcementBar) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
const {id} = announcementBar;
|
|
30
|
-
|
|
31
|
-
let viewedId = IdStorage.get();
|
|
32
|
-
|
|
33
|
-
// retrocompatibility due to spelling mistake of default id
|
|
34
|
-
// see https://github.com/facebook/docusaurus/issues/3338
|
|
35
|
-
if (viewedId === 'annoucement-bar') {
|
|
36
|
-
viewedId = 'announcement-bar';
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const isNewAnnouncement = id !== viewedId;
|
|
40
|
-
|
|
41
|
-
IdStorage.set(id);
|
|
42
|
-
|
|
43
|
-
if (isNewAnnouncement) {
|
|
44
|
-
DismissStorage.set('false');
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
if (isNewAnnouncement || DismissStorage.get() === 'false') {
|
|
48
|
-
setClosed(false);
|
|
49
|
-
}
|
|
50
|
-
}, []);
|
|
51
|
-
|
|
52
|
-
return {
|
|
53
|
-
isAnnouncementBarClosed: isClosed,
|
|
54
|
-
closeAnnouncementBar: handleClose,
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export default useAnnouncementBar;
|
|
@@ -1,45 +0,0 @@
|
|
|
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 {useEffect, useRef} from 'react';
|
|
9
|
-
import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
|
|
10
|
-
import type {ScrollPosition} from '@theme/hooks/useScrollPosition';
|
|
11
|
-
|
|
12
|
-
const getScrollPosition = (): ScrollPosition => ({
|
|
13
|
-
scrollX: ExecutionEnvironment.canUseDOM ? window.pageXOffset : 0,
|
|
14
|
-
scrollY: ExecutionEnvironment.canUseDOM ? window.pageYOffset : 0,
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
const useScrollPosition = (
|
|
18
|
-
effect?: (position: ScrollPosition, lastPosition: ScrollPosition) => void,
|
|
19
|
-
deps = [],
|
|
20
|
-
): void => {
|
|
21
|
-
const scrollPosition = useRef(getScrollPosition());
|
|
22
|
-
|
|
23
|
-
const handleScroll = () => {
|
|
24
|
-
const currentScrollPosition = getScrollPosition();
|
|
25
|
-
|
|
26
|
-
if (effect) {
|
|
27
|
-
effect(currentScrollPosition, scrollPosition.current);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
scrollPosition.current = currentScrollPosition;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
const opts: AddEventListenerOptions & EventListenerOptions = {
|
|
35
|
-
passive: true,
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
handleScroll();
|
|
39
|
-
window.addEventListener('scroll', handleScroll, opts);
|
|
40
|
-
|
|
41
|
-
return () => window.removeEventListener('scroll', handleScroll, opts);
|
|
42
|
-
}, deps);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export default useScrollPosition;
|