@docusaurus/theme-classic 2.0.0-beta.15a2b59f9 → 2.0.0-beta.17

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-next/theme/Toggle/styles.module.css → lib/deps.d.ts} +5 -9
  4. package/lib/getSwizzleConfig.js +125 -0
  5. package/lib/index.js +36 -41
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +771 -0
  8. package/lib/translations.js +40 -34
  9. package/lib/types.d.ts +0 -587
  10. package/lib/validateThemeConfig.js +242 -250
  11. package/lib-next/theme/Admonition/index.js +101 -0
  12. package/lib-next/theme/AnnouncementBar/index.js +8 -16
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  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 +52 -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/{src/theme/Toggle → lib-next/theme/BlogPostAuthors}/styles.module.css +11 -7
  24. package/lib-next/theme/BlogPostItem/index.js +94 -96
  25. package/lib-next/theme/BlogPostPage/index.js +75 -39
  26. package/lib-next/theme/BlogPostPaginator/index.js +12 -19
  27. package/lib-next/theme/BlogSidebar/index.js +11 -13
  28. package/lib-next/theme/BlogSidebar/styles.module.css +4 -2
  29. package/lib-next/theme/BlogTagsListPage/index.js +15 -59
  30. package/lib-next/theme/BlogTagsPostsPage/index.js +33 -41
  31. package/lib-next/theme/CodeBlock/index.js +64 -154
  32. package/lib-next/theme/CodeBlock/styles.module.css +17 -9
  33. package/lib-next/theme/ColorModeToggle/index.js +83 -0
  34. package/lib-next/theme/ColorModeToggle/styles.module.css +51 -0
  35. package/lib-next/theme/Details/index.js +21 -0
  36. package/lib-next/theme/Details/styles.module.css +13 -0
  37. package/lib-next/theme/DocBreadcrumbs/index.js +76 -0
  38. package/lib-next/theme/DocBreadcrumbs/styles.module.css +26 -0
  39. package/lib-next/theme/DocCard/index.js +91 -0
  40. package/lib-next/theme/DocCard/styles.module.css +43 -0
  41. package/lib-next/theme/DocCardList/index.js +19 -0
  42. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +54 -0
  43. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  44. package/lib-next/theme/DocItem/index.js +53 -58
  45. package/lib-next/theme/DocItem/styles.module.css +6 -10
  46. package/lib-next/theme/DocItemFooter/index.js +79 -0
  47. package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
  48. package/lib-next/theme/DocPage/index.js +54 -55
  49. package/lib-next/theme/DocPage/styles.module.css +9 -3
  50. package/lib-next/theme/DocPaginator/index.js +15 -24
  51. package/lib-next/theme/DocSidebar/index.js +65 -286
  52. package/lib-next/theme/DocSidebar/styles.module.css +5 -22
  53. package/lib-next/theme/DocSidebarItem/index.js +264 -0
  54. package/{lib/theme/BlogPostItem → lib-next/theme/DocSidebarItem}/styles.module.css +5 -10
  55. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  56. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  57. package/lib-next/theme/DocTagsListPage/index.js +35 -0
  58. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  59. package/lib-next/theme/DocVersionBanner/index.js +32 -15
  60. package/lib-next/theme/EditThisPage/index.js +6 -1
  61. package/lib-next/theme/ErrorPageContent.js +35 -0
  62. package/lib-next/theme/Footer/index.js +95 -40
  63. package/lib-next/theme/Footer/styles.module.css +2 -1
  64. package/lib-next/theme/Heading/index.js +39 -48
  65. package/lib-next/theme/Heading/styles.module.css +25 -5
  66. package/lib-next/theme/IconArrow/index.js +2 -5
  67. package/lib-next/theme/IconClose/index.js +23 -0
  68. package/lib-next/theme/IconDarkMode/index.js +17 -0
  69. package/lib-next/theme/IconEdit/index.js +2 -5
  70. package/lib-next/theme/IconExternalLink/index.js +2 -5
  71. package/lib-next/theme/IconLanguage/index.js +5 -8
  72. package/lib-next/theme/IconLightMode/index.js +17 -0
  73. package/lib-next/theme/IconMenu/index.js +7 -5
  74. package/lib-next/theme/LastUpdated/index.js +3 -2
  75. package/lib-next/theme/Layout/index.js +5 -7
  76. package/lib-next/theme/LayoutHead/index.js +27 -32
  77. package/lib-next/theme/LayoutProviders/index.js +15 -9
  78. package/lib-next/theme/Logo/index.js +25 -24
  79. package/lib-next/theme/MDXComponents/index.js +59 -30
  80. package/{src/theme/hooks → lib-next/theme/MDXComponents}/styles.css +7 -2
  81. package/lib-next/theme/MDXPage/index.js +10 -12
  82. package/lib-next/theme/Navbar/index.js +199 -64
  83. package/lib-next/theme/Navbar/styles.module.css +10 -3
  84. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +35 -201
  85. package/lib-next/theme/NavbarItem/DocNavbarItem.js +11 -8
  86. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  87. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +34 -20
  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/theme/hooks/styles.css → lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css} +3 -2
  92. package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
  93. package/lib-next/theme/NavbarItem/index.js +26 -14
  94. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  95. package/lib-next/theme/NotFound.js +1 -4
  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 +34 -0
  99. package/lib-next/theme/Seo/index.js +11 -7
  100. package/lib-next/theme/SkipToContent/index.js +3 -5
  101. package/lib-next/theme/SkipToContent/styles.module.css +7 -0
  102. package/lib-next/theme/TOC/index.js +12 -39
  103. package/lib-next/theme/TOC/styles.module.css +1 -1
  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/{hooks/styles.css → TagsListByLetter/styles.module.css} +3 -2
  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 +7 -10
  119. package/lib-next/theme/ThemedImage/styles.module.css +2 -2
  120. package/lib-next/theme/prism-include-languages.js +17 -15
  121. package/package.json +31 -31
  122. package/src/admonitions.css +35 -0
  123. package/src/deps.d.ts +13 -0
  124. package/src/getSwizzleConfig.ts +123 -0
  125. package/src/index.ts +39 -61
  126. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  127. package/src/theme/Admonition/index.tsx +106 -0
  128. package/src/theme/AnnouncementBar/index.tsx +9 -15
  129. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  130. package/src/theme/BackToTopButton/index.tsx +143 -0
  131. package/src/theme/BackToTopButton/styles.module.css +44 -0
  132. package/src/theme/BlogArchivePage/index.tsx +91 -0
  133. package/src/theme/BlogLayout/index.tsx +42 -0
  134. package/src/theme/BlogListPage/index.tsx +19 -28
  135. package/src/theme/BlogListPaginator/index.tsx +13 -15
  136. package/src/theme/BlogPostAuthor/index.tsx +54 -0
  137. package/{lib/theme/MDXPage → src/theme/BlogPostAuthor}/styles.module.css +4 -2
  138. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  139. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  140. package/src/theme/BlogPostItem/index.tsx +84 -90
  141. package/src/theme/BlogPostPage/index.tsx +77 -38
  142. package/src/theme/BlogPostPaginator/index.tsx +12 -18
  143. package/src/theme/BlogSidebar/index.tsx +11 -13
  144. package/src/theme/BlogSidebar/styles.module.css +4 -2
  145. package/src/theme/BlogTagsListPage/index.tsx +15 -60
  146. package/src/theme/BlogTagsPostsPage/index.tsx +32 -40
  147. package/src/theme/CodeBlock/index.tsx +68 -156
  148. package/src/theme/CodeBlock/styles.module.css +17 -9
  149. package/src/theme/ColorModeToggle/index.tsx +92 -0
  150. package/src/theme/ColorModeToggle/styles.module.css +51 -0
  151. package/src/theme/Details/index.tsx +25 -0
  152. package/src/theme/Details/styles.module.css +13 -0
  153. package/src/theme/DocBreadcrumbs/index.tsx +91 -0
  154. package/src/theme/DocBreadcrumbs/styles.module.css +26 -0
  155. package/src/theme/DocCard/index.tsx +109 -0
  156. package/src/theme/DocCard/styles.module.css +43 -0
  157. package/src/theme/DocCardList/index.tsx +27 -0
  158. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +59 -0
  159. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  160. package/src/theme/DocItem/index.tsx +56 -58
  161. package/src/theme/DocItem/styles.module.css +6 -10
  162. package/src/theme/DocItemFooter/index.tsx +91 -0
  163. package/{lib/theme/Toggle → src/theme/DocItemFooter}/styles.module.css +9 -8
  164. package/src/theme/DocPage/index.tsx +53 -49
  165. package/src/theme/DocPage/styles.module.css +9 -3
  166. package/src/theme/DocPaginator/index.tsx +15 -23
  167. package/src/theme/DocSidebar/index.tsx +76 -298
  168. package/src/theme/DocSidebar/styles.module.css +5 -22
  169. package/src/theme/DocSidebarItem/index.tsx +283 -0
  170. package/src/theme/DocSidebarItem/styles.module.css +13 -0
  171. package/src/theme/DocSidebarItems/index.tsx +32 -0
  172. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  173. package/src/theme/DocTagsListPage/index.tsx +39 -0
  174. package/src/theme/DocVersionBadge/index.tsx +35 -0
  175. package/src/theme/DocVersionBanner/index.tsx +49 -22
  176. package/src/theme/EditThisPage/index.tsx +6 -1
  177. package/src/theme/ErrorPageContent.tsx +41 -0
  178. package/src/theme/Footer/index.tsx +109 -44
  179. package/src/theme/Footer/styles.module.css +2 -1
  180. package/src/theme/Heading/index.tsx +38 -53
  181. package/src/theme/Heading/styles.module.css +25 -5
  182. package/src/theme/IconArrow/index.tsx +2 -4
  183. package/src/theme/IconClose/index.tsx +26 -0
  184. package/src/theme/IconDarkMode/index.tsx +20 -0
  185. package/src/theme/IconEdit/index.tsx +5 -4
  186. package/src/theme/IconExternalLink/index.tsx +3 -5
  187. package/src/theme/IconLanguage/index.tsx +6 -8
  188. package/src/theme/IconLightMode/index.tsx +20 -0
  189. package/src/theme/IconMenu/index.tsx +3 -5
  190. package/src/theme/LastUpdated/index.tsx +3 -2
  191. package/src/theme/Layout/index.tsx +5 -6
  192. package/src/theme/LayoutHead/index.tsx +26 -25
  193. package/src/theme/LayoutProviders/index.tsx +15 -9
  194. package/src/theme/Logo/index.tsx +21 -19
  195. package/src/theme/MDXComponents/index.tsx +70 -32
  196. package/{lib/theme/IconExternalLink/styles.module.css → src/theme/MDXComponents/styles.css} +7 -4
  197. package/src/theme/MDXPage/index.tsx +10 -12
  198. package/src/theme/Navbar/index.tsx +208 -68
  199. package/src/theme/Navbar/styles.module.css +10 -3
  200. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -207
  201. package/src/theme/NavbarItem/DocNavbarItem.tsx +17 -18
  202. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  203. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +39 -24
  204. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  205. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  206. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +16 -10
  207. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  208. package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
  209. package/src/theme/NavbarItem/index.tsx +41 -18
  210. package/src/theme/NavbarItem/utils.ts +10 -0
  211. package/src/theme/NotFound.tsx +1 -3
  212. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  213. package/src/theme/SearchBar.tsx +2 -1
  214. package/src/theme/SearchMetadata/index.tsx +43 -0
  215. package/src/theme/Seo/index.tsx +7 -4
  216. package/src/theme/SkipToContent/index.tsx +3 -5
  217. package/src/theme/SkipToContent/styles.module.css +7 -0
  218. package/src/theme/TOC/index.tsx +13 -44
  219. package/src/theme/TOC/styles.module.css +1 -1
  220. package/src/theme/TOCCollapsible/index.tsx +58 -0
  221. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  222. package/src/theme/TOCInline/index.tsx +14 -35
  223. package/src/theme/TOCItems/index.tsx +100 -0
  224. package/src/theme/TabItem/index.tsx +5 -3
  225. package/src/theme/Tabs/index.tsx +115 -56
  226. package/src/theme/Tabs/styles.module.css +0 -13
  227. package/src/theme/Tag/index.tsx +29 -0
  228. package/src/theme/Tag/styles.module.css +70 -0
  229. package/src/theme/TagsListByLetter/index.tsx +43 -0
  230. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  231. package/src/theme/TagsListInline/index.tsx +35 -0
  232. package/src/theme/TagsListInline/styles.module.css +15 -0
  233. package/src/theme/ThemedImage/index.tsx +7 -9
  234. package/src/theme/ThemedImage/styles.module.css +2 -2
  235. package/src/theme/prism-include-languages.ts +20 -15
  236. package/src/theme-classic.d.ts +771 -0
  237. package/src/translations.ts +74 -54
  238. package/src/types.d.ts +0 -587
  239. package/src/validateThemeConfig.ts +381 -0
  240. package/babel.config.js +0 -35
  241. package/codeTranslations/README.md +0 -20
  242. package/codeTranslations/ar.json +0 -57
  243. package/codeTranslations/base.json +0 -112
  244. package/codeTranslations/bn.json +0 -56
  245. package/codeTranslations/da.json +0 -57
  246. package/codeTranslations/de.json +0 -57
  247. package/codeTranslations/es.json +0 -57
  248. package/codeTranslations/fa.json +0 -57
  249. package/codeTranslations/fil.json +0 -57
  250. package/codeTranslations/fr.json +0 -57
  251. package/codeTranslations/he.json +0 -57
  252. package/codeTranslations/hi.json +0 -57
  253. package/codeTranslations/ja.json +0 -57
  254. package/codeTranslations/ko.json +0 -57
  255. package/codeTranslations/pl.json +0 -57
  256. package/codeTranslations/pt-BR.json +0 -57
  257. package/codeTranslations/pt-PT.json +0 -57
  258. package/codeTranslations/ru.json +0 -57
  259. package/codeTranslations/tr.json +0 -57
  260. package/codeTranslations/vi.json +0 -57
  261. package/codeTranslations/zh-Hans.json +0 -57
  262. package/codeTranslations/zh-Hant.json +0 -57
  263. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  264. package/lib/__tests__/translations.test.js +0 -112
  265. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  266. package/lib/theme/AnnouncementBar/index.js +0 -72
  267. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  268. package/lib/theme/BlogListPage/index.js +0 -71
  269. package/lib/theme/BlogListPaginator/index.js +0 -63
  270. package/lib/theme/BlogPostItem/index.js +0 -161
  271. package/lib/theme/BlogPostPage/index.js +0 -69
  272. package/lib/theme/BlogPostPaginator/index.js +0 -64
  273. package/lib/theme/BlogSidebar/index.js +0 -51
  274. package/lib/theme/BlogSidebar/styles.module.css +0 -44
  275. package/lib/theme/BlogTagsListPage/index.js +0 -76
  276. package/lib/theme/BlogTagsPostsPage/index.js +0 -100
  277. package/lib/theme/CodeBlock/index.js +0 -253
  278. package/lib/theme/CodeBlock/styles.module.css +0 -68
  279. package/lib/theme/DocItem/index.js +0 -129
  280. package/lib/theme/DocPage/index.js +0 -173
  281. package/lib/theme/DocPage/styles.module.css +0 -80
  282. package/lib/theme/DocPaginator/index.js +0 -63
  283. package/lib/theme/DocSidebar/index.js +0 -309
  284. package/lib/theme/DocSidebar/styles.module.css +0 -124
  285. package/lib/theme/DocVersionBanner/index.js +0 -128
  286. package/lib/theme/EditThisPage/index.js +0 -31
  287. package/lib/theme/Footer/index.js +0 -115
  288. package/lib/theme/Footer/styles.module.css +0 -15
  289. package/lib/theme/Heading/index.js +0 -76
  290. package/lib/theme/Heading/styles.css +0 -23
  291. package/lib/theme/Heading/styles.module.css +0 -15
  292. package/lib/theme/IconArrow/index.js +0 -28
  293. package/lib/theme/IconEdit/index.js +0 -34
  294. package/lib/theme/IconExternalLink/index.js +0 -30
  295. package/lib/theme/IconLanguage/index.js +0 -29
  296. package/lib/theme/IconMenu/index.js +0 -30
  297. package/lib/theme/LastUpdated/index.js +0 -61
  298. package/lib/theme/Layout/index.js +0 -64
  299. package/lib/theme/Layout/styles.css +0 -27
  300. package/lib/theme/LayoutHead/index.js +0 -144
  301. package/lib/theme/LayoutProviders/index.js +0 -36
  302. package/lib/theme/Logo/index.js +0 -60
  303. package/lib/theme/MDXComponents/index.js +0 -65
  304. package/lib/theme/MDXPage/index.js +0 -66
  305. package/lib/theme/Navbar/index.js +0 -147
  306. package/lib/theme/Navbar/styles.module.css +0 -20
  307. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
  308. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
  309. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
  310. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  311. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  312. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  313. package/lib/theme/NavbarItem/index.js +0 -54
  314. package/lib/theme/NotFound.js +0 -57
  315. package/lib/theme/SearchBar.js +0 -15
  316. package/lib/theme/SearchMetadatas/index.js +0 -33
  317. package/lib/theme/Seo/index.js +0 -49
  318. package/lib/theme/SkipToContent/index.js +0 -71
  319. package/lib/theme/SkipToContent/styles.module.css +0 -14
  320. package/lib/theme/TOC/index.js +0 -59
  321. package/lib/theme/TOC/styles.module.css +0 -23
  322. package/lib/theme/TOCInline/index.js +0 -53
  323. package/lib/theme/TOCInline/styles.module.css +0 -12
  324. package/lib/theme/TabItem/index.js +0 -32
  325. package/lib/theme/Tabs/index.js +0 -150
  326. package/lib/theme/Tabs/styles.module.css +0 -23
  327. package/lib/theme/ThemeContext.js +0 -21
  328. package/lib/theme/ThemeProvider/index.js +0 -38
  329. package/lib/theme/ThemedImage/index.js +0 -49
  330. package/lib/theme/ThemedImage/styles.module.css +0 -18
  331. package/lib/theme/Toggle/index.js +0 -94
  332. package/lib/theme/Toggle/styles.css +0 -103
  333. package/lib/theme/UserPreferencesContext.js +0 -18
  334. package/lib/theme/UserPreferencesProvider/index.js +0 -36
  335. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  336. package/lib/theme/hooks/useDocs.js +0 -18
  337. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  338. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  339. package/lib/theme/hooks/useLocationHash.js +0 -28
  340. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  341. package/lib/theme/hooks/usePrismTheme.js +0 -36
  342. package/lib/theme/hooks/useScrollPosition.js +0 -49
  343. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  344. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  345. package/lib/theme/hooks/useTheme.js +0 -99
  346. package/lib/theme/hooks/useThemeContext.js +0 -31
  347. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  348. package/lib/theme/hooks/useWindowSize.js +0 -55
  349. package/lib/theme/prism-include-languages.js +0 -39
  350. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  351. package/lib-next/__tests__/translations.test.js +0 -128
  352. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  353. package/lib-next/index.js +0 -221
  354. package/lib-next/theme/Heading/styles.css +0 -23
  355. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  356. package/lib-next/theme/ThemeContext.js +0 -9
  357. package/lib-next/theme/ThemeProvider/index.js +0 -25
  358. package/lib-next/theme/Toggle/index.js +0 -80
  359. package/lib-next/theme/Toggle/styles.css +0 -103
  360. package/lib-next/theme/UserPreferencesProvider/index.js +0 -24
  361. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  362. package/lib-next/theme/hooks/useDocs.js +0 -10
  363. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  364. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  365. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  366. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  367. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  368. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  369. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  370. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
  371. package/lib-next/theme/hooks/useTheme.js +0 -82
  372. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  373. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  374. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  375. package/lib-next/translations.js +0 -145
  376. package/lib-next/types.d.ts +0 -598
  377. package/lib-next/validateThemeConfig.js +0 -317
  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/Toggle/index.tsx +0 -100
  387. package/src/theme/Toggle/styles.css +0 -103
  388. package/src/theme/UserPreferencesContext.ts +0 -12
  389. package/src/theme/UserPreferencesProvider/index.tsx +0 -27
  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 -240
  407. package/update-code-translations.test.js +0 -33
