@docusaurus/theme-classic 2.0.0-beta.13 → 2.0.0-beta.15

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 (299) hide show
  1. package/README.md +1 -1
  2. package/lib/index.js +7 -16
  3. package/lib/theme-classic.d.ts +111 -188
  4. package/lib/translations.js +13 -4
  5. package/lib/validateThemeConfig.js +18 -4
  6. package/lib-next/theme/Admonition/index.js +101 -0
  7. package/lib-next/theme/BackToTopButton/styles.module.css +1 -1
  8. package/lib-next/theme/BlogListPaginator/index.js +12 -12
  9. package/lib-next/theme/BlogPostAuthor/index.js +1 -1
  10. package/lib-next/theme/BlogPostAuthors/index.js +12 -2
  11. package/lib-next/theme/BlogPostAuthors/styles.module.css +10 -0
  12. package/lib-next/theme/BlogPostItem/index.js +12 -15
  13. package/lib-next/theme/BlogPostPage/index.js +10 -7
  14. package/lib-next/theme/BlogPostPaginator/index.js +11 -15
  15. package/lib-next/theme/BlogSidebar/styles.module.css +2 -0
  16. package/lib-next/theme/CodeBlock/index.js +51 -10
  17. package/lib-next/theme/CodeBlock/styles.module.css +18 -7
  18. package/lib-next/theme/DocCard/styles.module.css +3 -3
  19. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +6 -3
  20. package/lib-next/theme/DocItem/index.js +9 -6
  21. package/lib-next/theme/DocItem/styles.module.css +2 -2
  22. package/lib-next/theme/DocPage/index.js +7 -3
  23. package/lib-next/theme/DocPage/styles.module.css +1 -0
  24. package/lib-next/theme/DocPaginator/index.js +11 -13
  25. package/lib-next/theme/DocSidebar/index.js +2 -2
  26. package/lib-next/theme/DocSidebar/styles.module.css +1 -0
  27. package/lib-next/theme/DocSidebarItem/index.js +43 -21
  28. package/lib-next/theme/DocSidebarItem/styles.module.css +1 -0
  29. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  30. package/{lib/theme/DocSidebarItem → lib-next/theme/DocSidebarItems}/styles.module.css +1 -0
  31. package/lib-next/theme/DocVersionBanner/index.js +4 -1
  32. package/lib-next/theme/Footer/index.js +73 -35
  33. package/lib-next/theme/Footer/styles.module.css +2 -1
  34. package/lib-next/theme/Heading/index.js +39 -43
  35. package/lib-next/theme/Heading/styles.css +1 -1
  36. package/lib-next/theme/Layout/index.js +1 -2
  37. package/lib-next/theme/LayoutHead/index.js +5 -9
  38. package/lib-next/theme/LayoutProviders/index.js +6 -6
  39. package/lib-next/theme/MDXComponents/index.js +18 -31
  40. package/lib-next/theme/MDXComponents/styles.css +4 -0
  41. package/lib-next/theme/MDXPage/index.js +3 -10
  42. package/lib-next/theme/Navbar/index.js +6 -6
  43. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +4 -66
  44. package/lib-next/theme/NavbarItem/DocNavbarItem.js +5 -2
  45. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  46. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +5 -3
  47. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  48. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +6 -7
  49. package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
  50. package/lib-next/theme/NavbarItem/index.js +1 -2
  51. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  52. package/lib-next/theme/PaginatorNavLink/index.js +20 -0
  53. package/lib-next/theme/SkipToContent/index.js +1 -1
  54. package/lib-next/theme/SkipToContent/styles.module.css +7 -0
  55. package/lib-next/theme/TOCCollapsible/styles.module.css +2 -2
  56. package/lib-next/theme/Tabs/__tests__/index.test.js +8 -6
  57. package/lib-next/theme/Tabs/index.js +20 -10
  58. package/lib-next/theme/Tag/styles.module.css +4 -4
  59. package/lib-next/theme/ThemedImage/index.js +2 -2
  60. package/lib-next/theme/Toggle/styles.module.css +16 -15
  61. package/lib-next/theme/prism-include-languages.js +10 -3
  62. package/package.json +17 -19
  63. package/src/index.ts +12 -26
  64. package/src/theme/Admonition/index.tsx +106 -0
  65. package/src/theme/BackToTopButton/styles.module.css +1 -1
  66. package/src/theme/BlogListPaginator/index.tsx +12 -12
  67. package/src/theme/BlogPostAuthor/index.tsx +1 -1
  68. package/src/theme/BlogPostAuthors/index.tsx +12 -2
  69. package/src/theme/BlogPostAuthors/styles.module.css +10 -0
  70. package/src/theme/BlogPostItem/index.tsx +13 -15
  71. package/src/theme/BlogPostPage/index.tsx +10 -7
  72. package/src/theme/BlogPostPaginator/index.tsx +11 -15
  73. package/src/theme/BlogSidebar/styles.module.css +2 -0
  74. package/src/theme/CodeBlock/index.tsx +52 -11
  75. package/src/theme/CodeBlock/styles.module.css +18 -7
  76. package/src/theme/DocCard/index.tsx +2 -2
  77. package/src/theme/DocCard/styles.module.css +3 -3
  78. package/src/theme/DocCardList/index.tsx +1 -1
  79. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +7 -3
  80. package/src/theme/DocItem/index.tsx +9 -6
  81. package/src/theme/DocItem/styles.module.css +2 -2
  82. package/src/theme/DocItemFooter/index.tsx +1 -1
  83. package/src/theme/DocPage/index.tsx +8 -4
  84. package/src/theme/DocPage/styles.module.css +1 -0
  85. package/src/theme/DocPaginator/index.tsx +13 -15
  86. package/src/theme/DocSidebar/index.tsx +3 -3
  87. package/src/theme/DocSidebar/styles.module.css +1 -0
  88. package/src/theme/DocSidebarItem/index.tsx +34 -23
  89. package/src/theme/DocSidebarItem/styles.module.css +1 -0
  90. package/src/theme/DocSidebarItems/index.tsx +32 -0
  91. package/{lib/theme/DocItemFooter → src/theme/DocSidebarItems}/styles.module.css +10 -8
  92. package/src/theme/DocVersionBanner/index.tsx +3 -3
  93. package/src/theme/Footer/index.tsx +84 -38
  94. package/src/theme/Footer/styles.module.css +2 -1
  95. package/src/theme/Heading/index.tsx +39 -47
  96. package/src/theme/Heading/styles.css +1 -1
  97. package/src/theme/Layout/index.tsx +1 -2
  98. package/src/theme/LayoutHead/index.tsx +4 -8
  99. package/src/theme/LayoutProviders/index.tsx +6 -6
  100. package/src/theme/MDXComponents/index.tsx +26 -37
  101. package/src/theme/MDXComponents/styles.css +4 -0
  102. package/src/theme/MDXPage/index.tsx +3 -11
  103. package/src/theme/Navbar/index.tsx +7 -7
  104. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +6 -62
  105. package/src/theme/NavbarItem/DocNavbarItem.tsx +8 -5
  106. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  107. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +9 -6
  108. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +2 -2
  109. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +6 -7
  110. package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
  111. package/src/theme/NavbarItem/index.tsx +3 -5
  112. package/{lib-next/theme/hooks/styles.css → src/theme/NavbarItem/utils.ts} +3 -3
  113. package/src/theme/PaginatorNavLink/index.tsx +22 -0
  114. package/src/theme/SkipToContent/index.tsx +1 -1
  115. package/src/theme/SkipToContent/styles.module.css +7 -0
  116. package/src/theme/TOCCollapsible/styles.module.css +2 -2
  117. package/src/theme/TOCItems/index.tsx +2 -2
  118. package/src/theme/Tabs/index.tsx +25 -10
  119. package/src/theme/Tag/styles.module.css +4 -4
  120. package/src/theme/TagsListByLetter/index.tsx +1 -1
  121. package/src/theme/ThemedImage/index.tsx +2 -2
  122. package/src/theme/Toggle/index.tsx +1 -1
  123. package/src/theme/Toggle/styles.module.css +16 -15
  124. package/src/theme/prism-include-languages.ts +10 -3
  125. package/src/theme-classic.d.ts +111 -188
  126. package/src/translations.ts +36 -16
  127. package/src/validateThemeConfig.ts +25 -4
  128. package/babel.config.js +0 -35
  129. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  130. package/lib/__tests__/translations.test.js +0 -112
  131. package/lib/__tests__/validateThemeConfig.test.js +0 -607
  132. package/lib/theme/AnnouncementBar/index.js +0 -68
  133. package/lib/theme/AnnouncementBar/styles.module.css +0 -63
  134. package/lib/theme/BackToTopButton/index.js +0 -140
  135. package/lib/theme/BackToTopButton/styles.module.css +0 -42
  136. package/lib/theme/BlogArchivePage/index.js +0 -89
  137. package/lib/theme/BlogLayout/index.js +0 -51
  138. package/lib/theme/BlogListPage/index.js +0 -60
  139. package/lib/theme/BlogListPaginator/index.js +0 -63
  140. package/lib/theme/BlogPostAuthor/index.js +0 -51
  141. package/lib/theme/BlogPostAuthor/styles.module.css +0 -12
  142. package/lib/theme/BlogPostAuthors/index.js +0 -47
  143. package/lib/theme/BlogPostAuthors/styles.module.css +0 -11
  144. package/lib/theme/BlogPostItem/index.js +0 -152
  145. package/lib/theme/BlogPostItem/styles.module.css +0 -18
  146. package/lib/theme/BlogPostPage/index.js +0 -82
  147. package/lib/theme/BlogPostPaginator/index.js +0 -64
  148. package/lib/theme/BlogSidebar/index.js +0 -49
  149. package/lib/theme/BlogSidebar/styles.module.css +0 -44
  150. package/lib/theme/BlogTagsListPage/index.js +0 -40
  151. package/lib/theme/BlogTagsPostsPage/index.js +0 -86
  152. package/lib/theme/CodeBlock/index.js +0 -133
  153. package/lib/theme/CodeBlock/styles.module.css +0 -65
  154. package/lib/theme/Details/index.js +0 -30
  155. package/lib/theme/Details/styles.module.css +0 -13
  156. package/lib/theme/DocCard/index.js +0 -84
  157. package/lib/theme/DocCard/styles.module.css +0 -43
  158. package/lib/theme/DocCardList/index.js +0 -28
  159. package/lib/theme/DocCategoryGeneratedIndexPage/index.js +0 -57
  160. package/lib/theme/DocCategoryGeneratedIndexPage/styles.module.css +0 -18
  161. package/lib/theme/DocItem/index.js +0 -112
  162. package/lib/theme/DocItem/styles.module.css +0 -22
  163. package/lib/theme/DocItemFooter/index.js +0 -79
  164. package/lib/theme/DocPage/index.js +0 -154
  165. package/lib/theme/DocPage/styles.module.css +0 -85
  166. package/lib/theme/DocPaginator/index.js +0 -62
  167. package/lib/theme/DocSidebar/index.js +0 -134
  168. package/lib/theme/DocSidebar/styles.module.css +0 -106
  169. package/lib/theme/DocSidebarItem/index.js +0 -209
  170. package/lib/theme/DocTagDocListPage/index.js +0 -89
  171. package/lib/theme/DocTagsListPage/index.js +0 -44
  172. package/lib/theme/DocVersionBadge/index.js +0 -34
  173. package/lib/theme/DocVersionBanner/index.js +0 -130
  174. package/lib/theme/EditThisPage/index.js +0 -33
  175. package/lib/theme/ErrorPageContent.js +0 -43
  176. package/lib/theme/Footer/index.js +0 -119
  177. package/lib/theme/Footer/styles.module.css +0 -15
  178. package/lib/theme/Heading/index.js +0 -71
  179. package/lib/theme/Heading/styles.css +0 -22
  180. package/lib/theme/Heading/styles.module.css +0 -19
  181. package/lib/theme/IconArrow/index.js +0 -28
  182. package/lib/theme/IconClose/index.js +0 -31
  183. package/lib/theme/IconEdit/index.js +0 -34
  184. package/lib/theme/IconEdit/styles.module.css +0 -11
  185. package/lib/theme/IconExternalLink/index.js +0 -30
  186. package/lib/theme/IconExternalLink/styles.module.css +0 -12
  187. package/lib/theme/IconLanguage/index.js +0 -29
  188. package/lib/theme/IconMenu/index.js +0 -30
  189. package/lib/theme/LastUpdated/index.js +0 -63
  190. package/lib/theme/Layout/index.js +0 -68
  191. package/lib/theme/Layout/styles.css +0 -27
  192. package/lib/theme/LayoutHead/index.js +0 -149
  193. package/lib/theme/LayoutProviders/index.js +0 -40
  194. package/lib/theme/Logo/index.js +0 -62
  195. package/lib/theme/MDXComponents/index.js +0 -106
  196. package/lib/theme/MDXComponents/styles.css +0 -11
  197. package/lib/theme/MDXPage/index.js +0 -67
  198. package/lib/theme/MDXPage/styles.module.css +0 -10
  199. package/lib/theme/Navbar/index.js +0 -267
  200. package/lib/theme/Navbar/styles.module.css +0 -27
  201. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -113
  202. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -62
  203. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -83
  204. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  205. package/lib/theme/NavbarItem/DropdownNavbarItem.js +0 -155
  206. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/index.js +0 -68
  207. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +0 -11
  208. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  209. package/lib/theme/NavbarItem/index.js +0 -74
  210. package/lib/theme/NotFound.js +0 -57
  211. package/lib/theme/SearchBar.js +0 -15
  212. package/lib/theme/SearchMetadata/index.js +0 -33
  213. package/lib/theme/Seo/index.js +0 -52
  214. package/lib/theme/SkipToContent/index.js +0 -71
  215. package/lib/theme/SkipToContent/styles.module.css +0 -14
  216. package/lib/theme/TOC/index.js +0 -39
  217. package/lib/theme/TOC/styles.module.css +0 -23
  218. package/lib/theme/TOCCollapsible/index.js +0 -53
  219. package/lib/theme/TOCCollapsible/styles.module.css +0 -50
  220. package/lib/theme/TOCInline/index.js +0 -33
  221. package/lib/theme/TOCInline/styles.module.css +0 -12
  222. package/lib/theme/TOCItems/index.js +0 -78
  223. package/lib/theme/TabItem/index.js +0 -32
  224. package/lib/theme/Tabs/__tests__/index.test.js +0 -123
  225. package/lib/theme/Tabs/index.js +0 -173
  226. package/lib/theme/Tabs/styles.module.css +0 -10
  227. package/lib/theme/Tag/index.js +0 -40
  228. package/lib/theme/Tag/styles.module.css +0 -70
  229. package/lib/theme/TagsListByLetter/index.js +0 -48
  230. package/lib/theme/TagsListByLetter/styles.module.css +0 -11
  231. package/lib/theme/TagsListInline/index.js +0 -44
  232. package/lib/theme/TagsListInline/styles.module.css +0 -15
  233. package/lib/theme/ThemeContext.js +0 -21
  234. package/lib/theme/ThemeProvider/index.js +0 -43
  235. package/lib/theme/ThemedImage/index.js +0 -47
  236. package/lib/theme/ThemedImage/styles.module.css +0 -18
  237. package/lib/theme/Toggle/index.js +0 -91
  238. package/lib/theme/Toggle/styles.module.css +0 -105
  239. package/lib/theme/UserPreferencesContext.js +0 -18
  240. package/lib/theme/UserPreferencesProvider/index.js +0 -41
  241. package/lib/theme/hooks/styles.css +0 -10
  242. package/lib/theme/hooks/useDocs.js +0 -18
  243. package/lib/theme/hooks/useHideableNavbar.js +0 -74
  244. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  245. package/lib/theme/hooks/useLocationHash.js +0 -28
  246. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  247. package/lib/theme/hooks/usePrismTheme.js +0 -36
  248. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  249. package/lib/theme/hooks/useTheme.js +0 -97
  250. package/lib/theme/hooks/useThemeContext.js +0 -31
  251. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  252. package/lib/theme/hooks/useWindowSize.js +0 -68
  253. package/lib/theme/prism-include-languages.js +0 -40
  254. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  255. package/lib-next/__tests__/translations.test.js +0 -128
  256. package/lib-next/__tests__/validateThemeConfig.test.js +0 -607
  257. package/lib-next/admonitions.css +0 -35
  258. package/lib-next/deps.d.ts +0 -13
  259. package/lib-next/index.js +0 -227
  260. package/lib-next/prism-include-languages.js +0 -9
  261. package/lib-next/theme/ThemeContext.js +0 -9
  262. package/lib-next/theme/ThemeProvider/index.js +0 -28
  263. package/lib-next/theme/UserPreferencesProvider/index.js +0 -27
  264. package/lib-next/theme/hooks/useDocs.js +0 -10
  265. package/lib-next/theme/hooks/useHideableNavbar.js +0 -66
  266. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  267. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  268. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  269. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  270. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
  271. package/lib-next/theme/hooks/useTheme.js +0 -81
  272. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  273. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  274. package/lib-next/theme/hooks/useWindowSize.js +0 -59
  275. package/lib-next/theme-classic.d.ts +0 -806
  276. package/lib-next/translations.js +0 -141
  277. package/lib-next/types.d.ts +0 -11
  278. package/lib-next/validateThemeConfig.js +0 -344
  279. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  280. package/src/__tests__/translations.test.ts +0 -116
  281. package/src/__tests__/validateThemeConfig.test.js +0 -607
  282. package/src/theme/Tabs/__tests__/index.test.tsx +0 -129
  283. package/src/theme/ThemeContext.ts +0 -15
  284. package/src/theme/ThemeProvider/index.tsx +0 -28
  285. package/src/theme/UserPreferencesContext.ts +0 -12
  286. package/src/theme/UserPreferencesProvider/index.tsx +0 -30
  287. package/src/theme/hooks/styles.css +0 -10
  288. package/src/theme/hooks/useDocs.ts +0 -11
  289. package/src/theme/hooks/useHideableNavbar.ts +0 -72
  290. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  291. package/src/theme/hooks/useLocationHash.ts +0 -25
  292. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  293. package/src/theme/hooks/usePrismTheme.ts +0 -22
  294. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  295. package/src/theme/hooks/useTheme.ts +0 -91
  296. package/src/theme/hooks/useThemeContext.ts +0 -23
  297. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  298. package/src/theme/hooks/useWindowSize.ts +0 -69
  299. package/tsconfig.json +0 -11
