@docusaurus/theme-classic 2.0.0-beta.1 → 2.0.0-beta.10

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 (367) hide show
  1. package/README.md +1 -1
  2. package/lib/__tests__/validateThemeConfig.test.js +277 -3
  3. package/lib/admonitions.css +35 -0
  4. package/lib/deps.d.ts +13 -0
  5. package/lib/index.js +41 -16
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme/AnnouncementBar/index.js +10 -16
  8. package/lib/theme/AnnouncementBar/styles.module.css +25 -30
  9. package/lib/theme/BackToTopButton/index.js +140 -0
  10. package/lib/theme/BackToTopButton/styles.module.css +42 -0
  11. package/lib/theme/BlogArchivePage/index.js +89 -0
  12. package/lib/theme/BlogLayout/index.js +51 -0
  13. package/lib/theme/BlogListPage/index.js +10 -21
  14. package/lib/theme/BlogPostAuthor/index.js +51 -0
  15. package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
  16. package/lib/theme/BlogPostAuthors/index.js +47 -0
  17. package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
  18. package/lib/theme/BlogPostItem/index.js +58 -67
  19. package/lib/theme/BlogPostPage/index.js +37 -24
  20. package/lib/theme/BlogSidebar/index.js +5 -7
  21. package/lib/theme/BlogSidebar/styles.module.css +2 -2
  22. package/lib/theme/BlogTagsListPage/index.js +8 -44
  23. package/lib/theme/BlogTagsPostsPage/index.js +24 -38
  24. package/lib/theme/CodeBlock/index.js +18 -138
  25. package/lib/theme/CodeBlock/styles.module.css +6 -9
  26. package/lib/theme/Details/index.js +30 -0
  27. package/lib/theme/Details/styles.module.css +13 -0
  28. package/lib/theme/DocCard/index.js +84 -0
  29. package/lib/theme/DocCard/styles.module.css +43 -0
  30. package/lib/theme/DocCardList/index.js +28 -0
  31. package/lib/theme/DocCategoryGeneratedIndexPage/index.js +57 -0
  32. package/lib/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  33. package/lib/theme/DocItem/index.js +29 -46
  34. package/lib/theme/DocItem/styles.module.css +5 -9
  35. package/lib/theme/DocItemFooter/index.js +79 -0
  36. package/lib/theme/DocItemFooter/styles.module.css +18 -0
  37. package/lib/theme/DocPage/index.js +35 -52
  38. package/lib/theme/DocPage/styles.module.css +8 -23
  39. package/lib/theme/DocPaginator/index.js +6 -7
  40. package/lib/theme/DocSidebar/index.js +53 -235
  41. package/lib/theme/DocSidebar/styles.module.css +0 -18
  42. package/lib/theme/DocSidebarItem/index.js +209 -0
  43. package/lib/theme/DocSidebarItem/styles.module.css +19 -0
  44. package/lib/theme/DocTagDocListPage/index.js +89 -0
  45. package/lib/theme/DocTagsListPage/index.js +44 -0
  46. package/lib/theme/DocVersionBadge/index.js +34 -0
  47. package/lib/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +39 -20
  48. package/lib/theme/EditThisPage/index.js +3 -1
  49. package/lib/theme/ErrorPageContent.js +43 -0
  50. package/lib/theme/Footer/index.js +16 -5
  51. package/lib/theme/Heading/index.js +17 -22
  52. package/lib/theme/Heading/styles.css +5 -6
  53. package/lib/theme/Heading/styles.module.css +9 -5
  54. package/lib/theme/IconArrow/index.js +2 -2
  55. package/lib/theme/IconClose/index.js +31 -0
  56. package/lib/theme/IconEdit/index.js +3 -3
  57. package/lib/theme/IconExternalLink/index.js +3 -3
  58. package/lib/theme/IconLanguage/index.js +3 -3
  59. package/lib/theme/IconMenu/index.js +3 -3
  60. package/lib/theme/LastUpdated/index.js +4 -2
  61. package/lib/theme/Layout/index.js +5 -1
  62. package/lib/theme/LayoutHead/index.js +22 -17
  63. package/lib/theme/LayoutProviders/index.js +11 -5
  64. package/lib/theme/Logo/index.js +16 -14
  65. package/lib/theme/MDXComponents/index.js +45 -4
  66. package/lib/theme/MDXComponents/styles.css +11 -0
  67. package/lib/theme/MDXPage/index.js +2 -1
  68. package/lib/theme/Navbar/index.js +162 -42
  69. package/lib/theme/Navbar/styles.module.css +10 -3
  70. package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -123
  71. package/lib/theme/NavbarItem/DocNavbarItem.js +7 -8
  72. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
  73. package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
  74. package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +6 -10
  75. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  76. package/lib/theme/NavbarItem/index.js +31 -11
  77. package/lib/theme/{SearchMetadatas → SearchMetadata}/index.js +2 -2
  78. package/lib/theme/Seo/index.js +10 -7
  79. package/lib/theme/SkipToContent/index.js +12 -4
  80. package/lib/theme/SkipToContent/styles.module.css +1 -0
  81. package/lib/theme/TOC/index.js +9 -29
  82. package/lib/theme/TOC/styles.module.css +1 -1
  83. package/lib/theme/TOCCollapsible/index.js +53 -0
  84. package/lib/theme/TOCCollapsible/styles.module.css +50 -0
  85. package/lib/theme/TOCInline/index.js +7 -27
  86. package/lib/theme/TOCItems/index.js +78 -0
  87. package/lib/theme/Tabs/__tests__/index.test.js +123 -0
  88. package/lib/theme/Tabs/index.js +73 -50
  89. package/lib/theme/Tabs/styles.module.css +0 -13
  90. package/lib/theme/Tag/index.js +40 -0
  91. package/lib/theme/Tag/styles.module.css +70 -0
  92. package/lib/theme/TagsListByLetter/index.js +48 -0
  93. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  94. package/lib/theme/TagsListInline/index.js +44 -0
  95. package/lib/theme/TagsListInline/styles.module.css +15 -0
  96. package/lib/theme/ThemeProvider/index.js +8 -3
  97. package/lib/theme/ThemedImage/index.js +6 -7
  98. package/lib/theme/Toggle/index.js +41 -44
  99. package/lib/theme/Toggle/styles.module.css +91 -3
  100. package/lib/theme/UserPreferencesProvider/index.js +9 -12
  101. package/lib/theme/hooks/useHideableNavbar.js +14 -32
  102. package/lib/theme/hooks/useTabGroupChoice.js +2 -4
  103. package/lib/theme/hooks/useTheme.js +3 -5
  104. package/lib/theme/hooks/useWindowSize.js +33 -20
  105. package/lib/theme/prism-include-languages.js +4 -3
  106. package/lib/theme-classic.d.ts +806 -0
  107. package/lib/translations.js +4 -4
  108. package/lib/types.d.ts +0 -599
  109. package/lib/validateThemeConfig.js +230 -246
  110. package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
  111. package/lib-next/admonitions.css +35 -0
  112. package/lib-next/deps.d.ts +13 -0
  113. package/lib-next/index.js +45 -13
  114. package/lib-next/prism-include-languages.js +0 -2
  115. package/lib-next/theme/AnnouncementBar/index.js +9 -18
  116. package/lib-next/theme/AnnouncementBar/styles.module.css +25 -30
  117. package/lib-next/theme/BackToTopButton/index.js +131 -0
  118. package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
  119. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  120. package/lib-next/theme/BlogLayout/index.js +40 -0
  121. package/lib-next/theme/BlogListPage/index.js +17 -25
  122. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  123. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  124. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  125. package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
  126. package/lib-next/theme/BlogPostItem/index.js +79 -86
  127. package/lib-next/theme/BlogPostPage/index.js +70 -35
  128. package/lib-next/theme/BlogSidebar/index.js +11 -13
  129. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  130. package/lib-next/theme/BlogTagsListPage/index.js +14 -55
  131. package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
  132. package/lib-next/theme/CodeBlock/index.js +17 -149
  133. package/lib-next/theme/CodeBlock/styles.module.css +6 -9
  134. package/lib-next/theme/Details/index.js +20 -0
  135. package/lib-next/theme/Details/styles.module.css +13 -0
  136. package/lib-next/theme/DocCard/index.js +80 -0
  137. package/lib-next/theme/DocCard/styles.module.css +43 -0
  138. package/lib-next/theme/DocCardList/index.js +19 -0
  139. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
  140. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  141. package/lib-next/theme/DocItem/index.js +40 -56
  142. package/lib-next/theme/DocItem/styles.module.css +5 -9
  143. package/lib-next/theme/DocItemFooter/index.js +79 -0
  144. package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
  145. package/lib-next/theme/DocPage/index.js +46 -47
  146. package/lib-next/theme/DocPage/styles.module.css +8 -23
  147. package/lib-next/theme/DocPaginator/index.js +7 -11
  148. package/lib-next/theme/DocSidebar/index.js +69 -295
  149. package/lib-next/theme/DocSidebar/styles.module.css +0 -18
  150. package/lib-next/theme/DocSidebarItem/index.js +217 -0
  151. package/lib-next/theme/DocSidebarItem/styles.module.css +19 -0
  152. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  153. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  154. package/lib-next/theme/DocVersionBadge/index.js +27 -0
  155. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +51 -36
  156. package/lib-next/theme/EditThisPage/index.js +6 -1
  157. package/lib-next/theme/ErrorPageContent.js +35 -0
  158. package/lib-next/theme/Footer/index.js +27 -5
  159. package/lib-next/theme/Heading/index.js +25 -29
  160. package/lib-next/theme/Heading/styles.css +5 -6
  161. package/lib-next/theme/Heading/styles.module.css +9 -5
  162. package/lib-next/theme/IconArrow/index.js +2 -2
  163. package/lib-next/theme/IconClose/index.js +23 -0
  164. package/lib-next/theme/IconEdit/index.js +2 -2
  165. package/lib-next/theme/IconExternalLink/index.js +2 -2
  166. package/lib-next/theme/IconLanguage/index.js +2 -2
  167. package/lib-next/theme/IconMenu/index.js +2 -2
  168. package/lib-next/theme/LastUpdated/index.js +3 -2
  169. package/lib-next/theme/Layout/index.js +3 -1
  170. package/lib-next/theme/LayoutHead/index.js +18 -23
  171. package/lib-next/theme/LayoutProviders/index.js +17 -6
  172. package/lib-next/theme/Logo/index.js +25 -21
  173. package/lib-next/theme/MDXComponents/index.js +34 -7
  174. package/lib-next/theme/MDXComponents/styles.css +11 -0
  175. package/lib-next/theme/MDXPage/index.js +10 -2
  176. package/lib-next/theme/Navbar/index.js +193 -56
  177. package/lib-next/theme/Navbar/styles.module.css +10 -3
  178. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
  179. package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
  180. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
  181. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +159 -0
  182. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
  183. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  184. package/lib-next/theme/NavbarItem/index.js +25 -12
  185. package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
  186. package/lib-next/theme/Seo/index.js +11 -7
  187. package/lib-next/theme/SkipToContent/index.js +7 -8
  188. package/lib-next/theme/SkipToContent/styles.module.css +1 -0
  189. package/lib-next/theme/TOC/index.js +12 -36
  190. package/lib-next/theme/TOC/styles.module.css +1 -1
  191. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  192. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  193. package/lib-next/theme/TOCInline/index.js +10 -28
  194. package/lib-next/theme/TOCItems/index.js +85 -0
  195. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  196. package/lib-next/theme/Tabs/index.js +91 -43
  197. package/lib-next/theme/Tabs/styles.module.css +0 -13
  198. package/lib-next/theme/Tag/index.js +27 -0
  199. package/lib-next/theme/Tag/styles.module.css +70 -0
  200. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  201. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  202. package/lib-next/theme/TagsListInline/index.js +31 -0
  203. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  204. package/lib-next/theme/ThemeProvider/index.js +10 -7
  205. package/lib-next/theme/ThemedImage/index.js +7 -8
  206. package/lib-next/theme/Toggle/index.js +34 -37
  207. package/lib-next/theme/Toggle/styles.module.css +91 -3
  208. package/lib-next/theme/UserPreferencesProvider/index.js +9 -10
  209. package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
  210. package/lib-next/theme/hooks/useTabGroupChoice.js +2 -4
  211. package/lib-next/theme/hooks/useTheme.js +4 -5
  212. package/lib-next/theme/hooks/useWindowSize.js +34 -20
  213. package/lib-next/theme/prism-include-languages.js +2 -1
  214. package/lib-next/theme-classic.d.ts +806 -0
  215. package/lib-next/translations.js +6 -10
  216. package/lib-next/types.d.ts +0 -599
  217. package/lib-next/validateThemeConfig.js +141 -114
  218. package/package.json +28 -25
  219. package/src/__tests__/validateThemeConfig.test.js +277 -3
  220. package/src/admonitions.css +35 -0
  221. package/src/deps.d.ts +13 -0
  222. package/src/index.ts +55 -22
  223. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  224. package/src/theme/AnnouncementBar/index.tsx +10 -17
  225. package/src/theme/AnnouncementBar/styles.module.css +25 -30
  226. package/src/theme/BackToTopButton/index.tsx +142 -0
  227. package/src/theme/BackToTopButton/styles.module.css +42 -0
  228. package/src/theme/BlogArchivePage/index.tsx +91 -0
  229. package/src/theme/BlogLayout/index.tsx +44 -0
  230. package/src/theme/BlogListPage/index.tsx +18 -25
  231. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  232. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  233. package/src/theme/BlogPostAuthors/index.tsx +39 -0
  234. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  235. package/src/theme/BlogPostItem/index.tsx +70 -80
  236. package/src/theme/BlogPostPage/index.tsx +72 -35
  237. package/src/theme/BlogSidebar/index.tsx +11 -13
  238. package/src/theme/BlogSidebar/styles.module.css +2 -2
  239. package/src/theme/BlogTagsListPage/index.tsx +14 -57
  240. package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
  241. package/src/theme/CodeBlock/index.tsx +21 -151
  242. package/src/theme/CodeBlock/styles.module.css +6 -9
  243. package/src/theme/Details/index.tsx +24 -0
  244. package/src/theme/Details/styles.module.css +13 -0
  245. package/src/theme/DocCard/index.tsx +100 -0
  246. package/src/theme/DocCard/styles.module.css +43 -0
  247. package/src/theme/DocCardList/index.tsx +27 -0
  248. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
  249. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  250. package/src/theme/DocItem/index.tsx +43 -56
  251. package/src/theme/DocItem/styles.module.css +5 -9
  252. package/src/theme/DocItemFooter/index.tsx +91 -0
  253. package/src/theme/DocItemFooter/styles.module.css +18 -0
  254. package/src/theme/DocPage/index.tsx +44 -42
  255. package/src/theme/DocPage/styles.module.css +8 -23
  256. package/src/theme/DocPaginator/index.tsx +9 -13
  257. package/src/theme/DocSidebar/index.tsx +80 -307
  258. package/src/theme/DocSidebar/styles.module.css +0 -18
  259. package/src/theme/DocSidebarItem/index.tsx +242 -0
  260. package/src/theme/DocSidebarItem/styles.module.css +19 -0
  261. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  262. package/src/theme/DocTagsListPage/index.tsx +41 -0
  263. package/src/theme/DocVersionBadge/index.tsx +30 -0
  264. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +74 -44
  265. package/src/theme/EditThisPage/index.tsx +6 -1
  266. package/src/theme/ErrorPageContent.tsx +41 -0
  267. package/src/theme/Footer/index.tsx +30 -6
  268. package/src/theme/Heading/index.tsx +25 -31
  269. package/src/theme/Heading/styles.css +5 -6
  270. package/src/theme/Heading/styles.module.css +9 -5
  271. package/src/theme/IconArrow/index.tsx +2 -2
  272. package/src/theme/IconClose/index.tsx +26 -0
  273. package/src/theme/IconEdit/index.tsx +2 -2
  274. package/src/theme/IconExternalLink/index.tsx +2 -5
  275. package/src/theme/IconLanguage/index.tsx +2 -6
  276. package/src/theme/IconMenu/index.tsx +3 -3
  277. package/src/theme/LastUpdated/index.tsx +3 -2
  278. package/src/theme/Layout/index.tsx +3 -1
  279. package/src/theme/LayoutHead/index.tsx +18 -17
  280. package/src/theme/LayoutProviders/index.tsx +17 -6
  281. package/src/theme/Logo/index.tsx +21 -17
  282. package/src/theme/MDXComponents/index.tsx +39 -5
  283. package/src/theme/MDXComponents/styles.css +11 -0
  284. package/src/theme/MDXPage/index.tsx +10 -2
  285. package/src/theme/Navbar/index.tsx +203 -61
  286. package/src/theme/Navbar/styles.module.css +10 -3
  287. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
  288. package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
  289. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
  290. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  291. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  292. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
  293. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  294. package/src/theme/NavbarItem/index.tsx +41 -16
  295. package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
  296. package/src/theme/Seo/index.tsx +7 -4
  297. package/src/theme/SkipToContent/index.tsx +7 -8
  298. package/src/theme/SkipToContent/styles.module.css +1 -0
  299. package/src/theme/TOC/index.tsx +12 -41
  300. package/src/theme/TOC/styles.module.css +1 -1
  301. package/src/theme/TOCCollapsible/index.tsx +58 -0
  302. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  303. package/src/theme/TOCInline/index.tsx +13 -32
  304. package/src/theme/TOCItems/index.tsx +96 -0
  305. package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
  306. package/src/theme/Tabs/index.tsx +93 -49
  307. package/src/theme/Tabs/styles.module.css +0 -13
  308. package/src/theme/Tag/index.tsx +31 -0
  309. package/src/theme/Tag/styles.module.css +70 -0
  310. package/src/theme/TagsListByLetter/index.tsx +45 -0
  311. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  312. package/src/theme/TagsListInline/index.tsx +35 -0
  313. package/src/theme/TagsListInline/styles.module.css +15 -0
  314. package/src/theme/ThemeProvider/index.tsx +6 -2
  315. package/src/theme/ThemedImage/index.tsx +8 -8
  316. package/src/theme/Toggle/index.tsx +36 -43
  317. package/src/theme/Toggle/styles.module.css +91 -3
  318. package/src/theme/UserPreferencesProvider/index.tsx +9 -11
  319. package/src/theme/hooks/useHideableNavbar.ts +32 -45
  320. package/src/theme/hooks/useTabGroupChoice.ts +4 -4
  321. package/src/theme/hooks/useTheme.ts +4 -5
  322. package/src/theme/hooks/useWindowSize.ts +38 -20
  323. package/src/theme/prism-include-languages.ts +3 -2
  324. package/src/theme-classic.d.ts +806 -0
  325. package/src/translations.ts +8 -10
  326. package/src/types.d.ts +0 -599
  327. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +151 -94
  328. package/tsconfig.json +1 -2
  329. package/codeTranslations/README.md +0 -20
  330. package/codeTranslations/ar.json +0 -57
  331. package/codeTranslations/base.json +0 -112
  332. package/codeTranslations/bn.json +0 -56
  333. package/codeTranslations/da.json +0 -57
  334. package/codeTranslations/de.json +0 -57
  335. package/codeTranslations/es.json +0 -57
  336. package/codeTranslations/fa.json +0 -57
  337. package/codeTranslations/fil.json +0 -57
  338. package/codeTranslations/fr.json +0 -57
  339. package/codeTranslations/he.json +0 -57
  340. package/codeTranslations/hi.json +0 -57
  341. package/codeTranslations/ja.json +0 -57
  342. package/codeTranslations/ko.json +0 -57
  343. package/codeTranslations/pl.json +0 -57
  344. package/codeTranslations/pt-BR.json +0 -57
  345. package/codeTranslations/pt-PT.json +0 -57
  346. package/codeTranslations/ru.json +0 -57
  347. package/codeTranslations/tr.json +0 -57
  348. package/codeTranslations/vi.json +0 -57
  349. package/codeTranslations/zh-Hans.json +0 -57
  350. package/codeTranslations/zh-Hant.json +0 -57
  351. package/lib/theme/Toggle/styles.css +0 -103
  352. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  353. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  354. package/lib/theme/hooks/useScrollPosition.js +0 -49
  355. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  356. package/lib-next/theme/Toggle/styles.css +0 -103
  357. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  358. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  359. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  360. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  361. package/src/theme/Toggle/styles.css +0 -103
  362. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  363. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  364. package/src/theme/hooks/useScrollPosition.ts +0 -45
  365. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  366. package/update-code-translations.js +0 -239
  367. package/update-code-translations.test.js +0 -33
