@docusaurus/theme-classic 2.0.0-beta.15d451942 → 2.0.0-beta.16

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 (407) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +35 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +102 -0
  5. package/lib/index.js +59 -43
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +755 -0
  8. package/lib/translations.js +40 -34
  9. package/lib/types.d.ts +0 -589
  10. package/lib/validateThemeConfig.js +247 -246
  11. package/lib-next/theme/Admonition/index.js +101 -0
  12. package/lib-next/theme/AnnouncementBar/index.js +10 -22
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +26 -35
  14. package/lib-next/theme/BackToTopButton/index.js +131 -0
  15. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  16. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  17. package/lib-next/theme/BlogLayout/index.js +37 -0
  18. package/lib-next/theme/BlogListPage/index.js +18 -29
  19. package/lib-next/theme/BlogListPaginator/index.js +13 -16
  20. package/lib-next/theme/BlogPostAuthor/index.js +40 -0
  21. package/{lib/theme/IconEdit → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -3
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/lib-next/theme/BlogPostAuthors/styles.module.css +21 -0
  24. package/lib-next/theme/BlogPostItem/index.js +110 -95
  25. package/lib-next/theme/BlogPostItem/styles.module.css +5 -1
  26. package/lib-next/theme/BlogPostPage/index.js +75 -43
  27. package/lib-next/theme/BlogPostPaginator/index.js +13 -20
  28. package/lib-next/theme/BlogSidebar/index.js +23 -16
  29. package/lib-next/theme/BlogSidebar/styles.module.css +8 -8
  30. package/lib-next/theme/BlogTagsListPage/index.js +16 -66
  31. package/lib-next/theme/BlogTagsPostsPage/index.js +47 -59
  32. package/lib-next/theme/CodeBlock/index.js +73 -162
  33. package/lib-next/theme/CodeBlock/styles.module.css +18 -13
  34. package/lib-next/theme/Details/index.js +21 -0
  35. package/lib-next/theme/Details/styles.module.css +13 -0
  36. package/lib-next/theme/DocBreadcrumbs/index.js +76 -0
  37. package/lib-next/theme/DocBreadcrumbs/styles.module.css +26 -0
  38. package/lib-next/theme/DocCard/index.js +91 -0
  39. package/lib-next/theme/DocCard/styles.module.css +43 -0
  40. package/lib-next/theme/DocCardList/index.js +19 -0
  41. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +54 -0
  42. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  43. package/lib-next/theme/DocItem/index.js +64 -69
  44. package/lib-next/theme/DocItem/styles.module.css +7 -13
  45. package/lib-next/theme/DocItemFooter/index.js +79 -0
  46. package/{lib/theme/Layout/styles.css → lib-next/theme/DocItemFooter/styles.module.css} +8 -11
  47. package/lib-next/theme/DocPage/index.js +59 -33
  48. package/lib-next/theme/DocPage/styles.module.css +14 -26
  49. package/lib-next/theme/DocPaginator/index.js +16 -25
  50. package/lib-next/theme/DocSidebar/index.js +72 -285
  51. package/lib-next/theme/DocSidebar/styles.module.css +5 -36
  52. package/lib-next/theme/DocSidebarItem/index.js +264 -0
  53. package/lib-next/theme/DocSidebarItem/styles.module.css +13 -0
  54. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  55. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  56. package/lib-next/theme/DocTagsListPage/index.js +35 -0
  57. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  58. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +54 -36
  59. package/lib-next/theme/EditThisPage/index.js +6 -1
  60. package/lib-next/theme/ErrorPageContent.js +35 -0
  61. package/lib-next/theme/Footer/index.js +105 -41
  62. package/lib-next/theme/Footer/styles.module.css +2 -1
  63. package/lib-next/theme/Heading/index.js +40 -33
  64. package/lib-next/theme/Heading/styles.module.css +27 -2
  65. package/lib-next/theme/IconArrow/index.js +3 -6
  66. package/lib-next/theme/IconClose/index.js +23 -0
  67. package/lib-next/theme/IconEdit/index.js +5 -10
  68. package/lib-next/theme/IconExternalLink/index.js +23 -0
  69. package/{lib/theme/BlogPostItem → lib-next/theme/IconExternalLink}/styles.module.css +4 -6
  70. package/lib-next/theme/IconLanguage/index.js +3 -6
  71. package/lib-next/theme/IconMenu/index.js +8 -9
  72. package/lib-next/theme/LastUpdated/index.js +35 -39
  73. package/lib-next/theme/Layout/index.js +5 -7
  74. package/lib-next/theme/Layout/styles.css +6 -0
  75. package/lib-next/theme/LayoutHead/index.js +27 -32
  76. package/lib-next/theme/LayoutProviders/index.js +21 -10
  77. package/lib-next/theme/Logo/index.js +21 -16
  78. package/lib-next/theme/MDXComponents/index.js +45 -30
  79. package/lib-next/theme/{hooks → MDXComponents}/styles.css +7 -2
  80. package/lib-next/theme/MDXPage/index.js +22 -28
  81. package/{lib/theme/LastUpdated → lib-next/theme/MDXPage}/styles.module.css +2 -2
  82. package/lib-next/theme/Navbar/index.js +199 -64
  83. package/lib-next/theme/Navbar/styles.module.css +11 -4
  84. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +36 -185
  85. package/lib-next/theme/NavbarItem/DocNavbarItem.js +31 -14
  86. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  87. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +38 -24
  88. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  89. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +156 -0
  90. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
  91. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  92. package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
  93. package/lib-next/theme/NavbarItem/index.js +27 -15
  94. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  95. package/lib-next/theme/NotFound.js +7 -6
  96. package/lib-next/theme/PaginatorNavLink/index.js +17 -0
  97. package/lib-next/theme/SearchBar.js +1 -1
  98. package/lib-next/theme/SearchMetadata/index.js +25 -0
  99. package/lib-next/theme/Seo/index.js +11 -7
  100. package/lib-next/theme/SkipToContent/index.js +9 -8
  101. package/lib-next/theme/SkipToContent/styles.module.css +8 -3
  102. package/lib-next/theme/TOC/index.js +12 -39
  103. package/lib-next/theme/TOC/styles.module.css +2 -2
  104. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  105. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  106. package/lib-next/theme/TOCInline/index.js +10 -31
  107. package/lib-next/theme/TOCItems/index.js +85 -0
  108. package/lib-next/theme/TabItem/index.js +1 -4
  109. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  110. package/lib-next/theme/Tabs/index.js +108 -50
  111. package/lib-next/theme/Tabs/styles.module.css +0 -13
  112. package/lib-next/theme/Tag/index.js +24 -0
  113. package/lib-next/theme/Tag/styles.module.css +70 -0
  114. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  115. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  116. package/lib-next/theme/TagsListInline/index.js +31 -0
  117. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  118. package/lib-next/theme/ThemedImage/index.js +9 -13
  119. package/lib-next/theme/ThemedImage/styles.module.css +9 -2
  120. package/lib-next/theme/Toggle/index.js +65 -60
  121. package/lib-next/theme/Toggle/styles.module.css +30 -38
  122. package/lib-next/theme/prism-include-languages.js +17 -15
  123. package/package.json +31 -30
  124. package/src/admonitions.css +35 -0
  125. package/src/deps.d.ts +13 -0
  126. package/src/getSwizzleConfig.ts +101 -0
  127. package/src/index.ts +68 -66
  128. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  129. package/src/theme/Admonition/index.tsx +106 -0
  130. package/src/theme/AnnouncementBar/index.tsx +11 -20
  131. package/src/theme/AnnouncementBar/styles.module.css +26 -35
  132. package/src/theme/BackToTopButton/index.tsx +143 -0
  133. package/src/theme/BackToTopButton/styles.module.css +44 -0
  134. package/src/theme/BlogArchivePage/index.tsx +91 -0
  135. package/src/theme/BlogLayout/index.tsx +42 -0
  136. package/src/theme/BlogListPage/index.tsx +19 -28
  137. package/src/theme/BlogListPaginator/index.tsx +13 -15
  138. package/src/theme/BlogPostAuthor/index.tsx +44 -0
  139. package/src/theme/{LastUpdated → BlogPostAuthor}/styles.module.css +4 -2
  140. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  141. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  142. package/src/theme/BlogPostItem/index.tsx +101 -91
  143. package/src/theme/BlogPostItem/styles.module.css +5 -1
  144. package/src/theme/BlogPostPage/index.tsx +77 -42
  145. package/src/theme/BlogPostPaginator/index.tsx +13 -19
  146. package/src/theme/BlogSidebar/index.tsx +23 -16
  147. package/src/theme/BlogSidebar/styles.module.css +8 -8
  148. package/src/theme/BlogTagsListPage/index.tsx +16 -66
  149. package/src/theme/BlogTagsPostsPage/index.tsx +43 -61
  150. package/src/theme/CodeBlock/index.tsx +77 -164
  151. package/src/theme/CodeBlock/styles.module.css +18 -13
  152. package/src/theme/Details/index.tsx +25 -0
  153. package/src/theme/Details/styles.module.css +13 -0
  154. package/src/theme/DocBreadcrumbs/index.tsx +91 -0
  155. package/src/theme/DocBreadcrumbs/styles.module.css +26 -0
  156. package/src/theme/DocCard/index.tsx +109 -0
  157. package/src/theme/DocCard/styles.module.css +43 -0
  158. package/src/theme/DocCardList/index.tsx +27 -0
  159. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +59 -0
  160. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  161. package/src/theme/DocItem/index.tsx +66 -68
  162. package/src/theme/DocItem/styles.module.css +7 -13
  163. package/src/theme/DocItemFooter/index.tsx +91 -0
  164. package/src/theme/DocItemFooter/styles.module.css +18 -0
  165. package/src/theme/DocPage/index.tsx +58 -34
  166. package/src/theme/DocPage/styles.module.css +14 -26
  167. package/src/theme/DocPaginator/index.tsx +16 -24
  168. package/src/theme/DocSidebar/index.tsx +83 -297
  169. package/src/theme/DocSidebar/styles.module.css +5 -36
  170. package/src/theme/DocSidebarItem/index.tsx +283 -0
  171. package/src/theme/DocSidebarItem/styles.module.css +13 -0
  172. package/src/theme/DocSidebarItems/index.tsx +32 -0
  173. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  174. package/src/theme/DocTagsListPage/index.tsx +39 -0
  175. package/src/theme/DocVersionBadge/index.tsx +35 -0
  176. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +77 -47
  177. package/src/theme/EditThisPage/index.tsx +6 -1
  178. package/src/theme/ErrorPageContent.tsx +41 -0
  179. package/src/theme/Footer/index.tsx +119 -45
  180. package/src/theme/Footer/styles.module.css +2 -1
  181. package/src/theme/Heading/index.tsx +41 -35
  182. package/src/theme/Heading/styles.module.css +27 -2
  183. package/src/theme/IconArrow/index.tsx +3 -5
  184. package/src/theme/IconClose/index.tsx +26 -0
  185. package/src/theme/IconEdit/index.tsx +8 -9
  186. package/src/theme/IconExternalLink/index.tsx +30 -0
  187. package/{lib/theme/Heading → src/theme/IconExternalLink}/styles.module.css +4 -2
  188. package/src/theme/IconLanguage/index.tsx +4 -6
  189. package/src/theme/IconMenu/index.tsx +4 -9
  190. package/src/theme/LastUpdated/index.tsx +35 -39
  191. package/src/theme/Layout/index.tsx +5 -6
  192. package/src/theme/Layout/styles.css +6 -0
  193. package/src/theme/LayoutHead/index.tsx +26 -25
  194. package/src/theme/LayoutProviders/index.tsx +21 -10
  195. package/src/theme/Logo/index.tsx +21 -15
  196. package/src/theme/MDXComponents/index.tsx +56 -32
  197. package/{lib/theme/hooks → src/theme/MDXComponents}/styles.css +7 -2
  198. package/src/theme/MDXPage/index.tsx +23 -28
  199. package/{lib-next/theme/LastUpdated → src/theme/MDXPage}/styles.module.css +2 -2
  200. package/src/theme/Navbar/index.tsx +208 -68
  201. package/src/theme/Navbar/styles.module.css +11 -4
  202. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
  203. package/src/theme/NavbarItem/DocNavbarItem.tsx +33 -15
  204. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  205. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +44 -28
  206. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  207. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  208. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +16 -10
  209. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  210. package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
  211. package/src/theme/NavbarItem/index.tsx +42 -19
  212. package/src/theme/NavbarItem/utils.ts +10 -0
  213. package/src/theme/NotFound.tsx +7 -5
  214. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  215. package/src/theme/SearchBar.tsx +2 -1
  216. package/src/theme/SearchMetadata/index.tsx +34 -0
  217. package/src/theme/Seo/index.tsx +7 -4
  218. package/src/theme/SkipToContent/index.tsx +9 -8
  219. package/src/theme/SkipToContent/styles.module.css +8 -3
  220. package/src/theme/TOC/index.tsx +13 -44
  221. package/src/theme/TOC/styles.module.css +2 -2
  222. package/src/theme/TOCCollapsible/index.tsx +58 -0
  223. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  224. package/src/theme/TOCInline/index.tsx +14 -35
  225. package/src/theme/TOCItems/index.tsx +100 -0
  226. package/src/theme/TabItem/index.tsx +5 -3
  227. package/src/theme/Tabs/index.tsx +115 -56
  228. package/src/theme/Tabs/styles.module.css +0 -13
  229. package/src/theme/Tag/index.tsx +29 -0
  230. package/src/theme/Tag/styles.module.css +70 -0
  231. package/src/theme/TagsListByLetter/index.tsx +43 -0
  232. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  233. package/src/theme/TagsListInline/index.tsx +35 -0
  234. package/src/theme/TagsListInline/styles.module.css +15 -0
  235. package/src/theme/ThemedImage/index.tsx +10 -12
  236. package/src/theme/ThemedImage/styles.module.css +9 -2
  237. package/src/theme/Toggle/index.tsx +66 -62
  238. package/src/theme/Toggle/styles.module.css +30 -38
  239. package/src/theme/prism-include-languages.ts +20 -15
  240. package/src/theme-classic.d.ts +755 -0
  241. package/src/translations.ts +74 -54
  242. package/src/types.d.ts +0 -589
  243. package/{lib-next/validateThemeConfig.js → src/validateThemeConfig.ts} +184 -104
  244. package/babel.config.js +0 -35
  245. package/codeTranslations/README.md +0 -20
  246. package/codeTranslations/ar.json +0 -55
  247. package/codeTranslations/base.json +0 -108
  248. package/codeTranslations/da.json +0 -55
  249. package/codeTranslations/de.json +0 -55
  250. package/codeTranslations/es.json +0 -55
  251. package/codeTranslations/fa.json +0 -55
  252. package/codeTranslations/fil.json +0 -55
  253. package/codeTranslations/fr.json +0 -55
  254. package/codeTranslations/he.json +0 -55
  255. package/codeTranslations/hi.json +0 -55
  256. package/codeTranslations/ja.json +0 -55
  257. package/codeTranslations/ko.json +0 -55
  258. package/codeTranslations/pl.json +0 -55
  259. package/codeTranslations/pt-BR.json +0 -55
  260. package/codeTranslations/pt-PT.json +0 -55
  261. package/codeTranslations/ru.json +0 -55
  262. package/codeTranslations/tr.json +0 -55
  263. package/codeTranslations/vi.json +0 -55
  264. package/codeTranslations/zh-Hans.json +0 -55
  265. package/codeTranslations/zh-Hant.json +0 -55
  266. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  267. package/lib/__tests__/translations.test.js +0 -112
  268. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  269. package/lib/theme/AnnouncementBar/index.js +0 -74
  270. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  271. package/lib/theme/BlogListPage/index.js +0 -71
  272. package/lib/theme/BlogListPaginator/index.js +0 -63
  273. package/lib/theme/BlogPostItem/index.js +0 -152
  274. package/lib/theme/BlogPostPage/index.js +0 -75
  275. package/lib/theme/BlogPostPaginator/index.js +0 -64
  276. package/lib/theme/BlogSidebar/index.js +0 -43
  277. package/lib/theme/BlogSidebar/styles.module.css +0 -46
  278. package/lib/theme/BlogTagsListPage/index.js +0 -81
  279. package/lib/theme/BlogTagsPostsPage/index.js +0 -104
  280. package/lib/theme/CodeBlock/index.js +0 -253
  281. package/lib/theme/CodeBlock/styles.module.css +0 -71
  282. package/lib/theme/DocItem/index.js +0 -120
  283. package/lib/theme/DocItem/styles.module.css +0 -28
  284. package/lib/theme/DocPage/index.js +0 -141
  285. package/lib/theme/DocPage/styles.module.css +0 -98
  286. package/lib/theme/DocPaginator/index.js +0 -63
  287. package/lib/theme/DocSidebar/index.js +0 -307
  288. package/lib/theme/DocSidebar/styles.module.css +0 -138
  289. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  290. package/lib/theme/EditThisPage/index.js +0 -31
  291. package/lib/theme/Footer/index.js +0 -108
  292. package/lib/theme/Footer/styles.module.css +0 -15
  293. package/lib/theme/Heading/index.js +0 -60
  294. package/lib/theme/Heading/styles.css +0 -23
  295. package/lib/theme/IconArrow/index.js +0 -28
  296. package/lib/theme/IconEdit/index.js +0 -34
  297. package/lib/theme/IconLanguage/index.js +0 -29
  298. package/lib/theme/IconMenu/index.js +0 -31
  299. package/lib/theme/LastUpdated/index.js +0 -65
  300. package/lib/theme/Layout/index.js +0 -64
  301. package/lib/theme/LayoutHead/index.js +0 -144
  302. package/lib/theme/LayoutProviders/index.js +0 -34
  303. package/lib/theme/Logo/index.js +0 -59
  304. package/lib/theme/MDXComponents/index.js +0 -65
  305. package/lib/theme/MDXPage/index.js +0 -68
  306. package/lib/theme/Navbar/index.js +0 -147
  307. package/lib/theme/Navbar/styles.module.css +0 -20
  308. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
  309. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
  310. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
  311. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  312. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  313. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  314. package/lib/theme/NavbarItem/index.js +0 -54
  315. package/lib/theme/NotFound.js +0 -50
  316. package/lib/theme/SearchBar.js +0 -15
  317. package/lib/theme/SearchMetadatas/index.js +0 -33
  318. package/lib/theme/Seo/index.js +0 -49
  319. package/lib/theme/SkipToContent/index.js +0 -61
  320. package/lib/theme/SkipToContent/styles.module.css +0 -16
  321. package/lib/theme/TOC/index.js +0 -59
  322. package/lib/theme/TOC/styles.module.css +0 -23
  323. package/lib/theme/TOCInline/index.js +0 -53
  324. package/lib/theme/TOCInline/styles.module.css +0 -12
  325. package/lib/theme/TabItem/index.js +0 -32
  326. package/lib/theme/Tabs/index.js +0 -150
  327. package/lib/theme/Tabs/styles.module.css +0 -23
  328. package/lib/theme/ThemeContext.js +0 -21
  329. package/lib/theme/ThemeProvider/index.js +0 -38
  330. package/lib/theme/ThemedImage/index.js +0 -48
  331. package/lib/theme/ThemedImage/styles.module.css +0 -11
  332. package/lib/theme/Toggle/index.js +0 -106
  333. package/lib/theme/Toggle/styles.module.css +0 -114
  334. package/lib/theme/UserPreferencesContext.js +0 -18
  335. package/lib/theme/UserPreferencesProvider/index.js +0 -44
  336. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  337. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  338. package/lib/theme/hooks/useDocs.js +0 -18
  339. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  340. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  341. package/lib/theme/hooks/useLocationHash.js +0 -28
  342. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  343. package/lib/theme/hooks/usePrismTheme.js +0 -36
  344. package/lib/theme/hooks/useScrollPosition.js +0 -49
  345. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  346. package/lib/theme/hooks/useTabGroupChoice.js +0 -53
  347. package/lib/theme/hooks/useTheme.js +0 -99
  348. package/lib/theme/hooks/useThemeContext.js +0 -31
  349. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  350. package/lib/theme/hooks/useWindowSize.js +0 -55
  351. package/lib/theme/prism-include-languages.js +0 -39
  352. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  353. package/lib-next/__tests__/translations.test.js +0 -128
  354. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  355. package/lib-next/index.js +0 -198
  356. package/lib-next/theme/Heading/styles.css +0 -23
  357. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  358. package/lib-next/theme/ThemeContext.js +0 -9
  359. package/lib-next/theme/ThemeProvider/index.js +0 -25
  360. package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
  361. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  362. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  363. package/lib-next/theme/hooks/useDocs.js +0 -10
  364. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  365. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  366. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  367. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  368. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  369. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  370. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  371. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
  372. package/lib-next/theme/hooks/useTheme.js +0 -82
  373. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  374. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  375. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  376. package/lib-next/translations.js +0 -145
  377. package/lib-next/types.d.ts +0 -600
  378. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  379. package/src/__tests__/translations.test.ts +0 -116
  380. package/src/__tests__/validateThemeConfig.test.js +0 -333
  381. package/src/prism-include-languages.js +0 -11
  382. package/src/theme/Heading/styles.css +0 -23
  383. package/src/theme/SearchMetadatas/index.tsx +0 -28
  384. package/src/theme/ThemeContext.ts +0 -15
  385. package/src/theme/ThemeProvider/index.tsx +0 -24
  386. package/src/theme/UserPreferencesContext.ts +0 -12
  387. package/src/theme/UserPreferencesProvider/index.tsx +0 -32
  388. package/src/theme/hooks/styles.css +0 -10
  389. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  390. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  391. package/src/theme/hooks/useDocs.ts +0 -11
  392. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  393. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  394. package/src/theme/hooks/useLocationHash.ts +0 -25
  395. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  396. package/src/theme/hooks/usePrismTheme.ts +0 -22
  397. package/src/theme/hooks/useScrollPosition.ts +0 -45
  398. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  399. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  400. package/src/theme/hooks/useTheme.ts +0 -92
  401. package/src/theme/hooks/useThemeContext.ts +0 -23
  402. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  403. package/src/theme/hooks/useWindowSize.ts +0 -51
  404. package/src/validateThemeConfig.js +0 -317
  405. package/tsconfig.json +0 -12
  406. package/update-code-translations.js +0 -239
  407. 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,289 @@ 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
+ autoCollapseSidebarCategories: false,
49
+ tableOfContents: {
50
+ minHeadingLevel: 2,
51
+ maxHeadingLevel: 3
52
+ }
43
53
  };