@@ -0,0 +1,76 @@
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 {
9
+ ThemeClassNames,
10
+ useSidebarBreadcrumbs,
11
+ useHomePageRoute,
12
+ } from '@docusaurus/theme-common';
13
+ import styles from './styles.module.css';
14
+ import clsx from 'clsx';
15
+ import Link from '@docusaurus/Link';
16
+ import useBaseUrl from '@docusaurus/useBaseUrl'; // TODO move to design system folder
17
+
18
+ function BreadcrumbsItemLink({children, href}) {
19
+ const className = clsx('breadcrumbs__link', styles.breadcrumbsItemLink);
20
+ return href ? (
21
+ <Link className={className} href={href}>
22
+ {children}
23
+ </Link>
24
+ ) : (
25
+ <span className={className}>{children}</span>
26
+ );
27
+ } // TODO move to design system folder
28
+
29
+ function BreadcrumbsItem({children, active}) {
30
+ return (
31
+ <li
32
+ className={clsx('breadcrumbs__item', {
33
+ 'breadcrumbs__item--active': active,
34
+ })}>
35
+ {children}
36
+ </li>
37
+ );
38
+ }
39
+
40
+ function HomeBreadcrumbItem() {
41
+ const homeHref = useBaseUrl('/');
42
+ return (
43
+ <BreadcrumbsItem>
44
+ <BreadcrumbsItemLink href={homeHref}>🏠</BreadcrumbsItemLink>
45
+ </BreadcrumbsItem>
46
+ );
47
+ }
48
+
49
+ export default function DocBreadcrumbs() {
50
+ const breadcrumbs = useSidebarBreadcrumbs();
51
+ const homePageRoute = useHomePageRoute();
52
+
53
+ if (!breadcrumbs) {
54
+ return null;
55
+ }
56
+
57
+ return (
58
+ <nav
59
+ className={clsx(
60
+ ThemeClassNames.docs.docBreadcrumbs,
61
+ styles.breadcrumbsContainer,
62
+ )}
63
+ aria-label="breadcrumbs">
64
+ <ul className="breadcrumbs">
65
+ {homePageRoute && <HomeBreadcrumbItem />}
66
+ {breadcrumbs.map((item, idx) => (
67
+ <BreadcrumbsItem key={idx} active={idx === breadcrumbs.length - 1}>
68
+ <BreadcrumbsItemLink href={item.href}>
69
+ {item.label}
70
+ </BreadcrumbsItemLink>
71
+ </BreadcrumbsItem>
72
+ ))}
73
+ </ul>
74
+ </nav>
75
+ );
76
+ }
@@ -0,0 +1,26 @@
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
+ .breadcrumbsContainer {
9
+ margin-bottom: 0.4rem;
10
+ }
11
+
12
+ .breadcrumbsItemLink {
13
+ --ifm-breadcrumb-size-multiplier: 0.7 !important;
14
+ margin-bottom: 0.4rem;
15
+ background: var(--ifm-color-gray-100);
16
+ }
17
+
18
+ html[data-theme='dark'] .breadcrumbsItemLink {
19
+ background-color: var(--ifm-color-gray-900);
20
+ }
21
+
22
+ @media (min-width: 997px) {
23
+ .breadcrumbsItemLink {
24
+ --ifm-breadcrumb-size-multiplier: 0.8;
25
+ }
26
+ }
@@ -0,0 +1,91 @@
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 Link from '@docusaurus/Link';
9
+ import {findFirstCategoryLink, useDocById} from '@docusaurus/theme-common';
10
+ import clsx from 'clsx';
11
+ import styles from './styles.module.css';
12
+ import isInternalUrl from '@docusaurus/isInternalUrl';
13
+ import {translate} from '@docusaurus/Translate';
14
+
15
+ function CardContainer({href, children}) {
16
+ const className = clsx(
17
+ 'card margin-bottom--lg padding--lg',
18
+ styles.cardContainer,
19
+ href && styles.cardContainerLink,
20
+ );
21
+ return href ? (
22
+ <Link href={href} className={className}>
23
+ {children}
24
+ </Link>
25
+ ) : (
26
+ <div className={className}>{children}</div>
27
+ );
28
+ }
29
+
30
+ function CardLayout({href, icon, title, description}) {
31
+ return (
32
+ <CardContainer href={href}>
33
+ <h2 className={clsx('text--truncate', styles.cardTitle)} title={title}>
34
+ {icon} {title}
35
+ </h2>
36
+ <div
37
+ className={clsx('text--truncate', styles.cardDescription)}
38
+ title={description}>
39
+ {description}
40
+ </div>
41
+ </CardContainer>
42
+ );
43
+ }
44
+
45
+ function CardCategory({item}) {
46
+ const href = findFirstCategoryLink(item);
47
+ return (
48
+ <CardLayout
49
+ href={href}
50
+ icon="🗃️"
51
+ title={item.label}
52
+ description={translate(
53
+ {
54
+ message: '{count} items',
55
+ id: 'theme.docs.DocCard.categoryDescription',
56
+ description:
57
+ 'The default description for a category card in the generated index about how many items this category includes',
58
+ },
59
+ {
60
+ count: item.items.length,
61
+ },
62
+ )}
63
+ />
64
+ );
65
+ }
66
+
67
+ function CardLink({item}) {
68
+ const icon = isInternalUrl(item.href) ? '📄️' : '🔗';
69
+ const doc = useDocById(item.docId ?? undefined);
70
+ return (
71
+ <CardLayout
72
+ href={item.href}
73
+ icon={icon}
74
+ title={item.label}
75
+ description={doc?.description}
76
+ />
77
+ );
78
+ }
79
+
80
+ export default function DocCard({item}) {
81
+ switch (item.type) {
82
+ case 'link':
83
+ return <CardLink item={item} />;
84
+
85
+ case 'category':
86
+ return <CardCategory item={item} />;
87
+
88
+ default:
89
+ throw new Error(`unknown item type ${JSON.stringify(item)}`);
90
+ }
91
+ }
@@ -0,0 +1,43 @@
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
+ .cardContainer {
9
+ height: 8rem;
10
+ color: var(--ifm-color-emphasis-800);
11
+ --ifm-link-color: var(--ifm-color-emphasis-800);
12
+ --ifm-link-hover-color: var(--ifm-color-emphasis-800);
13
+ --ifm-link-hover-decoration: none;
14
+
15
+ /* box-shadow: var(--ifm-global-shadow-lw); */
16
+ box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%);
17
+ border: 1px solid var(--ifm-color-emphasis-200);
18
+ transition: box-shadow var(--ifm-transition-fast) ease,
19
+ background-color var(--ifm-transition-fast) ease;
20
+ }
21
+
22
+ .cardContainer.cardContainerLink:hover {
23
+ /* box-shadow: var(--ifm-global-shadow-md); */
24
+ box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%);
25
+ }
26
+
27
+ [data-theme='dark'] .cardContainer.cardContainerLink:hover {
28
+ --ifm-card-background-color: #2d2d2d; /* original, non-hovered color is #242526 */
29
+ }
30
+
31
+ .cardContainer:not(.cardContainerLink) {
32
+ cursor: not-allowed;
33
+ }
34
+
35
+ .cardTitle {
36
+ font-size: 1.2rem;
37
+ min-height: 1.2rem;
38
+ }
39
+
40
+ .cardDescription {
41
+ font-size: 0.8rem;
42
+ min-height: 0.8rem;
43
+ }
@@ -0,0 +1,19 @@
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 DocCard from '@theme/DocCard';
9
+ export default function DocCardList({items}) {
10
+ return (
11
+ <div className="row">
12
+ {items.map((item, index) => (
13
+ <article key={index} className="col col--6">
14
+ <DocCard item={item} />
15
+ </article>
16
+ ))}
17
+ </div>
18
+ );
19
+ }
@@ -0,0 +1,54 @@
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 {useCurrentSidebarCategory} from '@docusaurus/theme-common';
9
+ import DocCardList from '@theme/DocCardList';
10
+ import DocPaginator from '@theme/DocPaginator';
11
+ import Seo from '@theme/Seo';
12
+ import DocVersionBanner from '@theme/DocVersionBanner';
13
+ import DocVersionBadge from '@theme/DocVersionBadge';
14
+ import DocBreadcrumbs from '@theme/DocBreadcrumbs';
15
+ import Heading from '@theme/Heading';
16
+ import useBaseUrl from '@docusaurus/useBaseUrl';
17
+ import styles from './styles.module.css';
18
+ export default function DocCategoryGeneratedIndexPage({
19
+ categoryGeneratedIndex,
20
+ }) {
21
+ const category = useCurrentSidebarCategory();
22
+ return (
23
+ <>
24
+ <Seo
25
+ title={categoryGeneratedIndex.title}
26
+ description={categoryGeneratedIndex.description}
27
+ keywords={categoryGeneratedIndex.keywords} // TODO `require` this?
28
+ image={useBaseUrl(categoryGeneratedIndex.image)}
29
+ />
30
+ <div className={styles.generatedIndexPage}>
31
+ <DocVersionBanner />
32
+ <DocBreadcrumbs />
33
+ <DocVersionBadge />
34
+ <header>
35
+ <Heading as="h1" className={styles.title}>
36
+ {categoryGeneratedIndex.title}
37
+ </Heading>
38
+ {categoryGeneratedIndex.description && (
39
+ <p>{categoryGeneratedIndex.description}</p>
40
+ )}
41
+ </header>
42
+ <main className="margin-top--lg">
43
+ <DocCardList items={category.items} />
44
+ </main>
45
+ <footer className="margin-top--lg">
46
+ <DocPaginator
47
+ previous={categoryGeneratedIndex.navigation.previous}
48
+ next={categoryGeneratedIndex.navigation.next}
49
+ />
50
+ </footer>
51
+ </div>
52
+ </>
53
+ );
54
+ }
@@ -0,0 +1,18 @@
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
+ .generatedIndexPage {
10
+ max-width: 75% !important;
11
+ }
12
+ }
13
+
14
+ /* Duplicated from .markdown h1 */
15
+ .title {
16
+ --ifm-h1-font-size: 3rem;
17
+ margin-bottom: calc(1.25 * var(--ifm-leading));
18
+ }
@@ -5,47 +5,40 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
+ import clsx from 'clsx';
8
9
  import DocPaginator from '@theme/DocPaginator';