@@ -1,607 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- import {merge} from 'lodash';
9
-
10
- const {ThemeConfigSchema, DEFAULT_CONFIG} = require('../validateThemeConfig');
11
-
12
- const {normalizeThemeConfig} = require('@docusaurus/utils-validation');
13
- const theme = require('prism-react-renderer/themes/github');
14
- const darkTheme = require('prism-react-renderer/themes/dracula');
15
-
16
- function testValidateThemeConfig(partialThemeConfig) {
17
- return normalizeThemeConfig(ThemeConfigSchema, {
18
- ...DEFAULT_CONFIG,
19
- ...partialThemeConfig,
20
- });
21
- }
22
-
23
- function testOk(partialThemeConfig) {
24
- expect(
25
- testValidateThemeConfig({...DEFAULT_CONFIG, ...partialThemeConfig}),
26
- ).toEqual({
27
- ...DEFAULT_CONFIG,
28
- ...partialThemeConfig,
29
- });
30
- }
31
-
32
- describe('themeConfig', () => {
33
- test('should accept valid theme config', () => {
34
- const userConfig = {
35
- prism: {
36
- theme,
37
- darkTheme,
38
- defaultLanguage: 'javascript',
39
- additionalLanguages: ['kotlin', 'java'],
40
- },
41
- announcementBar: {
42
- id: 'supportus',
43
- content: 'pls support',
44
- backgroundColor: '#fff',
45
- textColor: '#000',
46
- isCloseable: true,
47
- },
48
- image: 'img/docusaurus-soc.png',
49
- navbar: {
50
- style: 'primary',
51
- hideOnScroll: true,
52
- title: 'Docusaurus',
53
- logo: {
54
- alt: 'Docusaurus Logo',
55
- src: 'img/docusaurus.svg',
56
- srcDark: 'img/docusaurus_keytar.svg',
57
- },
58
- items: [
59
- {
60
- type: 'docsVersionDropdown',
61
- position: 'left',
62
- dropdownItemsBefore: [],
63
- dropdownItemsAfter: [],
64
- },
65
- {
66
- to: 'docs/next/support',
67
- label: 'Community',
68
- position: 'left',
69
- activeBaseRegex: `docs/next/(support|team|resources)`,
70
- 'aria-label': 'Community',
71
- },
72
- ],
73
- },
74
- footer: {
75
- style: 'dark',
76
- links: [
77
- {
78
- title: 'Learn',
79
- items: [
80
- {
81
- label: 'Introduction',
82
- to: 'docs',
83
- },
84
- ],
85
- },
86
- ],
87
- logo: {
88
- alt: 'Facebook Open Source Logo',
89
- src: 'img/oss_logo.png',
90
- href: 'https://opensource.facebook.com',
91
- },
92
- copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc. Built with Docusaurus.`,
93
- },
94
- tableOfContents: {
95
- minHeadingLevel: 2,
96
- maxHeadingLevel: 5,
97
- },
98
- };
99
- expect(testValidateThemeConfig(userConfig)).toEqual({
100
- ...DEFAULT_CONFIG,
101
- ...userConfig,
102
- });
103
- });
104
-
105
- test('should allow possible types of navbar items', () => {
106
- const config = {
107
- navbar: {
108
- items: [
109
- // Doc link
110
- {
111
- type: 'doc',
112
- position: 'left',
113
- docId: 'intro',
114
- label: 'Introduction',
115
- },
116
- // Regular link
117
- {
118
- to: '/guide/',
119
- label: 'Guide',
120
- position: 'left',
121
- activeBaseRegex: '/guide/',
122
- },
123
- // Regular dropdown
124
- {
125
- label: 'Community',
126
- position: 'right',
127
- items: [
128
- {
129
- label: 'Facebook',
130
- href: 'https://.facebook.com/',
131
- target: '_self',
132
- },
133
- {
134
- label: 'GitHub',
135
- href: 'https://github.com/facebook/docusaurus',
136
- className: 'github-link',
137
- },
138
- ],
139
- },
140
- // Dropdown with name
141
- {
142
- type: 'dropdown',
143
- label: 'Tools',
144
- position: 'left',
145
- items: [
146
- {
147
- type: 'doc',
148
- docId: 'npm',
149
- label: 'NPM',
150
- },
151
- {
152
- to: '/yarn',
153
- label: 'Yarn',
154
- },
155
- ],
156
- },
157
- // Doc version dropdown
158
- {
159
- type: 'docsVersionDropdown',
160
- position: 'right',
161
- dropdownActiveClassDisabled: true,
162
- dropdownItemsBefore: [
163
- {
164
- href: 'https://www.npmjs.com/package/docusaurus?activeTab=versions',
165
- label: 'Versions on npm',
166
- className: 'npm-styled',
167
- target: '_self',
168
- },
169
- ],
170
- dropdownItemsAfter: [
171
- {
172
- to: '/versions',
173
- label: 'All versions',
174
- className: 'all_vers',
175
- },
176
- ],
177
- },
178
- // External link with custom data attribute
179
- {
180
- href: 'https://github.com/facebook/docusaurus',
181
- position: 'right',
182
- className: 'header-github-link',
183
- 'aria-label': 'GitHub repository',
184
- },
185
- // Docs version
186
- {
187
- type: 'docsVersion',
188
- position: 'left',
189
- label: 'Current version',
190
- },
191
- ],
192
- },
193
- };
194
- expect(testValidateThemeConfig(config)).toEqual({
195
- ...DEFAULT_CONFIG,
196
- navbar: {
197
- ...DEFAULT_CONFIG.navbar,
198
- ...config.navbar,
199
- },
200
- });
201
- });
202
-
203
- test('should reject unknown navbar item type', () => {
204
- const config = {
205
- navbar: {
206
- items: [
207
- {
208
- type: 'joke',
209
- position: 'left',
210
- label: 'haha',
211
- },
212
- ],
213
- },
214
- };
215
- expect(() =>
216
- testValidateThemeConfig(config),
217
- ).toThrowErrorMatchingInlineSnapshot(`"Bad navbar item type joke"`);
218
- });
219
-
220
- test('should reject nested dropdowns', () => {
221
- const config = {
222
- navbar: {
223
- items: [
224
- {
225
- position: 'left',
226
- label: 'Nested',
227
- items: [
228
- {
229
- label: 'Still a dropdown',
230
- items: [
231
- {
232
- label: 'Should reject this',
233
- to: '/rejected',
234
- },
235
- ],
236
- },
237
- ],
238
- },
239
- ],
240
- },
241
- };
242
- expect(() =>
243
- testValidateThemeConfig(config),
244
- ).toThrowErrorMatchingInlineSnapshot(`"Nested dropdowns are not allowed"`);
245
- });
246
-
247
- test('should reject nested dropdowns', () => {
248
- const config = {
249
- navbar: {
250
- items: [
251
- {
252
- position: 'left',
253
- label: 'Nested',
254
- items: [{type: 'docsVersionDropdown'}],
255
- },
256
- ],
257
- },
258
- };
259
- expect(() =>
260
- testValidateThemeConfig(config),
261
- ).toThrowErrorMatchingInlineSnapshot(`"Nested dropdowns are not allowed"`);
262
- });
263
-
264
- test('should reject position attribute within dropdown', () => {
265
- const config = {
266
- navbar: {
267
- items: [
268
- {
269
- position: 'left',
270
- label: 'Dropdown',
271
- items: [
272
- {
273
- label: 'Hi',
274
- position: 'left',
275
- to: '/link',
276
- },
277
- ],
278
- },
279
- ],
280
- },
281
- };
282
- expect(() =>
283
- testValidateThemeConfig(config),
284
- ).toThrowErrorMatchingInlineSnapshot(
285
- `"\\"navbar.items[0].items[0].position\\" is not allowed"`,
286
- );
287
- });
288
-
289
- test('should give friendly error when href and to coexist', () => {
290
- const config = {
291
- navbar: {
292
- items: [
293
- {
294
- position: 'left',
295
- label: 'Nested',
296
- to: '/link',
297
- href: 'http://example.com/link',
298
- },
299
- ],
300
- },
301
- };
302
- expect(() =>
303
- testValidateThemeConfig(config),
304
- ).toThrowErrorMatchingInlineSnapshot(
305
- `"One and only one between \\"to\\" and \\"href\\" should be provided"`,
306
- );
307
- });
308
-
309
- test('should allow empty alt tags for the logo image in the header', () => {
310
- const altTagConfig = {
311
- navbar: {
312
- logo: {
313
- alt: '',
314
- src: '/arbitrary-logo.png',
315
- },
316
- hideOnScroll: false,
317
- },
318
- };
319
- expect(testValidateThemeConfig(altTagConfig)).toEqual({
320
- ...DEFAULT_CONFIG,
321
- navbar: {
322
- ...DEFAULT_CONFIG.navbar,
323
- ...altTagConfig.navbar,
324
- },
325
- });
326
- });
327
-
328
- test('should allow empty alt tags for the logo image in the footer', () => {
329
- const partialConfig = {
330
- footer: {
331
- logo: {
332
- alt: '',
333
- src: '/arbitrary-logo.png',
334
- },
335
- },
336
- };
337
- const normalizedConfig = testValidateThemeConfig(partialConfig);
338
-
339
- expect(normalizedConfig).toEqual({
340
- ...normalizedConfig,
341
- footer: {
342
- ...normalizedConfig.footer,
343
- ...partialConfig.footer,
344
- },
345
- });
346
- });
347
-
348
- test('should allow width and height specification for logo ', () => {
349
- const altTagConfig = {
350
- navbar: {
351
- logo: {
352
- alt: '',
353
- src: '/arbitrary-logo.png',
354
- srcDark: '/arbitrary-dark-logo.png',
355
- width: '20px',
356
- height: '20%',
357
- },
358
- },
359
- };
360
- expect(testValidateThemeConfig(altTagConfig)).toEqual({
361
- ...DEFAULT_CONFIG,
362
- navbar: {
363
- ...DEFAULT_CONFIG.navbar,
364
- ...altTagConfig.navbar,
365
- },
366
- });
367
- });
368
-
369
- test('should accept valid prism config', () => {
370
- const prismConfig = {
371
- prism: {
372
- additionalLanguages: ['kotlin', 'java'],
373
- },
374
- };
375
- expect(testValidateThemeConfig(prismConfig)).toEqual({
376
- ...DEFAULT_CONFIG,
377
- ...prismConfig,
378
- });
379
- });
380
-
381
- describe('customCss config', () => {
382
- test('should accept customCss undefined', () => {
383
- testOk({
384
- customCss: undefined,
385
- });
386
- });
387
-
388
- test('should accept customCss string', () => {
389
- testOk({
390
- customCss: './path/to/cssFile.css',
391
- });
392
- });
393
-
394
- test('should accept customCss string array', () => {
395
- testOk({
396
- customCss: ['./path/to/cssFile.css', './path/to/cssFile2.css'],
397
- });
398
- });
399
-
400
- test('should reject customCss number', () => {
401
- expect(() =>
402
- testValidateThemeConfig({
403
- customCss: 42,
404
- }),
405
- ).toThrowErrorMatchingInlineSnapshot(
406
- `"\\"customCss\\" must be one of [array, string]"`,
407
- );
408
- });
409
- });
410
-
411
- describe('color mode config', () => {
412
- const withDefaultValues = (colorMode) =>
413
- merge({}, DEFAULT_CONFIG.colorMode, colorMode);
414
-
415
- test('minimal config', () => {
416
- const colorMode = {
417
- switchConfig: {
418
- darkIcon: '🌙',
419
- },
420
- };
421
- expect(testValidateThemeConfig({colorMode})).toEqual({
422
- ...DEFAULT_CONFIG,
423
- colorMode: withDefaultValues(colorMode),
424
- });
425
- });
426
-
427
- test('max config', () => {
428
- const colorMode = {
429
- defaultMode: 'dark',
430
- disableSwitch: false,
431
- respectPrefersColorScheme: true,
432
- switchConfig: {
433
- darkIcon: '🌙',
434
- darkIconStyle: {
435
- marginTop: '1px',
436
- marginLeft: '2px',
437
- },
438
- lightIcon: '☀️',
439
- lightIconStyle: {
440
- marginLeft: '1px',
441
- },
442
- },
443
- };
444
- expect(testValidateThemeConfig({colorMode})).toEqual({
445
- ...DEFAULT_CONFIG,
446
- colorMode: withDefaultValues(colorMode),
447
- });
448
- });
449
-
450
- test('undefined config', () => {
451
- const colorMode = undefined;
452
- expect(testValidateThemeConfig({colorMode})).toEqual({
453
- ...DEFAULT_CONFIG,
454
- colorMode: withDefaultValues(colorMode),
455
- });
456
- });
457
-
458
- test('empty config', () => {
459
- const colorMode = {};
460
- expect(testValidateThemeConfig({colorMode})).toEqual({
461
- ...DEFAULT_CONFIG,
462
- colorMode: {
463
- ...DEFAULT_CONFIG.colorMode,
464
- ...colorMode,
465
- },
466
- });
467
- });
468
-
469
- test('empty switch config', () => {
470
- const colorMode = {
471
- switchConfig: {},
472
- };
473
- expect(testValidateThemeConfig({colorMode})).toEqual({
474
- ...DEFAULT_CONFIG,
475
- colorMode: withDefaultValues(colorMode),
476
- });
477
- });
478
- });
479
- });
480
-
481
- describe('themeConfig tableOfContents', () => {
482
- test('toc undefined', () => {
483
- const tableOfContents = undefined;
484
- expect(testValidateThemeConfig({tableOfContents})).toEqual({
485
- ...DEFAULT_CONFIG,
486
- tableOfContents: {
487
- minHeadingLevel: DEFAULT_CONFIG.tableOfContents.minHeadingLevel,
488
- maxHeadingLevel: DEFAULT_CONFIG.tableOfContents.maxHeadingLevel,
489
- },
490
- });
491
- });
492
-
493
- test('toc empty', () => {
494
- const tableOfContents = {};
495
- expect(testValidateThemeConfig({tableOfContents})).toEqual({
496
- ...DEFAULT_CONFIG,
497
- tableOfContents: {
498
- minHeadingLevel: DEFAULT_CONFIG.tableOfContents.minHeadingLevel,
499
- maxHeadingLevel: DEFAULT_CONFIG.tableOfContents.maxHeadingLevel,
500
- },
501
- });
502
- });
503
-
504
- test('toc with min', () => {
505
- const tableOfContents = {
506
- minHeadingLevel: 3,
507
- };
508
- expect(testValidateThemeConfig({tableOfContents})).toEqual({
509
- ...DEFAULT_CONFIG,
510
- tableOfContents: {
511
- minHeadingLevel: 3,
512
- maxHeadingLevel: DEFAULT_CONFIG.tableOfContents.maxHeadingLevel,
513
- },
514
- });
515
- });
516
-
517
- test('toc with max', () => {
518
- const tableOfContents = {
519
- maxHeadingLevel: 5,
520
- };
521
- expect(testValidateThemeConfig({tableOfContents})).toEqual({
522
- ...DEFAULT_CONFIG,
523
- tableOfContents: {
524
- minHeadingLevel: DEFAULT_CONFIG.tableOfContents.minHeadingLevel,
525
- maxHeadingLevel: 5,
526
- },
527
- });
528
- });
529
-
530
- test('toc with min 2.5', () => {
531
- const tableOfContents = {
532
- minHeadingLevel: 2.5,
533
- };
534
- expect(() =>
535
- testValidateThemeConfig({tableOfContents}),
536
- ).toThrowErrorMatchingInlineSnapshot(
537
- `"\\"tableOfContents.minHeadingLevel\\" must be an integer"`,
538
- );
539
- });
540
-
541
- test('toc with max 2.5', () => {
542
- const tableOfContents = {
543
- maxHeadingLevel: 2.5,
544
- };
545
- expect(() =>
546
- testValidateThemeConfig({tableOfContents}),
547
- ).toThrowErrorMatchingInlineSnapshot(
548
- `"\\"tableOfContents.maxHeadingLevel\\" must be an integer"`,
549
- );
550
- });
551
-
552
- test('toc with min 1', () => {
553
- const tableOfContents = {
554
- minHeadingLevel: 1,
555
- };
556
- expect(() =>
557
- testValidateThemeConfig({tableOfContents}),
558
- ).toThrowErrorMatchingInlineSnapshot(
559
- `"\\"tableOfContents.minHeadingLevel\\" must be greater than or equal to 2"`,
560
- );
561
- });
562
-
563
- test('toc with min 7', () => {
564
- const tableOfContents = {
565
- minHeadingLevel: 7,
566
- };
567
- expect(() =>
568
- testValidateThemeConfig({tableOfContents}),
569
- ).toThrowErrorMatchingInlineSnapshot(
570
- `"\\"tableOfContents.minHeadingLevel\\" must be less than or equal to ref:maxHeadingLevel"`,
571
- );
572
- });
573
-
574
- test('toc with max 1', () => {
575
- const tableOfContents = {
576
- maxHeadingLevel: 1,
577
- };
578
- expect(() =>
579
- testValidateThemeConfig({tableOfContents}),
580
- ).toThrowErrorMatchingInlineSnapshot(
581
- `"\\"tableOfContents.maxHeadingLevel\\" must be greater than or equal to 2"`,
582
- );
583
- });
584
-
585
- test('toc with max 7', () => {
586
- const tableOfContents = {
587
- maxHeadingLevel: 7,
588
- };
589
- expect(() =>
590
- testValidateThemeConfig({tableOfContents}),
591
- ).toThrowErrorMatchingInlineSnapshot(
592
- `"\\"tableOfContents.maxHeadingLevel\\" must be less than or equal to 6"`,
593
- );
594
- });
595
-
596
- test('toc with bad min 5 + max 3', () => {
597
- const tableOfContents = {
598
- minHeadingLevel: 5,
599
- maxHeadingLevel: 3,
600
- };
601
- expect(() =>
602
- testValidateThemeConfig({tableOfContents}),
603
- ).toThrowErrorMatchingInlineSnapshot(
604
- `"\\"tableOfContents.minHeadingLevel\\" must be less than or equal to ref:maxHeadingLevel"`,
605
- );
606
- });
607
- });
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _clsx = _interopRequireDefault(require("clsx"));
11
-
12
- var _themeCommon = require("@docusaurus/theme-common");
13
-
14
- var _Translate = require("@docusaurus/Translate");
15
-
16
- var _IconClose = _interopRequireDefault(require("@theme/IconClose"));
17
-
18
- var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- /**
23
- * Copyright (c) Facebook, Inc. and its affiliates.
24
- *
25
- * This source code is licensed under the MIT license found in the
26
- * LICENSE file in the root directory of this source tree.
27
- */
28
- function AnnouncementBar() {
29
- const {
30
- isActive,
31
- close
32
- } = (0, _themeCommon.useAnnouncementBar)();
33
- const {
34
- announcementBar
35
- } = (0, _themeCommon.useThemeConfig)();
36
-
37
- if (!isActive) {
38
- return null;
39
- }
40
-
41
- const {
42
- content,
43
- backgroundColor,
44
- textColor,
45
- isCloseable
46
- } = announcementBar;
47
- return <div className={_stylesModule.default.announcementBar} style={{
48
- backgroundColor,
49
- color: textColor
50
- }} role="banner">
51
- {isCloseable && <div className={_stylesModule.default.announcementBarPlaceholder} />}
52
- <div className={_stylesModule.default.announcementBarContent} // Developer provided the HTML, so assume it's safe.
53
- // eslint-disable-next-line react/no-danger
54
- dangerouslySetInnerHTML={{
55
- __html: content
56
- }} />
57
- {isCloseable ? <button type="button" className={(0, _clsx.default)('clean-btn close', _stylesModule.default.announcementBarClose)} onClick={close} aria-label={(0, _Translate.translate)({
58
- id: 'theme.AnnouncementBar.closeButtonAriaLabel',
59
- message: 'Close',
60
- description: 'The ARIA label for close button of announcement bar'
61
- })}>
62
- <_IconClose.default width={14} height={14} strokeWidth={3.1} />
63
- </button> : null}
64
- </div>;
65
- }
66
-
67
- var _default = AnnouncementBar;
68
- exports.default = _default;