@docusaurus/theme-common 2.0.0-beta.15d451942 → 2.0.0-beta.18

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 (229) hide show
  1. package/lib/components/Collapsible/index.d.ts +64 -0
  2. package/lib/components/Collapsible/index.d.ts.map +1 -0
  3. package/lib/components/Collapsible/index.js +152 -0
  4. package/lib/components/Collapsible/index.js.map +1 -0
  5. package/lib/components/Details/index.d.ts +17 -0
  6. package/lib/components/Details/index.d.ts.map +1 -0
  7. package/lib/components/Details/index.js +70 -0
  8. package/lib/components/Details/index.js.map +1 -0
  9. package/lib/components/Details/styles.module.css +58 -0
  10. package/lib/contexts/announcementBar.d.ts +22 -0
  11. package/lib/contexts/announcementBar.d.ts.map +1 -0
  12. package/lib/contexts/announcementBar.js +72 -0
  13. package/lib/contexts/announcementBar.js.map +1 -0
  14. package/lib/contexts/colorMode.d.ts +27 -0
  15. package/lib/contexts/colorMode.d.ts.map +1 -0
  16. package/lib/contexts/colorMode.js +114 -0
  17. package/lib/contexts/colorMode.js.map +1 -0
  18. package/lib/contexts/docSidebarItemsExpandedState.d.ts +31 -0
  19. package/lib/contexts/docSidebarItemsExpandedState.d.ts.map +1 -0
  20. package/lib/contexts/docSidebarItemsExpandedState.js +28 -0
  21. package/lib/contexts/docSidebarItemsExpandedState.js.map +1 -0
  22. package/lib/contexts/docsPreferredVersion.d.ts +28 -0
  23. package/lib/contexts/docsPreferredVersion.d.ts.map +1 -0
  24. package/lib/contexts/docsPreferredVersion.js +125 -0
  25. package/lib/contexts/docsPreferredVersion.js.map +1 -0
  26. package/lib/contexts/docsSidebar.d.ts +20 -0
  27. package/lib/contexts/docsSidebar.d.ts.map +1 -0
  28. package/lib/contexts/docsSidebar.js +29 -0
  29. package/lib/contexts/docsSidebar.js.map +1 -0
  30. package/lib/contexts/docsVersion.d.ts +20 -0
  31. package/lib/contexts/docsVersion.d.ts.map +1 -0
  32. package/lib/contexts/docsVersion.js +26 -0
  33. package/lib/contexts/docsVersion.js.map +1 -0
  34. package/lib/contexts/navbarMobileSidebar.d.ts +31 -0
  35. package/lib/contexts/navbarMobileSidebar.d.ts.map +1 -0
  36. package/lib/contexts/navbarMobileSidebar.js +56 -0
  37. package/lib/contexts/navbarMobileSidebar.js.map +1 -0
  38. package/lib/contexts/navbarSecondaryMenu.d.ts +38 -0
  39. package/lib/contexts/navbarSecondaryMenu.d.ts.map +1 -0
  40. package/lib/contexts/navbarSecondaryMenu.js +93 -0
  41. package/lib/contexts/navbarSecondaryMenu.js.map +1 -0
  42. package/lib/contexts/tabGroupChoice.d.ts +21 -0
  43. package/lib/contexts/tabGroupChoice.d.ts.map +1 -0
  44. package/lib/contexts/tabGroupChoice.js +49 -0
  45. package/lib/contexts/tabGroupChoice.js.map +1 -0
  46. package/lib/{utils/useChangeRoute.d.ts → hooks/styles.css} +4 -1
  47. package/lib/hooks/useHideableNavbar.d.ts +17 -0
  48. package/lib/hooks/useHideableNavbar.d.ts.map +1 -0
  49. package/lib/hooks/useHideableNavbar.js +61 -0
  50. package/lib/hooks/useHideableNavbar.js.map +1 -0
  51. package/lib/hooks/useKeyboardNavigation.d.ts +20 -0
  52. package/lib/hooks/useKeyboardNavigation.d.ts.map +1 -0
  53. package/lib/hooks/useKeyboardNavigation.js +39 -0
  54. package/lib/hooks/useKeyboardNavigation.js.map +1 -0
  55. package/lib/hooks/useLockBodyScroll.d.ts +12 -0
  56. package/lib/hooks/useLockBodyScroll.d.ts.map +1 -0
  57. package/lib/hooks/useLockBodyScroll.js +20 -0
  58. package/lib/hooks/useLockBodyScroll.js.map +1 -0
  59. package/lib/hooks/usePrismTheme.d.ts +13 -0
  60. package/lib/hooks/usePrismTheme.d.ts.map +1 -0
  61. package/lib/hooks/usePrismTheme.js +22 -0
  62. package/lib/hooks/usePrismTheme.js.map +1 -0
  63. package/lib/hooks/useSearchPage.d.ts +25 -0
  64. package/lib/hooks/useSearchPage.d.ts.map +1 -0
  65. package/lib/hooks/useSearchPage.js +43 -0
  66. package/lib/hooks/useSearchPage.js.map +1 -0
  67. package/lib/hooks/useTOCHighlight.d.ts +25 -0
  68. package/lib/hooks/useTOCHighlight.d.ts.map +1 -0
  69. package/lib/hooks/useTOCHighlight.js +130 -0
  70. package/lib/hooks/useTOCHighlight.js.map +1 -0
  71. package/lib/hooks/useWindowSize.d.ts +28 -0
  72. package/lib/hooks/useWindowSize.d.ts.map +1 -0
  73. package/lib/hooks/useWindowSize.js +59 -0
  74. package/lib/hooks/useWindowSize.js.map +1 -0
  75. package/lib/index.d.ts +36 -9
  76. package/lib/index.d.ts.map +1 -0
  77. package/lib/index.js +36 -8
  78. package/lib/index.js.map +1 -0
  79. package/lib/utils/ThemeClassNames.d.ts +47 -12
  80. package/lib/utils/ThemeClassNames.d.ts.map +1 -0
  81. package/lib/utils/ThemeClassNames.js +45 -4
  82. package/lib/utils/ThemeClassNames.js.map +1 -0
  83. package/lib/utils/codeBlockUtils.d.ts +33 -0
  84. package/lib/utils/codeBlockUtils.d.ts.map +1 -0
  85. package/lib/utils/codeBlockUtils.js +126 -3
  86. package/lib/utils/codeBlockUtils.js.map +1 -0
  87. package/lib/utils/docsUtils.d.ts +33 -0
  88. package/lib/utils/docsUtils.d.ts.map +1 -0
  89. package/lib/utils/docsUtils.js +118 -1
  90. package/lib/utils/docsUtils.js.map +1 -0
  91. package/lib/utils/footerUtils.d.ts +13 -0
  92. package/lib/utils/footerUtils.d.ts.map +1 -0
  93. package/lib/utils/footerUtils.js +14 -0
  94. package/lib/utils/footerUtils.js.map +1 -0
  95. package/lib/utils/generalUtils.d.ts +11 -1
  96. package/lib/utils/generalUtils.d.ts.map +1 -0
  97. package/lib/utils/generalUtils.js +9 -5
  98. package/lib/utils/generalUtils.js.map +1 -0
  99. package/lib/utils/historyUtils.d.ts +17 -0
  100. package/lib/utils/historyUtils.d.ts.map +1 -0
  101. package/lib/utils/historyUtils.js +38 -0
  102. package/lib/utils/historyUtils.js.map +1 -0
  103. package/lib/utils/jsUtils.d.ts +23 -0
  104. package/lib/utils/jsUtils.d.ts.map +1 -0
  105. package/lib/utils/jsUtils.js +29 -0
  106. package/lib/utils/jsUtils.js.map +1 -0
  107. package/lib/utils/metadataUtils.d.ts +38 -0
  108. package/lib/utils/metadataUtils.d.ts.map +1 -0
  109. package/lib/utils/metadataUtils.js +61 -0
  110. package/lib/utils/metadataUtils.js.map +1 -0
  111. package/lib/utils/navbarUtils.d.ts +21 -0
  112. package/lib/utils/navbarUtils.d.ts.map +1 -0
  113. package/lib/utils/navbarUtils.js +30 -0
  114. package/lib/utils/navbarUtils.js.map +1 -0
  115. package/lib/utils/reactUtils.d.ts +42 -0
  116. package/lib/utils/reactUtils.d.ts.map +1 -0
  117. package/lib/utils/reactUtils.js +64 -0
  118. package/lib/utils/reactUtils.js.map +1 -0
  119. package/lib/utils/regexpUtils.d.ts +12 -0
  120. package/lib/utils/regexpUtils.d.ts.map +1 -0
  121. package/lib/utils/regexpUtils.js +18 -0
  122. package/lib/utils/regexpUtils.js.map +1 -0
  123. package/lib/utils/routesUtils.d.ts +26 -0
  124. package/lib/utils/routesUtils.d.ts.map +1 -0
  125. package/lib/utils/routesUtils.js +54 -0
  126. package/lib/utils/routesUtils.js.map +1 -0
  127. package/lib/utils/scrollUtils.d.ts +59 -0
  128. package/lib/utils/scrollUtils.d.ts.map +1 -0
  129. package/lib/utils/scrollUtils.js +148 -0
  130. package/lib/utils/scrollUtils.js.map +1 -0
  131. package/lib/utils/searchUtils.d.ts +13 -0
  132. package/lib/utils/searchUtils.d.ts.map +1 -0
  133. package/lib/utils/searchUtils.js +35 -0
  134. package/lib/utils/searchUtils.js.map +1 -0
  135. package/lib/utils/storageUtils.d.ts +13 -5
  136. package/lib/utils/storageUtils.d.ts.map +1 -0
  137. package/lib/utils/storageUtils.js +58 -25
  138. package/lib/utils/storageUtils.js.map +1 -0
  139. package/lib/utils/tagsUtils.d.ts +22 -0
  140. package/lib/utils/tagsUtils.d.ts.map +1 -0
  141. package/lib/utils/tagsUtils.js +36 -0
  142. package/lib/utils/tagsUtils.js.map +1 -0
  143. package/lib/utils/tocUtils.d.ts +36 -0
  144. package/lib/utils/tocUtils.d.ts.map +1 -0
  145. package/lib/utils/tocUtils.js +84 -0
  146. package/lib/utils/tocUtils.js.map +1 -0
  147. package/lib/utils/useAlternatePageUtils.d.ts +21 -1
  148. package/lib/utils/useAlternatePageUtils.d.ts.map +1 -0
  149. package/lib/utils/useAlternatePageUtils.js +9 -4
  150. package/lib/utils/useAlternatePageUtils.js.map +1 -0
  151. package/lib/utils/useLocalPathname.d.ts +13 -0
  152. package/lib/utils/useLocalPathname.d.ts.map +1 -0
  153. package/lib/utils/useLocalPathname.js +19 -0
  154. package/lib/utils/useLocalPathname.js.map +1 -0
  155. package/lib/utils/useLocationChange.d.ts +17 -0
  156. package/lib/utils/useLocationChange.d.ts.map +1 -0
  157. package/lib/utils/useLocationChange.js +31 -0
  158. package/lib/utils/useLocationChange.js.map +1 -0
  159. package/lib/utils/usePluralForm.d.ts +12 -0
  160. package/lib/utils/usePluralForm.d.ts.map +1 -0
  161. package/lib/utils/usePluralForm.js +36 -37
  162. package/lib/utils/usePluralForm.js.map +1 -0
  163. package/lib/utils/useThemeConfig.d.ts +50 -22
  164. package/lib/utils/useThemeConfig.d.ts.map +1 -0
  165. package/lib/utils/useThemeConfig.js +4 -0
  166. package/lib/utils/useThemeConfig.js.map +1 -0
  167. package/package.json +18 -13
  168. package/src/components/Collapsible/index.tsx +265 -0
  169. package/src/components/Details/index.tsx +107 -0
  170. package/src/components/Details/styles.module.css +58 -0
  171. package/src/contexts/announcementBar.tsx +119 -0
  172. package/src/contexts/colorMode.tsx +176 -0
  173. package/src/contexts/docSidebarItemsExpandedState.tsx +55 -0
  174. package/src/contexts/docsPreferredVersion.tsx +250 -0
  175. package/src/contexts/docsSidebar.tsx +42 -0
  176. package/src/contexts/docsVersion.tsx +36 -0
  177. package/src/contexts/navbarMobileSidebar.tsx +99 -0
  178. package/src/contexts/navbarSecondaryMenu.tsx +170 -0
  179. package/src/contexts/tabGroupChoice.tsx +82 -0
  180. package/{lib/utils/pathUtils.d.ts → src/hooks/styles.css} +4 -1
  181. package/src/hooks/useHideableNavbar.ts +77 -0
  182. package/src/hooks/useKeyboardNavigation.ts +45 -0
  183. package/src/hooks/useLockBodyScroll.ts +21 -0
  184. package/src/hooks/usePrismTheme.ts +24 -0
  185. package/src/hooks/useSearchPage.ts +79 -0
  186. package/src/hooks/useTOCHighlight.ts +192 -0
  187. package/src/hooks/useWindowSize.ts +72 -0
  188. package/src/index.ts +129 -18
  189. package/src/types.d.ts +0 -2
  190. package/src/utils/ThemeClassNames.ts +51 -5
  191. package/src/utils/codeBlockUtils.ts +155 -2
  192. package/src/utils/docsUtils.tsx +180 -0
  193. package/src/utils/footerUtils.ts +18 -0
  194. package/src/utils/generalUtils.ts +9 -5
  195. package/src/utils/historyUtils.ts +45 -0
  196. package/src/utils/jsUtils.ts +36 -0
  197. package/src/utils/metadataUtils.tsx +115 -0
  198. package/src/utils/navbarUtils.tsx +40 -0
  199. package/src/utils/reactUtils.tsx +76 -0
  200. package/src/utils/regexpUtils.ts +24 -0
  201. package/src/utils/routesUtils.ts +75 -0
  202. package/src/utils/scrollUtils.tsx +234 -0
  203. package/src/utils/searchUtils.ts +49 -0
  204. package/src/utils/storageUtils.ts +57 -24
  205. package/src/utils/tagsUtils.ts +55 -0
  206. package/src/utils/tocUtils.ts +119 -0
  207. package/src/utils/useAlternatePageUtils.ts +28 -7
  208. package/src/utils/useLocalPathname.ts +22 -0
  209. package/src/utils/useLocationChange.ts +41 -0
  210. package/src/utils/usePluralForm.ts +49 -39
  211. package/src/utils/useThemeConfig.ts +49 -24
  212. package/lib/.tsbuildinfo +0 -4159
  213. package/lib/utils/docsPreferredVersion/DocsPreferredVersionProvider.d.ts +0 -21
  214. package/lib/utils/docsPreferredVersion/DocsPreferredVersionProvider.js +0 -94
  215. package/lib/utils/docsPreferredVersion/DocsPreferredVersionStorage.d.ts +0 -13
  216. package/lib/utils/docsPreferredVersion/DocsPreferredVersionStorage.js +0 -20
  217. package/lib/utils/docsPreferredVersion/useDocsPreferredVersion.d.ts +0 -5
  218. package/lib/utils/docsPreferredVersion/useDocsPreferredVersion.js +0 -41
  219. package/lib/utils/pathUtils.js +0 -13
  220. package/lib/utils/useChangeRoute.js +0 -18
  221. package/src/utils/__tests__/codeBlockUtils.test.ts +0 -54
  222. package/src/utils/__tests__/pathUtils.test.ts +0 -32
  223. package/src/utils/docsPreferredVersion/DocsPreferredVersionProvider.tsx +0 -165
  224. package/src/utils/docsPreferredVersion/DocsPreferredVersionStorage.ts +0 -34
  225. package/src/utils/docsPreferredVersion/useDocsPreferredVersion.ts +0 -66
  226. package/src/utils/docsUtils.ts +0 -11
  227. package/src/utils/pathUtils.ts +0 -17
  228. package/src/utils/useChangeRoute.ts +0 -21
  229. package/tsconfig.json +0 -10
