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

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 (349) hide show
  1. package/README.md +1 -1
  2. package/lib/admonitions.css +35 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/index.js +16 -15
  5. package/lib/prism-include-languages.js +9 -5
  6. package/{lib-next/types.d.ts → lib/theme-classic.d.ts} +338 -156
  7. package/lib/translations.js +16 -7
  8. package/lib/types.d.ts +0 -629
  9. package/lib/validateThemeConfig.js +232 -248
  10. package/lib-next/theme/Admonition/index.js +101 -0
  11. package/lib-next/theme/AnnouncementBar/index.js +7 -12
  12. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  13. package/lib-next/theme/BackToTopButton/index.js +131 -0
  14. package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
  15. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  16. package/lib-next/theme/BlogLayout/index.js +40 -0
  17. package/lib-next/theme/BlogListPage/index.js +17 -25
  18. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  19. package/{lib/theme/MDXPage → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -2
  20. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  21. package/{lib/theme/IconExternalLink → lib-next/theme/BlogPostAuthors}/styles.module.css +3 -4
  22. package/lib-next/theme/BlogPostItem/index.js +79 -86
  23. package/lib-next/theme/BlogPostPage/index.js +70 -35
  24. package/lib-next/theme/BlogSidebar/index.js +11 -13
  25. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  26. package/lib-next/theme/BlogTagsListPage/index.js +14 -55
  27. package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
  28. package/lib-next/theme/CodeBlock/index.js +23 -149
  29. package/lib-next/theme/CodeBlock/styles.module.css +12 -9
  30. package/lib-next/theme/Details/index.js +20 -0
  31. package/lib-next/theme/Details/styles.module.css +13 -0
  32. package/lib-next/theme/DocCard/index.js +80 -0
  33. package/lib-next/theme/DocCard/styles.module.css +43 -0
  34. package/lib-next/theme/DocCardList/index.js +19 -0
  35. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
  36. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  37. package/lib-next/theme/DocItem/index.js +30 -59
  38. package/lib-next/theme/DocItem/styles.module.css +2 -11
  39. package/lib-next/theme/DocItemFooter/index.js +79 -0
  40. package/{lib/theme/DocSidebarItem → lib-next/theme/DocItemFooter}/styles.module.css +8 -5
  41. package/lib-next/theme/DocPage/index.js +46 -23
  42. package/lib-next/theme/DocPaginator/index.js +5 -33
  43. package/lib-next/theme/DocPaginatorNavLink/index.js +36 -0
  44. package/lib-next/theme/DocSidebar/index.js +37 -43
  45. package/lib-next/theme/DocSidebarItem/index.js +115 -65
  46. package/lib-next/theme/DocSidebarItem/styles.module.css +4 -0
  47. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  48. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  49. package/lib-next/theme/DocVersionBadge/index.js +27 -0
  50. package/lib-next/theme/DocVersionBanner/index.js +28 -14
  51. package/lib-next/theme/EditThisPage/index.js +6 -1
  52. package/lib-next/theme/ErrorPageContent.js +35 -0
  53. package/lib-next/theme/Footer/index.js +90 -39
  54. package/lib-next/theme/Heading/index.js +24 -29
  55. package/lib-next/theme/Heading/styles.css +5 -6
  56. package/lib-next/theme/Heading/styles.module.css +9 -5
  57. package/lib-next/theme/IconArrow/index.js +2 -2
  58. package/lib-next/theme/IconClose/index.js +23 -0
  59. package/lib-next/theme/IconEdit/index.js +2 -2
  60. package/lib-next/theme/IconExternalLink/index.js +2 -2
  61. package/lib-next/theme/IconLanguage/index.js +2 -2
  62. package/lib-next/theme/IconMenu/index.js +2 -2
  63. package/lib-next/theme/LastUpdated/index.js +3 -2
  64. package/lib-next/theme/Layout/index.js +3 -1
  65. package/lib-next/theme/LayoutHead/index.js +18 -23
  66. package/lib-next/theme/LayoutProviders/index.js +8 -5
  67. package/lib-next/theme/Logo/index.js +25 -21
  68. package/lib-next/theme/MDXComponents/index.js +34 -7
  69. package/{lib/theme/hooks → lib-next/theme/MDXComponents}/styles.css +3 -2
  70. package/lib-next/theme/MDXPage/index.js +10 -2
  71. package/lib-next/theme/Navbar/index.js +62 -34
  72. package/lib-next/theme/Navbar/styles.module.css +3 -39
  73. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -143
  74. package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
  75. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
  76. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +158 -0
  77. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
  78. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  79. package/lib-next/theme/NavbarItem/index.js +25 -12
  80. package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
  81. package/lib-next/theme/Seo/index.js +11 -7
  82. package/lib-next/theme/TOC/index.js +12 -36
  83. package/lib-next/theme/TOC/styles.module.css +1 -1
  84. package/lib-next/theme/TOCCollapsible/index.js +13 -4
  85. package/lib-next/theme/TOCCollapsible/styles.module.css +1 -0
  86. package/lib-next/theme/TOCInline/index.js +10 -28
  87. package/lib-next/theme/TOCItems/index.js +85 -0
  88. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  89. package/lib-next/theme/Tabs/index.js +103 -48
  90. package/lib-next/theme/Tabs/styles.module.css +0 -13
  91. package/lib-next/theme/Tag/index.js +27 -0
  92. package/lib-next/theme/Tag/styles.module.css +70 -0
  93. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  94. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  95. package/lib-next/theme/TagsListInline/index.js +31 -0
  96. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  97. package/lib-next/theme/ThemeProvider/index.js +10 -7
  98. package/lib-next/theme/ThemedImage/index.js +5 -5
  99. package/lib-next/theme/Toggle/index.js +34 -37
  100. package/lib-next/theme/Toggle/styles.module.css +91 -3
  101. package/lib-next/theme/UserPreferencesProvider/index.js +9 -6
  102. package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
  103. package/lib-next/theme/hooks/useTheme.js +4 -5
  104. package/lib-next/theme/hooks/useWindowSize.js +2 -6
  105. package/lib-next/theme/prism-include-languages.js +2 -1
  106. package/package.json +26 -24
  107. package/src/admonitions.css +35 -0
  108. package/src/deps.d.ts +13 -0
  109. package/src/index.ts +23 -20
  110. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  111. package/src/theme/Admonition/index.tsx +106 -0
  112. package/src/theme/AnnouncementBar/index.tsx +8 -12
  113. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  114. package/src/theme/BackToTopButton/index.tsx +142 -0
  115. package/src/theme/BackToTopButton/styles.module.css +42 -0
  116. package/src/theme/BlogArchivePage/index.tsx +91 -0
  117. package/src/theme/BlogLayout/index.tsx +44 -0
  118. package/src/theme/BlogListPage/index.tsx +18 -25
  119. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  120. package/{lib/theme/IconEdit → src/theme/BlogPostAuthor}/styles.module.css +4 -3
  121. package/src/theme/BlogPostAuthors/index.tsx +39 -0
  122. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  123. package/src/theme/BlogPostItem/index.tsx +70 -80
  124. package/src/theme/BlogPostPage/index.tsx +72 -35
  125. package/src/theme/BlogSidebar/index.tsx +11 -13
  126. package/src/theme/BlogSidebar/styles.module.css +2 -2
  127. package/src/theme/BlogTagsListPage/index.tsx +14 -57
  128. package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
  129. package/src/theme/CodeBlock/index.tsx +27 -151
  130. package/src/theme/CodeBlock/styles.module.css +12 -9
  131. package/src/theme/Details/index.tsx +24 -0
  132. package/src/theme/Details/styles.module.css +13 -0
  133. package/src/theme/DocCard/index.tsx +100 -0
  134. package/src/theme/DocCard/styles.module.css +43 -0
  135. package/src/theme/DocCardList/index.tsx +27 -0
  136. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
  137. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  138. package/src/theme/DocItem/index.tsx +30 -60
  139. package/src/theme/DocItem/styles.module.css +2 -11
  140. package/src/theme/DocItemFooter/index.tsx +91 -0
  141. package/{lib/theme/BlogPostItem → src/theme/DocItemFooter}/styles.module.css +8 -8
  142. package/src/theme/DocPage/index.tsx +44 -22
  143. package/src/theme/DocPaginator/index.tsx +5 -33
  144. package/src/theme/DocPaginatorNavLink/index.tsx +38 -0
  145. package/src/theme/DocSidebar/index.tsx +38 -39
  146. package/src/theme/DocSidebarItem/index.tsx +108 -49
  147. package/src/theme/DocSidebarItem/styles.module.css +4 -0
  148. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  149. package/src/theme/DocTagsListPage/index.tsx +41 -0
  150. package/src/theme/DocVersionBadge/index.tsx +30 -0
  151. package/src/theme/DocVersionBanner/index.tsx +48 -21
  152. package/src/theme/EditThisPage/index.tsx +6 -1
  153. package/src/theme/ErrorPageContent.tsx +41 -0
  154. package/src/theme/Footer/index.tsx +103 -42
  155. package/src/theme/Heading/index.tsx +24 -31
  156. package/src/theme/Heading/styles.css +5 -6
  157. package/src/theme/Heading/styles.module.css +9 -5
  158. package/src/theme/IconArrow/index.tsx +2 -2
  159. package/src/theme/IconClose/index.tsx +26 -0
  160. package/src/theme/IconEdit/index.tsx +2 -2
  161. package/src/theme/IconExternalLink/index.tsx +2 -5
  162. package/src/theme/IconLanguage/index.tsx +2 -6
  163. package/src/theme/IconMenu/index.tsx +3 -3
  164. package/src/theme/LastUpdated/index.tsx +3 -2
  165. package/src/theme/Layout/index.tsx +3 -1
  166. package/src/theme/LayoutHead/index.tsx +18 -17
  167. package/src/theme/LayoutProviders/index.tsx +8 -5
  168. package/src/theme/Logo/index.tsx +21 -17
  169. package/src/theme/MDXComponents/index.tsx +39 -5
  170. package/src/theme/MDXComponents/styles.css +11 -0
  171. package/src/theme/MDXPage/index.tsx +10 -2
  172. package/src/theme/Navbar/index.tsx +62 -35
  173. package/src/theme/Navbar/styles.module.css +3 -39
  174. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -149
  175. package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
  176. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
  177. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  178. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +180 -0
  179. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
  180. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  181. package/src/theme/NavbarItem/index.tsx +41 -16
  182. package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
  183. package/src/theme/Seo/index.tsx +7 -4
  184. package/src/theme/TOC/index.tsx +13 -35
  185. package/src/theme/TOC/styles.module.css +1 -1
  186. package/src/theme/TOCCollapsible/index.tsx +13 -4
  187. package/src/theme/TOCCollapsible/styles.module.css +1 -0
  188. package/src/theme/TOCInline/index.tsx +13 -32
  189. package/src/theme/TOCItems/index.tsx +96 -0
  190. package/src/theme/Tabs/index.tsx +110 -54
  191. package/src/theme/Tabs/styles.module.css +0 -13
  192. package/src/theme/Tag/index.tsx +31 -0
  193. package/src/theme/Tag/styles.module.css +70 -0
  194. package/src/theme/TagsListByLetter/index.tsx +45 -0
  195. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  196. package/src/theme/TagsListInline/index.tsx +35 -0
  197. package/src/theme/TagsListInline/styles.module.css +15 -0
  198. package/src/theme/ThemeProvider/index.tsx +6 -2
  199. package/src/theme/ThemedImage/index.tsx +5 -5
  200. package/src/theme/Toggle/index.tsx +36 -43
  201. package/src/theme/Toggle/styles.module.css +91 -3
  202. package/src/theme/UserPreferencesProvider/index.tsx +9 -6
  203. package/src/theme/hooks/useHideableNavbar.ts +32 -45
  204. package/src/theme/hooks/useTabGroupChoice.ts +2 -2
  205. package/src/theme/hooks/useTheme.ts +4 -5
  206. package/src/theme/hooks/useWindowSize.ts +2 -7
  207. package/src/theme/prism-include-languages.ts +3 -2
  208. package/src/theme-classic.d.ts +822 -0
  209. package/src/translations.ts +41 -23
  210. package/src/types.d.ts +0 -629
  211. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +160 -100
  212. package/babel.config.js +0 -35
  213. package/codeTranslations/README.md +0 -20
  214. package/codeTranslations/ar.json +0 -56
  215. package/codeTranslations/base.json +0 -110
  216. package/codeTranslations/bn.json +0 -56
  217. package/codeTranslations/da.json +0 -56
  218. package/codeTranslations/de.json +0 -56
  219. package/codeTranslations/es.json +0 -56
  220. package/codeTranslations/fa.json +0 -56
  221. package/codeTranslations/fil.json +0 -56
  222. package/codeTranslations/fr.json +0 -56
  223. package/codeTranslations/he.json +0 -56
  224. package/codeTranslations/hi.json +0 -56
  225. package/codeTranslations/ja.json +0 -56
  226. package/codeTranslations/ko.json +0 -56
  227. package/codeTranslations/pl.json +0 -56
  228. package/codeTranslations/pt-BR.json +0 -56
  229. package/codeTranslations/pt-PT.json +0 -56
  230. package/codeTranslations/ru.json +0 -56
  231. package/codeTranslations/tr.json +0 -56
  232. package/codeTranslations/vi.json +0 -56
  233. package/codeTranslations/zh-Hans.json +0 -56
  234. package/codeTranslations/zh-Hant.json +0 -56
  235. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  236. package/lib/__tests__/translations.test.js +0 -112
  237. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  238. package/lib/theme/AnnouncementBar/index.js +0 -72
  239. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  240. package/lib/theme/BlogListPage/index.js +0 -71
  241. package/lib/theme/BlogListPaginator/index.js +0 -63
  242. package/lib/theme/BlogPostItem/index.js +0 -161
  243. package/lib/theme/BlogPostPage/index.js +0 -69
  244. package/lib/theme/BlogPostPaginator/index.js +0 -64
  245. package/lib/theme/BlogSidebar/index.js +0 -51
  246. package/lib/theme/BlogSidebar/styles.module.css +0 -44
  247. package/lib/theme/BlogTagsListPage/index.js +0 -76
  248. package/lib/theme/BlogTagsPostsPage/index.js +0 -100
  249. package/lib/theme/CodeBlock/index.js +0 -253
  250. package/lib/theme/CodeBlock/styles.module.css +0 -68
  251. package/lib/theme/DocItem/index.js +0 -138
  252. package/lib/theme/DocItem/styles.module.css +0 -31
  253. package/lib/theme/DocPage/index.js +0 -139
  254. package/lib/theme/DocPage/styles.module.css +0 -85
  255. package/lib/theme/DocPaginator/index.js +0 -63
  256. package/lib/theme/DocSidebar/index.js +0 -133
  257. package/lib/theme/DocSidebar/styles.module.css +0 -106
  258. package/lib/theme/DocSidebarItem/index.js +0 -175
  259. package/lib/theme/DocVersionBanner/index.js +0 -128
  260. package/lib/theme/EditThisPage/index.js +0 -31
  261. package/lib/theme/Footer/index.js +0 -115
  262. package/lib/theme/Footer/styles.module.css +0 -15
  263. package/lib/theme/Heading/index.js +0 -76
  264. package/lib/theme/Heading/styles.css +0 -23
  265. package/lib/theme/Heading/styles.module.css +0 -15
  266. package/lib/theme/IconArrow/index.js +0 -28
  267. package/lib/theme/IconEdit/index.js +0 -34
  268. package/lib/theme/IconExternalLink/index.js +0 -30
  269. package/lib/theme/IconLanguage/index.js +0 -29
  270. package/lib/theme/IconMenu/index.js +0 -30
  271. package/lib/theme/LastUpdated/index.js +0 -61
  272. package/lib/theme/Layout/index.js +0 -64
  273. package/lib/theme/Layout/styles.css +0 -27
  274. package/lib/theme/LayoutHead/index.js +0 -144
  275. package/lib/theme/LayoutProviders/index.js +0 -38
  276. package/lib/theme/Logo/index.js +0 -60
  277. package/lib/theme/MDXComponents/index.js +0 -65
  278. package/lib/theme/MDXPage/index.js +0 -66
  279. package/lib/theme/Navbar/index.js +0 -248
  280. package/lib/theme/Navbar/styles.module.css +0 -63
  281. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -210
  282. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
  283. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
  284. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  285. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  286. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  287. package/lib/theme/NavbarItem/index.js +0 -54
  288. package/lib/theme/NotFound.js +0 -57
  289. package/lib/theme/SearchBar.js +0 -15
  290. package/lib/theme/SearchMetadatas/index.js +0 -33
  291. package/lib/theme/Seo/index.js +0 -49
  292. package/lib/theme/SkipToContent/index.js +0 -71
  293. package/lib/theme/SkipToContent/styles.module.css +0 -14
  294. package/lib/theme/TOC/index.js +0 -60
  295. package/lib/theme/TOC/styles.module.css +0 -23
  296. package/lib/theme/TOCCollapsible/index.js +0 -51
  297. package/lib/theme/TOCCollapsible/styles.module.css +0 -49
  298. package/lib/theme/TOCInline/index.js +0 -53
  299. package/lib/theme/TOCInline/styles.module.css +0 -12
  300. package/lib/theme/TabItem/index.js +0 -32
  301. package/lib/theme/Tabs/index.js +0 -150
  302. package/lib/theme/Tabs/styles.module.css +0 -23
  303. package/lib/theme/ThemeContext.js +0 -21
  304. package/lib/theme/ThemeProvider/index.js +0 -38
  305. package/lib/theme/ThemedImage/index.js +0 -49
  306. package/lib/theme/ThemedImage/styles.module.css +0 -18
  307. package/lib/theme/Toggle/index.js +0 -94
  308. package/lib/theme/Toggle/styles.css +0 -103
  309. package/lib/theme/Toggle/styles.module.css +0 -17
  310. package/lib/theme/UserPreferencesContext.js +0 -18
  311. package/lib/theme/UserPreferencesProvider/index.js +0 -36
  312. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  313. package/lib/theme/hooks/useDocs.js +0 -18
  314. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  315. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  316. package/lib/theme/hooks/useLocationHash.js +0 -28
  317. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  318. package/lib/theme/hooks/usePrismTheme.js +0 -36
  319. package/lib/theme/hooks/useScrollPosition.js +0 -49
  320. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  321. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  322. package/lib/theme/hooks/useTheme.js +0 -99
  323. package/lib/theme/hooks/useThemeContext.js +0 -31
  324. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  325. package/lib/theme/hooks/useWindowSize.js +0 -73
  326. package/lib/theme/prism-include-languages.js +0 -39
  327. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  328. package/lib-next/__tests__/translations.test.js +0 -128
  329. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  330. package/lib-next/index.js +0 -221
  331. package/lib-next/theme/Toggle/styles.css +0 -103
  332. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  333. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  334. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  335. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  336. package/lib-next/translations.js +0 -145
  337. package/lib-next/validateThemeConfig.js +0 -319
  338. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  339. package/src/__tests__/translations.test.ts +0 -116
  340. package/src/__tests__/validateThemeConfig.test.js +0 -333
  341. package/src/prism-include-languages.js +0 -11
  342. package/src/theme/Toggle/styles.css +0 -103
  343. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  344. package/src/theme/hooks/useLocationHash.ts +0 -25
  345. package/src/theme/hooks/useScrollPosition.ts +0 -45
  346. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  347. package/tsconfig.json +0 -12
  348. package/update-code-translations.js +0 -242
  349. package/update-code-translations.test.js +0 -33
@@ -5,25 +5,16 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ .docItemContainer article > *:first-child,
8
9
  .docItemContainer header + * {
9
10
  margin-top: 0;
10
11
  }
11
12
 
12
- .lastUpdated {
13
- margin-top: 0.2rem;
14
- font-style: italic;
15
- font-size: smaller;
16
- }
17
-
18
- @media only screen and (min-width: 997px) {
13
+ @media (min-width: 997px) {
19
14
  .docItemCol {
20
15
  max-width: 75% !important;
21
16
  }
22
17
 
23
- .lastUpdated {
24
- text-align: right;
25
- }
26
-
27
18
  /* Prevent hydration FOUC, as the mobile TOC needs to be server-rendered */
28
19
  .tocMobile {
29
20
  display: none;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React from 'react';
8
+ import clsx from 'clsx';
9
+ import LastUpdated from '@theme/LastUpdated';
10
+ import EditThisPage from '@theme/EditThisPage';
11
+ import TagsListInline from '@theme/TagsListInline';
12
+ import styles from './styles.module.css';
13
+ import {ThemeClassNames} from '@docusaurus/theme-common';
14
+
15
+ function TagsRow(props) {
16
+ return (
17
+ <div
18
+ className={clsx(
19
+ ThemeClassNames.docs.docFooterTagsRow,
20
+ 'row margin-bottom--sm',
21
+ )}>
22
+ <div className="col">
23
+ <TagsListInline {...props} />
24
+ </div>
25
+ </div>
26
+ );
27
+ }
28
+
29
+ function EditMetaRow({
30
+ editUrl,
31
+ lastUpdatedAt,
32
+ lastUpdatedBy,
33
+ formattedLastUpdatedAt,
34
+ }) {
35
+ return (
36
+ <div className={clsx(ThemeClassNames.docs.docFooterEditMetaRow, 'row')}>
37
+ <div className="col">{editUrl && <EditThisPage editUrl={editUrl} />}</div>
38
+
39
+ <div className={clsx('col', styles.lastUpdated)}>
40
+ {(lastUpdatedAt || lastUpdatedBy) && (
41
+ <LastUpdated
42
+ lastUpdatedAt={lastUpdatedAt}
43
+ formattedLastUpdatedAt={formattedLastUpdatedAt}
44
+ lastUpdatedBy={lastUpdatedBy}
45
+ />
46
+ )}
47
+ </div>
48
+ </div>
49
+ );
50
+ }
51
+
52
+ export default function DocItemFooter(props) {
53
+ const {content: DocContent} = props;
54
+ const {metadata} = DocContent;
55
+ const {editUrl, lastUpdatedAt, formattedLastUpdatedAt, lastUpdatedBy, tags} =
56
+ metadata;
57
+ const canDisplayTagsRow = tags.length > 0;
58
+ const canDisplayEditMetaRow = !!(editUrl || lastUpdatedAt || lastUpdatedBy);
59
+ const canDisplayFooter = canDisplayTagsRow || canDisplayEditMetaRow;
60
+
61
+ if (!canDisplayFooter) {
62
+ return null;
63
+ }
64
+
65
+ return (
66
+ <footer
67
+ className={clsx(ThemeClassNames.docs.docFooter, 'docusaurus-mt-lg')}>
68
+ {canDisplayTagsRow && <TagsRow tags={tags} />}
69
+ {canDisplayEditMetaRow && (
70
+ <EditMetaRow
71
+ editUrl={editUrl}
72
+ lastUpdatedAt={lastUpdatedAt}
73
+ lastUpdatedBy={lastUpdatedBy}
74
+ formattedLastUpdatedAt={formattedLastUpdatedAt}
75
+ />
76
+ )}
77
+ </footer>
78
+ );
79
+ }
@@ -5,11 +5,14 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ .lastUpdated {
9
+ margin-top: 0.2rem;
10
+ font-style: italic;
11
+ font-size: smaller;
12
+ }
13
+
8
14
  @media (min-width: 997px) {
9
- .menuLinkText {
10
- cursor: initial;
11
- }
12
- .menuLinkText:hover {
13
- background: none;
15
+ .lastUpdated {
16
+ text-align: right;
14
17
  }
15
18
  }
@@ -6,26 +6,34 @@
6
6
  */
7
7
  import React, {useState, useCallback} from 'react';
8
8
  import {MDXProvider} from '@mdx-js/react';
9
- import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
10
9
  import renderRoutes from '@docusaurus/renderRoutes';
11
10
  import Layout from '@theme/Layout';
12
11
  import DocSidebar from '@theme/DocSidebar';
13
12
  import MDXComponents from '@theme/MDXComponents';
14
13
  import NotFound from '@theme/NotFound';
15
14
  import IconArrow from '@theme/IconArrow';
15
+ import BackToTopButton from '@theme/BackToTopButton';
16
16
  import {matchPath} from '@docusaurus/router';
17
17
  import {translate} from '@docusaurus/Translate';
18
18
  import clsx from 'clsx';
19
19
  import styles from './styles.module.css';
20
- import {ThemeClassNames, docVersionSearchTag} from '@docusaurus/theme-common';
20
+ import {
21
+ ThemeClassNames,
22
+ docVersionSearchTag,
23
+ DocsSidebarProvider,
24
+ useDocsSidebar,
25
+ DocsVersionProvider,
26
+ } from '@docusaurus/theme-common';
27
+ import Head from '@docusaurus/Head';
21
28
 
22
- function DocPageContent({currentDocRoute, versionMetadata, children}) {
23
- const {siteConfig, isClient} = useDocusaurusContext();
29
+ function DocPageContent({
30
+ currentDocRoute,
31
+ versionMetadata,
32
+ children,
33
+ sidebarName,
34
+ }) {
35
+ const sidebar = useDocsSidebar();
24
36
  const {pluginId, version} = versionMetadata;
25
- const sidebarName = currentDocRoute.sidebar;
26
- const sidebar = sidebarName
27
- ? versionMetadata.docsSidebars[sidebarName]
28
- : undefined;
29
37
  const [hiddenSidebarContainer, setHiddenSidebarContainer] = useState(false);
30
38
  const [hiddenSidebar, setHiddenSidebar] = useState(false);
31
39
  const toggleSidebar = useCallback(() => {
@@ -33,18 +41,19 @@ function DocPageContent({currentDocRoute, versionMetadata, children}) {
33
41
  setHiddenSidebar(false);
34
42
  }
35
43
 
36
- setHiddenSidebarContainer(!hiddenSidebarContainer);
44
+ setHiddenSidebarContainer((value) => !value);
37
45
  }, [hiddenSidebar]);
38
46
  return (
39
47
  <Layout
40
- key={isClient}
41
- wrapperClassName={ThemeClassNames.wrapper.docPages}
42
- pageClassName={ThemeClassNames.page.docPage}
43
- searchMetadatas={{
48
+ wrapperClassName={ThemeClassNames.wrapper.docsPages}
49
+ pageClassName={ThemeClassNames.page.docsDocPage}
50
+ searchMetadata={{
44
51
  version,
45
52
  tag: docVersionSearchTag(pluginId, version),
46
53
  }}>
47
54
  <div className={styles.docPage}>
55
+ <BackToTopButton />
56
+
48
57
  {sidebar && (
49
58
  <aside
50
59
  className={clsx(styles.docSidebarContainer, {
@@ -69,7 +78,6 @@ function DocPageContent({currentDocRoute, versionMetadata, children}) {
69
78
  }
70
79
  sidebar={sidebar}
71
80
  path={currentDocRoute.path}
72
- sidebarCollapsible={siteConfig.themeConfig.sidebarCollapsible}
73
81
  onCollapse={toggleSidebar}
74
82
  isHidden={hiddenSidebar}
75
83
  />
@@ -130,17 +138,32 @@ function DocPage(props) {
130
138
  );
131
139
 
132
140
  if (!currentDocRoute) {
133
- return <NotFound {...props} />;
134
- }
141
+ return <NotFound />;
142
+ } // For now, the sidebarName is added as route config: not ideal!
135
143
 
144
+ const sidebarName = currentDocRoute.sidebar;
145
+ const sidebar = sidebarName
146
+ ? versionMetadata.docsSidebars[sidebarName]
147
+ : null;
136
148
  return (
137
- <DocPageContent
138
- currentDocRoute={currentDocRoute}
139
- versionMetadata={versionMetadata}>
140
- {renderRoutes(docRoutes, {
141
- versionMetadata,
142
- })}
143
- </DocPageContent>
149
+ <>
150
+ <Head>
151
+ {/* TODO we should add a core addRoute({htmlClassName}) generic plugin option */}
152
+ <html className={versionMetadata.className} />
153
+ </Head>
154
+ <DocsVersionProvider version={versionMetadata}>
155
+ <DocsSidebarProvider sidebar={sidebar}>
156
+ <DocPageContent
157
+ currentDocRoute={currentDocRoute}
158
+ versionMetadata={versionMetadata}
159
+ sidebarName={sidebarName}>
160
+ {renderRoutes(docRoutes, {
161
+ versionMetadata,
162
+ })}
163
+ </DocPageContent>
164
+ </DocsSidebarProvider>
165
+ </DocsVersionProvider>
166
+ </>
144
167
  );
145
168
  }
146
169
 
@@ -5,11 +5,11 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
- import Link from '@docusaurus/Link';
9
- import Translate, {translate} from '@docusaurus/Translate';
8
+ import {translate} from '@docusaurus/Translate';
9
+ import DocPaginatorNavLink from '@theme/DocPaginatorNavLink';
10
10
 
11
11
  function DocPaginator(props) {
12
- const {metadata} = props;
12
+ const {previous, next} = props;
13
13
  return (
14
14
  <nav
15
15
  className="pagination-nav docusaurus-mt-lg"
@@ -19,38 +19,10 @@ function DocPaginator(props) {
19
19
  description: 'The ARIA label for the docs pagination',
20
20
  })}>
21
21
  <div className="pagination-nav__item">
22
- {metadata.previous && (
23
- <Link
24
- className="pagination-nav__link"
25
- to={metadata.previous.permalink}>
26
- <div className="pagination-nav__sublabel">
27
- <Translate
28
- id="theme.docs.paginator.previous"
29
- description="The label used to navigate to the previous doc">
30
- Previous
31
- </Translate>
32
- </div>
33
- <div className="pagination-nav__label">
34
- &laquo; {metadata.previous.title}
35
- </div>
36
- </Link>
37
- )}
22
+ {previous && <DocPaginatorNavLink navLink={previous} />}
38
23
  </div>
39
24
  <div className="pagination-nav__item pagination-nav__item--next">
40
- {metadata.next && (
41
- <Link className="pagination-nav__link" to={metadata.next.permalink}>
42
- <div className="pagination-nav__sublabel">
43
- <Translate
44
- id="theme.docs.paginator.next"
45
- description="The label used to navigate to the next doc">
46
- Next
47
- </Translate>
48
- </div>
49
- <div className="pagination-nav__label">
50
- {metadata.next.title} &raquo;
51
- </div>
52
- </Link>
53
- )}
25
+ {next && <DocPaginatorNavLink navLink={next} next />}
54
26
  </div>
55
27
  </nav>
56
28
  );
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React from 'react';
8
+ import clsx from 'clsx';
9
+ import Link from '@docusaurus/Link';
10
+ import Translate from '@docusaurus/Translate';
11
+
12
+ function DocPaginatorNavLink(props) {
13
+ const {navLink, next} = props;
14
+ return (
15
+ <Link className={clsx('pagination-nav__link')} to={navLink.permalink}>
16
+ <div className="pagination-nav__sublabel">
17
+ {next ? (
18
+ <Translate
19
+ id="theme.docs.paginator.next"
20
+ description="The label used to navigate to the next doc">
21
+ Next
22
+ </Translate>
23
+ ) : (
24
+ <Translate
25
+ id="theme.docs.paginator.previous"
26
+ description="The label used to navigate to the previous doc">
27
+ Previous
28
+ </Translate>
29
+ )}
30
+ </div>
31
+ <div className="pagination-nav__label">{navLink.title}</div>
32
+ </Link>
33
+ );
34
+ }
35
+
36
+ export default DocPaginatorNavLink;
@@ -10,9 +10,10 @@ import {
10
10
  useThemeConfig,
11
11
  useAnnouncementBar,
12
12
  MobileSecondaryMenuFiller,
13
+ ThemeClassNames,
14
+ useScrollPosition,
13
15
  } from '@docusaurus/theme-common';
14
16
  import useWindowSize from '@theme/hooks/useWindowSize';
15
- import useScrollPosition from '@theme/hooks/useScrollPosition';
16
17
  import Logo from '@theme/Logo';
17
18
  import IconArrow from '@theme/IconArrow';
18
19
  import {translate} from '@docusaurus/Translate';
@@ -20,14 +21,17 @@ import {DocSidebarItems} from '@theme/DocSidebarItem';
20
21
  import styles from './styles.module.css';
21
22
 
22
23
  function useShowAnnouncementBar() {
23
- const {isClosed} = useAnnouncementBar();
24
- const [showAnnouncementBar, setShowAnnouncementBar] = useState(!isClosed);
25
- useScrollPosition(({scrollY}) => {
26
- if (!isClosed) {
27
- setShowAnnouncementBar(scrollY === 0);
28
- }
29
- });
30
- return showAnnouncementBar;
24
+ const {isActive} = useAnnouncementBar();
25
+ const [showAnnouncementBar, setShowAnnouncementBar] = useState(isActive);
26
+ useScrollPosition(
27
+ ({scrollY}) => {
28
+ if (isActive) {
29
+ setShowAnnouncementBar(scrollY === 0);
30
+ }
31
+ },
32
+ [isActive],
33
+ );
34
+ return isActive && showAnnouncementBar;
31
35
  }
32
36
 
33
37
  function HideableSidebarButton({onClick}) {
@@ -54,19 +58,12 @@ function HideableSidebarButton({onClick}) {
54
58
  );
55
59
  }
56
60
 
57
- function DocSidebarDesktop({
58
- path,
59
- sidebar,
60
- sidebarCollapsible,
61
- onCollapse,
62
- isHidden,
63
- }) {
61
+ function DocSidebarDesktop({path, sidebar, onCollapse, isHidden}) {
64
62
  const showAnnouncementBar = useShowAnnouncementBar();
65
63
  const {
66
64
  navbar: {hideOnScroll},
67
65
  hideableSidebar,
68
66
  } = useThemeConfig();
69
- const {isClosed: isAnnouncementBarClosed} = useAnnouncementBar();
70
67
  return (
71
68
  <div
72
69
  className={clsx(styles.sidebar, {
@@ -76,39 +73,36 @@ function DocSidebarDesktop({
76
73
  {hideOnScroll && <Logo tabIndex={-1} className={styles.sidebarLogo} />}
77
74
  <nav
78
75
  className={clsx('menu thin-scrollbar', styles.menu, {
79
- [styles.menuWithAnnouncementBar]:
80
- !isAnnouncementBarClosed && showAnnouncementBar,
76
+ [styles.menuWithAnnouncementBar]: showAnnouncementBar,
81
77
  })}>
82
- <ul className="menu__list">
83
- <DocSidebarItems
84
- items={sidebar}
85
- collapsible={sidebarCollapsible}
86
- activePath={path}
87
- />
78
+ <ul className={clsx(ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
79
+ <DocSidebarItems items={sidebar} activePath={path} level={1} />
88
80
  </ul>
89
81
  </nav>
90
82
  {hideableSidebar && <HideableSidebarButton onClick={onCollapse} />}
91
83
  </div>
92
84
  );
93
- }
85
+ } // eslint-disable-next-line react/function-component-definition
94
86
 
95
- const DocSidebarMobileSecondaryMenu = ({
96
- toggleSidebar,
97
- sidebar,
98
- sidebarCollapsible,
99
- path,
100
- }) => {
101
- return (
102
- <ul className="menu__list">
103
- <DocSidebarItems
104
- items={sidebar}
105
- collapsible={sidebarCollapsible}
106
- activePath={path}
107
- onItemClick={() => toggleSidebar()}
108
- />
109
- </ul>
110
- );
111
- };
87
+ const DocSidebarMobileSecondaryMenu = ({toggleSidebar, sidebar, path}) => (
88
+ <ul className={clsx(ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
89
+ <DocSidebarItems
90
+ items={sidebar}
91
+ activePath={path}
92
+ onItemClick={(item) => {
93
+ // Mobile sidebar should only be closed if the category has a link
94
+ if (item.type === 'category' && item.href) {
95
+ toggleSidebar();
96
+ }
97
+
98
+ if (item.type === 'link') {
99
+ toggleSidebar();
100
+ }
101
+ }}
102
+ level={1}
103
+ />
104
+ </ul>
105
+ );
112
106
 
113
107
  function DocSidebarMobile(props) {
114
108
  return (