44
54
  exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
45
55
 
46
- const NavbarItemPosition = Joi.string().equal('left', 'right').default('left');
47
-
48
- const BaseNavbarItemSchema = Joi.object({
49
- to: Joi.string(),
50
- href: URISchema,
51
- label: Joi.string(),
52
- className: Joi.string(),
53
- prependBaseUrlToHref: Joi.string(),
54
- })
55
- // We allow any unknown attributes on the links
56
- // (users may need additional attributes like target, aria-role, data-customAttribute...)
57
- .unknown();
56
+ const NavbarItemPosition = _utilsValidation.Joi.string().equal('left', 'right').default('left');
58
57
 
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(),
67
- });
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(),
79
- });
58
+ const NavbarItemBaseSchema = _utilsValidation.Joi.object({
59
+ label: _utilsValidation.Joi.string(),
60
+ className: _utilsValidation.Joi.string()
61
+ }) // We allow any unknown attributes on the links (users may need additional
62
+ // attributes like target, aria-role, data-customAttribute...)
63
+ .unknown();
80
64
 
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(),
65
+ const DefaultNavbarItemSchema = NavbarItemBaseSchema.append({
66
+ to: _utilsValidation.Joi.string(),
67
+ href: _utilsValidation.URISchema,
68
+ activeBasePath: _utilsValidation.Joi.string(),
69
+ activeBaseRegex: _utilsValidation.Joi.string(),
70
+ prependBaseUrlToHref: _utilsValidation.Joi.bool(),
71
+ // This is only triggered in case of a nested dropdown
72
+ items: _utilsValidation.Joi.forbidden().messages({
73
+ 'any.unknown': 'Nested dropdowns are not allowed'
74
+ })
75
+ }).xor('href', 'to').messages({
76
+ 'object.xor': 'One and only one between "to" and "href" should be provided'
89
77
  });