@@ -4,9 +4,10 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+
7
8
  import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
8
- import {PrismTheme} from 'prism-react-renderer';
9
- import {CSSProperties} from 'react';
9
+ import type {PrismTheme} from 'prism-react-renderer';
10
+ import type {DeepPartial} from 'utility-types';
10
11
 
11
12
  export type DocsVersionPersistence = 'localStorage' | 'none';
12
13
 
@@ -16,11 +17,13 @@ export type NavbarItem = {
16
17
  items?: NavbarItem[];
17
18
  label?: string;
18
19
  position?: 'left' | 'right';
19
- };
20
+ } & {[key: string]: unknown};
20
21
 
21
22
  export type NavbarLogo = {
22
23
  src: string;
23
24
  srcDark?: string;
25
+ width?: string | number;
26
+ height?: string | number;
24
27
  href?: string;
25
28
  target?: string;
26
29
  alt?: string;
@@ -39,12 +42,6 @@ export type ColorModeConfig = {
39
42
  defaultMode: 'light' | 'dark';
40
43
  disableSwitch: boolean;
41
44
  respectPrefersColorScheme: boolean;
42
- switchConfig: {
43
- darkIcon: string;
44
- darkIconStyle: CSSProperties;
45
- lightIcon: string;
46
- lightIconStyle: CSSProperties;
47
- };
48
45
  };
49
46
 
50
47
  export type AnnouncementBarConfig = {
@@ -59,7 +56,7 @@ export type PrismConfig = {
59
56
  theme?: PrismTheme;
60
57
  darkTheme?: PrismTheme;
61
58
  defaultLanguage?: string;
62
- additionalLanguages?: string[];
59
+ additionalLanguages: string[];
63
60
  };
64
61
 
65
62
  export type FooterLinkItem = {
@@ -68,23 +65,42 @@ export type FooterLinkItem = {
68
65
  href?: string;
69
66
  html?: string;
70
67
  prependBaseUrlToHref?: string;
68
+ } & {[key: string]: unknown};
69
+
70
+ export type FooterLogo = {
71
+ alt?: string;
72
+ src: string;
73
+ srcDark?: string;
74
+ width?: string | number;
75
+ height?: string | number;
76
+ href?: string;
71
77
  };
72
- export type FooterLinks = {
73
- title?: string;
74
- items: FooterLinkItem[];
75
- };
76
- export type Footer = {
78
+
79
+ export type FooterBase = {
77
80
  style: 'light' | 'dark';
78
- logo?: {
79
- alt?: string;
80
- src?: string;
81
- srcDark?: string;
82
- href?: string;
83
- };
81
+ logo?: FooterLogo;
84
82
  copyright?: string;
85
- links: FooterLinks[];
86
83
  };
87
84
 
85
+ export type MultiColumnFooter = FooterBase & {
86
+ links: Array<{
87
+ title: string | null;
88
+ items: FooterLinkItem[];
89
+ }>;
90
+ };
91
+
92
+ export type SimpleFooter = FooterBase & {
93
+ links: FooterLinkItem[];
94
+ };
95
+
96
+ export type Footer = MultiColumnFooter | SimpleFooter;
97
+
98
+ export type TableOfContents = {
99
+ minHeadingLevel: number;
100
+ maxHeadingLevel: number;
101
+ };
102
+
103
+ // Theme config after validation/normalization
88
104
  export type ThemeConfig = {
89
105
  docs: {
90
106
  versionPersistence: DocsVersionPersistence;
@@ -101,10 +117,19 @@ export type ThemeConfig = {
101
117
  prism: PrismConfig;
102
118
  footer?: Footer;
103
119
  hideableSidebar: boolean;
104
- image: string;
105
- metadatas: Array<Record<string, string>>;
120
+ autoCollapseSidebarCategories: boolean;
121
+ image?: string;
122
+ metadata: Array<{[key: string]: string}>;
123
+ sidebarCollapsible: boolean;
124
+ tableOfContents: TableOfContents;
106
125
  };
107
126
 
127
+ // User-provided theme config, unnormalized
128
+ export type UserThemeConfig = DeepPartial<ThemeConfig>;
129
+
130
+ /**
131
+ * A convenient/more semantic way to get theme config from context.
132
+ */
108
133
  export function useThemeConfig(): ThemeConfig {
109
134
  return useDocusaurusContext().siteConfig.themeConfig as ThemeConfig;
110
135
  }