@docusaurus/theme-common 2.0.0-beta.1ec2c95e3 → 2.0.0-beta.21

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.
Files changed (251) hide show
  1. package/Details.d.ts +14 -0
  2. package/lib/components/Collapsible/index.d.ts +64 -0
  3. package/lib/components/Collapsible/index.d.ts.map +1 -0
  4. package/lib/components/Collapsible/index.js +150 -0
  5. package/lib/components/Collapsible/index.js.map +1 -0
  6. package/lib/components/Details/index.d.ts +17 -0
  7. package/lib/components/Details/index.d.ts.map +1 -0
  8. package/lib/components/Details/index.js +76 -0
  9. package/lib/components/Details/index.js.map +1 -0
  10. package/lib/components/Details/styles.module.css +62 -0
  11. package/lib/contexts/announcementBar.d.ts +22 -0
  12. package/lib/contexts/announcementBar.d.ts.map +1 -0
  13. package/lib/{utils/announcementBarUtils.js → contexts/announcementBar.js} +30 -31
  14. package/lib/contexts/announcementBar.js.map +1 -0
  15. package/lib/contexts/colorMode.d.ts +27 -0
  16. package/lib/contexts/colorMode.d.ts.map +1 -0
  17. package/lib/contexts/colorMode.js +132 -0
  18. package/lib/contexts/colorMode.js.map +1 -0
  19. package/lib/contexts/docSidebarItemsExpandedState.d.ts +31 -0
  20. package/lib/contexts/docSidebarItemsExpandedState.d.ts.map +1 -0
  21. package/lib/contexts/docSidebarItemsExpandedState.js +28 -0
  22. package/lib/contexts/docSidebarItemsExpandedState.js.map +1 -0
  23. package/lib/contexts/docsPreferredVersion.d.ts +31 -0
  24. package/lib/contexts/docsPreferredVersion.d.ts.map +1 -0
  25. package/lib/contexts/docsPreferredVersion.js +130 -0
  26. package/lib/contexts/docsPreferredVersion.js.map +1 -0
  27. package/lib/contexts/docsSidebar.d.ts +26 -0
  28. package/lib/contexts/docsSidebar.d.ts.map +1 -0
  29. package/lib/contexts/docsSidebar.js +30 -0
  30. package/lib/contexts/docsSidebar.js.map +1 -0
  31. package/lib/contexts/docsVersion.d.ts +20 -0
  32. package/lib/contexts/docsVersion.d.ts.map +1 -0
  33. package/lib/contexts/docsVersion.js +26 -0
  34. package/lib/contexts/docsVersion.js.map +1 -0
  35. package/lib/contexts/navbarMobileSidebar.d.ts +31 -0
  36. package/lib/contexts/navbarMobileSidebar.d.ts.map +1 -0
  37. package/lib/contexts/navbarMobileSidebar.js +56 -0
  38. package/lib/contexts/navbarMobileSidebar.js.map +1 -0
  39. package/lib/contexts/navbarSecondaryMenu/content.d.ts +37 -0
  40. package/lib/contexts/navbarSecondaryMenu/content.d.ts.map +1 -0
  41. package/lib/contexts/navbarSecondaryMenu/content.js +56 -0
  42. package/lib/contexts/navbarSecondaryMenu/content.js.map +1 -0
  43. package/lib/contexts/navbarSecondaryMenu/display.d.ts +24 -0
  44. package/lib/contexts/navbarSecondaryMenu/display.d.ts.map +1 -0
  45. package/lib/contexts/navbarSecondaryMenu/display.js +62 -0
  46. package/lib/contexts/navbarSecondaryMenu/display.js.map +1 -0
  47. package/lib/contexts/tabGroupChoice.d.ts +21 -0
  48. package/lib/contexts/tabGroupChoice.d.ts.map +1 -0
  49. package/lib/contexts/tabGroupChoice.js +49 -0
  50. package/lib/contexts/tabGroupChoice.js.map +1 -0
  51. package/lib/{utils/usePrevious.d.ts → hooks/styles.css} +4 -1
  52. package/lib/hooks/useBackToTopButton.d.ts +27 -0
  53. package/lib/hooks/useBackToTopButton.d.ts.map +1 -0
  54. package/lib/hooks/useBackToTopButton.js +50 -0
  55. package/lib/hooks/useBackToTopButton.js.map +1 -0
  56. package/lib/hooks/useCodeWordWrap.d.ts +14 -0
  57. package/lib/hooks/useCodeWordWrap.d.ts.map +1 -0
  58. package/lib/hooks/useCodeWordWrap.js +41 -0
  59. package/lib/hooks/useCodeWordWrap.js.map +1 -0
  60. package/lib/hooks/useHideableNavbar.d.ts +17 -0
  61. package/lib/hooks/useHideableNavbar.d.ts.map +1 -0
  62. package/lib/hooks/useHideableNavbar.js +60 -0
  63. package/lib/hooks/useHideableNavbar.js.map +1 -0
  64. package/lib/hooks/useKeyboardNavigation.d.ts +20 -0
  65. package/lib/hooks/useKeyboardNavigation.d.ts.map +1 -0
  66. package/lib/hooks/useKeyboardNavigation.js +39 -0
  67. package/lib/hooks/useKeyboardNavigation.js.map +1 -0
  68. package/lib/hooks/useLockBodyScroll.d.ts +12 -0
  69. package/lib/hooks/useLockBodyScroll.d.ts.map +1 -0
  70. package/lib/hooks/useLockBodyScroll.js +20 -0
  71. package/lib/hooks/useLockBodyScroll.js.map +1 -0
  72. package/lib/hooks/usePrismTheme.d.ts +13 -0
  73. package/lib/hooks/usePrismTheme.d.ts.map +1 -0
  74. package/lib/hooks/usePrismTheme.js +21 -0
  75. package/lib/hooks/usePrismTheme.js.map +1 -0
  76. package/lib/hooks/useSearchPage.d.ts +25 -0
  77. package/lib/hooks/useSearchPage.d.ts.map +1 -0
  78. package/lib/hooks/useSearchPage.js +43 -0
  79. package/lib/hooks/useSearchPage.js.map +1 -0
  80. package/lib/hooks/useSkipToContent.d.ts +25 -0
  81. package/lib/hooks/useSkipToContent.d.ts.map +1 -0
  82. package/lib/hooks/useSkipToContent.js +35 -0
  83. package/lib/hooks/useSkipToContent.js.map +1 -0
  84. package/lib/hooks/useTOCHighlight.d.ts +25 -0
  85. package/lib/hooks/useTOCHighlight.d.ts.map +1 -0
  86. package/lib/hooks/useTOCHighlight.js +130 -0
  87. package/lib/hooks/useTOCHighlight.js.map +1 -0
  88. package/lib/hooks/useWindowSize.d.ts +28 -0
  89. package/lib/hooks/useWindowSize.d.ts.map +1 -0
  90. package/lib/hooks/useWindowSize.js +59 -0
  91. package/lib/hooks/useWindowSize.js.map +1 -0
  92. package/lib/index.d.ts +38 -10
  93. package/lib/index.d.ts.map +1 -0
  94. package/lib/index.js +38 -9
  95. package/lib/index.js.map +1 -0
  96. package/lib/utils/ThemeClassNames.d.ts +47 -12
  97. package/lib/utils/ThemeClassNames.d.ts.map +1 -0
  98. package/lib/utils/ThemeClassNames.js +45 -4
  99. package/lib/utils/ThemeClassNames.js.map +1 -0
  100. package/lib/utils/codeBlockUtils.d.ts +63 -0
  101. package/lib/utils/codeBlockUtils.d.ts.map +1 -0
  102. package/lib/utils/codeBlockUtils.js +159 -3
  103. package/lib/utils/codeBlockUtils.js.map +1 -0
  104. package/lib/utils/docsUtils.d.ts +91 -0
  105. package/lib/utils/docsUtils.d.ts.map +1 -0
  106. package/lib/utils/docsUtils.js +217 -1
  107. package/lib/utils/docsUtils.js.map +1 -0
  108. package/lib/utils/footerUtils.d.ts +13 -0
  109. package/lib/utils/footerUtils.d.ts.map +1 -0
  110. package/lib/utils/footerUtils.js +14 -0
  111. package/lib/utils/footerUtils.js.map +1 -0
  112. package/lib/utils/generalUtils.d.ts +11 -1
  113. package/lib/utils/generalUtils.d.ts.map +1 -0
  114. package/lib/utils/generalUtils.js +9 -5
  115. package/lib/utils/generalUtils.js.map +1 -0
  116. package/lib/utils/historyUtils.d.ts +17 -0
  117. package/lib/utils/historyUtils.d.ts.map +1 -0
  118. package/lib/utils/historyUtils.js +38 -0
  119. package/lib/utils/historyUtils.js.map +1 -0
  120. package/lib/utils/jsUtils.d.ts +23 -0
  121. package/lib/utils/jsUtils.d.ts.map +1 -0
  122. package/lib/utils/jsUtils.js +29 -0
  123. package/lib/utils/jsUtils.js.map +1 -0
  124. package/lib/utils/metadataUtils.d.ts +38 -0
  125. package/lib/utils/metadataUtils.d.ts.map +1 -0
  126. package/lib/utils/metadataUtils.js +70 -0
  127. package/lib/utils/metadataUtils.js.map +1 -0
  128. package/lib/utils/navbarUtils.d.ts +21 -0
  129. package/lib/utils/navbarUtils.d.ts.map +1 -0
  130. package/lib/utils/navbarUtils.js +36 -0
  131. package/lib/utils/navbarUtils.js.map +1 -0
  132. package/lib/utils/reactUtils.d.ts +42 -0
  133. package/lib/utils/reactUtils.d.ts.map +1 -0
  134. package/lib/utils/reactUtils.js +64 -0
  135. package/lib/utils/reactUtils.js.map +1 -0
  136. package/lib/utils/regexpUtils.d.ts +12 -0
  137. package/lib/utils/regexpUtils.d.ts.map +1 -0
  138. package/lib/utils/regexpUtils.js +18 -0
  139. package/lib/utils/regexpUtils.js.map +1 -0
  140. package/lib/utils/routesUtils.d.ts +26 -0
  141. package/lib/utils/routesUtils.d.ts.map +1 -0
  142. package/lib/utils/routesUtils.js +54 -0
  143. package/lib/utils/routesUtils.js.map +1 -0
  144. package/lib/utils/scrollUtils.d.ts +83 -0
  145. package/lib/utils/scrollUtils.d.ts.map +1 -0
  146. package/lib/utils/scrollUtils.js +200 -0
  147. package/lib/utils/scrollUtils.js.map +1 -0
  148. package/lib/utils/searchUtils.d.ts +13 -0
  149. package/lib/utils/searchUtils.d.ts.map +1 -0
  150. package/lib/utils/searchUtils.js +37 -0
  151. package/lib/utils/searchUtils.js.map +1 -0
  152. package/lib/utils/storageUtils.d.ts +15 -7
  153. package/lib/utils/storageUtils.d.ts.map +1 -0
  154. package/lib/utils/storageUtils.js +55 -22
  155. package/lib/utils/storageUtils.js.map +1 -0
  156. package/lib/utils/tagsUtils.d.ts +18 -0
  157. package/lib/utils/tagsUtils.d.ts.map +1 -0
  158. package/lib/utils/tagsUtils.js +36 -0
  159. package/lib/utils/tagsUtils.js.map +1 -0
  160. package/lib/utils/tocUtils.d.ts +36 -0
  161. package/lib/utils/tocUtils.d.ts.map +1 -0
  162. package/lib/utils/tocUtils.js +84 -0
  163. package/lib/utils/tocUtils.js.map +1 -0
  164. package/lib/utils/useAlternatePageUtils.d.ts +21 -1
  165. package/lib/utils/useAlternatePageUtils.d.ts.map +1 -0
  166. package/lib/utils/useAlternatePageUtils.js +9 -4
  167. package/lib/utils/useAlternatePageUtils.js.map +1 -0
  168. package/lib/utils/useLocalPathname.d.ts +13 -0
  169. package/lib/utils/useLocalPathname.d.ts.map +1 -0
  170. package/lib/utils/useLocalPathname.js +19 -0
  171. package/lib/utils/useLocalPathname.js.map +1 -0
  172. package/lib/utils/useLocationChange.d.ts +9 -6
  173. package/lib/utils/useLocationChange.d.ts.map +1 -0
  174. package/lib/utils/useLocationChange.js +17 -11
  175. package/lib/utils/useLocationChange.js.map +1 -0
  176. package/lib/utils/usePluralForm.d.ts +12 -0
  177. package/lib/utils/usePluralForm.d.ts.map +1 -0
  178. package/lib/utils/usePluralForm.js +36 -37
  179. package/lib/utils/usePluralForm.js.map +1 -0
  180. package/lib/utils/useThemeConfig.d.ts +56 -25
  181. package/lib/utils/useThemeConfig.d.ts.map +1 -0
  182. package/lib/utils/useThemeConfig.js +4 -0
  183. package/lib/utils/useThemeConfig.js.map +1 -0
  184. package/package.json +28 -13
  185. package/src/components/Collapsible/index.tsx +263 -0
  186. package/src/components/Details/index.tsx +109 -0
  187. package/src/components/Details/styles.module.css +62 -0
  188. package/src/{utils/announcementBarUtils.tsx → contexts/announcementBar.tsx} +43 -39
  189. package/src/contexts/colorMode.tsx +198 -0
  190. package/src/contexts/docSidebarItemsExpandedState.tsx +55 -0
  191. package/src/contexts/docsPreferredVersion.tsx +251 -0
  192. package/src/contexts/docsSidebar.tsx +50 -0
  193. package/src/contexts/docsVersion.tsx +36 -0
  194. package/src/contexts/navbarMobileSidebar.tsx +99 -0
  195. package/src/contexts/navbarSecondaryMenu/content.tsx +110 -0
  196. package/src/contexts/navbarSecondaryMenu/display.tsx +102 -0
  197. package/src/contexts/tabGroupChoice.tsx +85 -0
  198. package/{lib/utils/pathUtils.d.ts → src/hooks/styles.css} +4 -1
  199. package/src/hooks/useBackToTopButton.ts +73 -0
  200. package/src/hooks/useCodeWordWrap.ts +56 -0
  201. package/src/hooks/useHideableNavbar.ts +75 -0
  202. package/src/hooks/useKeyboardNavigation.ts +45 -0
  203. package/src/hooks/useLockBodyScroll.ts +21 -0
  204. package/src/hooks/usePrismTheme.ts +24 -0
  205. package/src/hooks/useSearchPage.ts +79 -0
  206. package/src/hooks/useSkipToContent.ts +58 -0
  207. package/src/hooks/useTOCHighlight.ts +189 -0
  208. package/src/hooks/useWindowSize.ts +72 -0
  209. package/src/index.ts +130 -19
  210. package/src/types.d.ts +0 -2
  211. package/src/utils/ThemeClassNames.ts +51 -5
  212. package/src/utils/codeBlockUtils.ts +241 -2
  213. package/src/utils/docsUtils.tsx +334 -0
  214. package/src/utils/footerUtils.ts +18 -0
  215. package/src/utils/generalUtils.ts +9 -5
  216. package/src/utils/historyUtils.ts +45 -0
  217. package/src/utils/jsUtils.ts +36 -0
  218. package/src/utils/metadataUtils.tsx +115 -0
  219. package/src/utils/navbarUtils.tsx +45 -0
  220. package/src/utils/reactUtils.tsx +76 -0
  221. package/src/utils/regexpUtils.ts +24 -0
  222. package/src/utils/routesUtils.ts +75 -0
  223. package/src/utils/scrollUtils.tsx +304 -0
  224. package/src/utils/searchUtils.ts +51 -0
  225. package/src/utils/storageUtils.ts +56 -23
  226. package/src/utils/tagsUtils.ts +50 -0
  227. package/src/utils/tocUtils.ts +119 -0
  228. package/src/utils/useAlternatePageUtils.ts +19 -6
  229. package/src/utils/useLocalPathname.ts +22 -0
  230. package/src/utils/useLocationChange.ts +24 -20
  231. package/src/utils/usePluralForm.ts +50 -38
  232. package/src/utils/useThemeConfig.ts +55 -27
  233. package/lib/.tsbuildinfo +0 -1
  234. package/lib/utils/announcementBarUtils.d.ts +0 -17
  235. package/lib/utils/docsPreferredVersion/DocsPreferredVersionProvider.d.ts +0 -21
  236. package/lib/utils/docsPreferredVersion/DocsPreferredVersionProvider.js +0 -94
  237. package/lib/utils/docsPreferredVersion/DocsPreferredVersionStorage.d.ts +0 -13
  238. package/lib/utils/docsPreferredVersion/DocsPreferredVersionStorage.js +0 -20
  239. package/lib/utils/docsPreferredVersion/useDocsPreferredVersion.d.ts +0 -5
  240. package/lib/utils/docsPreferredVersion/useDocsPreferredVersion.js +0 -41
  241. package/lib/utils/pathUtils.js +0 -13
  242. package/lib/utils/usePrevious.js +0 -14
  243. package/src/utils/__tests__/codeBlockUtils.test.ts +0 -54
  244. package/src/utils/__tests__/pathUtils.test.ts +0 -32
  245. package/src/utils/docsPreferredVersion/DocsPreferredVersionProvider.tsx +0 -165
  246. package/src/utils/docsPreferredVersion/DocsPreferredVersionStorage.ts +0 -34
  247. package/src/utils/docsPreferredVersion/useDocsPreferredVersion.ts +0 -66
  248. package/src/utils/docsUtils.ts +0 -11
  249. package/src/utils/pathUtils.ts +0 -17
  250. package/src/utils/usePrevious.ts +0 -18
  251. package/tsconfig.json +0 -10
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, { useState, useCallback, useEffect, useContext, useMemo, useRef, } from 'react';
8
+ import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
9
+ import { ReactContextError } from '../utils/reactUtils';
10
+ import { createStorageSlot } from '../utils/storageUtils';
11
+ import { useThemeConfig } from '../utils/useThemeConfig';
12
+ const Context = React.createContext(undefined);
13
+ const ColorModeStorageKey = 'theme';
14
+ const ColorModeStorage = createStorageSlot(ColorModeStorageKey);
15
+ const ColorModes = {
16
+ light: 'light',
17
+ dark: 'dark',
18
+ };
19
+ // Ensure to always return a valid colorMode even if input is invalid
20
+ const coerceToColorMode = (colorMode) => colorMode === ColorModes.dark ? ColorModes.dark : ColorModes.light;
21
+ const getInitialColorMode = (defaultMode) => ExecutionEnvironment.canUseDOM
22
+ ? coerceToColorMode(document.documentElement.getAttribute('data-theme'))
23
+ : coerceToColorMode(defaultMode);
24
+ const storeColorMode = (newColorMode) => {
25
+ ColorModeStorage.set(coerceToColorMode(newColorMode));
26
+ };
27
+ function useContextValue() {
28
+ const { colorMode: { defaultMode, disableSwitch, respectPrefersColorScheme }, } = useThemeConfig();
29
+ const [colorMode, setColorModeState] = useState(getInitialColorMode(defaultMode));
30
+ useEffect(() => {
31
+ // A site is deployed without disableSwitch
32
+ // => User visits the site and has a persisted value
33
+ // => Site later enabled disableSwitch
34
+ // => Clear the previously stored value to apply the site's setting
35
+ if (disableSwitch) {
36
+ ColorModeStorage.del();
37
+ }
38
+ }, [disableSwitch]);
39
+ const setColorMode = useCallback((newColorMode, options = {}) => {
40
+ const { persist = true } = options;
41
+ if (newColorMode) {
42
+ setColorModeState(newColorMode);
43
+ if (persist) {
44
+ storeColorMode(newColorMode);
45
+ }
46
+ }
47
+ else {
48
+ if (respectPrefersColorScheme) {
49
+ setColorModeState(window.matchMedia('(prefers-color-scheme: dark)').matches
50
+ ? ColorModes.dark
51
+ : ColorModes.light);
52
+ }
53
+ else {
54
+ setColorModeState(defaultMode);
55
+ }
56
+ ColorModeStorage.del();
57
+ }
58
+ }, [respectPrefersColorScheme, defaultMode]);
59
+ useEffect(() => {
60
+ document.documentElement.setAttribute('data-theme', coerceToColorMode(colorMode));
61
+ }, [colorMode]);
62
+ useEffect(() => {
63
+ if (disableSwitch) {
64
+ return undefined;
65
+ }
66
+ const onChange = (e) => {
67
+ if (e.key !== ColorModeStorageKey) {
68
+ return;
69
+ }
70
+ const storedColorMode = ColorModeStorage.get();
71
+ if (storedColorMode !== null) {
72
+ setColorMode(coerceToColorMode(storedColorMode));
73
+ }
74
+ };
75
+ window.addEventListener('storage', onChange);
76
+ return () => window.removeEventListener('storage', onChange);
77
+ }, [disableSwitch, setColorMode]);
78
+ // PCS is coerced to light mode when printing, which causes the color mode to
79
+ // be reset to dark when exiting print mode, disregarding user settings. When
80
+ // the listener fires only because of a print/screen switch, we don't change
81
+ // color mode. See https://github.com/facebook/docusaurus/pull/6490
82
+ const previousMediaIsPrint = useRef(false);
83
+ useEffect(() => {
84
+ if (disableSwitch && !respectPrefersColorScheme) {
85
+ return undefined;
86
+ }
87
+ const mql = window.matchMedia('(prefers-color-scheme: dark)');
88
+ const onChange = () => {
89
+ if (window.matchMedia('print').matches || previousMediaIsPrint.current) {
90
+ previousMediaIsPrint.current = window.matchMedia('print').matches;
91
+ return;
92
+ }
93
+ setColorMode(null);
94
+ };
95
+ mql.addListener(onChange);
96
+ return () => mql.removeListener(onChange);
97
+ }, [setColorMode, disableSwitch, respectPrefersColorScheme]);
98
+ return useMemo(() => ({
99
+ colorMode,
100
+ setColorMode,
101
+ get isDarkTheme() {
102
+ if (process.env.NODE_ENV === 'development') {
103
+ console.error('`useColorMode().isDarkTheme` is deprecated. Please use `useColorMode().colorMode === "dark"` instead.');
104
+ }
105
+ return colorMode === ColorModes.dark;
106
+ },
107
+ setLightTheme() {
108
+ if (process.env.NODE_ENV === 'development') {
109
+ console.error('`useColorMode().setLightTheme` is deprecated. Please use `useColorMode().setColorMode("light")` instead.');
110
+ }
111
+ setColorMode(ColorModes.light);
112
+ },
113
+ setDarkTheme() {
114
+ if (process.env.NODE_ENV === 'development') {
115
+ console.error('`useColorMode().setDarkTheme` is deprecated. Please use `useColorMode().setColorMode("dark")` instead.');
116
+ }
117
+ setColorMode(ColorModes.dark);
118
+ },
119
+ }), [colorMode, setColorMode]);
120
+ }
121
+ export function ColorModeProvider({ children, }) {
122
+ const value = useContextValue();
123
+ return <Context.Provider value={value}>{children}</Context.Provider>;
124
+ }
125
+ export function useColorMode() {
126
+ const context = useContext(Context);
127
+ if (context == null) {
128
+ throw new ReactContextError('ColorModeProvider', 'Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.');
129
+ }
130
+ return context;
131
+ }
132
+ //# sourceMappingURL=colorMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorMode.js","sourceRoot":"","sources":["../../src/contexts/colorMode.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
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 { type ReactNode } from 'react';
8
+ declare type ContextValue = {
9
+ /**
10
+ * The item that the user last opened, `null` when there's none open. On
11
+ * initial render, it will always be `null`, which doesn't necessarily mean
12
+ * there's no category open (can have 0, 1, or many being initially open).
13
+ */
14
+ expandedItem: number | null;
15
+ /**
16
+ * Set the currently expanded item, when the user opens one. Set the value to
17
+ * `null` when the user closes an open category.
18
+ */
19
+ setExpandedItem: (a: number | null) => void;
20
+ };
21
+ /**
22
+ * Should be used to wrap one sidebar category level. This provider syncs the
23
+ * expanded states of all sibling categories, and categories can choose to
24
+ * collapse itself if another one is expanded.
25
+ */
26
+ export declare function DocSidebarItemsExpandedStateProvider({ children, }: {
27
+ children: ReactNode;
28
+ }): JSX.Element;
29
+ export declare function useDocSidebarItemsExpandedState(): ContextValue;
30
+ export {};
31
+ //# sourceMappingURL=docSidebarItemsExpandedState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docSidebarItemsExpandedState.d.ts","sourceRoot":"","sources":["../../src/contexts/docSidebarItemsExpandedState.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAc,EAAC,KAAK,SAAS,EAAgC,MAAM,OAAO,CAAC;AAG3E,aAAK,YAAY,GAAG;IAClB;;;;OAIG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,eAAe,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7C,CAAC;AAOF;;;;GAIG;AACH,wBAAgB,oCAAoC,CAAC,EACnD,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,GAAG,CAAC,OAAO,CAQd;AAED,wBAAgB,+BAA+B,IAAI,YAAY,CAM9D"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, { useMemo, useState, useContext } from 'react';
8
+ import { ReactContextError } from '../utils/reactUtils';
9
+ const EmptyContext = Symbol('EmptyContext');
10
+ const Context = React.createContext(EmptyContext);
11
+ /**
12
+ * Should be used to wrap one sidebar category level. This provider syncs the
13
+ * expanded states of all sibling categories, and categories can choose to
14
+ * collapse itself if another one is expanded.
15
+ */
16
+ export function DocSidebarItemsExpandedStateProvider({ children, }) {
17
+ const [expandedItem, setExpandedItem] = useState(null);
18
+ const contextValue = useMemo(() => ({ expandedItem, setExpandedItem }), [expandedItem]);
19
+ return <Context.Provider value={contextValue}>{children}</Context.Provider>;
20
+ }
21
+ export function useDocSidebarItemsExpandedState() {
22
+ const value = useContext(Context);
23
+ if (value === EmptyContext) {
24
+ throw new ReactContextError('DocSidebarItemsExpandedStateProvider');
25
+ }
26
+ return value;
27
+ }
28
+ //# sourceMappingURL=docSidebarItemsExpandedState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docSidebarItemsExpandedState.js","sourceRoot":"","sources":["../../src/contexts/docSidebarItemsExpandedState.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAiB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAgBtD,MAAM,YAAY,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CACjC,YAAY,CACb,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,oCAAoC,CAAC,EACnD,QAAQ,GAGT;IACC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC,EAAC,YAAY,EAAE,eAAe,EAAC,CAAC,EACvC,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,YAAY,EAAE;QAC1B,MAAM,IAAI,iBAAiB,CAAC,sCAAsC,CAAC,CAAC;KACrE;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,31 @@
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
+ /// <reference types="react" />
8
+ /// <reference types="@docusaurus/plugin-content-docs" />
9
+ import { type GlobalVersion } from '@docusaurus/plugin-content-docs/client';
10
+ /**
11
+ * This is a maybe-layer. If the docs plugin is not enabled, this provider is a
12
+ * simple pass-through.
13
+ */
14
+ export declare function DocsPreferredVersionContextProvider({ children, }: {
15
+ children: JSX.Element;
16
+ }): JSX.Element;
17
+ /**
18
+ * Returns a read-write interface to a plugin's preferred version. The
19
+ * "preferred version" is defined as the last version that the user visited.
20
+ * For example, if a user is using v3, even when v4 is later published, the user
21
+ * would still be browsing v3 docs when she opens the website next time. Note,
22
+ * the `preferredVersion` attribute will always be `null` before mount.
23
+ */
24
+ export declare function useDocsPreferredVersion(pluginId?: string | undefined): {
25
+ preferredVersion: GlobalVersion | null;
26
+ savePreferredVersionName: (versionName: string) => void;
27
+ };
28
+ export declare function useDocsPreferredVersionByPluginId(): {
29
+ [pluginId: string]: GlobalVersion | null;
30
+ };
31
+ //# sourceMappingURL=docsPreferredVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docsPreferredVersion.d.ts","sourceRoot":"","sources":["../../src/contexts/docsPreferredVersion.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;;;AAUH,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wCAAwC,CAAC;AAsJhD;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,EAClD,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB,GAAG,GAAG,CAAC,OAAO,CASd;AAUD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,GAAE,MAAM,GAAG,SAA6B,GAC/C;IACD,gBAAgB,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,wBAAwB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD,CAmBA;AAED,wBAAgB,iCAAiC,IAAI;IACnD,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC;CAC1C,CAkBA"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, { useContext, useEffect, useMemo, useState, useCallback, } from 'react';
8
+ import { useAllDocsData, useDocsData, } from '@docusaurus/plugin-content-docs/client';
9
+ import { DEFAULT_PLUGIN_ID } from '@docusaurus/constants';
10
+ import { useThemeConfig, } from '../utils/useThemeConfig';
11
+ import { isDocsPluginEnabled } from '../utils/docsUtils';
12
+ import { ReactContextError } from '../utils/reactUtils';
13
+ import { createStorageSlot } from '../utils/storageUtils';
14
+ const storageKey = (pluginId) => `docs-preferred-version-${pluginId}`;
15
+ const DocsPreferredVersionStorage = {
16
+ save: (pluginId, persistence, versionName) => {
17
+ createStorageSlot(storageKey(pluginId), { persistence }).set(versionName);
18
+ },
19
+ read: (pluginId, persistence) => createStorageSlot(storageKey(pluginId), { persistence }).get(),
20
+ clear: (pluginId, persistence) => {
21
+ createStorageSlot(storageKey(pluginId), { persistence }).del();
22
+ },
23
+ };
24
+ /**
25
+ * Initial state is always null as we can't read local storage from node SSR
26
+ */
27
+ const getInitialState = (pluginIds) => Object.fromEntries(pluginIds.map((id) => [id, { preferredVersionName: null }]));
28
+ /**
29
+ * Read storage for all docs plugins, assigning each doc plugin a preferred
30
+ * version (if found)
31
+ */
32
+ function readStorageState({ pluginIds, versionPersistence, allDocsData, }) {
33
+ /**
34
+ * The storage value we read might be stale, and belong to a version that does
35
+ * not exist in the site anymore. In such case, we remove the storage value to
36
+ * avoid downstream errors.
37
+ */
38
+ function restorePluginState(pluginId) {
39
+ const preferredVersionNameUnsafe = DocsPreferredVersionStorage.read(pluginId, versionPersistence);
40
+ const pluginData = allDocsData[pluginId];
41
+ const versionExists = pluginData.versions.some((version) => version.name === preferredVersionNameUnsafe);
42
+ if (versionExists) {
43
+ return { preferredVersionName: preferredVersionNameUnsafe };
44
+ }
45
+ DocsPreferredVersionStorage.clear(pluginId, versionPersistence);
46
+ return { preferredVersionName: null };
47
+ }
48
+ return Object.fromEntries(pluginIds.map((id) => [id, restorePluginState(id)]));
49
+ }
50
+ function useVersionPersistence() {
51
+ return useThemeConfig().docs.versionPersistence;
52
+ }
53
+ const Context = React.createContext(null);
54
+ function useContextValue() {
55
+ const allDocsData = useAllDocsData();
56
+ const versionPersistence = useVersionPersistence();
57
+ const pluginIds = useMemo(() => Object.keys(allDocsData), [allDocsData]);
58
+ // Initial state is empty, as we can't read browser storage in node/SSR
59
+ const [state, setState] = useState(() => getInitialState(pluginIds));
60
+ // On mount, we set the state read from browser storage
61
+ useEffect(() => {
62
+ setState(readStorageState({ allDocsData, versionPersistence, pluginIds }));
63
+ }, [allDocsData, versionPersistence, pluginIds]);
64
+ // The API that we expose to consumer hooks (memo for constant object)
65
+ const api = useMemo(() => {
66
+ function savePreferredVersion(pluginId, versionName) {
67
+ DocsPreferredVersionStorage.save(pluginId, versionPersistence, versionName);
68
+ setState((s) => ({
69
+ ...s,
70
+ [pluginId]: { preferredVersionName: versionName },
71
+ }));
72
+ }
73
+ return {
74
+ savePreferredVersion,
75
+ };
76
+ }, [versionPersistence]);
77
+ return [state, api];
78
+ }
79
+ function DocsPreferredVersionContextProviderUnsafe({ children, }) {
80
+ const value = useContextValue();
81
+ return <Context.Provider value={value}>{children}</Context.Provider>;
82
+ }
83
+ /**
84
+ * This is a maybe-layer. If the docs plugin is not enabled, this provider is a
85
+ * simple pass-through.
86
+ */
87
+ export function DocsPreferredVersionContextProvider({ children, }) {
88
+ if (isDocsPluginEnabled) {
89
+ return (<DocsPreferredVersionContextProviderUnsafe>
90
+ {children}
91
+ </DocsPreferredVersionContextProviderUnsafe>);
92
+ }
93
+ return children;
94
+ }
95
+ function useDocsPreferredVersionContext() {
96
+ const value = useContext(Context);
97
+ if (!value) {
98
+ throw new ReactContextError('DocsPreferredVersionContextProvider');
99
+ }
100
+ return value;
101
+ }
102
+ /**
103
+ * Returns a read-write interface to a plugin's preferred version. The
104
+ * "preferred version" is defined as the last version that the user visited.
105
+ * For example, if a user is using v3, even when v4 is later published, the user
106
+ * would still be browsing v3 docs when she opens the website next time. Note,
107
+ * the `preferredVersion` attribute will always be `null` before mount.
108
+ */
109
+ export function useDocsPreferredVersion(pluginId = DEFAULT_PLUGIN_ID) {
110
+ const docsData = useDocsData(pluginId);
111
+ const [state, api] = useDocsPreferredVersionContext();
112
+ const { preferredVersionName } = state[pluginId];
113
+ const preferredVersion = docsData.versions.find((version) => version.name === preferredVersionName) ?? null;
114
+ const savePreferredVersionName = useCallback((versionName) => {
115
+ api.savePreferredVersion(pluginId, versionName);
116
+ }, [api, pluginId]);
117
+ return { preferredVersion, savePreferredVersionName };
118
+ }
119
+ export function useDocsPreferredVersionByPluginId() {
120
+ const allDocsData = useAllDocsData();
121
+ const [state] = useDocsPreferredVersionContext();
122
+ function getPluginIdPreferredVersion(pluginId) {
123
+ const docsData = allDocsData[pluginId];
124
+ const { preferredVersionName } = state[pluginId];
125
+ return (docsData.versions.find((version) => version.name === preferredVersionName) ?? null);
126
+ }
127
+ const pluginIds = Object.keys(allDocsData);
128
+ return Object.fromEntries(pluginIds.map((id) => [id, getPluginIdPreferredVersion(id)]));
129
+ }
130
+ //# sourceMappingURL=docsPreferredVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docsPreferredVersion.js","sourceRoot":"","sources":["../../src/contexts/docsPreferredVersion.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EACZ,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,WAAW,GAEZ,MAAM,OAAO,CAAC;AACf,OAAO,EACL,cAAc,EACd,WAAW,GAGZ,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,0BAA0B,QAAQ,EAAE,CAAC;AAE9E,MAAM,2BAA2B,GAAG;IAClC,IAAI,EAAE,CACJ,QAAgB,EAChB,WAAmC,EACnC,WAAmB,EACb,EAAE;QACR,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAC,WAAW,EAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,EAAE,CACJ,QAAgB,EAChB,WAAmC,EACpB,EAAE,CACjB,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAC,WAAW,EAAC,CAAC,CAAC,GAAG,EAAE;IAE9D,KAAK,EAAE,CAAC,QAAgB,EAAE,WAAmC,EAAQ,EAAE;QACrE,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAC,WAAW,EAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/D,CAAC;CACF,CAAC;AAiBF;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,SAAmB,EAA6B,EAAE,CACzE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;AAEhF;;;GAGG;AACH,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,kBAAkB,EAClB,WAAW,GAKZ;IACC;;;;OAIG;IACH,SAAS,kBAAkB,CACzB,QAAgB;QAEhB,MAAM,0BAA0B,GAAG,2BAA2B,CAAC,IAAI,CACjE,QAAQ,EACR,kBAAkB,CACnB,CAAC;QACF,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAC5C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,0BAA0B,CACzD,CAAC;QACF,IAAI,aAAa,EAAE;YACjB,OAAO,EAAC,oBAAoB,EAAE,0BAA0B,EAAC,CAAC;SAC3D;QACD,2BAA2B,CAAC,KAAK,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAChE,OAAO,EAAC,oBAAoB,EAAE,IAAI,EAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CACvB,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB;IAC5B,OAAO,cAAc,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAClD,CAAC;AASD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAsB,IAAI,CAAC,CAAC;AAE/D,SAAS,eAAe;IACtB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEzE,uEAAuE;IACvE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;IAErE,uDAAuD;IACvD,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,gBAAgB,CAAC,EAAC,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;IAC3E,CAAC,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEjD,sEAAsE;IACtE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;QACvB,SAAS,oBAAoB,CAAC,QAAgB,EAAE,WAAmB;YACjE,2BAA2B,CAAC,IAAI,CAC9B,QAAQ,EACR,kBAAkB,EAClB,WAAW,CACZ,CAAC;YACF,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACf,GAAG,CAAC;gBACJ,CAAC,QAAQ,CAAC,EAAE,EAAC,oBAAoB,EAAE,WAAW,EAAC;aAChD,CAAC,CAAC,CAAC;QACN,CAAC;QAED,OAAO;YACL,oBAAoB;SACrB,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,yCAAyC,CAAC,EACjD,QAAQ,GAGT;IACC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CAAC,EAClD,QAAQ,GAGT;IACC,IAAI,mBAAmB,EAAE;QACvB,OAAO,CACL,CAAC,yCAAyC,CACxC;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,yCAAyC,CAAC,CAC7C,CAAC;KACH;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,8BAA8B;IACrC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;KACpE;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAA+B,iBAAiB;IAKhD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,8BAA8B,EAAE,CAAC;IAEtD,MAAM,EAAC,oBAAoB,EAAC,GAAG,KAAK,CAAC,QAAQ,CAAE,CAAC;IAEhD,MAAM,gBAAgB,GACpB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CACpB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,oBAAoB,CACnD,IAAI,IAAI,CAAC;IAEZ,MAAM,wBAAwB,GAAG,WAAW,CAC1C,CAAC,WAAmB,EAAE,EAAE;QACtB,GAAG,CAAC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,GAAG,EAAE,QAAQ,CAAC,CAChB,CAAC;IAEF,OAAO,EAAC,gBAAgB,EAAE,wBAAwB,EAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iCAAiC;IAG/C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,GAAG,8BAA8B,EAAE,CAAC;IAEjD,SAAS,2BAA2B,CAAC,QAAgB;QACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAE,CAAC;QACxC,MAAM,EAAC,oBAAoB,EAAC,GAAG,KAAK,CAAC,QAAQ,CAAE,CAAC;QAEhD,OAAO,CACL,QAAQ,CAAC,QAAQ,CAAC,IAAI,CACpB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,oBAAoB,CACnD,IAAI,IAAI,CACV,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,WAAW,CACvB,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { type ReactNode } from 'react';
8
+ import type { PropSidebar } from '@docusaurus/plugin-content-docs';
9
+ declare type ContextValue = {
10
+ name: string;
11
+ items: PropSidebar;
12
+ };
13
+ /**
14
+ * Provide the current sidebar to your children.
15
+ */
16
+ export declare function DocsSidebarProvider({ children, name, items, }: {
17
+ children: ReactNode;
18
+ name: string | undefined;
19
+ items: PropSidebar | undefined;
20
+ }): JSX.Element;
21
+ /**
22
+ * Gets the sidebar that's currently displayed, or `null` if there isn't one
23
+ */
24
+ export declare function useDocsSidebar(): ContextValue | null;
25
+ export {};
26
+ //# sourceMappingURL=docsSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docsSidebar.d.ts","sourceRoot":"","sources":["../../src/contexts/docsSidebar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAc,EAAsB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAEjE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iCAAiC,CAAC;AAMjE,aAAK,YAAY,GAAG;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAC,CAAC;AAMvD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,IAAI,EACJ,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;CAChC,GAAG,GAAG,CAAC,OAAO,CAMd;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,YAAY,GAAG,IAAI,CAMpD"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, { useMemo, useContext } from 'react';
8
+ import { ReactContextError } from '../utils/reactUtils';
9
+ // Using a Symbol because null is a valid context value (a doc with no sidebar)
10
+ // Inspired by https://github.com/jamiebuilds/unstated-next/blob/master/src/unstated-next.tsx
11
+ const EmptyContext = Symbol('EmptyContext');
12
+ const Context = React.createContext(EmptyContext);
13
+ /**
14
+ * Provide the current sidebar to your children.
15
+ */
16
+ export function DocsSidebarProvider({ children, name, items, }) {
17
+ const stableValue = useMemo(() => (name && items ? { name, items } : null), [name, items]);
18
+ return <Context.Provider value={stableValue}>{children}</Context.Provider>;
19
+ }
20
+ /**
21
+ * Gets the sidebar that's currently displayed, or `null` if there isn't one
22
+ */
23
+ export function useDocsSidebar() {
24
+ const value = useContext(Context);
25
+ if (value === EmptyContext) {
26
+ throw new ReactContextError('DocsSidebarProvider');
27
+ }
28
+ return value;
29
+ }
30
+ //# sourceMappingURL=docsSidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docsSidebar.js","sourceRoot":"","sources":["../../src/contexts/docsSidebar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAE,UAAU,EAAiB,MAAM,OAAO,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAGtD,+EAA+E;AAC/E,6FAA6F;AAC7F,MAAM,YAAY,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AAI3D,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CACjC,YAAY,CACb,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,QAAQ,EACR,IAAI,EACJ,KAAK,GAKN;IACC,MAAM,WAAW,GAAwB,OAAO,CAC9C,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAC5C,CAAC,IAAI,EAAE,KAAK,CAAC,CACd,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,YAAY,EAAE;QAC1B,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;KACpD;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,20 @@
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 { type ReactNode } from 'react';
8
+ import type { PropVersionMetadata } from '@docusaurus/plugin-content-docs';
9
+ /**
10
+ * Provide the current version's metadata to your children.
11
+ */
12
+ export declare function DocsVersionProvider({ children, version, }: {
13
+ children: ReactNode;
14
+ version: PropVersionMetadata | null;
15
+ }): JSX.Element;
16
+ /**
17
+ * Gets the version metadata of the current doc page.
18
+ */
19
+ export declare function useDocsVersion(): PropVersionMetadata;
20
+ //# sourceMappingURL=docsVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docsVersion.d.ts","sourceRoot":"","sources":["../../src/contexts/docsVersion.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAc,EAAC,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAExD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAIzE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACrC,GAAG,GAAG,CAAC,OAAO,CAEd;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,mBAAmB,CAMpD"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, { useContext } from 'react';
8
+ import { ReactContextError } from '../utils/reactUtils';
9
+ const Context = React.createContext(null);
10
+ /**
11
+ * Provide the current version's metadata to your children.
12
+ */
13
+ export function DocsVersionProvider({ children, version, }) {
14
+ return <Context.Provider value={version}>{children}</Context.Provider>;
15
+ }
16
+ /**
17
+ * Gets the version metadata of the current doc page.
18
+ */
19
+ export function useDocsVersion() {
20
+ const version = useContext(Context);
21
+ if (version === null) {
22
+ throw new ReactContextError('DocsVersionProvider');
23
+ }
24
+ return version;
25
+ }
26
+ //# sourceMappingURL=docsVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docsVersion.js","sourceRoot":"","sources":["../../src/contexts/docsVersion.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAiB,UAAU,EAAC,MAAM,OAAO,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAGtD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAA6B,IAAI,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,QAAQ,EACR,OAAO,GAIR;IACC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;KACpD;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,31 @@
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 { type ReactNode } from 'react';
8
+ declare type ContextValue = {
9
+ /**
10
+ * Mobile sidebar should be disabled in case it's empty, i.e. no secondary
11
+ * menu + no navbar items). If disabled, the toggle button should not be
12
+ * displayed at all.
13
+ */
14
+ disabled: boolean;
15
+ /**
16
+ * Signals whether the actual sidebar should be displayed (contrary to
17
+ * `disabled` which is about the toggle button). Sidebar should not visible
18
+ * until user interaction to avoid SSR rendering.
19
+ */
20
+ shouldRender: boolean;
21
+ /** The displayed state. Can be toggled with the `toggle` callback. */
22
+ shown: boolean;
23
+ /** Toggle the `shown` attribute. */
24
+ toggle: () => void;
25
+ };
26
+ export declare function NavbarMobileSidebarProvider({ children, }: {
27
+ children: ReactNode;
28
+ }): JSX.Element;
29
+ export declare function useNavbarMobileSidebar(): ContextValue;
30
+ export {};
31
+ //# sourceMappingURL=navbarMobileSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navbarMobileSidebar.d.ts","sourceRoot":"","sources":["../../src/contexts/navbarMobileSidebar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAc,EAKZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAOf,aAAK,YAAY,GAAG;IAClB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,sEAAsE;IACtE,KAAK,EAAE,OAAO,CAAC;IACf,oCAAoC;IACpC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AA8CF,wBAAgB,2BAA2B,CAAC,EAC1C,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,GAAG,CAAC,OAAO,CAGd;AAED,wBAAgB,sBAAsB,IAAI,YAAY,CAMrD"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, { useCallback, useEffect, useState, useMemo, } from 'react';
8
+ import { useNavbarSecondaryMenuContent } from './navbarSecondaryMenu/content';
9
+ import { useWindowSize } from '../hooks/useWindowSize';
10
+ import { useHistoryPopHandler } from '../utils/historyUtils';
11
+ import { useThemeConfig } from '../utils/useThemeConfig';
12
+ import { ReactContextError } from '../utils/reactUtils';
13
+ const Context = React.createContext(undefined);
14
+ function useIsNavbarMobileSidebarDisabled() {
15
+ const secondaryMenuContent = useNavbarSecondaryMenuContent();
16
+ const { items } = useThemeConfig().navbar;
17
+ return items.length === 0 && !secondaryMenuContent.component;
18
+ }
19
+ function useContextValue() {
20
+ const disabled = useIsNavbarMobileSidebarDisabled();
21
+ const windowSize = useWindowSize();
22
+ const shouldRender = !disabled && windowSize === 'mobile';
23
+ const [shown, setShown] = useState(false);
24
+ // Close mobile sidebar on navigation pop
25
+ // Most likely firing when using the Android back button (but not only)
26
+ useHistoryPopHandler(() => {
27
+ if (shown) {
28
+ setShown(false);
29
+ // Prevent pop navigation; seems desirable enough
30
+ // See https://github.com/facebook/docusaurus/pull/5462#issuecomment-911699846
31
+ return false;
32
+ }
33
+ return undefined;
34
+ });
35
+ const toggle = useCallback(() => {
36
+ setShown((s) => !s);
37
+ }, []);
38
+ useEffect(() => {
39
+ if (windowSize === 'desktop') {
40
+ setShown(false);
41
+ }
42
+ }, [windowSize]);
43
+ return useMemo(() => ({ disabled, shouldRender, toggle, shown }), [disabled, shouldRender, toggle, shown]);
44
+ }
45
+ export function NavbarMobileSidebarProvider({ children, }) {
46
+ const value = useContextValue();
47
+ return <Context.Provider value={value}>{children}</Context.Provider>;
48
+ }
49
+ export function useNavbarMobileSidebar() {
50
+ const context = React.useContext(Context);
51
+ if (context === undefined) {
52
+ throw new ReactContextError('NavbarMobileSidebarProvider');
53
+ }
54
+ return context;
55
+ }
56
+ //# sourceMappingURL=navbarMobileSidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navbarMobileSidebar.js","sourceRoot":"","sources":["../../src/contexts/navbarMobileSidebar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,OAAO,GAER,MAAM,OAAO,CAAC;AACf,OAAO,EAAC,6BAA6B,EAAC,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAqBtD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAA2B,SAAS,CAAC,CAAC;AAEzE,SAAS,gCAAgC;IACvC,MAAM,oBAAoB,GAAG,6BAA6B,EAAE,CAAC;IAC7D,MAAM,EAAC,KAAK,EAAC,GAAG,cAAc,EAAE,CAAC,MAAM,CAAC;IACxC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,QAAQ,GAAG,gCAAgC,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,MAAM,YAAY,GAAG,CAAC,QAAQ,IAAI,UAAU,KAAK,QAAQ,CAAC;IAE1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,yCAAyC;IACzC,uEAAuE;IACvE,oBAAoB,CAAC,GAAG,EAAE;QACxB,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,iDAAiD;YACjD,8EAA8E;YAC9E,OAAO,KAAK,CAAC;SACd;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,QAAQ,CAAC,KAAK,CAAC,CAAC;SACjB;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC,EAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,EAC/C,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,EAC1C,QAAQ,GAGT;IACC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,iBAAiB,CAAC,6BAA6B,CAAC,CAAC;KAC5D;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,37 @@
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 { type ReactNode, type ComponentType } from 'react';
8
+ export declare type NavbarSecondaryMenuComponent<Props> = ComponentType<Props>;
9
+ /** @internal */
10
+ export declare type Content = {
11
+ component: NavbarSecondaryMenuComponent<object>;
12
+ props: object;
13
+ } | {
14
+ component: null;
15
+ props: null;
16
+ };
17
+ /** @internal */
18
+ export declare function NavbarSecondaryMenuContentProvider({ children, }: {
19
+ children: ReactNode;
20
+ }): JSX.Element;
21
+ /** @internal */
22
+ export declare function useNavbarSecondaryMenuContent(): Content;
23
+ /**
24
+ * This component renders nothing by itself, but it fills the placeholder in the
25
+ * generic secondary menu layout. This reduces coupling between the main layout
26
+ * and the specific page.
27
+ *
28
+ * This kind of feature is often called portal/teleport/gateway/outlet...
29
+ * Various unmaintained React libs exist. Most up-to-date one:
30
+ * https://github.com/gregberge/react-teleporter
31
+ * Not sure any of those is safe regarding concurrent mode.
32
+ */
33
+ export declare function NavbarSecondaryMenuFiller<P extends object>({ component, props, }: {
34
+ component: NavbarSecondaryMenuComponent<P>;
35
+ props: P;
36
+ }): JSX.Element | null;
37
+ //# sourceMappingURL=content.d.ts.map