90
-
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(),
78
+ const DocsVersionNavbarItemSchema = NavbarItemBaseSchema.append({
79
+ type: _utilsValidation.Joi.string().equal('docsVersion').required(),
80
+ to: _utilsValidation.Joi.string(),
81
+ docsPluginId: _utilsValidation.Joi.string()
99
82
  });
100
-
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(),
83
+ const DocItemSchema = NavbarItemBaseSchema.append({
84
+ type: _utilsValidation.Joi.string().equal('doc').required(),
85
+ docId: _utilsValidation.Joi.string().required(),
86
+ docsPluginId: _utilsValidation.Joi.string()
107
87
  });
108
-
109
- const SearchItemSchema = Joi.object({
110
- type: Joi.string().equal('search').required(),
111
- position: NavbarItemPosition,
88
+ const DocSidebarItemSchema = NavbarItemBaseSchema.append({
89
+ type: _utilsValidation.Joi.string().equal('docSidebar').required(),
90
+ sidebarId: _utilsValidation.Joi.string().required(),
91
+ docsPluginId: _utilsValidation.Joi.string()
112
92
  });
113
93
 
114
- // Can this be made easier? :/
115
- const isOfType = (type) => {
116
- let typeSchema = Joi.string().required();
94
+ const itemWithType = type => {
117
95
  // 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();
96
+ const typeSchema = type ? _utilsValidation.Joi.string().required().equal(type) : _utilsValidation.Joi.string().forbidden();
97
+ return _utilsValidation.Joi.object({
98
+ type: typeSchema
99
+ }).unknown().required();
126
100
  };
127
101
 
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,
102
+ const DropdownSubitemSchema = _utilsValidation.Joi.object({
103
+ position: _utilsValidation.Joi.forbidden()
104
+ }).when('.', {
105
+ switch: [{
106
+ is: itemWithType('docsVersion'),
107
+ then: DocsVersionNavbarItemSchema
108
+ }, {
109
+ is: itemWithType('doc'),
110
+ then: DocItemSchema
111
+ }, {
112
+ is: itemWithType('docSidebar'),
113
+ then: DocSidebarItemSchema
114
+ }, {
115
+ is: itemWithType(undefined),
116
+ then: DefaultNavbarItemSchema
117
+ }, {
118
+ is: _utilsValidation.Joi.alternatives().try(itemWithType('dropdown'), itemWithType('docsVersionDropdown'), itemWithType('localeDropdown'), itemWithType('search')),
119
+ then: _utilsValidation.Joi.forbidden().messages({
120
+ 'any.unknown': 'Nested dropdowns are not allowed'
121
+ })
122
+ }],
123
+ otherwise: _utilsValidation.Joi.forbidden().messages({
124
+ 'any.unknown': 'Bad navbar item type {.type}'
125
+ })
158
126
  });
159
127
 
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() })
169
- })
128
+ const DropdownNavbarItemSchema = NavbarItemBaseSchema.append({
129
+ items: _utilsValidation.Joi.array().items(DropdownSubitemSchema).required()
130
+ });
131
+ const DocsVersionDropdownNavbarItemSchema = NavbarItemBaseSchema.append({
132
+ type: _utilsValidation.Joi.string().equal('docsVersionDropdown').required(),
133
+ docsPluginId: _utilsValidation.Joi.string(),
134
+ dropdownActiveClassDisabled: _utilsValidation.Joi.boolean(),
135
+ dropdownItemsBefore: _utilsValidation.Joi.array().items(DropdownSubitemSchema).default([]),
136
+ dropdownItemsAfter: _utilsValidation.Joi.array().items(DropdownSubitemSchema).default([])
137
+ });
138
+ const LocaleDropdownNavbarItemSchema = NavbarItemBaseSchema.append({
139
+ type: _utilsValidation.Joi.string().equal('localeDropdown').required(),
140
+ dropdownItemsBefore: _utilsValidation.Joi.array().items(DropdownSubitemSchema).default([]),
141
+ dropdownItemsAfter: _utilsValidation.Joi.array().items(DropdownSubitemSchema).default([])
142
+ });
170
143
 
