@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
@@ -12,7 +12,7 @@ import type {Props} from '@theme/IconEdit';
12
12
 
13
13
  import styles from './styles.module.css';
14
14
 
15
- const IconEdit = ({className, ...restProps}: Props): JSX.Element => {
15
+ function IconEdit({className, ...restProps}: Props): JSX.Element {
16
16
  return (
17
17
  <svg
18
18
  fill="currentColor"
@@ -27,6 +27,6 @@ const IconEdit = ({className, ...restProps}: Props): JSX.Element => {
27
27
  </g>
28
28
  </svg>
29
29
  );
30
- };
30
+ }
31
31
 
32
32
  export default IconEdit;
@@ -10,10 +10,7 @@ import type {Props} from '@theme/IconExternalLink';
10
10
 
11
11
  import styles from './styles.module.css';
12
12
 
13
- const IconExternalLink = ({
14
- width = 13.5,
15
- height = 13.5,
16
- }: Props): JSX.Element => {
13
+ function IconExternalLink({width = 13.5, height = 13.5}: Props): JSX.Element {
17
14
  return (
18
15
  <svg
19
16
  width={width}
@@ -27,6 +24,6 @@ const IconExternalLink = ({
27
24
  />
28
25
  </svg>
29
26
  );
30
- };
27
+ }
31
28
 
32
29
  export default IconExternalLink;
@@ -8,11 +8,7 @@
8
8
  import React from 'react';
9
9
  import type {Props} from '@theme/IconLanguage';
10
10
 
11
- const IconLanguage = ({
12
- width = 20,
13
- height = 20,
14
- ...props
15
- }: Props): JSX.Element => {
11
+ function IconLanguage({width = 20, height = 20, ...props}: Props): JSX.Element {
16
12
  return (
17
13
  <svg
18
14
  viewBox="0 0 20 20"
@@ -26,6 +22,6 @@ const IconLanguage = ({
26
22
  />
27
23
  </svg>
28
24
  );
29
- };
25
+ }
30
26
 
31
27
  export default IconLanguage;
@@ -8,12 +8,12 @@
8
8
  import React from 'react';
9
9
  import type {Props} from '@theme/IconMenu';
10
10
 
11
- const IconMenu = ({
11
+ function IconMenu({
12
12
  width = 30,
13
13
  height = 30,
14
14
  className,
15
15
  ...restProps
16
- }: Props): JSX.Element => {
16
+ }: Props): JSX.Element {
17
17
  return (
18
18
  <svg
19
19
  className={className}
@@ -31,6 +31,6 @@ const IconMenu = ({
31
31
  />
32
32
  </svg>
33
33
  );
34
- };
34
+ }
35
35
 
36
36
  export default IconMenu;
@@ -8,6 +8,7 @@
8
8
  import React from 'react';
9
9
  import Translate from '@docusaurus/Translate';
10
10
  import type {Props} from '@theme/LastUpdated';
11
+ import {ThemeClassNames} from '@docusaurus/theme-common';
11
12
 
12
13
  function LastUpdatedAtDate({
13
14
  lastUpdatedAt,
@@ -57,7 +58,7 @@ export default function LastUpdated({
57
58
  lastUpdatedBy,
58
59
  }: Props): JSX.Element {
59
60
  return (
60
- <>
61
+ <span className={ThemeClassNames.common.lastUpdated}>
61
62
  <Translate
62
63
  id="theme.lastUpdated.lastUpdatedAtBy"
63
64
  description="The sentence used to display when a page has been last updated, and by who"
@@ -84,6 +85,6 @@ export default function LastUpdated({
84
85
  <small> (Simulated during dev for better perf)</small>
85
86
  </div>
86
87
  )}
87
- </>
88
+ </span>
88
89
  );
89
90
  }
@@ -7,6 +7,7 @@
7
7
 
8
8
  import React from 'react';
9
9
  import clsx from 'clsx';
10
+ import ErrorBoundary from '@docusaurus/ErrorBoundary';
10
11
  import SkipToContent from '@theme/SkipToContent';
11
12
  import AnnouncementBar from '@theme/AnnouncementBar';
12
13
  import Navbar from '@theme/Navbar';
@@ -16,6 +17,7 @@ import LayoutHead from '@theme/LayoutHead';
16
17
  import type {Props} from '@theme/Layout';
17
18
  import useKeyboardNavigation from '@theme/hooks/useKeyboardNavigation';
18
19
  import {ThemeClassNames} from '@docusaurus/theme-common';
20
+ import ErrorPageContent from '@theme/ErrorPageContent';
19
21
  import './styles.css';
20
22
 
21
23
  function Layout(props: Props): JSX.Element {
@@ -39,7 +41,7 @@ function Layout(props: Props): JSX.Element {
39
41
  wrapperClassName,
40
42
  pageClassName,
41
43
  )}>
42
- {children}
44
+ <ErrorBoundary fallback={ErrorPageContent}>{children}</ErrorBoundary>
43
45
  </div>
44
46
 
45
47
  {!noFooter && <Footer />}
@@ -10,12 +10,13 @@ import Head from '@docusaurus/Head';
10
10
  import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
11
11
  import useBaseUrl from '@docusaurus/useBaseUrl';
12
12
  import type {Props} from '@theme/Layout';
13
- import SearchMetadatas from '@theme/SearchMetadatas';
13
+ import SearchMetadata from '@theme/SearchMetadata';
14
14
  import Seo from '@theme/Seo';
15
15
  import {
16
16
  DEFAULT_SEARCH_TAG,
17
17
  useTitleFormatter,
18
18
  useAlternatePageUtils,
19
+ useThemeConfig,
19
20
  } from '@docusaurus/theme-common';
20
21
  import {useLocation} from '@docusaurus/router';
21
22
 
@@ -83,13 +84,11 @@ function CanonicalUrlHeaders({permalink}: {permalink?: string}) {
83
84
 
84
85
  export default function LayoutHead(props: Props): JSX.Element {
85
86
  const {
86
- siteConfig: {
87
- favicon,
88
- themeConfig: {metadatas, image: defaultImage},
89
- },
87
+ siteConfig: {favicon},
90
88
  i18n: {currentLocale, localeConfigs},
91
89
  } = useDocusaurusContext();
92
- const {title, description, image, keywords, searchMetadatas} = props;
90
+ const {metadata, image: defaultImage} = useThemeConfig();
91
+ const {title, description, image, keywords, searchMetadata} = props;
93
92
  const faviconUrl = useBaseUrl(favicon);
94
93
  const pageTitle = useTitleFormatter(title);
95
94
 
@@ -102,36 +101,38 @@ export default function LayoutHead(props: Props): JSX.Element {
102
101
  <>
103
102
  <Head>
104
103
  <html lang={htmlLang} dir={htmlDir} />
105
- {favicon && <link rel="shortcut icon" href={faviconUrl} />}
104
+ {favicon && <link rel="icon" href={faviconUrl} />}
106
105
  <title>{pageTitle}</title>
107
106
  <meta property="og:title" content={pageTitle} />
108
- {image ||
109
- (defaultImage && (
110
- <meta name="twitter:card" content="summary_large_image" />
111
- ))}
107
+ <meta name="twitter:card" content="summary_large_image" />
112
108
  </Head>
113
109
 
114
- <Seo {...{description, keywords, image}} />
110
+ {/* image can override the default image */}
111
+ {defaultImage && <Seo image={defaultImage} />}
112
+ {image && <Seo image={image} />}
113
+
114
+ <Seo description={description} keywords={keywords} />
115
115
 
116
116
  <CanonicalUrlHeaders />
117
117
 
118
118
  <AlternateLangHeaders />
119
119
 
120
- <SearchMetadatas
120
+ <SearchMetadata
121
121
  tag={DEFAULT_SEARCH_TAG}
122
122
  locale={currentLocale}
123
- {...searchMetadatas}
123
+ {...searchMetadata}
124
124
  />
125
125
 
126
126
  <Head
127
127
  // it's important to have an additional <Head> element here,
128
128
  // as it allows react-helmet to override values set in previous <Head>
129
- // ie we can override default metadatas such as "twitter:card"
129
+ // ie we can override default metadata such as "twitter:card"
130
130
  // In same Head, the same meta would appear twice instead of overriding
131
131
  // See react-helmet doc
132
132
  >
133
- {metadatas.map((metadata, i) => (
134
- <meta key={`metadata_${i}`} {...metadata} />
133
+ {/* Yes, "metadatum" is the grammatically correct term */}
134
+ {metadata.map((metadatum, i) => (
135
+ <meta key={`metadata_${i}`} {...metadatum} />
135
136
  ))}
136
137
  </Head>
137
138
  </>
@@ -8,17 +8,28 @@
8
8
  import React from 'react';
9
9
  import ThemeProvider from '@theme/ThemeProvider';
10
10
  import UserPreferencesProvider from '@theme/UserPreferencesProvider';
11
- import {DocsPreferredVersionContextProvider} from '@docusaurus/theme-common';
11
+ import {
12
+ AnnouncementBarProvider,
13
+ DocsPreferredVersionContextProvider,
14
+ MobileSecondaryMenuProvider,
15
+ ScrollControllerProvider,
16
+ } from '@docusaurus/theme-common';
12
17
  import type {Props} from '@theme/LayoutProviders';
13
18
 
14
19
  export default function LayoutProviders({children}: Props): JSX.Element {
15
20
  return (
16
21
  <ThemeProvider>
17
- <UserPreferencesProvider>
18
- <DocsPreferredVersionContextProvider>
19
- {children}
20
- </DocsPreferredVersionContextProvider>
21
- </UserPreferencesProvider>
22
+ <AnnouncementBarProvider>
23
+ <UserPreferencesProvider>
24
+ <ScrollControllerProvider>
25
+ <DocsPreferredVersionContextProvider>
26
+ <MobileSecondaryMenuProvider>
27
+ {children}
28
+ </MobileSecondaryMenuProvider>
29
+ </DocsPreferredVersionContextProvider>
30
+ </ScrollControllerProvider>
31
+ </UserPreferencesProvider>
32
+ </AnnouncementBarProvider>
22
33
  </ThemeProvider>
23
34
  );
24
35
  }
@@ -12,17 +12,15 @@ import Link from '@docusaurus/Link';
12
12
  import ThemedImage from '@theme/ThemedImage';
13
13
  import useBaseUrl from '@docusaurus/useBaseUrl';
14
14
  import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
15
+ import {useThemeConfig} from '@docusaurus/theme-common';
15
16
 
16
- const Logo = (props: Props): JSX.Element => {
17
+ function Logo(props: Props): JSX.Element {
17
18
  const {
18
- siteConfig: {
19
- title,
20
- themeConfig: {
21
- navbar: {title: navbarTitle, logo = {src: ''}},
22
- },
23
- },
24
- isClient,
19
+ siteConfig: {title},
25
20
  } = useDocusaurusContext();
21
+ const {
22
+ navbar: {title: navbarTitle, logo = {src: ''}},
23
+ } = useThemeConfig();
26
24
 
27
25
  const {imageClassName, titleClassName, ...propsRest} = props;
28
26
  const logoLink = useBaseUrl(logo.href || '/');
@@ -30,23 +28,29 @@ const Logo = (props: Props): JSX.Element => {
30
28
  light: useBaseUrl(logo.src),
31
29
  dark: useBaseUrl(logo.srcDark || logo.src),
32
30
  };
31
+ const themedImage = (
32
+ <ThemedImage
33
+ sources={sources}
34
+ height={logo.height}
35
+ width={logo.width}
36
+ alt={logo.alt || navbarTitle || title}
37
+ />
38
+ );
33
39
 
34
40
  return (
35
41
  <Link
36
42
  to={logoLink}
37
43
  {...propsRest}
38
44
  {...(logo.target && {target: logo.target})}>
39
- {logo.src && (
40
- <ThemedImage
41
- key={isClient}
42
- className={imageClassName}
43
- sources={sources}
44
- alt={logo.alt || navbarTitle || title}
45
- />
46
- )}
45
+ {logo.src &&
46
+ (imageClassName ? (
47
+ <div className={imageClassName}>{themedImage}</div>
48
+ ) : (
49
+ themedImage
50
+ ))}
47
51
  {navbarTitle != null && <b className={titleClassName}>{navbarTitle}</b>}
48
52
  </Link>
49
53
  );
50
- };
54
+ }
51
55
 
52
56
  export default Logo;
@@ -5,13 +5,33 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import React, {isValidElement} from 'react';
8
+ import React, {ComponentProps, isValidElement, ReactElement} from 'react';
9
+ import Head from '@docusaurus/Head';
9
10
  import Link from '@docusaurus/Link';
10
11
  import CodeBlock, {Props} from '@theme/CodeBlock';
11
12
  import Heading from '@theme/Heading';
13
+ import Details from '@theme/Details';
12
14
  import type {MDXComponentsObject} from '@theme/MDXComponents';
13
15
 
16
+ import './styles.css';
17
+
18
+ // MDX elements are wrapped through the MDX pragma
19
+ // In some cases (notably usage with Head/Helmet) we need to unwrap those elements.
20
+ function unwrapMDXElement(element: ReactElement) {
21
+ if (element?.props?.mdxType && element?.props?.originalType) {
22
+ const {mdxType, originalType, ...newProps} = element.props;
23
+ return React.createElement(element.props.originalType, newProps);
24
+ }
25
+ return element;
26
+ }
27
+
14
28
  const MDXComponents: MDXComponentsObject = {
29
+ head: (props) => {
30
+ const unwrappedChildren = React.Children.map(props.children, (child) =>
31
+ unwrapMDXElement(child as ReactElement),
32
+ );
33
+ return <Head {...props}>{unwrappedChildren}</Head>;
34
+ },
15
35
  code: (props) => {
16
36
  const {children} = props;
17
37
 
@@ -29,21 +49,35 @@ const MDXComponents: MDXComponentsObject = {
29
49
  },
30
50
  a: (props) => <Link {...props} />,
31
51
  pre: (props) => {
32
- const {children} = props as {children: any};
52
+ const {children} = props;
33
53
 
34
54
  // See comment for `code` above
35
- if (isValidElement(children?.props?.children)) {
36
- return children?.props.children;
55
+ if (isValidElement(children) && isValidElement(children?.props?.children)) {
56
+ return children.props.children;
37
57
  }
38
58
 
39
59
  return (
40
60
  <CodeBlock
41
61
  {...((isValidElement(children)
42
62
  ? children?.props
43
- : {children}) as Props)}
63
+ : {...props}) as Props)}
44
64
  />
45
65
  );
46
66
  },
67
+ details: (props): JSX.Element => {
68
+ const items = React.Children.toArray(props.children) as ReactElement[];
69
+ // Split summary item from the rest to pass it as a separate prop to the Detais theme component
70
+ const summary: ReactElement<ComponentProps<'summary'>> = items.find(
71
+ (item) => item?.props?.mdxType === 'summary',
72
+ )!;
73
+ const children = <>{items.filter((item) => item !== summary)}</>;
74
+
75
+ return (
76
+ <Details {...props} summary={summary}>
77
+ {children}
78
+ </Details>
79
+ );
80
+ },
47
81
  h1: Heading('h1'),
48
82
  h2: Heading('h2'),
49
83
  h3: Heading('h3'),
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ ul.contains-task-list {
9
+ padding-left: 0;
10
+ list-style: none;
11
+ }
@@ -18,7 +18,11 @@ import styles from './styles.module.css';
18
18
 
19
19
  function MDXPage(props: Props): JSX.Element {
20
20
  const {content: MDXPageContent} = props;
21
- const {frontMatter, metadata} = MDXPageContent;
21
+ const {
22
+ // TODO this frontmatter is not validated/normalized, it's the raw user-provided one. We should expose normalized one too!
23
+ frontMatter,
24
+ metadata,
25
+ } = MDXPageContent;
22
26
 
23
27
  const {
24
28
  title,
@@ -44,7 +48,11 @@ function MDXPage(props: Props): JSX.Element {
44
48
  </div>
45
49
  {!hideTableOfContents && MDXPageContent.toc && (
46
50
  <div className="col col--2">
47
- <TOC toc={MDXPageContent.toc} />
51
+ <TOC
52
+ toc={MDXPageContent.toc}
53
+ minHeadingLevel={frontMatter.toc_min_heading_level}
54
+ maxHeadingLevel={frontMatter.toc_max_heading_level}
55
+ />
48
56
  </div>
49
57
  )}
50
58
  </div>