@@ -1,19 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ThemeConfigSchema = exports.DEFAULT_CONFIG = void 0;
7
+ exports.validateThemeConfig = validateThemeConfig;
8
+
9
+ var _utilsValidation = require("@docusaurus/utils-validation");
10
+
1
11
  /**
2
12
  * Copyright (c) Facebook, Inc. and its affiliates.
3
13
  *
4
14
  * This source code is licensed under the MIT license found in the
5
15
  * LICENSE file in the root directory of this source tree.
6
16
  */
7
-
8
- const {Joi, URISchema} = require('@docusaurus/utils-validation');
9
-
10
17
  const DEFAULT_DOCS_CONFIG = {
11
- versionPersistence: 'localStorage',
18
+ versionPersistence: 'localStorage'
12
19
  };
13
- const DocsSchema = Joi.object({
14
- versionPersistence: Joi.string()
15
- .equal('localStorage', 'none')
16
- .default(DEFAULT_DOCS_CONFIG.versionPersistence),
20
+
21
+ const DocsSchema = _utilsValidation.Joi.object({
22
+ versionPersistence: _utilsValidation.Joi.string().equal('localStorage', 'none').default(DEFAULT_DOCS_CONFIG.versionPersistence)
17
23
  }).default(DEFAULT_DOCS_CONFIG);
18
24
 
19
25
  const DEFAULT_COLOR_MODE_CONFIG = {
@@ -24,294 +30,272 @@ const DEFAULT_COLOR_MODE_CONFIG = {
24
30
  darkIcon: '🌜',
25
31
  darkIconStyle: {},
26
32
  lightIcon: '🌞',
27
- lightIconStyle: {},
28
- },
33
+ lightIconStyle: {}
34
+ }
29
35
  };
30
-
31
36
  const DEFAULT_CONFIG = {
32
37
  colorMode: DEFAULT_COLOR_MODE_CONFIG,
33
38
  docs: DEFAULT_DOCS_CONFIG,
34
- metadatas: [],
39
+ metadata: [],
35
40
  prism: {
36
- additionalLanguages: [],
41
+ additionalLanguages: []
37
42
  },
38
43
  navbar: {
39
44
  hideOnScroll: false,
40
- items: [],
45
+ items: []
41
46
  },
42
47
  hideableSidebar: false,
48
+ tableOfContents: {
49
+ minHeadingLevel: 2,
50
+ maxHeadingLevel: 3
51
+ }
43
52
  };
44
53
  exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
45
54
 
46
- const NavbarItemPosition = Joi.string().equal('left', 'right').default('left');
55
+ const NavbarItemPosition = _utilsValidation.Joi.string().equal('left', 'right').default('left');
47
56
 
48
- const BaseNavbarItemSchema = Joi.object({
49
- to: Joi.string(),
50
- href: URISchema,
51
- label: Joi.string(),
52
- className: Joi.string(),
53
- prependBaseUrlToHref: Joi.bool(),
54
- })
55
- // We allow any unknown attributes on the links
56
- // (users may need additional attributes like target, aria-role, data-customAttribute...)
57
- .unknown();
57
+ const NavbarItemBaseSchema = _utilsValidation.Joi.object({
58
+ label: _utilsValidation.Joi.string(),
59
+ className: _utilsValidation.Joi.string()
60
+ }) // We allow any unknown attributes on the links
61
+ // (users may need additional attributes like target, aria-role, data-customAttribute...)
62
+ .unknown();
58
63
 
59
- // TODO we should probably create a custom navbar item type "dropdown"
60
- // having this recursive structure is bad because we only support 2 levels
61
- // + parent/child don't have exactly the same props
62
- const DefaultNavbarItemSchema = BaseNavbarItemSchema.append({
63
- items: Joi.array().optional().items(BaseNavbarItemSchema),
64
- position: NavbarItemPosition,
65
- activeBasePath: Joi.string(),
66
- activeBaseRegex: Joi.string(),
64
+ const DefaultNavbarItemSchema = NavbarItemBaseSchema.append({
65
+ to: _utilsValidation.Joi.string(),
66
+ href: _utilsValidation.URISchema,
67
+ activeBasePath: _utilsValidation.Joi.string(),
68
+ activeBaseRegex: _utilsValidation.Joi.string(),
69
+ prependBaseUrlToHref: _utilsValidation.Joi.bool(),
70
+ // This is only triggered in case of a nested dropdown
71
+ items: _utilsValidation.Joi.forbidden().messages({
72
+ 'any.unknown': 'Nested dropdowns are not allowed'
73
+ })
74
+ }).xor('href', 'to').messages({
75
+ 'object.xor': 'One and only one between "to" and "href" should be provided'
67
76
  });
68
- // TODO the dropdown parent item can have no href/to
69
- // should check should not apply to dropdown parent item
70
- // .xor('href', 'to');
71
-
72
- const DocsVersionNavbarItemSchema = Joi.object({
73
- type: Joi.string().equal('docsVersion').required(),
74
- position: NavbarItemPosition,
75
- label: Joi.string(),
76
- to: Joi.string(),
77
- docsPluginId: Joi.string(),
78
- className: Joi.string(),
77
+ const DocsVersionNavbarItemSchema = NavbarItemBaseSchema.append({
78
+ type: _utilsValidation.Joi.string().equal('docsVersion').required(),
79
+ to: _utilsValidation.Joi.string(),
80
+ docsPluginId: _utilsValidation.Joi.string()
79
81
  });
80
-
81
- const DocsVersionDropdownNavbarItemSchema = Joi.object({
82
- type: Joi.string().equal('docsVersionDropdown').required(),
83
- position: NavbarItemPosition,
84
- docsPluginId: Joi.string(),
85
- dropdownActiveClassDisabled: Joi.boolean(),
86
- dropdownItemsBefore: Joi.array().items(BaseNavbarItemSchema).default([]),
87
- dropdownItemsAfter: Joi.array().items(BaseNavbarItemSchema).default([]),
88
- className: Joi.string(),
82
+ const DocItemSchema = NavbarItemBaseSchema.append({
83
+ type: _utilsValidation.Joi.string().equal('doc').required(),
84
+ docId: _utilsValidation.Joi.string().required(),
85
+ docsPluginId: _utilsValidation.Joi.string()
89
86
  });
90
87
 
91
- const DocItemSchema = Joi.object({
92
- type: Joi.string().equal('doc').required(),
93
- position: NavbarItemPosition,
94
- docId: Joi.string().required(),
95
- label: Joi.string(),
96
- docsPluginId: Joi.string(),
97
- activeSidebarClassName: Joi.string().default('navbar__link--active'),
98
- className: Joi.string(),
99
- });
88
+ const itemWithType = type => {
89
+ // because equal(undefined) is not supported :/
90
+ const typeSchema = type ? _utilsValidation.Joi.string().required().equal(type) : _utilsValidation.Joi.string().forbidden();
91
+ return _utilsValidation.Joi.object({
92
+ type: typeSchema
93
+ }).unknown().required();
94
+ };
100
95
 
101
- const LocaleDropdownNavbarItemSchema = Joi.object({
102
- type: Joi.string().equal('localeDropdown').required(),
103
- position: NavbarItemPosition,
104
- dropdownItemsBefore: Joi.array().items(BaseNavbarItemSchema).default([]),
105
- dropdownItemsAfter: Joi.array().items(BaseNavbarItemSchema).default([]),
106
- className: Joi.string(),
96
+ const DropdownSubitemSchema = _utilsValidation.Joi.object({
97
+ position: _utilsValidation.Joi.forbidden()
98
+ }).when('.', {
99
+ switch: [{
100
+ is: itemWithType('docsVersion'),
101
+ then: DocsVersionNavbarItemSchema
102
+ }, {
103
+ is: itemWithType('doc'),
104
+ then: DocItemSchema
105
+ }, {
106
+ is: itemWithType(undefined),
107
+ then: DefaultNavbarItemSchema
108
+ }, {
109
+ is: _utilsValidation.Joi.alternatives().try(itemWithType('dropdown'), itemWithType('docsVersionDropdown'), itemWithType('localeDropdown'), itemWithType('search')),
110
+ then: _utilsValidation.Joi.forbidden().messages({
111
+ 'any.unknown': 'Nested dropdowns are not allowed'
112
+ })
113
+ }],
114
+ otherwise: _utilsValidation.Joi.forbidden().messages({
115
+ 'any.unknown': 'Bad navbar item type {.type}'
116
+ })
107
117
  });
108
118
 
109
- const SearchItemSchema = Joi.object({
110
- type: Joi.string().equal('search').required(),
111
- position: NavbarItemPosition,
119
+ const DropdownNavbarItemSchema = NavbarItemBaseSchema.append({
120
+ items: _utilsValidation.Joi.array().items(DropdownSubitemSchema).required()
121
+ });
122
+ const DocsVersionDropdownNavbarItemSchema = NavbarItemBaseSchema.append({
123
+ type: _utilsValidation.Joi.string().equal('docsVersionDropdown').required(),
124
+ docsPluginId: _utilsValidation.Joi.string(),
125
+ dropdownActiveClassDisabled: _utilsValidation.Joi.boolean(),
126
+ dropdownItemsBefore: _utilsValidation.Joi.array().items(DropdownSubitemSchema).default([]),
127
+ dropdownItemsAfter: _utilsValidation.Joi.array().items(DropdownSubitemSchema).default([])
128
+ });
129
+ const LocaleDropdownNavbarItemSchema = NavbarItemBaseSchema.append({
130
+ type: _utilsValidation.Joi.string().equal('localeDropdown').required(),
131
+ dropdownItemsBefore: _utilsValidation.Joi.array().items(DropdownSubitemSchema).default([]),
132
+ dropdownItemsAfter: _utilsValidation.Joi.array().items(DropdownSubitemSchema).default([])
112
133
  });
113
134
 
114
- // Can this be made easier? :/
115
- const isOfType = (type) => {
116
- let typeSchema = Joi.string().required();
117
- // because equal(undefined) is not supported :/
118
- if (type) {
119
- typeSchema = typeSchema.equal(type);
120
- }
121
- return Joi.object({
122
- type: typeSchema,
123
- })
124
- .unknown()
125
- .required();
126
- };
127
-
128
- const NavbarItemSchema = Joi.object().when({
129
- switch: [
130
- {
131
- is: isOfType('docsVersion'),
132
- then: DocsVersionNavbarItemSchema,
133
- },
134
- {
135
- is: isOfType('docsVersionDropdown'),
136
- then: DocsVersionDropdownNavbarItemSchema,
137
- },
138
- {
139
- is: isOfType('doc'),
140
- then: DocItemSchema,
141
- },
142
- {
143
- is: isOfType('localeDropdown'),
144
- then: LocaleDropdownNavbarItemSchema,
145
- },
146
- {
147
- is: isOfType('search'),
148
- then: SearchItemSchema,
149
- },
150
- {
151
- is: isOfType(undefined),
152
- then: Joi.forbidden().messages({
153
- 'any.unknown': 'Bad navbar item type {.type}',
154
- }),
155
- },
156
- ],
157
- otherwise: DefaultNavbarItemSchema,
135
+ const SearchItemSchema = _utilsValidation.Joi.object({
136
+ type: _utilsValidation.Joi.string().equal('search').required()
158
137
  });
159
138
 
160
- /*
161
- const NavbarItemSchema = Joi.object({
162
- type: Joi.string().only(['docsVersion'])
163
- })
164
- .when(Joi.object({ type: 'docsVersion' }).unknown(), {
165
- then: Joi.object({ pepperoni: Joi.boolean() })
166
- })
167
- .when(Joi.object().unknown(), {
168
- then: Joi.object({ croutons: Joi.boolean() })
139
+ const NavbarItemSchema = _utilsValidation.Joi.object({
140
+ position: NavbarItemPosition
141
+ }).when('.', {
142
+ switch: [{
143
+ is: itemWithType('docsVersion'),
144
+ then: DocsVersionNavbarItemSchema
145
+ }, {
146
+ is: itemWithType('dropdown'),
147
+ then: DropdownNavbarItemSchema
148
+ }, {
149
+ is: itemWithType('docsVersionDropdown'),
150
+ then: DocsVersionDropdownNavbarItemSchema
151
+ }, {
152
+ is: itemWithType('doc'),
153
+ then: DocItemSchema
154
+ }, {
155
+ is: itemWithType('localeDropdown'),
156
+ then: LocaleDropdownNavbarItemSchema
157
+ }, {
158
+ is: itemWithType('search'),
159
+ then: SearchItemSchema
160
+ }, {
161
+ is: itemWithType(undefined),
162
+ then: _utilsValidation.Joi.object().when('.', {
163
+ // Dropdown item can be specified without type field
164
+ is: _utilsValidation.Joi.object({
165
+ items: _utilsValidation.Joi.array().required()
166
+ }).unknown(),
167
+ then: DropdownNavbarItemSchema,
168
+ otherwise: DefaultNavbarItemSchema
169
+ })
170
+ }],
171
+ otherwise: _utilsValidation.Joi.forbidden().messages({
172
+ 'any.unknown': 'Bad navbar item type {.type}'
169
173
  })
170
-
171
- */
172
-
173
- /*
174
- const NavbarItemSchema = Joi.object().when('type', {
175
- is: Joi.valid('docsVersion'),
176
- then: DocsVersionNavbarItemSchema,
177
- otherwise: DefaultNavbarItemSchema,
178
174
  });
179
- */
180
175
 
181
- const ColorModeSchema = Joi.object({
182
- defaultMode: Joi.string()
183
- .equal('dark', 'light')
184
- .default(DEFAULT_COLOR_MODE_CONFIG.defaultMode),
185
- disableSwitch: Joi.bool().default(DEFAULT_COLOR_MODE_CONFIG.disableSwitch),
186
- respectPrefersColorScheme: Joi.bool().default(
187
- DEFAULT_COLOR_MODE_CONFIG.respectPrefersColorScheme,
188
- ),
189
- switchConfig: Joi.object({
190
- darkIcon: Joi.string().default(
191
- DEFAULT_COLOR_MODE_CONFIG.switchConfig.darkIcon,
192
- ),
193
- darkIconStyle: Joi.object().default(
194
- DEFAULT_COLOR_MODE_CONFIG.switchConfig.darkIconStyle,
195
- ),
196
- lightIcon: Joi.string().default(
197
- DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIcon,
198
- ),
199
- lightIconStyle: Joi.object().default(
200
- DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIconStyle,
201
- ),
202
- }).default(DEFAULT_COLOR_MODE_CONFIG.switchConfig),
203
- }).default(DEFAULT_COLOR_MODE_CONFIG);
176
+ const ColorModeSchema = _utilsValidation.Joi.object({
177
+ defaultMode: _utilsValidation.Joi.string().equal('dark', 'light').default(DEFAULT_COLOR_MODE_CONFIG.defaultMode),
178
+ disableSwitch: _utilsValidation.Joi.bool().default(DEFAULT_COLOR_MODE_CONFIG.disableSwitch),
179
+ respectPrefersColorScheme: _utilsValidation.Joi.bool().default(DEFAULT_COLOR_MODE_CONFIG.respectPrefersColorScheme),
180
+ switchConfig: _utilsValidation.Joi.object({
181
+ darkIcon: _utilsValidation.Joi.string().default(DEFAULT_COLOR_MODE_CONFIG.switchConfig.darkIcon),
182
+ darkIconStyle: _utilsValidation.Joi.object().default(DEFAULT_COLOR_MODE_CONFIG.switchConfig.darkIconStyle),
183
+ lightIcon: _utilsValidation.Joi.string().default(DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIcon),
184
+ lightIconStyle: _utilsValidation.Joi.object().default(DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIconStyle)
185
+ }).default(DEFAULT_COLOR_MODE_CONFIG.switchConfig)
186
+ }).default(DEFAULT_COLOR_MODE_CONFIG); // schema can probably be improved
187
+
204
188
 
205
- // schema can probably be improved
206
- const HtmlMetadataSchema = Joi.object({
207
- id: Joi.string(),
208
- name: Joi.string(),
209
- property: Joi.string(),
210
- content: Joi.string(),
211
- itemprop: Joi.string(),
189
+ const HtmlMetadataSchema = _utilsValidation.Joi.object({
190
+ id: _utilsValidation.Joi.string(),
191
+ name: _utilsValidation.Joi.string(),
192
+ property: _utilsValidation.Joi.string(),
193
+ content: _utilsValidation.Joi.string(),
194
+ itemprop: _utilsValidation.Joi.string()
212
195
  }).unknown();
213
196
 
214
- const FooterLinkItemSchema = Joi.object({
215
- to: Joi.string(),
216
- href: URISchema,
217
- html: Joi.string(),
218
- label: Joi.string(),
219
- })
220
- .xor('to', 'href', 'html')
221
- .with('to', 'label')
222
- .with('href', 'label')
223
- .nand('html', 'label')
224
- // We allow any unknown attributes on the links
225
- // (users may need additional attributes like target, aria-role, data-customAttribute...)
226
- .unknown();
197
+ const FooterLinkItemSchema = _utilsValidation.Joi.object({
198
+ to: _utilsValidation.Joi.string(),
199
+ href: _utilsValidation.URISchema,
200
+ html: _utilsValidation.Joi.string(),
201
+ label: _utilsValidation.Joi.string()
202
+ }).xor('to', 'href', 'html').with('to', 'label').with('href', 'label').nand('html', 'label') // We allow any unknown attributes on the links
203
+ // (users may need additional attributes like target, aria-role, data-customAttribute...)
204
+ .unknown();
227
205
 
228
- const CustomCssSchema = Joi.alternatives()
229
- .try(Joi.array().items(Joi.string().required()), Joi.string().required())
230
- .optional();
206
+ const CustomCssSchema = _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array().items(_utilsValidation.Joi.string().required()), _utilsValidation.Joi.string().required()).optional();
231
207
 
232
- const ThemeConfigSchema = Joi.object({
208
+ const ThemeConfigSchema = _utilsValidation.Joi.object({
233
209
  // TODO temporary (@alpha-58)
234
- disableDarkMode: Joi.any().forbidden(false).messages({
235
- 'any.unknown':
236
- 'disableDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.disableSwitch = true',
210
+ disableDarkMode: _utilsValidation.Joi.any().forbidden().messages({
211
+ 'any.unknown': 'disableDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.disableSwitch = true'
237
212
  }),
238
213
  // TODO temporary (@alpha-58)
239
- defaultDarkMode: Joi.any().forbidden(false).messages({
240
- 'any.unknown':
241
- 'defaultDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.defaultMode = "dark"',
214
+ defaultDarkMode: _utilsValidation.Joi.any().forbidden().messages({
215
+ 'any.unknown': 'defaultDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.defaultMode = "dark"'
242
216
  }),
243
217
  customCss: CustomCssSchema,
244
218
  colorMode: ColorModeSchema,
245
- image: Joi.string(),
219
+ image: _utilsValidation.Joi.string(),
246
220
  docs: DocsSchema,
247
- metadatas: Joi.array()
248
- .items(HtmlMetadataSchema)
249
- .default(DEFAULT_CONFIG.metadatas),
250
- announcementBar: Joi.object({
251
- id: Joi.string().default('announcement-bar'),
252
- content: Joi.string(),
253
- backgroundColor: Joi.string(),
254
- textColor: Joi.string(),
255
- isCloseable: Joi.bool().default(true),
221
+ metadata: _utilsValidation.Joi.array().items(HtmlMetadataSchema).default(DEFAULT_CONFIG.metadata),
222
+ metadatas: _utilsValidation.Joi.any().forbidden().messages({
223
+ 'any.unknown': 'themeConfig.metadatas has been renamed as themeConfig.metadata. See https://github.com/facebook/docusaurus/pull/5871'
224
+ }),
225
+ announcementBar: _utilsValidation.Joi.object({
226
+ id: _utilsValidation.Joi.string().default('announcement-bar'),
227
+ content: _utilsValidation.Joi.string().required(),
228
+ backgroundColor: _utilsValidation.Joi.string(),
229
+ textColor: _utilsValidation.Joi.string(),
230
+ isCloseable: _utilsValidation.Joi.bool().default(true)
256
231
  }).optional(),
257
- navbar: Joi.object({
258
- style: Joi.string().equal('dark', 'primary'),
259
- hideOnScroll: Joi.bool().default(DEFAULT_CONFIG.navbar.hideOnScroll),
232
+ navbar: _utilsValidation.Joi.object({
233
+ style: _utilsValidation.Joi.string().equal('dark', 'primary'),
234
+ hideOnScroll: _utilsValidation.Joi.bool().default(DEFAULT_CONFIG.navbar.hideOnScroll),
260
235
  // TODO temporary (@alpha-58)
261
- links: Joi.any().forbidden().messages({
262
- 'any.unknown':
263
- 'themeConfig.navbar.links has been renamed as themeConfig.navbar.items',
264
- }),
265
- items: Joi.array()
266
- .items(NavbarItemSchema)
267
- .default(DEFAULT_CONFIG.navbar.items),
268
- title: Joi.string().allow('', null),
269
- logo: Joi.object({
270
- alt: Joi.string().allow(''),
271
- src: Joi.string().required(),
272
- srcDark: Joi.string(),
273
- href: Joi.string(),
274
- target: Joi.string(),
236
+ links: _utilsValidation.Joi.any().forbidden().messages({
237
+ 'any.unknown': 'themeConfig.navbar.links has been renamed as themeConfig.navbar.items'
275
238
  }),
239
+ items: _utilsValidation.Joi.array().items(NavbarItemSchema).default(DEFAULT_CONFIG.navbar.items),
240
+ title: _utilsValidation.Joi.string().allow('', null),
241
+ logo: _utilsValidation.Joi.object({
242
+ alt: _utilsValidation.Joi.string().allow(''),
243
+ src: _utilsValidation.Joi.string().required(),
244
+ srcDark: _utilsValidation.Joi.string(),
245
+ width: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.string(), _utilsValidation.Joi.number()),
246
+ height: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.string(), _utilsValidation.Joi.number()),
247
+ href: _utilsValidation.Joi.string(),
248
+ target: _utilsValidation.Joi.string()
249
+ })
276
250
  }).default(DEFAULT_CONFIG.navbar),
277
- footer: Joi.object({
278
- style: Joi.string().equal('dark', 'light').default('light'),
279
- logo: Joi.object({
280
- alt: Joi.string().allow(''),
281
- src: Joi.string(),
282
- srcDark: Joi.string(),
283
- href: Joi.string(),
251
+ footer: _utilsValidation.Joi.object({
252
+ style: _utilsValidation.Joi.string().equal('dark', 'light').default('light'),
253
+ logo: _utilsValidation.Joi.object({
254
+ alt: _utilsValidation.Joi.string().allow(''),
255
+ src: _utilsValidation.Joi.string(),
256
+ srcDark: _utilsValidation.Joi.string(),
257
+ // TODO infer this from reading the image
258
+ width: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.string(), _utilsValidation.Joi.number()),
259
+ height: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.string(), _utilsValidation.Joi.number()),
260
+ href: _utilsValidation.Joi.string()
284
261
  }),
285
- copyright: Joi.string(),
286
- links: Joi.array()
287
- .items(
288
- Joi.object({
289
- title: Joi.string().allow(null),
290
- items: Joi.array().items(FooterLinkItemSchema).default([]),
291
- }),
292
- )
293
- .default([]),
262
+ copyright: _utilsValidation.Joi.string(),
263
+ links: _utilsValidation.Joi.array().items(_utilsValidation.Joi.object({
264
+ title: _utilsValidation.Joi.string().allow(null),
265
+ items: _utilsValidation.Joi.array().items(FooterLinkItemSchema).default([])
266
+ })).default([])
294
267
  }).optional(),
295
- prism: Joi.object({
296
- theme: Joi.object({
297
- plain: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
298
- styles: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
268
+ prism: _utilsValidation.Joi.object({
269
+ theme: _utilsValidation.Joi.object({
270
+ plain: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array(), _utilsValidation.Joi.object()).required(),
271
+ styles: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array(), _utilsValidation.Joi.object()).required()
299
272
  }),
300
- darkTheme: Joi.object({
301
- plain: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
302
- styles: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
273
+ darkTheme: _utilsValidation.Joi.object({
274
+ plain: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array(), _utilsValidation.Joi.object()).required(),
275
+ styles: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array(), _utilsValidation.Joi.object()).required()
303
276
  }),
304
- defaultLanguage: Joi.string(),
305
- additionalLanguages: Joi.array()
306
- .items(Joi.string())
307
- .default(DEFAULT_CONFIG.prism.additionalLanguages),
308
- })
309
- .default(DEFAULT_CONFIG.prism)
310
- .unknown(),
311
- hideableSidebar: Joi.bool().default(DEFAULT_CONFIG.hideableSidebar),
277
+ defaultLanguage: _utilsValidation.Joi.string(),
278
+ additionalLanguages: _utilsValidation.Joi.array().items(_utilsValidation.Joi.string()).default(DEFAULT_CONFIG.prism.additionalLanguages)
279
+ }).default(DEFAULT_CONFIG.prism).unknown(),
280
+ hideableSidebar: _utilsValidation.Joi.bool().default(DEFAULT_CONFIG.hideableSidebar),
281
+ sidebarCollapsible: _utilsValidation.Joi.forbidden().messages({
282
+ 'any.unknown': 'The themeConfig.sidebarCollapsible has been moved to docs plugin options. See: https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs'
283
+ }),
284
+ tableOfContents: _utilsValidation.Joi.object({
285
+ minHeadingLevel: _utilsValidation.Joi.number().default(DEFAULT_CONFIG.tableOfContents.minHeadingLevel).when('maxHeadingLevel', {
286
+ is: _utilsValidation.Joi.exist(),
287
+ then: _utilsValidation.Joi.number().integer().min(2).max(6).max(_utilsValidation.Joi.ref('maxHeadingLevel')),
288
+ otherwise: _utilsValidation.Joi.number().integer().min(2).max(6)
289
+ }),
290
+ maxHeadingLevel: _utilsValidation.Joi.number().integer().min(2).max(6).default(DEFAULT_CONFIG.tableOfContents.maxHeadingLevel)
291
+ }).default(DEFAULT_CONFIG.tableOfContents)
312
292
  });
293
+
313
294
  exports.ThemeConfigSchema = ThemeConfigSchema;
314
295
 
315
- exports.validateThemeConfig = ({validate, themeConfig}) => {
296
+ function validateThemeConfig({
297
+ validate,
298
+ themeConfig
299
+ }) {
316
300
  return validate(ThemeConfigSchema, themeConfig);
317
- };
301
+ }