171
- */
144
+ const SearchItemSchema = _utilsValidation.Joi.object({
145
+ type: _utilsValidation.Joi.string().equal('search').required()
146
+ });
172
147
 
173
- /*
174
- const NavbarItemSchema = Joi.object().when('type', {
175
- is: Joi.valid('docsVersion'),
176
- then: DocsVersionNavbarItemSchema,
177
- otherwise: DefaultNavbarItemSchema,
148
+ const NavbarItemSchema = _utilsValidation.Joi.object({
149
+ position: NavbarItemPosition
150
+ }).when('.', {
151
+ switch: [{
152
+ is: itemWithType('docsVersion'),
153
+ then: DocsVersionNavbarItemSchema
154
+ }, {
155
+ is: itemWithType('dropdown'),
156
+ then: DropdownNavbarItemSchema
157
+ }, {
158
+ is: itemWithType('docsVersionDropdown'),
159
+ then: DocsVersionDropdownNavbarItemSchema
160
+ }, {
161
+ is: itemWithType('doc'),
162
+ then: DocItemSchema
163
+ }, {
164
+ is: itemWithType('docSidebar'),
165
+ then: DocSidebarItemSchema
166
+ }, {
167
+ is: itemWithType('localeDropdown'),
168
+ then: LocaleDropdownNavbarItemSchema
169
+ }, {
170
+ is: itemWithType('search'),
171
+ then: SearchItemSchema
172
+ }, {
173
+ is: itemWithType(undefined),
174
+ then: _utilsValidation.Joi.object().when('.', {
175
+ // Dropdown item can be specified without type field
176
+ is: _utilsValidation.Joi.object({
177
+ items: _utilsValidation.Joi.array().required()
178
+ }).unknown(),
179
+ then: DropdownNavbarItemSchema,
180
+ otherwise: DefaultNavbarItemSchema
181
+ })
182
+ }],
183
+ otherwise: _utilsValidation.Joi.forbidden().messages({
184
+ 'any.unknown': 'Bad navbar item type {.type}'
185
+ })
178
186
  });
179
- */
180
187
 
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);
188
+ const ColorModeSchema = _utilsValidation.Joi.object({
189
+ defaultMode: _utilsValidation.Joi.string().equal('dark', 'light').default(DEFAULT_COLOR_MODE_CONFIG.defaultMode),
190
+ disableSwitch: _utilsValidation.Joi.bool().default(DEFAULT_COLOR_MODE_CONFIG.disableSwitch),
191
+ respectPrefersColorScheme: _utilsValidation.Joi.bool().default(DEFAULT_COLOR_MODE_CONFIG.respectPrefersColorScheme),
192
+ switchConfig: _utilsValidation.Joi.object({
193
+ darkIcon: _utilsValidation.Joi.string().default(DEFAULT_COLOR_MODE_CONFIG.switchConfig.darkIcon),
194
+ darkIconStyle: _utilsValidation.Joi.object().default(DEFAULT_COLOR_MODE_CONFIG.switchConfig.darkIconStyle),
195
+ lightIcon: _utilsValidation.Joi.string().default(DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIcon),
196
+ lightIconStyle: _utilsValidation.Joi.object().default(DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIconStyle)
197
+ }).default(DEFAULT_COLOR_MODE_CONFIG.switchConfig)
198
+ }).default(DEFAULT_COLOR_MODE_CONFIG); // schema can probably be improved
199
+
204
200
 
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(),
201
+ const HtmlMetadataSchema = _utilsValidation.Joi.object({
202
+ id: _utilsValidation.Joi.string(),
203
+ name: _utilsValidation.Joi.string(),
204
+ property: _utilsValidation.Joi.string(),
205
+ content: _utilsValidation.Joi.string(),
206
+ itemprop: _utilsValidation.Joi.string()
212
207
  }).unknown();
