@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
@@ -7,39 +7,45 @@
7
7
 
8
8
  .codeBlockContainer {
9
9
  margin-bottom: var(--ifm-leading);
10
+ border-radius: var(--ifm-global-radius);
11
+ box-shadow: var(--ifm-global-shadow-lw);
10
12
  }
11
13
 
12
14
  .codeBlockContent {
13
15
  position: relative;
14
- /*rtl:ignore*/
16
+ /* rtl:ignore */
15
17
  direction: ltr;
16
18
  }
17
19
 
18
20
  .codeBlockTitle {
19
- border-top-left-radius: var(--ifm-global-radius);
20
- border-top-right-radius: var(--ifm-global-radius);
21
21
  border-bottom: 1px solid var(--ifm-color-emphasis-300);
22
22
  font-size: var(--ifm-code-font-size);
23
23
  font-weight: 500;
24
24
  padding: 0.75rem var(--ifm-pre-padding);
25
+ border-top-left-radius: var(--ifm-global-radius);
26
+ border-top-right-radius: var(--ifm-global-radius);
25
27
  }
26
28
 
27
29
  .codeBlock {
28
- overflow: auto;
30
+ margin: 0;
31
+ padding: 0;
29
32
  border-radius: var(--ifm-global-radius);
30
33
  }
31
34
 
