@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
@@ -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,84 +36,49 @@ const DEFAULT_CONFIG = {
40
36
  items: [],
41
37
  },
42
38
  hideableSidebar: false,
39
+ tableOfContents: {
40
+ minHeadingLevel: 2,
41
+ maxHeadingLevel: 3,
42
+ },
43
43
  };
44
- exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
45
-
46
44
  const NavbarItemPosition = Joi.string().equal('left', 'right').default('left');
47
-
48
- const BaseNavbarItemSchema = Joi.object({
49
- to: Joi.string(),
50
- href: URISchema,
45
+ const NavbarItemBaseSchema = Joi.object({
51
46
  label: Joi.string(),
52
47
  className: Joi.string(),
53
- prependBaseUrlToHref: Joi.bool(),
54
- })
55
- // We allow any unknown attributes on the links
48
+ }) // We allow any unknown attributes on the links
56
49
  // (users may need additional attributes like target, aria-role, data-customAttribute...)
57
50
  .unknown();
58
-
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,
51
+ const DefaultNavbarItemSchema = NavbarItemBaseSchema.append({
52
+ to: Joi.string(),
53
+ href: URISchema,
65
54
  activeBasePath: Joi.string(),
66
55
  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({
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({
73
67
  type: Joi.string().equal('docsVersion').required(),
74
- position: NavbarItemPosition,
75
- label: Joi.string(),
76
68
  to: Joi.string(),
77
69
  docsPluginId: Joi.string(),
78
- className: Joi.string(),
79
70
  });
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(),
89
- });
90
-
91
- const DocItemSchema = Joi.object({
71
+ const DocItemSchema = NavbarItemBaseSchema.append({
92
72
  type: Joi.string().equal('doc').required(),
93
- position: NavbarItemPosition,
94
73
  docId: Joi.string().required(),
95
- label: Joi.string(),
96
74
  docsPluginId: Joi.string(),
97
- activeSidebarClassName: Joi.string().default('navbar__link--active'),
98
- className: Joi.string(),
99
- });
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(),
107
- });
108
-
109
- const SearchItemSchema = Joi.object({
110
- type: Joi.string().equal('search').required(),
111
- position: NavbarItemPosition,
112
75
  });
113
76
 
114
- // Can this be made easier? :/
115
- const isOfType = (type) => {
116
- let typeSchema = Joi.string().required();
77
+ const itemWithType = (type) => {
117
78
  // because equal(undefined) is not supported :/
118
- if (type) {
119
- typeSchema = typeSchema.equal(type);
120
- }
79
+ const typeSchema = type
80
+ ? Joi.string().required().equal(type)
81
+ : Joi.string().forbidden();
121
82
  return Joi.object({
122
83
  type: typeSchema,
123
84
  })
@@ -125,59 +86,100 @@ const isOfType = (type) => {
125
86
  .required();
126
87
  };
127
88
 
128
- const NavbarItemSchema = Joi.object().when({
89
+ const DropdownSubitemSchema = Joi.object({
90
+ position: Joi.forbidden(),
91
+ }).when('.', {
129
92
  switch: [
130
93
  {
131
- is: isOfType('docsVersion'),
94
+ is: itemWithType('docsVersion'),
132
95
  then: DocsVersionNavbarItemSchema,
133
96
  },
134
97
  {
135
- 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'),
136
153
  then: DocsVersionDropdownNavbarItemSchema,
137
154
  },
138
155
  {
139
- is: isOfType('doc'),
156
+ is: itemWithType('doc'),
140
157
  then: DocItemSchema,
141
158
  },
142
159
  {
143
- is: isOfType('localeDropdown'),
160
+ is: itemWithType('localeDropdown'),
144
161
  then: LocaleDropdownNavbarItemSchema,
145
162
  },
146
163
  {
147
- is: isOfType('search'),
164
+ is: itemWithType('search'),
148
165
  then: SearchItemSchema,
149
166
  },
150
167
  {
151
- is: isOfType(undefined),
152
- then: Joi.forbidden().messages({
153
- '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,
154
176
  }),
155
177
  },
156
178
  ],
157
- otherwise: DefaultNavbarItemSchema,
158
- });
159
-
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
- })
170
-
171
- */
172
-
173
- /*
174
- const NavbarItemSchema = Joi.object().when('type', {
175
- is: Joi.valid('docsVersion'),
176
- then: DocsVersionNavbarItemSchema,
177
- otherwise: DefaultNavbarItemSchema,
179
+ otherwise: Joi.forbidden().messages({
180
+ 'any.unknown': 'Bad navbar item type {.type}',
181
+ }),
178
182
  });
179
- */
180
-
181
183
  const ColorModeSchema = Joi.object({
182
184
  defaultMode: Joi.string()
183
185
  .equal('dark', 'light')
@@ -200,9 +202,8 @@ const ColorModeSchema = Joi.object({
200
202
  DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIconStyle,
201
203
  ),
202
204
  }).default(DEFAULT_COLOR_MODE_CONFIG.switchConfig),
203
- }).default(DEFAULT_COLOR_MODE_CONFIG);
205
+ }).default(DEFAULT_COLOR_MODE_CONFIG); // schema can probably be improved
204
206
 
205
- // schema can probably be improved
206
207
  const HtmlMetadataSchema = Joi.object({
207
208
  id: Joi.string(),
208
209
  name: Joi.string(),
@@ -210,7 +211,6 @@ const HtmlMetadataSchema = Joi.object({
210
211
  content: Joi.string(),
211
212
  itemprop: Joi.string(),
212
213
  }).unknown();
213
-
214
214
  const FooterLinkItemSchema = Joi.object({
215
215
  to: Joi.string(),
216
216
  href: URISchema,
@@ -220,23 +220,20 @@ const FooterLinkItemSchema = Joi.object({
220
220
  .xor('to', 'href', 'html')
221
221
  .with('to', 'label')
222
222
  .with('href', 'label')
223
- .nand('html', 'label')
224
- // We allow any unknown attributes on the links
223
+ .nand('html', 'label') // We allow any unknown attributes on the links
225
224
  // (users may need additional attributes like target, aria-role, data-customAttribute...)
226
225
  .unknown();
227
-
228
226
  const CustomCssSchema = Joi.alternatives()
229
227
  .try(Joi.array().items(Joi.string().required()), Joi.string().required())
230
228
  .optional();
231
-
232
229
  const ThemeConfigSchema = Joi.object({
233
230
  // TODO temporary (@alpha-58)
234
- disableDarkMode: Joi.any().forbidden(false).messages({
231
+ disableDarkMode: Joi.any().forbidden().messages({
235
232
  'any.unknown':
236
233
  'disableDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.disableSwitch = true',
237
234
  }),
238
235
  // TODO temporary (@alpha-58)
239
- defaultDarkMode: Joi.any().forbidden(false).messages({
236
+ defaultDarkMode: Joi.any().forbidden().messages({
240
237
  'any.unknown':
241
238
  'defaultDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.defaultMode = "dark"',
242
239
  }),
@@ -244,12 +241,16 @@ const ThemeConfigSchema = Joi.object({
244
241
  colorMode: ColorModeSchema,
245
242
  image: Joi.string(),
246
243
  docs: DocsSchema,
247
- metadatas: Joi.array()
244
+ metadata: Joi.array()
248
245
  .items(HtmlMetadataSchema)
249
- .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
+ }),
250
251
  announcementBar: Joi.object({
251
252
  id: Joi.string().default('announcement-bar'),
252
- content: Joi.string(),
253
+ content: Joi.string().required(),
253
254
  backgroundColor: Joi.string(),
254
255
  textColor: Joi.string(),
255
256
  isCloseable: Joi.bool().default(true),
@@ -270,6 +271,8 @@ const ThemeConfigSchema = Joi.object({
270
271
  alt: Joi.string().allow(''),
271
272
  src: Joi.string().required(),
272
273
  srcDark: Joi.string(),
274
+ width: Joi.alternatives().try(Joi.string(), Joi.number()),
275
+ height: Joi.alternatives().try(Joi.string(), Joi.number()),
273
276
  href: Joi.string(),
274
277
  target: Joi.string(),
275
278
  }),
@@ -280,6 +283,9 @@ const ThemeConfigSchema = Joi.object({
280
283
  alt: Joi.string().allow(''),
281
284
  src: Joi.string(),
282
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()),
283
289
  href: Joi.string(),
284
290
  }),
285
291
  copyright: Joi.string(),
@@ -309,9 +315,30 @@ const ThemeConfigSchema = Joi.object({
309
315
  .default(DEFAULT_CONFIG.prism)
310
316
  .unknown(),
311
317
  hideableSidebar: Joi.bool().default(DEFAULT_CONFIG.hideableSidebar),
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),
312
340
  });
313
- exports.ThemeConfigSchema = ThemeConfigSchema;
314
-
315
- exports.validateThemeConfig = ({validate, themeConfig}) => {
341
+ export {DEFAULT_CONFIG, ThemeConfigSchema};
342
+ export function validateThemeConfig({validate, themeConfig}) {
316
343
  return validate(ThemeConfigSchema, themeConfig);
317
- };
344
+ }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-classic",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-beta.10",
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",
18
- "watch": "concurrently -n \"lib,lib-next\" --kill-others \"yarn babel:lib --watch\" \"yarn babel:lib-next --watch\"",
17
+ "build": "tsc --noEmit && yarn babel:lib && yarn babel:lib-next && yarn format:lib-next",
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.1",
27
- "@docusaurus/plugin-content-blog": "2.0.0-beta.1",
28
- "@docusaurus/plugin-content-docs": "2.0.0-beta.1",
29
- "@docusaurus/plugin-content-pages": "2.0.0-beta.1",
30
- "@docusaurus/theme-common": "2.0.0-beta.1",
31
- "@docusaurus/types": "2.0.0-beta.1",
32
- "@docusaurus/utils": "2.0.0-beta.1",
33
- "@docusaurus/utils-common": "2.0.0-beta.1",
34
- "@docusaurus/utils-validation": "2.0.0-beta.1",
26
+ "@docusaurus/plugin-content-blog": "2.0.0-beta.10",
27
+ "@docusaurus/plugin-content-docs": "2.0.0-beta.10",
28
+ "@docusaurus/plugin-content-pages": "2.0.0-beta.10",
29
+ "@docusaurus/theme-common": "2.0.0-beta.10",
30
+ "@docusaurus/theme-translations": "2.0.0-beta.10",
31
+ "@docusaurus/utils": "2.0.0-beta.10",
32
+ "@docusaurus/utils-validation": "2.0.0-beta.10",
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.1"
48
+ "@docusaurus/module-type-aliases": "2.0.0-beta.10",
49
+ "@docusaurus/types": "2.0.0-beta.10",
50
+ "@types/mdx-js__react": "^1.5.4",
51
+ "@types/parse-numeric-range": "^0.0.1",
52
+ "@types/rtlcss": "^3.1.1",
53
+ "fs-extra": "^10.0.0",
54
+ "react-test-renderer": "^17.0.2",
55
+ "utility-types": "^3.10.0"
54
56
  },
55
57
  "peerDependencies": {
58
+ "@docusaurus/core": "2.0.0-beta.9",
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": "72ed3476bf4ffe1fc2d1025dd2def536a2de8f12"
65
+ "gitHead": "6f4869af5721435d6995e63e2f24ac41646e34ea"
63
66
  }