@docusaurus/theme-common 2.0.0-beta.16 → 2.0.0-beta.19
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/Details.d.ts +14 -0
- package/lib/components/Collapsible/index.d.ts +32 -4
- package/lib/components/Collapsible/index.d.ts.map +1 -1
- package/lib/components/Collapsible/index.js +18 -10
- package/lib/components/Collapsible/index.js.map +1 -1
- package/lib/components/Details/index.d.ts +6 -1
- package/lib/components/Details/index.d.ts.map +1 -1
- package/lib/components/Details/index.js +11 -6
- package/lib/components/Details/index.js.map +1 -1
- package/lib/components/Details/styles.module.css +4 -0
- package/lib/{utils/announcementBarUtils.d.ts → contexts/announcementBar.d.ts} +7 -3
- package/lib/contexts/announcementBar.d.ts.map +1 -0
- package/lib/{utils/announcementBarUtils.js → contexts/announcementBar.js} +15 -14
- package/lib/contexts/announcementBar.js.map +1 -0
- package/lib/contexts/colorMode.d.ts +27 -0
- package/lib/contexts/colorMode.d.ts.map +1 -0
- package/lib/contexts/colorMode.js +132 -0
- package/lib/contexts/colorMode.js.map +1 -0
- package/lib/contexts/docSidebarItemsExpandedState.d.ts +31 -0
- package/lib/contexts/docSidebarItemsExpandedState.d.ts.map +1 -0
- package/lib/{utils → contexts}/docSidebarItemsExpandedState.js +10 -4
- package/lib/contexts/docSidebarItemsExpandedState.js.map +1 -0
- package/lib/contexts/docsPreferredVersion.d.ts +31 -0
- package/lib/contexts/docsPreferredVersion.d.ts.map +1 -0
- package/lib/contexts/docsPreferredVersion.js +128 -0
- package/lib/contexts/docsPreferredVersion.js.map +1 -0
- package/lib/contexts/docsSidebar.d.ts +26 -0
- package/lib/contexts/docsSidebar.d.ts.map +1 -0
- package/lib/contexts/docsSidebar.js +30 -0
- package/lib/contexts/docsSidebar.js.map +1 -0
- package/lib/contexts/docsVersion.d.ts +20 -0
- package/lib/contexts/docsVersion.d.ts.map +1 -0
- package/lib/contexts/docsVersion.js +26 -0
- package/lib/contexts/docsVersion.js.map +1 -0
- package/lib/contexts/navbarMobileSidebar.d.ts +31 -0
- package/lib/contexts/navbarMobileSidebar.d.ts.map +1 -0
- package/lib/contexts/navbarMobileSidebar.js +56 -0
- package/lib/contexts/navbarMobileSidebar.js.map +1 -0
- package/lib/contexts/navbarSecondaryMenu/content.d.ts +37 -0
- package/lib/contexts/navbarSecondaryMenu/content.d.ts.map +1 -0
- package/lib/contexts/navbarSecondaryMenu/content.js +56 -0
- package/lib/contexts/navbarSecondaryMenu/content.js.map +1 -0
- package/lib/contexts/navbarSecondaryMenu/display.d.ts +24 -0
- package/lib/contexts/navbarSecondaryMenu/display.d.ts.map +1 -0
- package/lib/contexts/navbarSecondaryMenu/display.js +62 -0
- package/lib/contexts/navbarSecondaryMenu/display.js.map +1 -0
- package/lib/{utils/tabGroupChoiceUtils.d.ts → contexts/tabGroupChoice.d.ts} +5 -3
- package/lib/contexts/tabGroupChoice.d.ts.map +1 -0
- package/lib/{utils/tabGroupChoiceUtils.js → contexts/tabGroupChoice.js} +15 -20
- package/lib/contexts/tabGroupChoice.js.map +1 -0
- package/lib/hooks/useBackToTopButton.d.ts +27 -0
- package/lib/hooks/useBackToTopButton.d.ts.map +1 -0
- package/lib/hooks/useBackToTopButton.js +50 -0
- package/lib/hooks/useBackToTopButton.js.map +1 -0
- package/lib/hooks/useCodeWordWrap.d.ts +14 -0
- package/lib/hooks/useCodeWordWrap.d.ts.map +1 -0
- package/lib/hooks/useCodeWordWrap.js +41 -0
- package/lib/hooks/useCodeWordWrap.js.map +1 -0
- package/lib/hooks/useHideableNavbar.d.ts +7 -3
- package/lib/hooks/useHideableNavbar.d.ts.map +1 -1
- package/lib/hooks/useHideableNavbar.js +10 -9
- package/lib/hooks/useHideableNavbar.js.map +1 -1
- package/lib/hooks/useKeyboardNavigation.d.ts +11 -1
- package/lib/hooks/useKeyboardNavigation.d.ts.map +1 -1
- package/lib/hooks/useKeyboardNavigation.js +11 -3
- package/lib/hooks/useKeyboardNavigation.js.map +1 -1
- package/lib/hooks/useLockBodyScroll.d.ts +5 -1
- package/lib/hooks/useLockBodyScroll.d.ts.map +1 -1
- package/lib/hooks/useLockBodyScroll.js +5 -1
- package/lib/hooks/useLockBodyScroll.js.map +1 -1
- package/lib/hooks/usePrismTheme.d.ts +6 -2
- package/lib/hooks/usePrismTheme.d.ts.map +1 -1
- package/lib/hooks/usePrismTheme.js +9 -6
- package/lib/hooks/usePrismTheme.js.map +1 -1
- package/lib/hooks/useSearchPage.d.ts +15 -4
- package/lib/hooks/useSearchPage.d.ts.map +1 -1
- package/lib/hooks/useSearchPage.js +4 -4
- package/lib/hooks/useSearchPage.js.map +1 -1
- package/lib/hooks/useSkipToContent.d.ts +25 -0
- package/lib/hooks/useSkipToContent.d.ts.map +1 -0
- package/lib/hooks/useSkipToContent.js +35 -0
- package/lib/hooks/useSkipToContent.js.map +1 -0
- package/lib/hooks/useTOCHighlight.d.ts +25 -0
- package/lib/hooks/useTOCHighlight.d.ts.map +1 -0
- package/lib/{utils → hooks}/useTOCHighlight.js +18 -16
- package/lib/hooks/useTOCHighlight.js.map +1 -0
- package/lib/hooks/useWindowSize.d.ts +14 -1
- package/lib/hooks/useWindowSize.d.ts.map +1 -1
- package/lib/hooks/useWindowSize.js +14 -11
- package/lib/hooks/useWindowSize.js.map +1 -1
- package/lib/index.d.ts +31 -32
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +31 -26
- package/lib/index.js.map +1 -1
- package/lib/utils/ThemeClassNames.d.ts +7 -0
- package/lib/utils/ThemeClassNames.d.ts.map +1 -1
- package/lib/utils/ThemeClassNames.js +7 -4
- package/lib/utils/ThemeClassNames.js.map +1 -1
- package/lib/utils/codeBlockUtils.d.ts +57 -4
- package/lib/utils/codeBlockUtils.d.ts.map +1 -1
- package/lib/utils/codeBlockUtils.js +111 -80
- package/lib/utils/codeBlockUtils.js.map +1 -1
- package/lib/utils/docsUtils.d.ts +83 -18
- package/lib/utils/docsUtils.d.ts.map +1 -1
- package/lib/utils/docsUtils.js +143 -62
- package/lib/utils/docsUtils.js.map +1 -1
- package/lib/utils/footerUtils.d.ts +13 -0
- package/lib/utils/footerUtils.d.ts.map +1 -0
- package/lib/utils/footerUtils.js +14 -0
- package/lib/utils/footerUtils.js.map +1 -0
- package/lib/utils/generalUtils.d.ts +4 -1
- package/lib/utils/generalUtils.d.ts.map +1 -1
- package/lib/utils/generalUtils.js +6 -3
- package/lib/utils/generalUtils.js.map +1 -1
- package/lib/utils/historyUtils.d.ts +1 -7
- package/lib/utils/historyUtils.d.ts.map +1 -1
- package/lib/utils/historyUtils.js +10 -13
- package/lib/utils/historyUtils.js.map +1 -1
- package/lib/utils/jsUtils.d.ts +1 -1
- package/lib/utils/jsUtils.js +1 -1
- package/lib/utils/metadataUtils.d.ts +38 -0
- package/lib/utils/metadataUtils.d.ts.map +1 -0
- package/lib/utils/metadataUtils.js +61 -0
- package/lib/utils/metadataUtils.js.map +1 -0
- package/lib/utils/navbarUtils.d.ts +21 -0
- package/lib/utils/navbarUtils.d.ts.map +1 -0
- package/lib/utils/navbarUtils.js +32 -0
- package/lib/utils/navbarUtils.js.map +1 -0
- package/lib/utils/reactUtils.d.ts +21 -7
- package/lib/utils/reactUtils.d.ts.map +1 -1
- package/lib/utils/reactUtils.js +34 -6
- package/lib/utils/reactUtils.js.map +1 -1
- package/lib/utils/regexpUtils.d.ts +2 -1
- package/lib/utils/regexpUtils.d.ts.map +1 -1
- package/lib/utils/regexpUtils.js +2 -1
- package/lib/utils/regexpUtils.js.map +1 -1
- package/lib/utils/routesUtils.d.ts +19 -4
- package/lib/utils/routesUtils.d.ts.map +1 -1
- package/lib/utils/routesUtils.js +40 -19
- package/lib/utils/routesUtils.js.map +1 -1
- package/lib/utils/scrollUtils.d.ts +55 -25
- package/lib/utils/scrollUtils.d.ts.map +1 -1
- package/lib/utils/scrollUtils.js +85 -21
- package/lib/utils/scrollUtils.js.map +1 -1
- package/lib/utils/searchUtils.d.ts +12 -0
- package/lib/utils/searchUtils.d.ts.map +1 -1
- package/lib/utils/searchUtils.js +36 -0
- package/lib/utils/searchUtils.js.map +1 -1
- package/lib/utils/storageUtils.d.ts +12 -9
- package/lib/utils/storageUtils.d.ts.map +1 -1
- package/lib/utils/storageUtils.js +21 -13
- package/lib/utils/storageUtils.js.map +1 -1
- package/lib/utils/tagsUtils.d.ts +7 -8
- package/lib/utils/tagsUtils.d.ts.map +1 -1
- package/lib/utils/tagsUtils.js +8 -6
- package/lib/utils/tagsUtils.js.map +1 -1
- package/lib/utils/tocUtils.d.ts +17 -1
- package/lib/utils/tocUtils.d.ts.map +1 -1
- package/lib/utils/tocUtils.js +20 -9
- package/lib/utils/tocUtils.js.map +1 -1
- package/lib/utils/useAlternatePageUtils.d.ts +20 -1
- package/lib/utils/useAlternatePageUtils.d.ts.map +1 -1
- package/lib/utils/useAlternatePageUtils.js +6 -3
- package/lib/utils/useAlternatePageUtils.js.map +1 -1
- package/lib/utils/useLocalPathname.d.ts +5 -0
- package/lib/utils/useLocalPathname.d.ts.map +1 -1
- package/lib/utils/useLocalPathname.js +6 -4
- package/lib/utils/useLocalPathname.js.map +1 -1
- package/lib/utils/useLocationChange.d.ts +7 -5
- package/lib/utils/useLocationChange.d.ts.map +1 -1
- package/lib/utils/useLocationChange.js +6 -2
- package/lib/utils/useLocationChange.js.map +1 -1
- package/lib/utils/usePluralForm.d.ts +11 -0
- package/lib/utils/usePluralForm.d.ts.map +1 -1
- package/lib/utils/usePluralForm.js +19 -24
- package/lib/utils/usePluralForm.js.map +1 -1
- package/lib/utils/useThemeConfig.d.ts +28 -22
- package/lib/utils/useThemeConfig.d.ts.map +1 -1
- package/lib/utils/useThemeConfig.js +3 -0
- package/lib/utils/useThemeConfig.js.map +1 -1
- package/package.json +18 -11
- package/src/components/Collapsible/index.tsx +42 -24
- package/src/components/Details/index.tsx +15 -8
- package/src/components/Details/styles.module.css +4 -0
- package/src/{utils/announcementBarUtils.tsx → contexts/announcementBar.tsx} +20 -22
- package/src/contexts/colorMode.tsx +199 -0
- package/src/contexts/docSidebarItemsExpandedState.tsx +55 -0
- package/src/contexts/docsPreferredVersion.tsx +253 -0
- package/src/contexts/docsSidebar.tsx +50 -0
- package/src/contexts/docsVersion.tsx +36 -0
- package/src/contexts/navbarMobileSidebar.tsx +99 -0
- package/src/contexts/navbarSecondaryMenu/content.tsx +110 -0
- package/src/contexts/navbarSecondaryMenu/display.tsx +102 -0
- package/src/{utils/tabGroupChoiceUtils.tsx → contexts/tabGroupChoice.tsx} +28 -33
- package/src/hooks/useBackToTopButton.ts +73 -0
- package/src/hooks/useCodeWordWrap.ts +56 -0
- package/src/hooks/useHideableNavbar.ts +12 -14
- package/src/hooks/useKeyboardNavigation.ts +11 -3
- package/src/hooks/useLockBodyScroll.ts +5 -2
- package/src/hooks/usePrismTheme.ts +10 -6
- package/src/hooks/useSearchPage.ts +18 -5
- package/src/hooks/useSkipToContent.ts +58 -0
- package/src/{utils → hooks}/useTOCHighlight.ts +24 -15
- package/src/hooks/useWindowSize.ts +14 -12
- package/src/index.ts +77 -57
- package/src/utils/ThemeClassNames.ts +10 -6
- package/src/utils/codeBlockUtils.ts +178 -92
- package/src/utils/docsUtils.tsx +205 -101
- package/src/utils/footerUtils.ts +18 -0
- package/src/utils/generalUtils.ts +6 -3
- package/src/utils/historyUtils.ts +11 -17
- package/src/utils/jsUtils.ts +1 -1
- package/src/utils/metadataUtils.tsx +115 -0
- package/src/utils/navbarUtils.tsx +45 -0
- package/src/utils/reactUtils.tsx +40 -7
- package/src/utils/regexpUtils.ts +2 -1
- package/src/utils/routesUtils.ts +58 -22
- package/src/utils/scrollUtils.tsx +120 -49
- package/src/utils/searchUtils.ts +51 -0
- package/src/utils/storageUtils.ts +23 -15
- package/src/utils/tagsUtils.ts +12 -10
- package/src/utils/tocUtils.ts +22 -11
- package/src/utils/useAlternatePageUtils.ts +17 -5
- package/src/utils/useLocalPathname.ts +6 -4
- package/src/utils/useLocationChange.ts +12 -10
- package/src/utils/usePluralForm.ts +27 -24
- package/src/utils/useThemeConfig.ts +23 -22
- package/yarn-error.log +20199 -0
- package/lib/utils/announcementBarUtils.d.ts.map +0 -1
- package/lib/utils/announcementBarUtils.js.map +0 -1
- package/lib/utils/colorModeUtils.d.ts +0 -18
- package/lib/utils/colorModeUtils.d.ts.map +0 -1
- package/lib/utils/colorModeUtils.js +0 -106
- package/lib/utils/colorModeUtils.js.map +0 -1
- package/lib/utils/docSidebarItemsExpandedState.d.ts +0 -17
- package/lib/utils/docSidebarItemsExpandedState.d.ts.map +0 -1
- package/lib/utils/docSidebarItemsExpandedState.js.map +0 -1
- package/lib/utils/docsPreferredVersion/DocsPreferredVersionProvider.d.ts +0 -22
- package/lib/utils/docsPreferredVersion/DocsPreferredVersionProvider.d.ts.map +0 -1
- package/lib/utils/docsPreferredVersion/DocsPreferredVersionProvider.js +0 -91
- package/lib/utils/docsPreferredVersion/DocsPreferredVersionProvider.js.map +0 -1
- package/lib/utils/docsPreferredVersion/DocsPreferredVersionStorage.d.ts +0 -14
- package/lib/utils/docsPreferredVersion/DocsPreferredVersionStorage.d.ts.map +0 -1
- package/lib/utils/docsPreferredVersion/DocsPreferredVersionStorage.js +0 -19
- package/lib/utils/docsPreferredVersion/DocsPreferredVersionStorage.js.map +0 -1
- package/lib/utils/docsPreferredVersion/useDocsPreferredVersion.d.ts +0 -14
- package/lib/utils/docsPreferredVersion/useDocsPreferredVersion.d.ts.map +0 -1
- package/lib/utils/docsPreferredVersion/useDocsPreferredVersion.js +0 -41
- package/lib/utils/docsPreferredVersion/useDocsPreferredVersion.js.map +0 -1
- package/lib/utils/mobileSecondaryMenu.d.ts +0 -21
- package/lib/utils/mobileSecondaryMenu.d.ts.map +0 -1
- package/lib/utils/mobileSecondaryMenu.js +0 -50
- package/lib/utils/mobileSecondaryMenu.js.map +0 -1
- package/lib/utils/pathUtils.d.ts +0 -8
- package/lib/utils/pathUtils.d.ts.map +0 -1
- package/lib/utils/pathUtils.js +0 -17
- package/lib/utils/pathUtils.js.map +0 -1
- package/lib/utils/tabGroupChoiceUtils.d.ts.map +0 -1
- package/lib/utils/tabGroupChoiceUtils.js.map +0 -1
- package/lib/utils/useContextualSearchFilters.d.ts +0 -12
- package/lib/utils/useContextualSearchFilters.d.ts.map +0 -1
- package/lib/utils/useContextualSearchFilters.js +0 -37
- package/lib/utils/useContextualSearchFilters.js.map +0 -1
- package/lib/utils/usePrevious.d.ts +0 -8
- package/lib/utils/usePrevious.d.ts.map +0 -1
- package/lib/utils/usePrevious.js +0 -16
- package/lib/utils/usePrevious.js.map +0 -1
- package/lib/utils/useTOCHighlight.d.ts +0 -14
- package/lib/utils/useTOCHighlight.d.ts.map +0 -1
- package/lib/utils/useTOCHighlight.js.map +0 -1
- package/src/utils/colorModeUtils.tsx +0 -156
- package/src/utils/docSidebarItemsExpandedState.tsx +0 -41
- package/src/utils/docsPreferredVersion/DocsPreferredVersionProvider.tsx +0 -167
- package/src/utils/docsPreferredVersion/DocsPreferredVersionStorage.ts +0 -33
- package/src/utils/docsPreferredVersion/useDocsPreferredVersion.ts +0 -70
- package/src/utils/mobileSecondaryMenu.tsx +0 -115
- package/src/utils/pathUtils.ts +0 -19
- package/src/utils/useContextualSearchFilters.ts +0 -53
- package/src/utils/usePrevious.ts +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePluralForm.js","sourceRoot":"","sources":["../../src/utils/usePluralForm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AAEpE,6DAA6D;AAC7D,mEAAmE;AACnE,qEAAqE;AACrE,MAAM,kBAAkB,GAA0B;IAChD,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;CACR,CAAC;AACF,SAAS,eAAe,CACtB,WAAkC;IAElC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAQD,4CAA4C;AAC5C,MAAM,kBAAkB,GAAsB;IAC5C,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,eAAe,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;CACnD,CAAC;AAEF,SAAS,uBAAuB,CAAC,MAAc;IAC7C,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO;QACL,MAAM;QACN,WAAW,EAAE,eAAe,CAC1B,WAAW,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAC/C;QACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,oBAAoB;IAC3B,MAAM,EACJ,IAAI,EAAE,EAAC,aAAa,EAAC,GACtB,GAAG,oBAAoB,EAAE,CAAC;IAC3B,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,
|
|
1
|
+
{"version":3,"file":"usePluralForm.js","sourceRoot":"","sources":["../../src/utils/usePluralForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,17 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import type { PrismTheme } from 'prism-react-renderer';
|
|
8
|
-
import type { CSSProperties } from 'react';
|
|
9
8
|
import type { DeepPartial } from 'utility-types';
|
|
9
|
+
import type { MagicCommentConfig } from './codeBlockUtils';
|
|
10
10
|
export declare type DocsVersionPersistence = 'localStorage' | 'none';
|
|
11
11
|
export declare type NavbarItem = {
|
|
12
12
|
type?: string | undefined;
|
|
13
13
|
items?: NavbarItem[];
|
|
14
14
|
label?: string;
|
|
15
15
|
position?: 'left' | 'right';
|
|
16
|
-
} &
|
|
16
|
+
} & {
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
};
|
|
17
19
|
export declare type NavbarLogo = {
|
|
18
20
|
src: string;
|
|
19
21
|
srcDark?: string;
|
|
@@ -34,12 +36,6 @@ export declare type ColorModeConfig = {
|
|
|
34
36
|
defaultMode: 'light' | 'dark';
|
|
35
37
|
disableSwitch: boolean;
|
|
36
38
|
respectPrefersColorScheme: boolean;
|
|
37
|
-
switchConfig: {
|
|
38
|
-
darkIcon: string;
|
|
39
|
-
darkIconStyle: CSSProperties;
|
|
40
|
-
lightIcon: string;
|
|
41
|
-
lightIconStyle: CSSProperties;
|
|
42
|
-
};
|
|
43
39
|
};
|
|
44
40
|
export declare type AnnouncementBarConfig = {
|
|
45
41
|
id: string;
|
|
@@ -49,10 +45,11 @@ export declare type AnnouncementBarConfig = {
|
|
|
49
45
|
isCloseable: boolean;
|
|
50
46
|
};
|
|
51
47
|
export declare type PrismConfig = {
|
|
52
|
-
theme
|
|
48
|
+
theme: PrismTheme;
|
|
53
49
|
darkTheme?: PrismTheme;
|
|
54
50
|
defaultLanguage?: string;
|
|
55
|
-
additionalLanguages
|
|
51
|
+
additionalLanguages: string[];
|
|
52
|
+
magicComments: MagicCommentConfig[];
|
|
56
53
|
};
|
|
57
54
|
export declare type FooterLinkItem = {
|
|
58
55
|
label?: string;
|
|
@@ -60,17 +57,20 @@ export declare type FooterLinkItem = {
|
|
|
60
57
|
href?: string;
|
|
61
58
|
html?: string;
|
|
62
59
|
prependBaseUrlToHref?: string;
|
|
60
|
+
} & {
|
|
61
|
+
[key: string]: unknown;
|
|
62
|
+
};
|
|
63
|
+
export declare type FooterLogo = {
|
|
64
|
+
alt?: string;
|
|
65
|
+
src: string;
|
|
66
|
+
srcDark?: string;
|
|
67
|
+
width?: string | number;
|
|
68
|
+
height?: string | number;
|
|
69
|
+
href?: string;
|
|
63
70
|
};
|
|
64
71
|
export declare type FooterBase = {
|
|
65
72
|
style: 'light' | 'dark';
|
|
66
|
-
logo?:
|
|
67
|
-
alt?: string;
|
|
68
|
-
src?: string;
|
|
69
|
-
srcDark?: string;
|
|
70
|
-
width?: string | number;
|
|
71
|
-
height?: string | number;
|
|
72
|
-
href?: string;
|
|
73
|
-
};
|
|
73
|
+
logo?: FooterLogo;
|
|
74
74
|
copyright?: string;
|
|
75
75
|
};
|
|
76
76
|
export declare type MultiColumnFooter = FooterBase & {
|
|
@@ -90,19 +90,25 @@ export declare type TableOfContents = {
|
|
|
90
90
|
export declare type ThemeConfig = {
|
|
91
91
|
docs: {
|
|
92
92
|
versionPersistence: DocsVersionPersistence;
|
|
93
|
+
sidebar: {
|
|
94
|
+
hideable: boolean;
|
|
95
|
+
autoCollapseCategories: boolean;
|
|
96
|
+
};
|
|
93
97
|
};
|
|
94
98
|
navbar: Navbar;
|
|
95
99
|
colorMode: ColorModeConfig;
|
|
96
100
|
announcementBar?: AnnouncementBarConfig;
|
|
97
101
|
prism: PrismConfig;
|
|
98
102
|
footer?: Footer;
|
|
99
|
-
hideableSidebar: boolean;
|
|
100
|
-
autoCollapseSidebarCategories: boolean;
|
|
101
103
|
image?: string;
|
|
102
|
-
metadata: Array<
|
|
103
|
-
|
|
104
|
+
metadata: Array<{
|
|
105
|
+
[key: string]: string;
|
|
106
|
+
}>;
|
|
104
107
|
tableOfContents: TableOfContents;
|
|
105
108
|
};
|
|
106
109
|
export declare type UserThemeConfig = DeepPartial<ThemeConfig>;
|
|
110
|
+
/**
|
|
111
|
+
* A convenient/more semantic way to get theme config from context.
|
|
112
|
+
*/
|
|
107
113
|
export declare function useThemeConfig(): ThemeConfig;
|
|
108
114
|
//# sourceMappingURL=useThemeConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThemeConfig.d.ts","sourceRoot":"","sources":["../../src/utils/useThemeConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"useThemeConfig.d.ts","sourceRoot":"","sources":["../../src/utils/useThemeConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEzD,oBAAY,sBAAsB,GAAG,cAAc,GAAG,MAAM,CAAC;AAG7D,oBAAY,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC;AAE7B,oBAAY,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAGF,oBAAY,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,kBAAkB,EAAE,CAAC;CACrC,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC;AAE7B,oBAAY,UAAU,GAAG;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,iBAAiB,GAAG,UAAU,GAAG;IAC3C,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,CAAC,CAAC;CACJ,CAAC;AAEF,oBAAY,YAAY,GAAG,UAAU,GAAG;IACtC,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB,CAAC;AAEF,oBAAY,MAAM,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEtD,oBAAY,eAAe,GAAG;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAGF,oBAAY,WAAW,GAAG;IACxB,IAAI,EAAE;QACJ,kBAAkB,EAAE,sBAAsB,CAAC;QAC3C,OAAO,EAAE;YACP,QAAQ,EAAE,OAAO,CAAC;YAClB,sBAAsB,EAAE,OAAO,CAAC;SACjC,CAAC;KACH,CAAC;IAOF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,eAAe,CAAC;IAC3B,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAGF,oBAAY,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;AAEvD;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C"}
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
8
|
+
/**
|
|
9
|
+
* A convenient/more semantic way to get theme config from context.
|
|
10
|
+
*/
|
|
8
11
|
export function useThemeConfig() {
|
|
9
12
|
return useDocusaurusContext().siteConfig.themeConfig;
|
|
10
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThemeConfig.js","sourceRoot":"","sources":["../../src/utils/useThemeConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"useThemeConfig.js","sourceRoot":"","sources":["../../src/utils/useThemeConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AA6HpE;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,oBAAoB,EAAE,CAAC,UAAU,CAAC,WAA0B,CAAC;AACtE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/theme-common",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.19",
|
|
4
4
|
"description": "Common code for Docusaurus themes.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
7
|
+
"sideEffects": [
|
|
8
|
+
"lib/components/Details/*",
|
|
9
|
+
"*.css"
|
|
10
|
+
],
|
|
11
|
+
"exports": {
|
|
12
|
+
".": "./lib/index.js",
|
|
13
|
+
"./Details": "./lib/components/Details/index.js"
|
|
14
|
+
},
|
|
7
15
|
"scripts": {
|
|
8
16
|
"build": "node copyUntypedFiles.mjs && tsc",
|
|
9
17
|
"watch": "node copyUntypedFiles.mjs && tsc --watch"
|
|
@@ -18,21 +26,20 @@
|
|
|
18
26
|
},
|
|
19
27
|
"license": "MIT",
|
|
20
28
|
"dependencies": {
|
|
21
|
-
"@docusaurus/module-type-aliases": "2.0.0-beta.
|
|
22
|
-
"@docusaurus/plugin-content-blog": "2.0.0-beta.
|
|
23
|
-
"@docusaurus/plugin-content-docs": "2.0.0-beta.
|
|
24
|
-
"@docusaurus/plugin-content-pages": "2.0.0-beta.
|
|
29
|
+
"@docusaurus/module-type-aliases": "2.0.0-beta.19",
|
|
30
|
+
"@docusaurus/plugin-content-blog": "2.0.0-beta.19",
|
|
31
|
+
"@docusaurus/plugin-content-docs": "2.0.0-beta.19",
|
|
32
|
+
"@docusaurus/plugin-content-pages": "2.0.0-beta.19",
|
|
25
33
|
"clsx": "^1.1.1",
|
|
26
34
|
"parse-numeric-range": "^1.3.0",
|
|
27
35
|
"prism-react-renderer": "^1.3.1",
|
|
28
|
-
"tslib": "^2.
|
|
36
|
+
"tslib": "^2.4.0",
|
|
29
37
|
"utility-types": "^3.10.0"
|
|
30
38
|
},
|
|
31
39
|
"devDependencies": {
|
|
32
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
33
|
-
"@docusaurus/types": "2.0.0-beta.
|
|
34
|
-
"
|
|
35
|
-
"fs-extra": "^10.0.1",
|
|
40
|
+
"@docusaurus/core": "2.0.0-beta.19",
|
|
41
|
+
"@docusaurus/types": "2.0.0-beta.19",
|
|
42
|
+
"fs-extra": "^10.1.0",
|
|
36
43
|
"lodash": "^4.17.21"
|
|
37
44
|
},
|
|
38
45
|
"peerDependencies": {
|
|
@@ -42,5 +49,5 @@
|
|
|
42
49
|
"engines": {
|
|
43
50
|
"node": ">=14"
|
|
44
51
|
},
|
|
45
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "a71e60a49cce93c1006ef10c41ac03187f057102"
|
|
46
53
|
}
|
|
@@ -11,29 +11,28 @@ import React, {
|
|
|
11
11
|
useEffect,
|
|
12
12
|
useRef,
|
|
13
13
|
useCallback,
|
|
14
|
+
useLayoutEffect,
|
|
14
15
|
type RefObject,
|
|
15
16
|
type Dispatch,
|
|
16
17
|
type SetStateAction,
|
|
17
18
|
type ReactNode,
|
|
18
|
-
useLayoutEffect,
|
|
19
19
|
} from 'react';
|
|
20
20
|
|
|
21
21
|
const DefaultAnimationEasing = 'ease-in-out';
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
/**
|
|
24
|
+
* This hook is a very thin wrapper around a `useState`.
|
|
25
|
+
*/
|
|
26
|
+
export function useCollapsible({
|
|
27
|
+
initialState,
|
|
28
|
+
}: {
|
|
29
|
+
/** The initial state. Will be non-collapsed by default. */
|
|
24
30
|
initialState: boolean | (() => boolean);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export type UseCollapsibleReturns = {
|
|
31
|
+
}): {
|
|
28
32
|
collapsed: boolean;
|
|
29
33
|
setCollapsed: Dispatch<SetStateAction<boolean>>;
|
|
30
34
|
toggleCollapsed: () => void;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// This hook just define the state
|
|
34
|
-
export function useCollapsible({
|
|
35
|
-
initialState,
|
|
36
|
-
}: UseCollapsibleConfig): UseCollapsibleReturns {
|
|
35
|
+
} {
|
|
37
36
|
const [collapsed, setCollapsed] = useState(initialState ?? false);
|
|
38
37
|
|
|
39
38
|
const toggleCollapsed = useCallback(() => {
|
|
@@ -152,8 +151,10 @@ type CollapsibleElementType = React.ElementType<
|
|
|
152
151
|
Pick<React.HTMLAttributes<unknown>, 'className' | 'onTransitionEnd' | 'style'>
|
|
153
152
|
>;
|
|
154
153
|
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Prevent hydration layout shift before animations are handled imperatively
|
|
156
|
+
* with JS
|
|
157
|
+
*/
|
|
157
158
|
function getSSRStyle(collapsed: boolean) {
|
|
158
159
|
if (ExecutionEnvironment.canUseDOM) {
|
|
159
160
|
return undefined;
|
|
@@ -162,16 +163,27 @@ function getSSRStyle(collapsed: boolean) {
|
|
|
162
163
|
}
|
|
163
164
|
|
|
164
165
|
type CollapsibleBaseProps = {
|
|
166
|
+
/** The actual DOM element to be used in the markup. */
|
|
165
167
|
as?: CollapsibleElementType;
|
|
168
|
+
/** Initial collapsed state. */
|
|
166
169
|
collapsed: boolean;
|
|
167
170
|
children: ReactNode;
|
|
171
|
+
/** Configuration of animation, like `duration` and `easing` */
|
|
168
172
|
animation?: CollapsibleAnimationConfig;
|
|
173
|
+
/**
|
|
174
|
+
* A callback fired when the collapse transition animation ends. Receives
|
|
175
|
+
* the **new** collapsed state: e.g. when
|
|
176
|
+
* expanding, `collapsed` will be `false`. You can use this for some "cleanup"
|
|
177
|
+
* like applying new styles when the container is fully expanded.
|
|
178
|
+
*/
|
|
169
179
|
onCollapseTransitionEnd?: (collapsed: boolean) => void;
|
|
180
|
+
/** Class name for the underlying DOM element. */
|
|
170
181
|
className?: string;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
182
|
+
/**
|
|
183
|
+
* This is mostly useful for details/summary component where ssrStyle is not
|
|
184
|
+
* needed (as details are hidden natively) and can mess up with the browser's
|
|
185
|
+
* native behavior when JS fails to load or is disabled
|
|
186
|
+
*/
|
|
175
187
|
disableSSRStyle?: boolean;
|
|
176
188
|
};
|
|
177
189
|
|
|
@@ -212,6 +224,8 @@ function CollapsibleBase({
|
|
|
212
224
|
|
|
213
225
|
function CollapsibleLazy({collapsed, ...props}: CollapsibleBaseProps) {
|
|
214
226
|
const [mounted, setMounted] = useState(!collapsed);
|
|
227
|
+
// Updated in effect so that first expansion transition can work
|
|
228
|
+
const [lazyCollapsed, setLazyCollapsed] = useState(collapsed);
|
|
215
229
|
|
|
216
230
|
useLayoutEffect(() => {
|
|
217
231
|
if (!collapsed) {
|
|
@@ -219,8 +233,6 @@ function CollapsibleLazy({collapsed, ...props}: CollapsibleBaseProps) {
|
|
|
219
233
|
}
|
|
220
234
|
}, [collapsed]);
|
|
221
235
|
|
|
222
|
-
// lazyCollapsed updated in effect so that first expansion transition can work
|
|
223
|
-
const [lazyCollapsed, setLazyCollapsed] = useState(collapsed);
|
|
224
236
|
useLayoutEffect(() => {
|
|
225
237
|
if (mounted) {
|
|
226
238
|
setLazyCollapsed(collapsed);
|
|
@@ -233,14 +245,20 @@ function CollapsibleLazy({collapsed, ...props}: CollapsibleBaseProps) {
|
|
|
233
245
|
}
|
|
234
246
|
|
|
235
247
|
type CollapsibleProps = CollapsibleBaseProps & {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
248
|
+
/**
|
|
249
|
+
* Delay rendering of the content till first expansion. Marked as required to
|
|
250
|
+
* force us to think if content should be server-rendered or not. This has
|
|
251
|
+
* perf impact since it reduces html file sizes, but could undermine SEO.
|
|
252
|
+
* @see https://github.com/facebook/docusaurus/issues/4753
|
|
253
|
+
*/
|
|
241
254
|
lazy: boolean;
|
|
242
255
|
};
|
|
243
256
|
|
|
257
|
+
/**
|
|
258
|
+
* A headless component providing smooth and uniform collapsing behavior. The
|
|
259
|
+
* component will be invisible (zero height) when collapsed. Doesn't provide
|
|
260
|
+
* interactivity by itself: collapse state is toggled through props.
|
|
261
|
+
*/
|
|
244
262
|
export function Collapsible({lazy, ...props}: CollapsibleProps): JSX.Element {
|
|
245
263
|
const Comp = lazy ? CollapsibleLazy : CollapsibleBase;
|
|
246
264
|
return <Comp {...props} />;
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import React, {
|
|
9
|
-
type ComponentProps,
|
|
10
|
-
type ReactElement,
|
|
11
9
|
useRef,
|
|
12
10
|
useState,
|
|
11
|
+
type ComponentProps,
|
|
12
|
+
type ReactElement,
|
|
13
13
|
} from 'react';
|
|
14
14
|
import useIsBrowser from '@docusaurus/useIsBrowser';
|
|
15
15
|
import clsx from 'clsx';
|
|
@@ -31,10 +31,15 @@ function hasParent(node: HTMLElement | null, parent: HTMLElement): boolean {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export type DetailsProps = {
|
|
34
|
+
/** Summary is provided as props, including the wrapping `<summary>` tag */
|
|
34
35
|
summary?: ReactElement;
|
|
35
36
|
} & ComponentProps<'details'>;
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
/**
|
|
39
|
+
* A mostly un-styled `<details>` element with smooth collapsing. Provides some
|
|
40
|
+
* very lightweight styles, but you should bring your UI.
|
|
41
|
+
*/
|
|
42
|
+
export function Details({
|
|
38
43
|
summary,
|
|
39
44
|
children,
|
|
40
45
|
...props
|
|
@@ -45,8 +50,8 @@ export default function Details({
|
|
|
45
50
|
const {collapsed, setCollapsed} = useCollapsible({
|
|
46
51
|
initialState: !props.open,
|
|
47
52
|
});
|
|
48
|
-
// Use a separate prop because it must be set
|
|
49
|
-
//
|
|
53
|
+
// Use a separate state for the actual details prop, because it must be set
|
|
54
|
+
// only after animation completes, otherwise close animations won't work
|
|
50
55
|
const [open, setOpen] = useState(props.open);
|
|
51
56
|
|
|
52
57
|
return (
|
|
@@ -58,7 +63,7 @@ export default function Details({
|
|
|
58
63
|
data-collapsed={collapsed}
|
|
59
64
|
className={clsx(
|
|
60
65
|
styles.details,
|
|
61
|
-
|
|
66
|
+
isBrowser && styles.isBrowser,
|
|
62
67
|
props.className,
|
|
63
68
|
)}
|
|
64
69
|
onMouseDown={(e) => {
|
|
@@ -82,10 +87,12 @@ export default function Details({
|
|
|
82
87
|
setOpen(true);
|
|
83
88
|
} else {
|
|
84
89
|
setCollapsed(true);
|
|
85
|
-
//
|
|
90
|
+
// Don't do this, it breaks close animation!
|
|
91
|
+
// setOpen(false);
|
|
86
92
|
}
|
|
87
93
|
}}>
|
|
88
|
-
{
|
|
94
|
+
{/* eslint-disable-next-line @docusaurus/no-untranslated-text */}
|
|
95
|
+
{summary || <summary>Details</summary>}
|
|
89
96
|
|
|
90
97
|
<Collapsible
|
|
91
98
|
lazy={false} // Content might matter for SEO in this case
|
|
@@ -10,13 +10,13 @@ import React, {
|
|
|
10
10
|
useEffect,
|
|
11
11
|
useCallback,
|
|
12
12
|
useMemo,
|
|
13
|
-
type ReactNode,
|
|
14
13
|
useContext,
|
|
15
|
-
|
|
14
|
+
type ReactNode,
|
|
16
15
|
} from 'react';
|
|
17
16
|
import useIsBrowser from '@docusaurus/useIsBrowser';
|
|
18
|
-
import {createStorageSlot} from '
|
|
19
|
-
import {
|
|
17
|
+
import {createStorageSlot} from '../utils/storageUtils';
|
|
18
|
+
import {ReactContextError} from '../utils/reactUtils';
|
|
19
|
+
import {useThemeConfig} from '../utils/useThemeConfig';
|
|
20
20
|
|
|
21
21
|
export const AnnouncementBarDismissStorageKey =
|
|
22
22
|
'docusaurus.announcement.dismiss';
|
|
@@ -32,12 +32,18 @@ const isDismissedInStorage = () =>
|
|
|
32
32
|
const setDismissedInStorage = (bool: boolean) =>
|
|
33
33
|
AnnouncementBarDismissStorage.set(String(bool));
|
|
34
34
|
|
|
35
|
-
type
|
|
35
|
+
type ContextValue = {
|
|
36
|
+
/** Whether the announcement bar should be displayed. */
|
|
36
37
|
readonly isActive: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Callback fired when the user closes the announcement. Will be saved.
|
|
40
|
+
*/
|
|
37
41
|
readonly close: () => void;
|
|
38
42
|
};
|
|
39
43
|
|
|
40
|
-
const
|
|
44
|
+
const Context = React.createContext<ContextValue | null>(null);
|
|
45
|
+
|
|
46
|
+
function useContextValue(): ContextValue {
|
|
41
47
|
const {announcementBar} = useThemeConfig();
|
|
42
48
|
const isBrowser = useIsBrowser();
|
|
43
49
|
|
|
@@ -66,7 +72,7 @@ const useAnnouncementBarContextValue = (): AnnouncementBarAPI => {
|
|
|
66
72
|
|
|
67
73
|
let viewedId = IdStorage.get();
|
|
68
74
|
|
|
69
|
-
//
|
|
75
|
+
// Retrocompatibility due to spelling mistake of default id
|
|
70
76
|
// see https://github.com/facebook/docusaurus/issues/3338
|
|
71
77
|
// cSpell:ignore annoucement
|
|
72
78
|
if (viewedId === 'annoucement-bar') {
|
|
@@ -93,29 +99,21 @@ const useAnnouncementBarContextValue = (): AnnouncementBarAPI => {
|
|
|
93
99
|
}),
|
|
94
100
|
[announcementBar, isClosed, handleClose],
|
|
95
101
|
);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const AnnouncementBarContext = createContext<AnnouncementBarAPI | null>(null);
|
|
102
|
+
}
|
|
99
103
|
|
|
100
104
|
export function AnnouncementBarProvider({
|
|
101
105
|
children,
|
|
102
106
|
}: {
|
|
103
107
|
children: ReactNode;
|
|
104
108
|
}): JSX.Element {
|
|
105
|
-
const value =
|
|
106
|
-
return
|
|
107
|
-
<AnnouncementBarContext.Provider value={value}>
|
|
108
|
-
{children}
|
|
109
|
-
</AnnouncementBarContext.Provider>
|
|
110
|
-
);
|
|
109
|
+
const value = useContextValue();
|
|
110
|
+
return <Context.Provider value={value}>{children}</Context.Provider>;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
export
|
|
114
|
-
const api = useContext(
|
|
113
|
+
export function useAnnouncementBar(): ContextValue {
|
|
114
|
+
const api = useContext(Context);
|
|
115
115
|
if (!api) {
|
|
116
|
-
throw new
|
|
117
|
-
'useAnnouncementBar(): AnnouncementBar not found in React context: make sure to use the AnnouncementBarProvider on top of the tree',
|
|
118
|
-
);
|
|
116
|
+
throw new ReactContextError('AnnouncementBarProvider');
|
|
119
117
|
}
|
|
120
118
|
return api;
|
|
121
|
-
}
|
|
119
|
+
}
|