32
- .codeBlockWithTitle {
35
+ .codeBlockTitle + .codeBlockContent .codeBlock {
33
36
  border-top-left-radius: 0;
34
37
  border-top-right-radius: 0;
35
38
  }
36
39
 
40
+ .codeBlockStandalone {
41
+ padding: 0;
42
+ border-radius: var(--ifm-global-radius);
43
+ }
44
+
37
45
  .copyButton {
38
- background: rgba(0, 0, 0, 0.3);
39
- border: none;
46
+ background: rgb(0 0 0 / 30%);
40
47
  border-radius: var(--ifm-global-radius);
41
48
  color: var(--ifm-color-white);
42
- cursor: pointer;
43
49
  opacity: 0;
44
50
  user-select: none;
45
51
  padding: 0.4rem 0.5rem;
@@ -49,16 +55,15 @@
49
55
  transition: opacity 200ms ease-in-out;
50
56
  }
51
57
 
52
- .codeBlockTitle:hover + .codeBlockContent .copyButton,
58
+ .copyButton:focus,
53
59
  .codeBlockContent:hover > .copyButton,
54
- .copyButton:focus {
60
+ .codeBlockTitle:hover + .codeBlockContent .copyButton {
55
61
  opacity: 1;
56
62
  }
57
63
 
58
64
  .codeBlockLines {
59
- font: var(--ifm-code-font-size) / var(--ifm-pre-line-height)
60
- var(--ifm-font-family-monospace);
61
- white-space: pre;
65
+ font: inherit;
66
+ /* rtl:ignore */
62
67
  float: left;
63
68
  min-width: 100%;
64
69
  padding: var(--ifm-pre-padding);
@@ -0,0 +1,25 @@
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
+ import React from 'react';
9
+ import clsx from 'clsx';
10
+ import {Details as DetailsGeneric} from '@docusaurus/theme-common';
11
+ import type {Props} from '@theme/Details';
12
+ import styles from './styles.module.css';
13
+
14
+ // Should we have a custom details/summary comp in Infima instead of reusing
15
+ // alert classes?
16
+ const InfimaClasses = 'alert alert--info';
17
+
18
+ export default function Details({...props}: Props): JSX.Element {
19
+ return (
20
+ <DetailsGeneric
21
+ {...props}
22
+ className={clsx(InfimaClasses, styles.details, props.className)}
23
+ />
24
+ );
25
+ }
@@ -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
+ .details {
9
+ --docusaurus-details-decoration-color: var(--ifm-alert-border-color);
10
+ --docusaurus-details-transition: transform var(--ifm-transition-fast) ease;
11
+ margin: 0 0 var(--ifm-spacing-vertical);
12
+ border: 1px solid var(--ifm-alert-border-color);
13
+ }
@@ -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
+
8
+ import React, {type ReactNode} from 'react';
9
+ import {
10
+ ThemeClassNames,
11
+ useSidebarBreadcrumbs,
12
+ useHomePageRoute,
13
+ } from '@docusaurus/theme-common';
14
+ import styles from './styles.module.css';
15
+ import clsx from 'clsx';
16
+ import Link from '@docusaurus/Link';
17
+ import useBaseUrl from '@docusaurus/useBaseUrl';
18
+
19
+ // TODO move to design system folder
20
+ function BreadcrumbsItemLink({
21
+ children,
22
+ href,
23
+ }: {
24
+ children: ReactNode;
25
+ href?: string;
26
+ }): JSX.Element {
27
+ const className = clsx('breadcrumbs__link', styles.breadcrumbsItemLink);
28
+ return href ? (
29
+ <Link className={className} href={href}>
30
+ {children}
31
+ </Link>
32
+ ) : (
33
+ <span className={className}>{children}</span>
34
+ );
35
+ }
36
+
37
+ // TODO move to design system folder
38
+ function BreadcrumbsItem({
39
+ children,
40
+ active,
41
+ }: {
42
+ children: ReactNode;
43
+ active?: boolean;
44
+ }): JSX.Element {
45
+ return (
46
+ <li
47
+ className={clsx('breadcrumbs__item', {
48
+ 'breadcrumbs__item--active': active,
49
+ })}>
50
+ {children}
51
+ </li>
52
+ );
53
+ }
54
+
55
+ function HomeBreadcrumbItem() {
56
+ const homeHref = useBaseUrl('/');
57
+ return (
58
+ <BreadcrumbsItem>
59
+ <BreadcrumbsItemLink href={homeHref}>🏠</BreadcrumbsItemLink>
60
+ </BreadcrumbsItem>
61
+ );
62
+ }
63
+
64
+ export default function DocBreadcrumbs(): JSX.Element | null {
65
+ const breadcrumbs = useSidebarBreadcrumbs();
66
+ const homePageRoute = useHomePageRoute();
67
+
68
+ if (!breadcrumbs) {
69
+ return null;
70
+ }
71
+
72
+ return (
73
+ <nav
74
+ className={clsx(
75
+ ThemeClassNames.docs.docBreadcrumbs,
76
+ styles.breadcrumbsContainer,
77
+ )}
78
+ aria-label="breadcrumbs">
79
+ <ul className="breadcrumbs">
80
+ {homePageRoute && <HomeBreadcrumbItem />}
81
+ {breadcrumbs.map((item, idx) => (
82
+ <BreadcrumbsItem key={idx} active={idx === breadcrumbs.length - 1}>
83
+ <BreadcrumbsItemLink href={item.href}>
84
+ {item.label}
85
+ </BreadcrumbsItemLink>
86
+ </BreadcrumbsItem>
87
+ ))}
88
+ </ul>
89
+ </nav>
90
+ );
91
+ }
@@ -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,109 @@
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
+ import React, {type ReactNode} from 'react';
9
+ import Link from '@docusaurus/Link';
10
+ import type {
11
+ PropSidebarItemCategory,
12
+ PropSidebarItemLink,
13
+ } from '@docusaurus/plugin-content-docs';
14
+ import type {Props} from '@theme/DocCard';
15
+ import {findFirstCategoryLink, useDocById} from '@docusaurus/theme-common';
16
+ import clsx from 'clsx';
17
+ import styles from './styles.module.css';
18
+ import isInternalUrl from '@docusaurus/isInternalUrl';
19
+ import {translate} from '@docusaurus/Translate';
20
+
21
+ function CardContainer({
22
+ href,
23
+ children,
24
+ }: {
25
+ href?: string;
26
+ children: ReactNode;
27
+ }): JSX.Element {
28
+ const className = clsx(
29
+ 'card margin-bottom--lg padding--lg',
30
+ styles.cardContainer,
31
+ href && styles.cardContainerLink,
32
+ );
33
+ return href ? (
34
+ <Link href={href} className={className}>
35
+ {children}
36
+ </Link>
37
+ ) : (
38
+ <div className={className}>{children}</div>
39
+ );
40
+ }
41
+
42
+ function CardLayout({
43
+ href,
44
+ icon,
45
+ title,
46
+ description,
47
+ }: {
48
+ href?: string;
49
+ icon: ReactNode;
50
+ title: string;
51
+ description?: string;
52
+ }): JSX.Element {
53
+ return (
54
+ <CardContainer href={href}>
55
+ <h2 className={clsx('text--truncate', styles.cardTitle)} title={title}>
56
+ {icon} {title}
57
+ </h2>
58
+ <div
59
+ className={clsx('text--truncate', styles.cardDescription)}
60
+ title={description}>
61
+ {description}
62
+ </div>
63
+ </CardContainer>
64
+ );
65
+ }
66
+
67
+ function CardCategory({item}: {item: PropSidebarItemCategory}): JSX.Element {
68
+ const href = findFirstCategoryLink(item);
69
+ return (
70
+ <CardLayout
71
+ href={href}
72
+ icon="🗃️"
73
+ title={item.label}
74
+ description={translate(
75
+ {
76
+ message: '{count} items',
77
+ id: 'theme.docs.DocCard.categoryDescription',
78
+ description:
79
+ 'The default description for a category card in the generated index about how many items this category includes',
80
+ },
81
+ {count: item.items.length},
82
+ )}
83
+ />
84
+ );
85
+ }
86
+
87
+ function CardLink({item}: {item: PropSidebarItemLink}): JSX.Element {
88
+ const icon = isInternalUrl(item.href) ? '📄️' : '🔗';
89
+ const doc = useDocById(item.docId ?? undefined);
90
+ return (
91
+ <CardLayout
92
+ href={item.href}
93
+ icon={icon}
94
+ title={item.label}
95
+ description={doc?.description}
96
+ />
97
+ );
98
+ }
99
+
100
+ export default function DocCard({item}: Props): JSX.Element {
101
+ switch (item.type) {
102
+ case 'link':
103
+ return <CardLink item={item} />;
104
+ case 'category':
105
+ return <CardCategory item={item} />;
106
+ default:
107
+ throw new Error(`unknown item type ${JSON.stringify(item)}`);
108
+ }
109
+ }
@@ -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,27 @@
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
+ import React from 'react';
9
+
10
+ import DocCard from '@theme/DocCard';
11
+ import type {PropSidebarItem} from '@docusaurus/plugin-content-docs';
12
+
13
+ export default function DocCardList({
14
+ items,
15
+ }: {
16
+ items: PropSidebarItem[];
17
+ }): JSX.Element {
18
+ return (
19
+ <div className="row">
20
+ {items.map((item, index) => (
21
+ <article key={index} className="col col--6">
22
+ <DocCard item={item} />
23
+ </article>
24
+ ))}
25
+ </div>
26
+ );
27
+ }
@@ -0,0 +1,59 @@
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
+ import React from 'react';
9
+ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
10
+ import type {Props} from '@theme/DocCategoryGeneratedIndexPage';
11
+ import DocCardList from '@theme/DocCardList';
12
+ import DocPaginator from '@theme/DocPaginator';
13
+ import Seo from '@theme/Seo';
14
+ import DocVersionBanner from '@theme/DocVersionBanner';
15
+ import DocVersionBadge from '@theme/DocVersionBadge';
16
+ import DocBreadcrumbs from '@theme/DocBreadcrumbs';
17
+ import Heading from '@theme/Heading';
18
+ import useBaseUrl from '@docusaurus/useBaseUrl';
19
+
20
+ import styles from './styles.module.css';
21
+
22
+ export default function DocCategoryGeneratedIndexPage({
23
+ categoryGeneratedIndex,
24
+ }: Props): JSX.Element {
25
+ const category = useCurrentSidebarCategory();
26
+ return (
27
+ <>
28
+ <Seo
29
+ title={categoryGeneratedIndex.title}
30
+ description={categoryGeneratedIndex.description}
31
+ keywords={categoryGeneratedIndex.keywords}
32
+ // TODO `require` this?
33
+ image={useBaseUrl(categoryGeneratedIndex.image)}
34
+ />
35
+ <div className={styles.generatedIndexPage}>
36
+ <DocVersionBanner />
37
+ <DocBreadcrumbs />
38
+ <DocVersionBadge />
39
+ <header>
40
+ <Heading as="h1" className={styles.title}>
41
+ {categoryGeneratedIndex.title}
42
+ </Heading>
43
+ {categoryGeneratedIndex.description && (
44
+ <p>{categoryGeneratedIndex.description}</p>
45
+ )}
46
+ </header>
47
+ <main className="margin-top--lg">
48
+ <DocCardList items={category.items} />
49
+ </main>
50
+ <footer className="margin-top--lg">
51
+ <DocPaginator
52
+ previous={categoryGeneratedIndex.navigation.previous}
53
+ next={categoryGeneratedIndex.navigation.next}
54
+ />
55
+ </footer>
56
+ </div>
57
+ </>
58
+ );
59
+ }
@@ -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
+ }
@@ -6,110 +6,108 @@
6
6
  */
7
7
 
8
8
  import React from 'react';
9
+ import clsx from 'clsx';
9
10
  import DocPaginator from '@theme/DocPaginator';
10
- import DocVersionSuggestions from '@theme/DocVersionSuggestions';
11
+ import DocVersionBanner from '@theme/DocVersionBanner';
12
+ import DocVersionBadge from '@theme/DocVersionBadge';
11
13
  import Seo from '@theme/Seo';
12
- import LastUpdated from '@theme/LastUpdated';
13
14
  import type {Props} from '@theme/DocItem';
15
+ import DocItemFooter from '@theme/DocItemFooter';
14
16
  import TOC from '@theme/TOC';
15
- import EditThisPage from '@theme/EditThisPage';
16
-
17
- import clsx from 'clsx';
17
+ import TOCCollapsible from '@theme/TOCCollapsible';
18
+ import Heading from '@theme/Heading';
18
19
  import styles from './styles.module.css';
19
- import {
20
- useActivePlugin,
21
- useVersions,
22
- useActiveVersion,
23
- } from '@theme/hooks/useDocs';
20
+ import {ThemeClassNames, useWindowSize} from '@docusaurus/theme-common';
21
+ import DocBreadcrumbs from '@theme/DocBreadcrumbs';
24
22
 
25
- function DocItem(props: Props): JSX.Element {
23
+ export default function DocItem(props: Props): JSX.Element {
26
24
  const {content: DocContent} = props;
27
- const {metadata, frontMatter} = DocContent;
25
+ const {metadata, frontMatter, assets} = DocContent;
28
26
  const {
29
- image,
30
27
  keywords,
31
28
  hide_title: hideTitle,
32
29
  hide_table_of_contents: hideTableOfContents,
30
+ toc_min_heading_level: tocMinHeadingLevel,
31
+ toc_max_heading_level: tocMaxHeadingLevel,
33
32
  } = frontMatter;
34
- const {
35
- description,
36
- title,
37
- editUrl,
38
- lastUpdatedAt,
39
- formattedLastUpdatedAt,
40
- lastUpdatedBy,
41
- } = metadata;
33
+ const {description, title} = metadata;
34
+ const image = assets.image ?? frontMatter.image;
42
35
 
43
- const {pluginId} = useActivePlugin({failfast: true});
44
- const versions = useVersions(pluginId);
45
- const version = useActiveVersion(pluginId);
36
+ // We only add a title if:
37
+ // - user asks to hide it with front matter
38
+ // - the markdown content does not already contain a top-level h1 heading
39
+ const shouldAddTitle =
40
+ !hideTitle && typeof DocContent.contentTitle === 'undefined';
46
41
 
47
- // If site is not versioned or only one version is included
48
- // we don't show the version badge
49
- // See https://github.com/facebook/docusaurus/issues/3362
50
- const showVersionBadge = versions.length > 1;
42
+ const windowSize = useWindowSize();
51
43
 
52
- // For meta title, using frontMatter.title in priority over a potential # title found in markdown
53
- // See https://github.com/facebook/docusaurus/issues/4665#issuecomment-825831367
54
- const metaTitle = frontMatter.title || title;
44
+ const canRenderTOC =
45
+ !hideTableOfContents && DocContent.toc && DocContent.toc.length > 0;
46
+
47
+ const renderTocDesktop =
48
+ canRenderTOC && (windowSize === 'desktop' || windowSize === 'ssr');
55
49
 
56
50
  return (
57
51
  <>
58
- <Seo {...{title: metaTitle, description, keywords, image}} />
52
+ <Seo {...{title, description, keywords, image}} />
59
53
 
60
54
  <div className="row">
61
55
  <div
62
56
  className={clsx('col', {
63
57
  [styles.docItemCol]: !hideTableOfContents,
64
58
  })}>
65
- <DocVersionSuggestions />
59
+ <DocVersionBanner />
66
60
  <div className={styles.docItemContainer}>
67
61
  <article>
68
- {showVersionBadge && (
69
- <div>
70
- <span className="badge badge--secondary">
71
- Version: {version.label}
72
- </span>
73
- </div>
74
- )}
75
- {!hideTitle && (
76
- <header>
77
- <h1 className={styles.docTitle}>{title}</h1>
78
- </header>
62
+ <DocBreadcrumbs />
63
+ <DocVersionBadge />
64
+
65
+ {canRenderTOC && (
66
+ <TOCCollapsible
67
+ toc={DocContent.toc}
68
+ minHeadingLevel={tocMinHeadingLevel}
69
+ maxHeadingLevel={tocMaxHeadingLevel}
70
+ className={clsx(
71
+ ThemeClassNames.docs.docTocMobile,
72
+ styles.tocMobile,
73
+ )}
74
+ />
79
75
  )}
80
- <div className="markdown">
76
+
77
+ <div
78
+ className={clsx(ThemeClassNames.docs.docMarkdown, 'markdown')}>
79
+ {/*
80
+ Title can be declared inside md content or declared through
81
+ front matter and added manually. To make both cases consistent,
82
+ the added title is added under the same div.markdown block
83
+ See https://github.com/facebook/docusaurus/pull/4882#issuecomment-853021120
84
+ */}
85
+ {shouldAddTitle && (
86
+ <header>
87
+ <Heading as="h1">{title}</Heading>
88
+ </header>
89
+ )}
90
+
81
91
  <DocContent />
82
92
  </div>
93
+
94
+ <DocItemFooter {...props} />
83
95
  </article>
84
- {(editUrl || lastUpdatedAt || lastUpdatedBy) && (
85
- <div className="margin-vert--xl">
86
- <div className="row">
87
- <div className="col">
88
- {editUrl && <EditThisPage editUrl={editUrl} />}
89
- </div>
90
- {(lastUpdatedAt || lastUpdatedBy) && (
91
- <LastUpdated
92
- lastUpdatedAt={lastUpdatedAt}
93
- formattedLastUpdatedAt={formattedLastUpdatedAt}
94
- lastUpdatedBy={lastUpdatedBy}
95
- />
96
- )}
97
- </div>
98
- </div>
99
- )}
100
- <div className="margin-vert--lg">
101
- <DocPaginator metadata={metadata} />
102
- </div>
96
+
97
+ <DocPaginator previous={metadata.previous} next={metadata.next} />
103
98
  </div>
104
99
  </div>
105
- {!hideTableOfContents && DocContent.toc && (
100
+ {renderTocDesktop && (
106
101
  <div className="col col--3">
107
- <TOC toc={DocContent.toc} />
102
+ <TOC
103
+ toc={DocContent.toc}
104
+ minHeadingLevel={tocMinHeadingLevel}
105
+ maxHeadingLevel={tocMaxHeadingLevel}
106
+ className={ThemeClassNames.docs.docTocDesktop}
107
+ />
108
108
  </div>
109
109
  )}
110
110
  </div>
111
111
  </>
112
112
  );
113
113
  }
114
-
115
- export default DocItem;