213
208
 
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();
209
+ const FooterLinkItemSchema = _utilsValidation.Joi.object({
210
+ to: _utilsValidation.Joi.string(),
211
+ href: _utilsValidation.URISchema,
212
+ html: _utilsValidation.Joi.string(),
213
+ label: _utilsValidation.Joi.string()
214
+ }).xor('to', 'href', 'html').with('to', 'label').with('href', 'label').nand('html', 'label') // We allow any unknown attributes on the links (users may need additional
215
+ // attributes like target, aria-role, data-customAttribute...)
216
+ .unknown();
227
217
 
228
- const CustomCssSchema = Joi.alternatives()
229
- .try(Joi.array().items(Joi.string().required()), Joi.string().required())
230
- .optional();
218
+ const CustomCssSchema = _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array().items(_utilsValidation.Joi.string().required()), _utilsValidation.Joi.string().required()).optional();
231
219
 
232
- const ThemeConfigSchema = Joi.object({
220
+ const ThemeConfigSchema = _utilsValidation.Joi.object({
233
221
  // 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',
222
+ disableDarkMode: _utilsValidation.Joi.any().forbidden().messages({
223
+ 'any.unknown': 'disableDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.disableSwitch = true'
237
224
  }),
238
225
  // 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"',
226
+ defaultDarkMode: _utilsValidation.Joi.any().forbidden().messages({
227
+ 'any.unknown': 'defaultDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.defaultMode = "dark"'
242
228
  }),
243
229
  customCss: CustomCssSchema,
244
230
  colorMode: ColorModeSchema,
245
- image: Joi.string(),
231
+ image: _utilsValidation.Joi.string(),
246
232
  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().default('#fff'),
254
- textColor: Joi.string().default('#000'),
255
- isCloseable: Joi.bool().default(true),
233
+ metadata: _utilsValidation.Joi.array().items(HtmlMetadataSchema).default(DEFAULT_CONFIG.metadata),
234
+ // cSpell:ignore metadatas
235
+ metadatas: _utilsValidation.Joi.any().forbidden().messages({
236
+ 'any.unknown': // cSpell:ignore metadatas
237
+ 'themeConfig.metadatas has been renamed as themeConfig.metadata. See https://github.com/facebook/docusaurus/pull/5871'
238
+ }),
239
+ announcementBar: _utilsValidation.Joi.object({
240
+ id: _utilsValidation.Joi.string().default('announcement-bar'),
241
+ content: _utilsValidation.Joi.string().required(),
242
+ backgroundColor: _utilsValidation.Joi.string(),
243
+ textColor: _utilsValidation.Joi.string(),
244
+ isCloseable: _utilsValidation.Joi.bool().default(true)
256
245
  }).optional(),
257
- navbar: Joi.object({
258
- style: Joi.string().equal('dark', 'primary'),
259
- hideOnScroll: Joi.bool().default(DEFAULT_CONFIG.navbar.hideOnScroll),
246
+ navbar: _utilsValidation.Joi.object({
247
+ style: _utilsValidation.Joi.string().equal('dark', 'primary'),
248
+ hideOnScroll: _utilsValidation.Joi.bool().default(DEFAULT_CONFIG.navbar.hideOnScroll),
260
249
  // 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(),
250
+ links: _utilsValidation.Joi.any().forbidden().messages({
251
+ 'any.unknown': 'themeConfig.navbar.links has been renamed as themeConfig.navbar.items'
275
252
  }),
253
+ items: _utilsValidation.Joi.array().items(NavbarItemSchema).default(DEFAULT_CONFIG.navbar.items),
254
+ title: _utilsValidation.Joi.string().allow('', null),
255
+ logo: _utilsValidation.Joi.object({
256
+ alt: _utilsValidation.Joi.string().allow(''),
257
+ src: _utilsValidation.Joi.string().required(),
258
+ srcDark: _utilsValidation.Joi.string(),
259
+ width: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.string(), _utilsValidation.Joi.number()),
260
+ height: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.string(), _utilsValidation.Joi.number()),
261
+ href: _utilsValidation.Joi.string(),
262
+ target: _utilsValidation.Joi.string()
263
+ })
276
264
  }).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(),
265
+ footer: _utilsValidation.Joi.object({
266
+ style: _utilsValidation.Joi.string().equal('dark', 'light').default('light'),
267
+ logo: _utilsValidation.Joi.object({
268
+ alt: _utilsValidation.Joi.string().allow(''),
269
+ src: _utilsValidation.Joi.string(),
270
+ srcDark: _utilsValidation.Joi.string(),
271
+ // TODO infer this from reading the image
272
+ width: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.string(), _utilsValidation.Joi.number()),
273
+ height: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.string(), _utilsValidation.Joi.number()),
274
+ href: _utilsValidation.Joi.string()
284
275
  }),
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([]),
276
+ copyright: _utilsValidation.Joi.string(),
277
+ links: _utilsValidation.Joi.alternatives(_utilsValidation.Joi.array().items(_utilsValidation.Joi.object({
278
+ title: _utilsValidation.Joi.string().allow(null).default(null),
279
+ items: _utilsValidation.Joi.array().items(FooterLinkItemSchema).default([])
280
+ })), _utilsValidation.Joi.array().items(FooterLinkItemSchema)).messages({
281
+ 'alternatives.match': `The footer must be either simple or multi-column, and not a mix of the two. See: https://docusaurus.io/docs/api/themes/configuration#footer-links`
282
+ }).default([])
294
283
  }).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(),
284
+ prism: _utilsValidation.Joi.object({
285
+ theme: _utilsValidation.Joi.object({
286
+ plain: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array(), _utilsValidation.Joi.object()).required(),
287
+ styles: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array(), _utilsValidation.Joi.object()).required()
299
288
  }),
300
- darkTheme: Joi.object({
301
- plain: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
302
- styles: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
289
+ darkTheme: _utilsValidation.Joi.object({
290
+ plain: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array(), _utilsValidation.Joi.object()).required(),
291
+ styles: _utilsValidation.Joi.alternatives().try(_utilsValidation.Joi.array(), _utilsValidation.Joi.object()).required()
303
292
  }),
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),
293
+ defaultLanguage: _utilsValidation.Joi.string(),
294
+ additionalLanguages: _utilsValidation.Joi.array().items(_utilsValidation.Joi.string()).default(DEFAULT_CONFIG.prism.additionalLanguages)
295
+ }).default(DEFAULT_CONFIG.prism).unknown(),
296
+ hideableSidebar: _utilsValidation.Joi.bool().default(DEFAULT_CONFIG.hideableSidebar),
297
+ autoCollapseSidebarCategories: _utilsValidation.Joi.bool().default(DEFAULT_CONFIG.autoCollapseSidebarCategories),
298
+ sidebarCollapsible: _utilsValidation.Joi.forbidden().messages({
299
+ 'any.unknown': 'The themeConfig.sidebarCollapsible has been moved to docs plugin options. See: https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs'
300
+ }),
301
+ tableOfContents: _utilsValidation.Joi.object({
302
+ minHeadingLevel: _utilsValidation.Joi.number().default(DEFAULT_CONFIG.tableOfContents.minHeadingLevel).when('maxHeadingLevel', {
303
+ is: _utilsValidation.Joi.exist(),
304
+ then: _utilsValidation.Joi.number().integer().min(2).max(6).max(_utilsValidation.Joi.ref('maxHeadingLevel')),
305
+ otherwise: _utilsValidation.Joi.number().integer().min(2).max(6)
306
+ }),
307
+ maxHeadingLevel: _utilsValidation.Joi.number().integer().min(2).max(6).default(DEFAULT_CONFIG.tableOfContents.maxHeadingLevel)
308
+ }).default(DEFAULT_CONFIG.tableOfContents)
312
309
  });
