@docusaurus/theme-classic 2.0.0-beta.12faed89d → 2.0.0-beta.13

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