9
10
  import DocVersionBanner from '@theme/DocVersionBanner';
11
+ import DocVersionBadge from '@theme/DocVersionBadge';
10
12
  import Seo from '@theme/Seo';
11
- import LastUpdated from '@theme/LastUpdated';
13
+ import DocItemFooter from '@theme/DocItemFooter';
12
14
  import TOC from '@theme/TOC';
13
- import EditThisPage from '@theme/EditThisPage';
14
- import {MainHeading} from '@theme/Heading';
15
- import clsx from 'clsx';
15
+ import TOCCollapsible from '@theme/TOCCollapsible';
16
+ import Heading from '@theme/Heading';
16
17
  import styles from './styles.module.css';
17
- import {useActivePlugin, useVersions} from '@theme/hooks/useDocs';
18
-
19
- function DocItem(props) {
20
- const {content: DocContent, versionMetadata} = props;
21
- const {metadata, frontMatter} = DocContent;
18
+ import {ThemeClassNames, useWindowSize} from '@docusaurus/theme-common';
19
+ import DocBreadcrumbs from '@theme/DocBreadcrumbs';
20
+ export default function DocItem(props) {
21
+ const {content: DocContent} = props;
22
+ const {metadata, frontMatter, assets} = DocContent;
22
23
  const {
23
- image,
24
24
  keywords,
25
25
  hide_title: hideTitle,
26
26
  hide_table_of_contents: hideTableOfContents,
27
+ toc_min_heading_level: tocMinHeadingLevel,
28
+ toc_max_heading_level: tocMaxHeadingLevel,
27
29
  } = frontMatter;
28
- const {
29
- description,
30
- title,
31
- editUrl,
32
- lastUpdatedAt,
33
- formattedLastUpdatedAt,
34
- lastUpdatedBy,
35
- } = metadata;
36
- const {pluginId} = useActivePlugin({
37
- failfast: true,
38
- });
39
- const versions = useVersions(pluginId); // If site is not versioned or only one version is included
40
- // we don't show the version badge
41
- // See https://github.com/facebook/docusaurus/issues/3362
42
-
43
- const showVersionBadge = versions.length > 1; // We only add a title if:
44
- // - user asks to hide it with frontmatter
30
+ const {description, title} = metadata;
31
+ const image = assets.image ?? frontMatter.image; // We only add a title if:
32
+ // - user asks to hide it with front matter
45
33
  // - the markdown content does not already contain a top-level h1 heading
46
34
 
47
35
  const shouldAddTitle =
48
36
  !hideTitle && typeof DocContent.contentTitle === 'undefined';
37
+ const windowSize = useWindowSize();
38
+ const canRenderTOC =
39
+ !hideTableOfContents && DocContent.toc && DocContent.toc.length > 0;
40
+ const renderTocDesktop =
41
+ canRenderTOC && (windowSize === 'desktop' || windowSize === 'ssr');
49
42
  return (
50
43
  <>
51
44
  <Seo
@@ -62,56 +55,58 @@ function DocItem(props) {
62
55
  className={clsx('col', {
63
56
  [styles.docItemCol]: !hideTableOfContents,
64
57
  })}>
65
- <DocVersionBanner versionMetadata={versionMetadata} />
58
+ <DocVersionBanner />
66
59
  <div className={styles.docItemContainer}>
67
60
  <article>
68
- {showVersionBadge && (
69
- <span className="badge badge--secondary">
70
- Version: {versionMetadata.label}
71
- </span>
61
+ <DocBreadcrumbs />
62
+ <DocVersionBadge />
63
+
64
+ {canRenderTOC && (
65
+ <TOCCollapsible
66
+ toc={DocContent.toc}
67
+ minHeadingLevel={tocMinHeadingLevel}
68
+ maxHeadingLevel={tocMaxHeadingLevel}
69
+ className={clsx(
70
+ ThemeClassNames.docs.docTocMobile,
71
+ styles.tocMobile,
72
+ )}
73
+ />
72
74
  )}
73
75
 
74
- <div className="markdown">
76
+ <div
77
+ className={clsx(ThemeClassNames.docs.docMarkdown, 'markdown')}>
75
78
  {/*
76
- Title can be declared inside md content or declared through frontmatter and added manually
77
- To make both cases consistent, the added title is added under the same div.markdown block
79
+ Title can be declared inside md content or declared through
80
+ front matter and added manually. To make both cases consistent,
81
+ the added title is added under the same div.markdown block
78
82
  See https://github.com/facebook/docusaurus/pull/4882#issuecomment-853021120
79
83
  */}
80
- {shouldAddTitle && <MainHeading>{title}</MainHeading>}
84
+ {shouldAddTitle && (
85
+ <header>
86
+ <Heading as="h1">{title}</Heading>
87
+ </header>
88
+ )}
81
89
 
82
90
  <DocContent />
83
91
  </div>
84
92
 
85
- {(editUrl || lastUpdatedAt || lastUpdatedBy) && (
86
- <footer className="row docusaurus-mt-lg">
87
- <div className="col">
88
- {editUrl && <EditThisPage editUrl={editUrl} />}
89
- </div>
90
-
91
- <div className={clsx('col', styles.lastUpdated)}>
92
- {(lastUpdatedAt || lastUpdatedBy) && (
93
- <LastUpdated
94
- lastUpdatedAt={lastUpdatedAt}
95
- formattedLastUpdatedAt={formattedLastUpdatedAt}
96
- lastUpdatedBy={lastUpdatedBy}
97
- />
98
- )}
99
- </div>
100
- </footer>
101
- )}
93
+ <DocItemFooter {...props} />
102
94
  </article>
103
95
 
104
- <DocPaginator metadata={metadata} />
96
+ <DocPaginator previous={metadata.previous} next={metadata.next} />
105
97
  </div>
106
98
  </div>
107
- {!hideTableOfContents && DocContent.toc && (
99
+ {renderTocDesktop && (
108
100
  <div className="col col--3">
109
- <TOC toc={DocContent.toc} />
101
+ <TOC
102
+ toc={DocContent.toc}
103
+ minHeadingLevel={tocMinHeadingLevel}
104
+ maxHeadingLevel={tocMaxHeadingLevel}
105
+ className={ThemeClassNames.docs.docTocDesktop}
106
+ />
110
107
  </div>
111
108
  )}
112
109
  </div>
113
110
  </>
114
111
  );
115
112
  }
116
-
117
- export default DocItem;
@@ -5,22 +5,18 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .docItemContainer header + * {
8
+ .docItemContainer header + *,
9
+ .docItemContainer article > *:first-child {
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;
18
+ /* Prevent hydration FOUC, as the mobile TOC needs to be server-rendered */
19
+ .tocMobile {
20
+ display: none;
25
21
  }
26
22
  }
@@ -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,21 +5,13 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .docItemContainer header + * {
9
- margin-top: 0;
10
- }
11
-
12
8
  .lastUpdated {
13
9
  margin-top: 0.2rem;
14
10
  font-style: italic;
15
11
  font-size: smaller;
16
12
  }
17
13
 
18
- @media only screen and (min-width: 997px) {
19
- .docItemCol {
20
- max-width: 75% !important;
21
- }
22
-
14
+ @media (min-width: 997px) {
23
15
  .lastUpdated {
24
16
  text-align: right;
25
17
  }