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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +35 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +102 -0
  5. package/lib/index.js +59 -43
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +755 -0
  8. package/lib/translations.js +40 -34
  9. package/lib/types.d.ts +0 -589
  10. package/lib/validateThemeConfig.js +247 -246
  11. package/lib-next/theme/Admonition/index.js +101 -0
  12. package/lib-next/theme/AnnouncementBar/index.js +10 -22
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +26 -35
  14. package/lib-next/theme/BackToTopButton/index.js +131 -0
  15. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  16. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  17. package/lib-next/theme/BlogLayout/index.js +37 -0
  18. package/lib-next/theme/BlogListPage/index.js +18 -29
  19. package/lib-next/theme/BlogListPaginator/index.js +13 -16
  20. package/lib-next/theme/BlogPostAuthor/index.js +40 -0
  21. package/{lib/theme/IconEdit → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -3
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/lib-next/theme/BlogPostAuthors/styles.module.css +21 -0
  24. package/lib-next/theme/BlogPostItem/index.js +110 -95
  25. package/lib-next/theme/BlogPostItem/styles.module.css +5 -1
  26. package/lib-next/theme/BlogPostPage/index.js +75 -43
  27. package/lib-next/theme/BlogPostPaginator/index.js +13 -20
  28. package/lib-next/theme/BlogSidebar/index.js +23 -16
  29. package/lib-next/theme/BlogSidebar/styles.module.css +8 -8
  30. package/lib-next/theme/BlogTagsListPage/index.js +16 -66
  31. package/lib-next/theme/BlogTagsPostsPage/index.js +47 -59
  32. package/lib-next/theme/CodeBlock/index.js +73 -162
  33. package/lib-next/theme/CodeBlock/styles.module.css +18 -13
  34. package/lib-next/theme/Details/index.js +21 -0
  35. package/lib-next/theme/Details/styles.module.css +13 -0
  36. package/lib-next/theme/DocBreadcrumbs/index.js +76 -0
  37. package/lib-next/theme/DocBreadcrumbs/styles.module.css +26 -0
  38. package/lib-next/theme/DocCard/index.js +91 -0
  39. package/lib-next/theme/DocCard/styles.module.css +43 -0
  40. package/lib-next/theme/DocCardList/index.js +19 -0
  41. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +54 -0
  42. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  43. package/lib-next/theme/DocItem/index.js +64 -69
  44. package/lib-next/theme/DocItem/styles.module.css +7 -13
  45. package/lib-next/theme/DocItemFooter/index.js +79 -0
  46. package/{lib/theme/Layout/styles.css → lib-next/theme/DocItemFooter/styles.module.css} +8 -11
  47. package/lib-next/theme/DocPage/index.js +59 -33
  48. package/lib-next/theme/DocPage/styles.module.css +14 -26
  49. package/lib-next/theme/DocPaginator/index.js +16 -25
  50. package/lib-next/theme/DocSidebar/index.js +72 -285
  51. package/lib-next/theme/DocSidebar/styles.module.css +5 -36
  52. package/lib-next/theme/DocSidebarItem/index.js +264 -0
  53. package/lib-next/theme/DocSidebarItem/styles.module.css +13 -0
  54. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  55. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  56. package/lib-next/theme/DocTagsListPage/index.js +35 -0
  57. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  58. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +54 -36
  59. package/lib-next/theme/EditThisPage/index.js +6 -1
  60. package/lib-next/theme/ErrorPageContent.js +35 -0
  61. package/lib-next/theme/Footer/index.js +105 -41
  62. package/lib-next/theme/Footer/styles.module.css +2 -1
  63. package/lib-next/theme/Heading/index.js +40 -33
  64. package/lib-next/theme/Heading/styles.module.css +27 -2
  65. package/lib-next/theme/IconArrow/index.js +3 -6
  66. package/lib-next/theme/IconClose/index.js +23 -0
  67. package/lib-next/theme/IconEdit/index.js +5 -10
  68. package/lib-next/theme/IconExternalLink/index.js +23 -0
  69. package/{lib/theme/BlogPostItem → lib-next/theme/IconExternalLink}/styles.module.css +4 -6
  70. package/lib-next/theme/IconLanguage/index.js +3 -6
  71. package/lib-next/theme/IconMenu/index.js +8 -9
  72. package/lib-next/theme/LastUpdated/index.js +35 -39
  73. package/lib-next/theme/Layout/index.js +5 -7
  74. package/lib-next/theme/Layout/styles.css +6 -0
  75. package/lib-next/theme/LayoutHead/index.js +27 -32
  76. package/lib-next/theme/LayoutProviders/index.js +21 -10
  77. package/lib-next/theme/Logo/index.js +21 -16
  78. package/lib-next/theme/MDXComponents/index.js +45 -30
  79. package/lib-next/theme/{hooks → MDXComponents}/styles.css +7 -2
  80. package/lib-next/theme/MDXPage/index.js +22 -28
  81. package/{lib/theme/LastUpdated → lib-next/theme/MDXPage}/styles.module.css +2 -2
  82. package/lib-next/theme/Navbar/index.js +199 -64
  83. package/lib-next/theme/Navbar/styles.module.css +11 -4
  84. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +36 -185
  85. package/lib-next/theme/NavbarItem/DocNavbarItem.js +31 -14
  86. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  87. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +38 -24
  88. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  89. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +156 -0
  90. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
  91. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  92. package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
  93. package/lib-next/theme/NavbarItem/index.js +27 -15
  94. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  95. package/lib-next/theme/NotFound.js +7 -6
  96. package/lib-next/theme/PaginatorNavLink/index.js +17 -0
  97. package/lib-next/theme/SearchBar.js +1 -1
  98. package/lib-next/theme/SearchMetadata/index.js +25 -0
  99. package/lib-next/theme/Seo/index.js +11 -7
  100. package/lib-next/theme/SkipToContent/index.js +9 -8
  101. package/lib-next/theme/SkipToContent/styles.module.css +8 -3
  102. package/lib-next/theme/TOC/index.js +12 -39
  103. package/lib-next/theme/TOC/styles.module.css +2 -2
  104. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  105. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  106. package/lib-next/theme/TOCInline/index.js +10 -31
  107. package/lib-next/theme/TOCItems/index.js +85 -0
  108. package/lib-next/theme/TabItem/index.js +1 -4
  109. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  110. package/lib-next/theme/Tabs/index.js +108 -50
  111. package/lib-next/theme/Tabs/styles.module.css +0 -13
  112. package/lib-next/theme/Tag/index.js +24 -0
  113. package/lib-next/theme/Tag/styles.module.css +70 -0
  114. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  115. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  116. package/lib-next/theme/TagsListInline/index.js +31 -0
  117. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  118. package/lib-next/theme/ThemedImage/index.js +9 -13
  119. package/lib-next/theme/ThemedImage/styles.module.css +9 -2
  120. package/lib-next/theme/Toggle/index.js +65 -60
  121. package/lib-next/theme/Toggle/styles.module.css +30 -38
  122. package/lib-next/theme/prism-include-languages.js +17 -15
  123. package/package.json +31 -30
  124. package/src/admonitions.css +35 -0
  125. package/src/deps.d.ts +13 -0
  126. package/src/getSwizzleConfig.ts +101 -0
  127. package/src/index.ts +68 -66
  128. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  129. package/src/theme/Admonition/index.tsx +106 -0
  130. package/src/theme/AnnouncementBar/index.tsx +11 -20
  131. package/src/theme/AnnouncementBar/styles.module.css +26 -35
  132. package/src/theme/BackToTopButton/index.tsx +143 -0
  133. package/src/theme/BackToTopButton/styles.module.css +44 -0
  134. package/src/theme/BlogArchivePage/index.tsx +91 -0
  135. package/src/theme/BlogLayout/index.tsx +42 -0
  136. package/src/theme/BlogListPage/index.tsx +19 -28
  137. package/src/theme/BlogListPaginator/index.tsx +13 -15
  138. package/src/theme/BlogPostAuthor/index.tsx +44 -0
  139. package/src/theme/{LastUpdated → BlogPostAuthor}/styles.module.css +4 -2
  140. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  141. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  142. package/src/theme/BlogPostItem/index.tsx +101 -91
  143. package/src/theme/BlogPostItem/styles.module.css +5 -1
  144. package/src/theme/BlogPostPage/index.tsx +77 -42
  145. package/src/theme/BlogPostPaginator/index.tsx +13 -19
  146. package/src/theme/BlogSidebar/index.tsx +23 -16
  147. package/src/theme/BlogSidebar/styles.module.css +8 -8
  148. package/src/theme/BlogTagsListPage/index.tsx +16 -66
  149. package/src/theme/BlogTagsPostsPage/index.tsx +43 -61
  150. package/src/theme/CodeBlock/index.tsx +77 -164
  151. package/src/theme/CodeBlock/styles.module.css +18 -13
  152. package/src/theme/Details/index.tsx +25 -0
  153. package/src/theme/Details/styles.module.css +13 -0
  154. package/src/theme/DocBreadcrumbs/index.tsx +91 -0
  155. package/src/theme/DocBreadcrumbs/styles.module.css +26 -0
  156. package/src/theme/DocCard/index.tsx +109 -0
  157. package/src/theme/DocCard/styles.module.css +43 -0
  158. package/src/theme/DocCardList/index.tsx +27 -0
  159. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +59 -0
  160. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  161. package/src/theme/DocItem/index.tsx +66 -68
  162. package/src/theme/DocItem/styles.module.css +7 -13
  163. package/src/theme/DocItemFooter/index.tsx +91 -0
  164. package/src/theme/DocItemFooter/styles.module.css +18 -0
  165. package/src/theme/DocPage/index.tsx +58 -34
  166. package/src/theme/DocPage/styles.module.css +14 -26
  167. package/src/theme/DocPaginator/index.tsx +16 -24
  168. package/src/theme/DocSidebar/index.tsx +83 -297
  169. package/src/theme/DocSidebar/styles.module.css +5 -36
  170. package/src/theme/DocSidebarItem/index.tsx +283 -0
  171. package/src/theme/DocSidebarItem/styles.module.css +13 -0
  172. package/src/theme/DocSidebarItems/index.tsx +32 -0
  173. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  174. package/src/theme/DocTagsListPage/index.tsx +39 -0
  175. package/src/theme/DocVersionBadge/index.tsx +35 -0
  176. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +77 -47
  177. package/src/theme/EditThisPage/index.tsx +6 -1
  178. package/src/theme/ErrorPageContent.tsx +41 -0
  179. package/src/theme/Footer/index.tsx +119 -45
  180. package/src/theme/Footer/styles.module.css +2 -1
  181. package/src/theme/Heading/index.tsx +41 -35
  182. package/src/theme/Heading/styles.module.css +27 -2
  183. package/src/theme/IconArrow/index.tsx +3 -5
  184. package/src/theme/IconClose/index.tsx +26 -0
  185. package/src/theme/IconEdit/index.tsx +8 -9
  186. package/src/theme/IconExternalLink/index.tsx +30 -0
  187. package/{lib/theme/Heading → src/theme/IconExternalLink}/styles.module.css +4 -2
  188. package/src/theme/IconLanguage/index.tsx +4 -6
  189. package/src/theme/IconMenu/index.tsx +4 -9
  190. package/src/theme/LastUpdated/index.tsx +35 -39
  191. package/src/theme/Layout/index.tsx +5 -6
  192. package/src/theme/Layout/styles.css +6 -0
  193. package/src/theme/LayoutHead/index.tsx +26 -25
  194. package/src/theme/LayoutProviders/index.tsx +21 -10
  195. package/src/theme/Logo/index.tsx +21 -15
  196. package/src/theme/MDXComponents/index.tsx +56 -32
  197. package/{lib/theme/hooks → src/theme/MDXComponents}/styles.css +7 -2
  198. package/src/theme/MDXPage/index.tsx +23 -28
  199. package/{lib-next/theme/LastUpdated → src/theme/MDXPage}/styles.module.css +2 -2
  200. package/src/theme/Navbar/index.tsx +208 -68
  201. package/src/theme/Navbar/styles.module.css +11 -4
  202. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
  203. package/src/theme/NavbarItem/DocNavbarItem.tsx +33 -15
  204. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  205. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +44 -28
  206. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  207. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  208. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +16 -10
  209. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  210. package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
  211. package/src/theme/NavbarItem/index.tsx +42 -19
  212. package/src/theme/NavbarItem/utils.ts +10 -0
  213. package/src/theme/NotFound.tsx +7 -5
  214. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  215. package/src/theme/SearchBar.tsx +2 -1
  216. package/src/theme/SearchMetadata/index.tsx +34 -0
  217. package/src/theme/Seo/index.tsx +7 -4
  218. package/src/theme/SkipToContent/index.tsx +9 -8
  219. package/src/theme/SkipToContent/styles.module.css +8 -3
  220. package/src/theme/TOC/index.tsx +13 -44
  221. package/src/theme/TOC/styles.module.css +2 -2
  222. package/src/theme/TOCCollapsible/index.tsx +58 -0
  223. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  224. package/src/theme/TOCInline/index.tsx +14 -35
  225. package/src/theme/TOCItems/index.tsx +100 -0
  226. package/src/theme/TabItem/index.tsx +5 -3
  227. package/src/theme/Tabs/index.tsx +115 -56
  228. package/src/theme/Tabs/styles.module.css +0 -13
  229. package/src/theme/Tag/index.tsx +29 -0
  230. package/src/theme/Tag/styles.module.css +70 -0
  231. package/src/theme/TagsListByLetter/index.tsx +43 -0
  232. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  233. package/src/theme/TagsListInline/index.tsx +35 -0
  234. package/src/theme/TagsListInline/styles.module.css +15 -0
  235. package/src/theme/ThemedImage/index.tsx +10 -12
  236. package/src/theme/ThemedImage/styles.module.css +9 -2
  237. package/src/theme/Toggle/index.tsx +66 -62
  238. package/src/theme/Toggle/styles.module.css +30 -38
  239. package/src/theme/prism-include-languages.ts +20 -15
  240. package/src/theme-classic.d.ts +755 -0
  241. package/src/translations.ts +74 -54
  242. package/src/types.d.ts +0 -589
  243. package/{lib-next/validateThemeConfig.js → src/validateThemeConfig.ts} +184 -104
  244. package/babel.config.js +0 -35
  245. package/codeTranslations/README.md +0 -20
  246. package/codeTranslations/ar.json +0 -55
  247. package/codeTranslations/base.json +0 -108
  248. package/codeTranslations/da.json +0 -55
  249. package/codeTranslations/de.json +0 -55
  250. package/codeTranslations/es.json +0 -55
  251. package/codeTranslations/fa.json +0 -55
  252. package/codeTranslations/fil.json +0 -55
  253. package/codeTranslations/fr.json +0 -55
  254. package/codeTranslations/he.json +0 -55
  255. package/codeTranslations/hi.json +0 -55
  256. package/codeTranslations/ja.json +0 -55
  257. package/codeTranslations/ko.json +0 -55
  258. package/codeTranslations/pl.json +0 -55
  259. package/codeTranslations/pt-BR.json +0 -55
  260. package/codeTranslations/pt-PT.json +0 -55
  261. package/codeTranslations/ru.json +0 -55
  262. package/codeTranslations/tr.json +0 -55
  263. package/codeTranslations/vi.json +0 -55
  264. package/codeTranslations/zh-Hans.json +0 -55
  265. package/codeTranslations/zh-Hant.json +0 -55
  266. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  267. package/lib/__tests__/translations.test.js +0 -112
  268. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  269. package/lib/theme/AnnouncementBar/index.js +0 -74
  270. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  271. package/lib/theme/BlogListPage/index.js +0 -71
  272. package/lib/theme/BlogListPaginator/index.js +0 -63
  273. package/lib/theme/BlogPostItem/index.js +0 -152
  274. package/lib/theme/BlogPostPage/index.js +0 -75
  275. package/lib/theme/BlogPostPaginator/index.js +0 -64
  276. package/lib/theme/BlogSidebar/index.js +0 -43
  277. package/lib/theme/BlogSidebar/styles.module.css +0 -46
  278. package/lib/theme/BlogTagsListPage/index.js +0 -81
  279. package/lib/theme/BlogTagsPostsPage/index.js +0 -104
  280. package/lib/theme/CodeBlock/index.js +0 -253
  281. package/lib/theme/CodeBlock/styles.module.css +0 -71
  282. package/lib/theme/DocItem/index.js +0 -120
  283. package/lib/theme/DocItem/styles.module.css +0 -28
  284. package/lib/theme/DocPage/index.js +0 -141
  285. package/lib/theme/DocPage/styles.module.css +0 -98
  286. package/lib/theme/DocPaginator/index.js +0 -63
  287. package/lib/theme/DocSidebar/index.js +0 -307
  288. package/lib/theme/DocSidebar/styles.module.css +0 -138
  289. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  290. package/lib/theme/EditThisPage/index.js +0 -31
  291. package/lib/theme/Footer/index.js +0 -108
  292. package/lib/theme/Footer/styles.module.css +0 -15
  293. package/lib/theme/Heading/index.js +0 -60
  294. package/lib/theme/Heading/styles.css +0 -23
  295. package/lib/theme/IconArrow/index.js +0 -28
  296. package/lib/theme/IconEdit/index.js +0 -34
  297. package/lib/theme/IconLanguage/index.js +0 -29
  298. package/lib/theme/IconMenu/index.js +0 -31
  299. package/lib/theme/LastUpdated/index.js +0 -65
  300. package/lib/theme/Layout/index.js +0 -64
  301. package/lib/theme/LayoutHead/index.js +0 -144
  302. package/lib/theme/LayoutProviders/index.js +0 -34
  303. package/lib/theme/Logo/index.js +0 -59
  304. package/lib/theme/MDXComponents/index.js +0 -65
  305. package/lib/theme/MDXPage/index.js +0 -68
  306. package/lib/theme/Navbar/index.js +0 -147
  307. package/lib/theme/Navbar/styles.module.css +0 -20
  308. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
  309. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
  310. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
  311. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  312. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  313. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  314. package/lib/theme/NavbarItem/index.js +0 -54
  315. package/lib/theme/NotFound.js +0 -50
  316. package/lib/theme/SearchBar.js +0 -15
  317. package/lib/theme/SearchMetadatas/index.js +0 -33
  318. package/lib/theme/Seo/index.js +0 -49
  319. package/lib/theme/SkipToContent/index.js +0 -61
  320. package/lib/theme/SkipToContent/styles.module.css +0 -16
  321. package/lib/theme/TOC/index.js +0 -59
  322. package/lib/theme/TOC/styles.module.css +0 -23
  323. package/lib/theme/TOCInline/index.js +0 -53
  324. package/lib/theme/TOCInline/styles.module.css +0 -12
  325. package/lib/theme/TabItem/index.js +0 -32
  326. package/lib/theme/Tabs/index.js +0 -150
  327. package/lib/theme/Tabs/styles.module.css +0 -23
  328. package/lib/theme/ThemeContext.js +0 -21
  329. package/lib/theme/ThemeProvider/index.js +0 -38
  330. package/lib/theme/ThemedImage/index.js +0 -48
  331. package/lib/theme/ThemedImage/styles.module.css +0 -11
  332. package/lib/theme/Toggle/index.js +0 -106
  333. package/lib/theme/Toggle/styles.module.css +0 -114
  334. package/lib/theme/UserPreferencesContext.js +0 -18
  335. package/lib/theme/UserPreferencesProvider/index.js +0 -44
  336. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  337. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  338. package/lib/theme/hooks/useDocs.js +0 -18
  339. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  340. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  341. package/lib/theme/hooks/useLocationHash.js +0 -28
  342. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  343. package/lib/theme/hooks/usePrismTheme.js +0 -36
  344. package/lib/theme/hooks/useScrollPosition.js +0 -49
  345. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  346. package/lib/theme/hooks/useTabGroupChoice.js +0 -53
  347. package/lib/theme/hooks/useTheme.js +0 -99
  348. package/lib/theme/hooks/useThemeContext.js +0 -31
  349. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  350. package/lib/theme/hooks/useWindowSize.js +0 -55
  351. package/lib/theme/prism-include-languages.js +0 -39
  352. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  353. package/lib-next/__tests__/translations.test.js +0 -128
  354. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  355. package/lib-next/index.js +0 -198
  356. package/lib-next/theme/Heading/styles.css +0 -23
  357. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  358. package/lib-next/theme/ThemeContext.js +0 -9
  359. package/lib-next/theme/ThemeProvider/index.js +0 -25
  360. package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
  361. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  362. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  363. package/lib-next/theme/hooks/useDocs.js +0 -10
  364. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  365. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  366. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  367. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  368. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  369. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  370. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  371. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
  372. package/lib-next/theme/hooks/useTheme.js +0 -82
  373. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  374. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  375. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  376. package/lib-next/translations.js +0 -145
  377. package/lib-next/types.d.ts +0 -600
  378. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  379. package/src/__tests__/translations.test.ts +0 -116
  380. package/src/__tests__/validateThemeConfig.test.js +0 -333
  381. package/src/prism-include-languages.js +0 -11
  382. package/src/theme/Heading/styles.css +0 -23
  383. package/src/theme/SearchMetadatas/index.tsx +0 -28
  384. package/src/theme/ThemeContext.ts +0 -15
  385. package/src/theme/ThemeProvider/index.tsx +0 -24
  386. package/src/theme/UserPreferencesContext.ts +0 -12
  387. package/src/theme/UserPreferencesProvider/index.tsx +0 -32
  388. package/src/theme/hooks/styles.css +0 -10
  389. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  390. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  391. package/src/theme/hooks/useDocs.ts +0 -11
  392. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  393. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  394. package/src/theme/hooks/useLocationHash.ts +0 -25
  395. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  396. package/src/theme/hooks/usePrismTheme.ts +0 -22
  397. package/src/theme/hooks/useScrollPosition.ts +0 -45
  398. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  399. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  400. package/src/theme/hooks/useTheme.ts +0 -92
  401. package/src/theme/hooks/useThemeContext.ts +0 -23
  402. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  403. package/src/theme/hooks/useWindowSize.ts +0 -51
  404. package/src/validateThemeConfig.js +0 -317
  405. package/tsconfig.json +0 -12
  406. package/update-code-translations.js +0 -239
  407. package/update-code-translations.test.js +0 -33
@@ -0,0 +1,264 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, {useEffect, useMemo} from 'react';
8
+ import clsx from 'clsx';
9
+ import {
10
+ isActiveSidebarItem,
11
+ usePrevious,
12
+ Collapsible,
13
+ useCollapsible,
14
+ findFirstCategoryLink,
15
+ ThemeClassNames,
16
+ useThemeConfig,
17
+ useDocSidebarItemsExpandedState,
18
+ isSamePath,
19
+ } from '@docusaurus/theme-common';
20
+ import Link from '@docusaurus/Link';
21
+ import isInternalUrl from '@docusaurus/isInternalUrl';
22
+ import {translate} from '@docusaurus/Translate';
23
+ import IconExternalLink from '@theme/IconExternalLink';
24
+ import DocSidebarItems from '@theme/DocSidebarItems';
25
+ import styles from './styles.module.css';
26
+ import useIsBrowser from '@docusaurus/useIsBrowser';
27
+ export default function DocSidebarItem({item, ...props}) {
28
+ switch (item.type) {
29
+ case 'category':
30
+ return <DocSidebarItemCategory item={item} {...props} />;
31
+
32
+ case 'html':
33
+ return <DocSidebarItemHtml item={item} {...props} />;
34
+
35
+ case 'link':
36
+ default:
37
+ return <DocSidebarItemLink item={item} {...props} />;
38
+ }
39
+ } // If we navigate to a category and it becomes active, it should automatically
40
+ // expand itself
41
+
42
+ function useAutoExpandActiveCategory({isActive, collapsed, setCollapsed}) {
43
+ const wasActive = usePrevious(isActive);
44
+ useEffect(() => {
45
+ const justBecameActive = isActive && !wasActive;
46
+
47
+ if (justBecameActive && collapsed) {
48
+ setCollapsed(false);
49
+ }
50
+ }, [isActive, wasActive, collapsed, setCollapsed]);
51
+ }
52
+ /**
53
+ * When a collapsible category has no link, we still link it to its first child
54
+ * during SSR as a temporary fallback. This allows to be able to navigate inside
55
+ * the category even when JS fails to load, is delayed or simply disabled
56
+ * React hydration becomes an optional progressive enhancement
57
+ * see https://github.com/facebookincubator/infima/issues/36#issuecomment-772543188
58
+ * see https://github.com/facebook/docusaurus/issues/3030
59
+ */
60
+
61
+ function useCategoryHrefWithSSRFallback(item) {
62
+ const isBrowser = useIsBrowser();
63
+ return useMemo(() => {
64
+ if (item.href) {
65
+ return item.href;
66
+ } // In these cases, it's not necessary to render a fallback
67
+ // We skip the "findFirstCategoryLink" computation
68
+
69
+ if (isBrowser || !item.collapsible) {
70
+ return undefined;
71
+ }
72
+
73
+ return findFirstCategoryLink(item);
74
+ }, [item, isBrowser]);
75
+ }
76
+
77
+ function DocSidebarItemCategory({
78
+ item,
79
+ onItemClick,
80
+ activePath,
81
+ level,
82
+ index,
83
+ ...props
84
+ }) {
85
+ const {items, label, collapsible, className, href} = item;
86
+ const hrefWithSSRFallback = useCategoryHrefWithSSRFallback(item);
87
+ const isActive = isActiveSidebarItem(item, activePath);
88
+ const isCurrentPage = isSamePath(href, activePath);
89
+ const {collapsed, setCollapsed} = useCollapsible({
90
+ // active categories are always initialized as expanded
91
+ // the default (item.collapsed) is only used for non-active categories
92
+ initialState: () => {
93
+ if (!collapsible) {
94
+ return false;
95
+ }
96
+
97
+ return isActive ? false : item.collapsed;
98
+ },
99
+ });
100
+ useAutoExpandActiveCategory({
101
+ isActive,
102
+ collapsed,
103
+ setCollapsed,
104
+ });
105
+ const {expandedItem, setExpandedItem} = useDocSidebarItemsExpandedState();
106
+
107
+ function updateCollapsed(toCollapsed = !collapsed) {
108
+ setExpandedItem(toCollapsed ? null : index);
109
+ setCollapsed(toCollapsed);
110
+ }
111
+
112
+ const {autoCollapseSidebarCategories} = useThemeConfig();
113
+ useEffect(() => {
114
+ if (
115
+ collapsible &&
116
+ expandedItem &&
117
+ expandedItem !== index &&
118
+ autoCollapseSidebarCategories
119
+ ) {
120
+ setCollapsed(true);
121
+ }
122
+ }, [
123
+ collapsible,
124
+ expandedItem,
125
+ index,
126
+ setCollapsed,
127
+ autoCollapseSidebarCategories,
128
+ ]);
129
+ return (
130
+ <li
131
+ className={clsx(
132
+ ThemeClassNames.docs.docSidebarItemCategory,
133
+ ThemeClassNames.docs.docSidebarItemCategoryLevel(level),
134
+ 'menu__list-item',
135
+ {
136
+ 'menu__list-item--collapsed': collapsed,
137
+ },
138
+ className,
139
+ )}>
140
+ <div
141
+ className={clsx('menu__list-item-collapsible', {
142
+ 'menu__list-item-collapsible--active': isCurrentPage,
143
+ })}>
144
+ <Link
145
+ className={clsx('menu__link', {
146
+ 'menu__link--sublist': collapsible && !href,
147
+ 'menu__link--active': isActive,
148
+ })}
149
+ onClick={
150
+ collapsible
151
+ ? (e) => {
152
+ onItemClick?.(item);
153
+
154
+ if (href) {
155
+ updateCollapsed(false);
156
+ } else {
157
+ e.preventDefault();
158
+ updateCollapsed();
159
+ }
160
+ }
161
+ : () => {
162
+ onItemClick?.(item);
163
+ }
164
+ }
165
+ aria-current={isCurrentPage ? 'page' : undefined}
166
+ href={collapsible ? hrefWithSSRFallback ?? '#' : hrefWithSSRFallback}
167
+ {...props}>
168
+ {label}
169
+ </Link>
170
+ {href && collapsible && (
171
+ <button
172
+ aria-label={translate(
173
+ {
174
+ id: 'theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel',
175
+ message: "Toggle the collapsible sidebar category '{label}'",
176
+ description:
177
+ 'The ARIA label to toggle the collapsible sidebar category',
178
+ },
179
+ {
180
+ label,
181
+ },
182
+ )}
183
+ type="button"
184
+ className="clean-btn menu__caret"
185
+ onClick={(e) => {
186
+ e.preventDefault();
187
+ updateCollapsed();
188
+ }}
189
+ />
190
+ )}
191
+ </div>
192
+
193
+ <Collapsible lazy as="ul" className="menu__list" collapsed={collapsed}>
194
+ <DocSidebarItems
195
+ items={items}
196
+ tabIndex={collapsed ? -1 : 0}
197
+ onItemClick={onItemClick}
198
+ activePath={activePath}
199
+ level={level + 1}
200
+ />
201
+ </Collapsible>
202
+ </li>
203
+ );
204
+ }
205
+
206
+ function DocSidebarItemHtml({item, level, index}) {
207
+ const {value, defaultStyle, className} = item;
208
+ return (
209
+ <li
210
+ className={clsx(
211
+ ThemeClassNames.docs.docSidebarItemLink,
212
+ ThemeClassNames.docs.docSidebarItemLinkLevel(level),
213
+ defaultStyle && `${styles.menuHtmlItem} menu__list-item`,
214
+ className,
215
+ )}
216
+ key={index} // eslint-disable-next-line react/no-danger
217
+ dangerouslySetInnerHTML={{
218
+ __html: value,
219
+ }}
220
+ />
221
+ );
222
+ }
223
+
224
+ function DocSidebarItemLink({
225
+ item,
226
+ onItemClick,
227
+ activePath,
228
+ level,
229
+ index,
230
+ ...props
231
+ }) {
232
+ const {href, label, className} = item;
233
+ const isActive = isActiveSidebarItem(item, activePath);
234
+ return (
235
+ <li
236
+ className={clsx(
237
+ ThemeClassNames.docs.docSidebarItemLink,
238
+ ThemeClassNames.docs.docSidebarItemLinkLevel(level),
239
+ 'menu__list-item',
240
+ className,
241
+ )}
242
+ key={label}>
243
+ <Link
244
+ className={clsx('menu__link', {
245
+ 'menu__link--active': isActive,
246
+ })}
247
+ aria-current={isActive ? 'page' : undefined}
248
+ to={href}
249
+ {...(isInternalUrl(href) && {
250
+ onClick: onItemClick ? () => onItemClick(item) : undefined,
251
+ })}
252
+ {...props}>
253
+ {isInternalUrl(href) ? (
254
+ label
255
+ ) : (
256
+ <span>
257
+ {label}
258
+ <IconExternalLink />
259
+ </span>
260
+ )}
261
+ </Link>
262
+ </li>
263
+ );
264
+ }
@@ -0,0 +1,13 @@
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
+ @media (min-width: 997px) {
9
+ .menuHtmlItem {
10
+ padding: var(--ifm-menu-link-padding-vertical)
11
+ var(--ifm-menu-link-padding-horizontal);
12
+ }
13
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React, {memo} from 'react';
8
+ import DocSidebarItem from '@theme/DocSidebarItem';
9
+ import {DocSidebarItemsExpandedStateProvider} from '@docusaurus/theme-common';
10
+
11
+ // TODO this item should probably not receive the "activePath" props
12
+ // TODO this triggers whole sidebar re-renders on navigation
13
+ function DocSidebarItems({items, ...props}) {
14
+ return (
15
+ <DocSidebarItemsExpandedStateProvider>
16
+ {items.map((item, index) => (
17
+ <DocSidebarItem
18
+ key={index} // sidebar is static, the index does not change
19
+ item={item}
20
+ index={index}
21
+ {...props}
22
+ />
23
+ ))}
24
+ </DocSidebarItemsExpandedStateProvider>
25
+ );
26
+ } // Optimize sidebar at each "level"
27
+
28
+ export default memo(DocSidebarItems);
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React from 'react';
8
+ import Layout from '@theme/Layout';
9
+ import Link from '@docusaurus/Link';
10
+ import {ThemeClassNames, usePluralForm} from '@docusaurus/theme-common';
11
+ import Translate, {translate} from '@docusaurus/Translate';
12
+
13
+ // Very simple pluralization: probably good enough for now
14
+ function useNDocsTaggedPlural() {
15
+ const {selectMessage} = usePluralForm();
16
+ return (count) =>
17
+ selectMessage(
18
+ count,
19
+ translate(
20
+ {
21
+ id: 'theme.docs.tagDocListPageTitle.nDocsTagged',
22
+ description:
23
+ 'Pluralized label for "{count} docs tagged". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',
24
+ message: 'One doc tagged|{count} docs tagged',
25
+ },
26
+ {
27
+ count,
28
+ },
29
+ ),
30
+ );
31
+ }
32
+
33
+ function DocItem({doc}) {
34
+ return (
35
+ <article className="margin-vert--lg">
36
+ <Link to={doc.permalink}>
37
+ <h2>{doc.title}</h2>
38
+ </Link>
39
+ {doc.description && <p>{doc.description}</p>}
40
+ </article>
41
+ );
42
+ }
43
+
44
+ export default function DocTagDocListPage({tag}) {
45
+ const nDocsTaggedPlural = useNDocsTaggedPlural();
46
+ const title = translate(
47
+ {
48
+ id: 'theme.docs.tagDocListPageTitle',
49
+ description: 'The title of the page for a docs tag',
50
+ message: '{nDocsTagged} with "{tagName}"',
51
+ },
52
+ {
53
+ nDocsTagged: nDocsTaggedPlural(tag.docs.length),
54
+ tagName: tag.name,
55
+ },
56
+ );
57
+ return (
58
+ <Layout
59
+ title={title}
60
+ wrapperClassName={ThemeClassNames.wrapper.docsPages}
61
+ pageClassName={ThemeClassNames.page.docsTagDocListPage}
62
+ searchMetadata={{
63
+ // assign unique search tag to exclude this page from search results!
64
+ tag: 'doc_tag_doc_list',
65
+ }}>
66
+ <div className="container margin-vert--lg">
67
+ <div className="row">
68
+ <main className="col col--8 col--offset-2">
69
+ <header className="margin-bottom--xl">
70
+ <h1>{title}</h1>
71
+ <Link href={tag.allTagsPath}>
72
+ <Translate
73
+ id="theme.tags.tagsPageLink"
74
+ description="The label of the link targeting the tag list page">
75
+ View All Tags
76
+ </Translate>
77
+ </Link>
78
+ </header>
79
+ <section className="margin-vert--lg">
80
+ {tag.docs.map((doc) => (
81
+ <DocItem key={doc.id} doc={doc} />
82
+ ))}
83
+ </section>
84
+ </main>
85
+ </div>
86
+ </div>
87
+ </Layout>
88
+ );
89
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React from 'react';
8
+ import Layout from '@theme/Layout';
9
+ import {
10
+ ThemeClassNames,
11
+ translateTagsPageTitle,
12
+ } from '@docusaurus/theme-common';
13
+ import TagsListByLetter from '@theme/TagsListByLetter';
14
+ export default function DocTagsListPage({tags}) {
15
+ const title = translateTagsPageTitle();
16
+ return (
17
+ <Layout
18
+ title={title}
19
+ wrapperClassName={ThemeClassNames.wrapper.docsPages}
20
+ pageClassName={ThemeClassNames.page.docsTagsListPage}
21
+ searchMetadata={{
22
+ // assign unique search tag to exclude this page from search results!
23
+ tag: 'doc_tags_list',
24
+ }}>
25
+ <div className="container margin-vert--lg">
26
+ <div className="row">
27
+ <main className="col col--8 col--offset-2">
28
+ <h1>{title}</h1>
29
+ <TagsListByLetter tags={tags} />
30
+ </main>
31
+ </div>
32
+ </div>
33
+ </Layout>
34
+ );
35
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React from 'react';
8
+ import Translate from '@docusaurus/Translate';
9
+ import {ThemeClassNames, useDocsVersion} from '@docusaurus/theme-common';
10
+ import clsx from 'clsx';
11
+ export default function DocVersionBadge({className}) {
12
+ const versionMetadata = useDocsVersion();
13
+
14
+ if (versionMetadata.badge) {
15
+ return (
16
+ <span
17
+ className={clsx(
18
+ className,
19
+ ThemeClassNames.docs.docVersionBadge,
20
+ 'badge badge--secondary',
21
+ )}>
22
+ <Translate
23
+ id="theme.docs.versionBadge.label"
24
+ values={{
25
+ versionLabel: versionMetadata.label,
26
+ }}>
27
+ {'Version: {versionLabel}'}
28
+ </Translate>
29
+ </span>
30
+ );
31
+ }
32
+
33
+ return null;
34
+ }
@@ -10,19 +10,23 @@ import Link from '@docusaurus/Link';
10
10
  import Translate from '@docusaurus/Translate';
11
11
  import {
12
12
  useActivePlugin,
13
- useActiveVersion,
14
13
  useDocVersionSuggestions,
15
- } from '@theme/hooks/useDocs';
16
- import {useDocsPreferredVersion} from '@docusaurus/theme-common';
14
+ } from '@docusaurus/plugin-content-docs/client';
15
+ import {
16
+ ThemeClassNames,
17
+ useDocsPreferredVersion,
18
+ useDocsVersion,
19
+ } from '@docusaurus/theme-common';
20
+ import clsx from 'clsx';
17
21
 
18
- function UnreleasedVersionLabel({siteTitle, versionLabel}) {
22
+ function UnreleasedVersionLabel({siteTitle, versionMetadata}) {
19
23
  return (
20
24
  <Translate
21
25
  id="theme.docs.versions.unreleasedVersionLabel"
22
26
  description="The label used to tell the user that he's browsing an unreleased doc version"
23
27
  values={{
24
28
  siteTitle,
25
- versionLabel: <strong>{versionLabel}</strong>,
29
+ versionLabel: <b>{versionMetadata.label}</b>,
26
30
  }}>
27
31
  {
28
32
  'This is unreleased documentation for {siteTitle} {versionLabel} version.'
@@ -31,14 +35,14 @@ function UnreleasedVersionLabel({siteTitle, versionLabel}) {
31
35
  );
32
36
  }
33
37
 
34
- function UnmaintainedVersionLabel({siteTitle, versionLabel}) {
38
+ function UnmaintainedVersionLabel({siteTitle, versionMetadata}) {
35
39
  return (
36
40
  <Translate
37
41
  id="theme.docs.versions.unmaintainedVersionLabel"
38
42
  description="The label used to tell the user that he's browsing an unmaintained doc version"
39
43
  values={{
40
44
  siteTitle,
41
- versionLabel: <strong>{versionLabel}</strong>,
45
+ versionLabel: <b>{versionMetadata.label}</b>,
42
46
  }}>
43
47
  {
44
48
  'This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.'
@@ -47,15 +51,26 @@ function UnmaintainedVersionLabel({siteTitle, versionLabel}) {
47
51
  );
48
52
  }
49
53
 
54
+ const BannerLabelComponents = {
55
+ unreleased: UnreleasedVersionLabel,
56
+ unmaintained: UnmaintainedVersionLabel,
57
+ };
58
+
59
+ function BannerLabel(props) {
60
+ const BannerLabelComponent =
61
+ BannerLabelComponents[props.versionMetadata.banner];
62
+ return <BannerLabelComponent {...props} />;
63
+ }
64
+
50
65
  function LatestVersionSuggestionLabel({versionLabel, to, onClick}) {
51
66
  return (
52
67
  <Translate
53
68
  id="theme.docs.versions.latestVersionSuggestionLabel"
54
- description="The label userd to tell the user that he's browsing an unmaintained doc version"
69
+ description="The label used to tell the user to check the latest version"
55
70
  values={{
56
71
  versionLabel,
57
72
  latestVersionLink: (
58
- <strong>
73
+ <b>
59
74
  <Link to={to} onClick={onClick}>
60
75
  <Translate
61
76
  id="theme.docs.versions.latestVersionLinkLabel"
@@ -63,7 +78,7 @@ function LatestVersionSuggestionLabel({versionLabel, to, onClick}) {
63
78
  latest version
64
79
  </Translate>
65
80
  </Link>
66
- </strong>
81
+ </b>
67
82
  ),
68
83
  }}>
69
84
  {
@@ -73,44 +88,34 @@ function LatestVersionSuggestionLabel({versionLabel, to, onClick}) {
73
88
  );
74
89
  }
75
90
 
76
- const getVersionMainDoc = (version) =>
77
- version.docs.find((doc) => doc.id === version.mainDocId);
78
-
79
- function DocVersionSuggestions() {
91
+ function DocVersionBannerEnabled({className, versionMetadata}) {
80
92
  const {
81
93
  siteConfig: {title: siteTitle},
82
94
  } = useDocusaurusContext();
83
95
  const {pluginId} = useActivePlugin({
84
96
  failfast: true,
85
97
  });
86
- const {savePreferredVersionName} = useDocsPreferredVersion(pluginId);
87
- const activeVersion = useActiveVersion(pluginId);
88
- const {
89
- latestDocSuggestion,
90
- latestVersionSuggestion,
91
- } = useDocVersionSuggestions(pluginId); // No suggestion to be made
92
98
 
93
- if (!latestVersionSuggestion) {
94
- return <></>;
95
- } // try to link to same doc in latest version (not always possible)
99
+ const getVersionMainDoc = (version) =>
100
+ version.docs.find((doc) => doc.id === version.mainDocId);
101
+
102
+ const {savePreferredVersionName} = useDocsPreferredVersion(pluginId);
103
+ const {latestDocSuggestion, latestVersionSuggestion} =
104
+ useDocVersionSuggestions(pluginId); // try to link to same doc in latest version (not always possible)
96
105
  // fallback to main doc of latest version
97
106
 
98
107
  const latestVersionSuggestedDoc =
99
108
  latestDocSuggestion ?? getVersionMainDoc(latestVersionSuggestion);
100
109
  return (
101
- <div className="alert alert--warning margin-bottom--md" role="alert">
110
+ <div
111
+ className={clsx(
112
+ className,
113
+ ThemeClassNames.docs.docVersionBanner,
114
+ 'alert alert--warning margin-bottom--md',
115
+ )}
116
+ role="alert">
102
117
  <div>
103
- {activeVersion.name === 'current' ? (
104
- <UnreleasedVersionLabel
105
- siteTitle={siteTitle}
106
- versionLabel={activeVersion.label}
107
- />
108
- ) : (
109
- <UnmaintainedVersionLabel
110
- siteTitle={siteTitle}
111
- versionLabel={activeVersion.label}
112
- />
113
- )}
118
+ <BannerLabel siteTitle={siteTitle} versionMetadata={versionMetadata} />
114
119
  </div>
115
120
  <div className="margin-top--md">
116
121
  <LatestVersionSuggestionLabel
@@ -123,4 +128,17 @@ function DocVersionSuggestions() {
123
128
  );
124
129
  }
125
130
 
126
- export default DocVersionSuggestions;
131
+ export default function DocVersionBanner({className}) {
132
+ const versionMetadata = useDocsVersion();
133
+
134
+ if (versionMetadata.banner) {
135
+ return (
136
+ <DocVersionBannerEnabled
137
+ className={className}
138
+ versionMetadata={versionMetadata}
139
+ />
140
+ );
141
+ }
142
+
143
+ return null;
144
+ }
@@ -7,9 +7,14 @@
7
7
  import React from 'react';
8
8
  import Translate from '@docusaurus/Translate';
9
9
  import IconEdit from '@theme/IconEdit';
10
+ import {ThemeClassNames} from '@docusaurus/theme-common';
10
11
  export default function EditThisPage({editUrl}) {
11
12
  return (
12
- <a href={editUrl} target="_blank" rel="noreferrer noopener">
13
+ <a
14
+ href={editUrl}
15
+ target="_blank"
16
+ rel="noreferrer noopener"
17
+ className={ThemeClassNames.common.editThisPage}>
13
18
  <IconEdit />
14
19
  <Translate
15
20
  id="theme.common.editThisPage"
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React from 'react';
8
+ import Translate from '@docusaurus/Translate';
9
+ export default function ErrorPageContent({error, tryAgain}) {
10
+ return (
11
+ <main className="container margin-vert--xl">
12
+ <div className="row">
13
+ <div className="col col--6 col--offset-3">
14
+ <h1 className="hero__title">
15
+ <Translate
16
+ id="theme.ErrorPageContent.title"
17
+ description="The title of the fallback page when the page crashed">
18
+ This page crashed.
19
+ </Translate>
20
+ </h1>
21
+ <p>{error.message}</p>
22
+ <div>
23
+ <button type="button" onClick={tryAgain}>
24
+ <Translate
25
+ id="theme.ErrorPageContent.tryAgain"
26
+ description="The label of the button to try again when the page crashed">
27
+ Try again
28
+ </Translate>
29
+ </button>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </main>
34
+ );
35
+ }