310
+
313
311
  exports.ThemeConfigSchema = ThemeConfigSchema;
314
312
 
315
- exports.validateThemeConfig = ({validate, themeConfig}) => {
313
+ function validateThemeConfig({
314
+ validate,
315
+ themeConfig
316
+ }) {
316
317
  return validate(ThemeConfigSchema, themeConfig);
317
- };
318
+ }
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React from 'react';
8
+ import clsx from 'clsx';
9
+ const icons = {
10
+ note: (
11
+ <svg
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ width="14"
14
+ height="16"
15
+ viewBox="0 0 14 16">
16
+ <path
17
+ fillRule="evenodd"
18
+ d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"
19
+ />
20
+ </svg>
21
+ ),
22
+ tip: (
23
+ <svg
24
+ xmlns="http://www.w3.org/2000/svg"
25
+ width="12"
26
+ height="16"
27
+ viewBox="0 0 12 16">
28
+ <path
29
+ fillRule="evenodd"
30
+ d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"
31
+ />
32
+ </svg>
33
+ ),
34
+ danger: (
35
+ <svg
36
+ xmlns="http://www.w3.org/2000/svg"
37
+ width="12"
38
+ height="16"
39
+ viewBox="0 0 12 16">
40
+ <path
41
+ fillRule="evenodd"
42
+ d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"
43
+ />
44
+ </svg>
45
+ ),
46
+ info: (
47
+ <svg
48
+ xmlns="http://www.w3.org/2000/svg"
49
+ width="14"
50
+ height="16"
51
+ viewBox="0 0 14 16">
52
+ <path
53
+ fillRule="evenodd"
54
+ d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"
55
+ />
56
+ </svg>
57
+ ),
58
+ caution: (
59
+ <svg
60
+ xmlns="http://www.w3.org/2000/svg"
61
+ width="16"
62
+ height="16"
63
+ viewBox="0 0 16 16">
64
+ <path
65
+ fillRule="evenodd"
66
+ d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"
67
+ />
68
+ </svg>
69
+ ),
70
+ };
71
+ const ifmClassNames = {
72
+ note: 'secondary',
73
+ tip: 'success',
74
+ danger: 'danger',
75
+ info: 'info',
76
+ caution: 'warning',
77
+ };
78
+ export default function Admonition({
79
+ children,
80
+ type,
81
+ title = type,
82
+ icon = icons[type],
83
+ }) {
84
+ return (
85
+ <div
86
+ className={clsx(
87
+ 'admonition',
88
+ `admonition-${type}`,
89
+ 'alert',
90
+ `alert--${ifmClassNames[type]}`,
91
+ )}>
92
+ <div className="admonition-heading">
93
+ <h5>
94
+ <span className="admonition-icon">{icon}</span>
95
+ {title}
96
+ </h5>
97
+ </div>
98
+ <div className="admonition-content">{children}</div>
99
+ </div>
100
+ );
101
+ }