@docusaurus/theme-classic 2.0.0-beta.2 → 2.0.0-beta.20

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 (549) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +39 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +243 -0
  5. package/lib/index.js +42 -52
  6. package/lib/nprogress.css +41 -0
  7. package/lib/nprogress.js +46 -0
  8. package/lib/prism-include-languages.js +9 -5
  9. package/lib/theme-classic.d.ts +1279 -0
  10. package/lib/translations.js +52 -36
  11. package/lib/validateThemeConfig.js +298 -248
  12. package/lib-next/theme/Admonition/index.js +101 -0
  13. package/lib-next/theme/AnnouncementBar/index.js +8 -16
  14. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  15. package/lib-next/theme/BackToTopButton/index.js +33 -0
  16. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  17. package/lib-next/theme/BlogArchivePage/index.js +84 -0
  18. package/lib-next/theme/BlogLayout/index.js +33 -0
  19. package/lib-next/theme/BlogListPage/index.js +45 -35
  20. package/lib-next/theme/BlogListPaginator/index.js +27 -33
  21. package/lib-next/theme/BlogPostAuthor/index.js +49 -0
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/{lib/theme/Toggle → lib-next/theme/BlogPostAuthors}/styles.module.css +11 -7
  24. package/lib-next/theme/BlogPostItem/index.js +96 -98
  25. package/lib-next/theme/BlogPostItem/styles.module.css +9 -0
  26. package/lib-next/theme/BlogPostPage/index.js +84 -37
  27. package/lib-next/theme/BlogPostPaginator/index.js +27 -37
  28. package/lib-next/theme/BlogSidebar/Desktop/index.js +41 -0
  29. package/{lib/theme/BlogSidebar → lib-next/theme/BlogSidebar/Desktop}/styles.module.css +5 -4
  30. package/lib-next/theme/BlogSidebar/Mobile/index.js +36 -0
  31. package/lib-next/theme/BlogSidebar/index.js +11 -33
  32. package/lib-next/theme/BlogTagsListPage/index.js +24 -65
  33. package/lib-next/theme/BlogTagsPostsPage/index.js +45 -48
  34. package/lib-next/theme/CodeBlock/Container/index.js +29 -0
  35. package/lib-next/theme/CodeBlock/Container/styles.module.css +14 -0
  36. package/lib-next/theme/CodeBlock/Content/Element.js +23 -0
  37. package/lib-next/theme/CodeBlock/Content/String.js +104 -0
  38. package/{lib/theme/CodeBlock → lib-next/theme/CodeBlock/Content}/styles.module.css +45 -27
  39. package/lib-next/theme/CodeBlock/CopyButton/index.js +61 -0
  40. package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  41. package/lib-next/theme/CodeBlock/Line/index.js +49 -0
  42. package/lib-next/theme/CodeBlock/Line/styles.module.css +51 -0
  43. package/lib-next/theme/CodeBlock/WordWrapButton/index.js +40 -0
  44. package/{lib/theme/BlogPostItem → lib-next/theme/CodeBlock/WordWrapButton}/styles.module.css +5 -8
  45. package/lib-next/theme/CodeBlock/index.js +28 -256
  46. package/lib-next/theme/ColorModeToggle/index.js +62 -0
  47. package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
  48. package/lib-next/theme/Details/index.js +21 -0
  49. package/lib-next/theme/Details/styles.module.css +13 -0
  50. package/lib-next/theme/DocBreadcrumbs/index.js +120 -0
  51. package/{lib/theme/Heading/styles.css → lib-next/theme/DocBreadcrumbs/styles.module.css} +9 -13
  52. package/lib-next/theme/DocCard/index.js +93 -0
  53. package/lib-next/theme/DocCard/styles.module.css +34 -0
  54. package/lib-next/theme/DocCardList/index.js +33 -0
  55. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
  56. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  57. package/lib-next/theme/DocItem/index.js +98 -85
  58. package/lib-next/theme/DocItem/styles.module.css +12 -10
  59. package/lib-next/theme/DocItemFooter/index.js +79 -0
  60. package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
  61. package/lib-next/theme/DocPage/Layout/Main/index.js +29 -0
  62. package/lib-next/theme/DocPage/Layout/Main/styles.module.css +28 -0
  63. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +34 -0
  64. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  65. package/lib-next/theme/DocPage/Layout/Sidebar/index.js +68 -0
  66. package/lib-next/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  67. package/lib-next/theme/DocPage/Layout/index.js +34 -0
  68. package/{lib/theme/IconExternalLink/styles.module.css → lib-next/theme/DocPage/Layout/index.module.css} +7 -4
  69. package/lib-next/theme/DocPage/index.js +39 -159
  70. package/lib-next/theme/DocPaginator/index.js +28 -40
  71. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  72. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  73. package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
  74. package/lib-next/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  75. package/lib-next/theme/DocSidebar/Desktop/index.js +36 -0
  76. package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
  77. package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
  78. package/lib-next/theme/DocSidebar/index.js +13 -340
  79. package/lib-next/theme/DocSidebarItem/Category.js +197 -0
  80. package/lib-next/theme/DocSidebarItem/Html.js +27 -0
  81. package/lib-next/theme/DocSidebarItem/Html.module.css +13 -0
  82. package/lib-next/theme/DocSidebarItem/Link.js +53 -0
  83. package/{lib/theme/MDXPage/styles.module.css → lib-next/theme/DocSidebarItem/Link.module.css} +2 -2
  84. package/lib-next/theme/DocSidebarItem/index.js +23 -0
  85. package/lib-next/theme/DocSidebarItems/index.js +23 -0
  86. package/lib-next/theme/DocTagDocListPage/index.js +96 -0
  87. package/lib-next/theme/DocTagsListPage/index.js +40 -0
  88. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  89. package/lib-next/theme/DocVersionBanner/index.js +33 -16
  90. package/lib-next/theme/EditThisPage/index.js +6 -1
  91. package/lib-next/theme/ErrorPageContent.js +35 -0
  92. package/lib-next/theme/Footer/Copyright/index.js +18 -0
  93. package/lib-next/theme/Footer/Layout/index.js +26 -0
  94. package/lib-next/theme/Footer/LinkItem/index.js +33 -0
  95. package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
  96. package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
  97. package/lib-next/theme/Footer/Links/index.js +17 -0
  98. package/lib-next/theme/Footer/Logo/index.js +38 -0
  99. package/lib-next/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
  100. package/lib-next/theme/Footer/index.js +12 -100
  101. package/lib-next/theme/Heading/index.js +31 -54
  102. package/lib-next/theme/Heading/styles.module.css +25 -5
  103. package/lib-next/theme/IconArrow/index.js +2 -5
  104. package/lib-next/theme/IconClose/index.js +23 -0
  105. package/lib-next/theme/IconDarkMode/index.js +17 -0
  106. package/lib-next/theme/IconEdit/index.js +2 -5
  107. package/lib-next/theme/IconExternalLink/index.js +2 -5
  108. package/lib-next/theme/IconExternalLink/styles.module.css +0 -2
  109. package/lib-next/theme/IconHome/index.js +17 -0
  110. package/lib-next/theme/IconLanguage/index.js +5 -8
  111. package/lib-next/theme/IconLightMode/index.js +17 -0
  112. package/lib-next/theme/IconMenu/index.js +7 -5
  113. package/lib-next/theme/LastUpdated/index.js +4 -2
  114. package/lib-next/theme/Layout/index.js +19 -16
  115. package/lib-next/theme/LayoutProviders/index.js +16 -9
  116. package/lib-next/theme/Logo/index.js +25 -24
  117. package/lib-next/theme/{ThemeContext.js → MDXComponents/A.js} +4 -2
  118. package/lib-next/theme/MDXComponents/Code.js +28 -0
  119. package/lib-next/theme/MDXComponents/Details.js +20 -0
  120. package/lib-next/theme/MDXComponents/Head.js +26 -0
  121. package/lib-next/theme/MDXComponents/Heading.js +11 -0
  122. package/lib-next/theme/MDXComponents/Img.js +24 -0
  123. package/{lib/theme/hooks/styles.css → lib-next/theme/MDXComponents/Img.module.css} +2 -2
  124. package/lib-next/theme/MDXComponents/Pre.js +18 -0
  125. package/lib-next/theme/MDXComponents/Ul.js +21 -0
  126. package/lib-next/theme/MDXComponents/index.js +22 -42
  127. package/lib-next/theme/MDXContent/index.js +12 -0
  128. package/lib-next/theme/MDXPage/index.js +37 -34
  129. package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
  130. package/lib-next/theme/Navbar/Content/index.js +75 -0
  131. package/{lib/theme/TOCInline → lib-next/theme/Navbar/Content}/styles.module.css +7 -4
  132. package/lib-next/theme/Navbar/Layout/index.js +54 -0
  133. package/{lib/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +0 -6
  134. package/lib-next/theme/Navbar/Logo/index.js +17 -0
  135. package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
  136. package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  137. package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  138. package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  139. package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  140. package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
  141. package/lib-next/theme/Navbar/Search/index.js +11 -0
  142. package/lib-next/theme/Navbar/Search/styles.module.css +20 -0
  143. package/lib-next/theme/Navbar/index.js +7 -137
  144. package/lib-next/theme/NavbarItem/ComponentTypes.js +27 -0
  145. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +32 -202
  146. package/lib-next/theme/NavbarItem/DocNavbarItem.js +16 -30
  147. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +41 -0
  148. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +54 -44
  149. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +2 -6
  150. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +167 -0
  151. package/lib-next/theme/NavbarItem/HtmlNavbarItem.js +30 -0
  152. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +16 -22
  153. package/lib-next/theme/{hooks/styles.css → NavbarItem/LocaleDropdownNavbarItem/styles.module.css} +3 -2
  154. package/lib-next/theme/NavbarItem/NavbarNavLink.js +84 -0
  155. package/lib-next/theme/NavbarItem/SearchNavbarItem.js +6 -1
  156. package/lib-next/theme/NavbarItem/index.js +17 -24
  157. package/lib-next/{prism-include-languages.js → theme/NavbarItem/utils.js} +3 -4
  158. package/lib-next/theme/NotFound.js +39 -37
  159. package/lib-next/theme/PaginatorNavLink/index.js +23 -0
  160. package/lib-next/theme/SearchBar.js +1 -1
  161. package/lib-next/theme/SearchMetadata/index.js +34 -0
  162. package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +31 -50
  163. package/lib-next/theme/SkipToContent/index.js +7 -32
  164. package/lib-next/theme/SkipToContent/styles.module.css +7 -0
  165. package/lib-next/theme/TOC/index.js +12 -39
  166. package/lib-next/theme/TOC/styles.module.css +1 -1
  167. package/lib-next/theme/TOCCollapsible/CollapseButton.js +29 -0
  168. package/lib-next/theme/TOCCollapsible/CollapseButton.module.css +29 -0
  169. package/lib-next/theme/TOCCollapsible/index.js +42 -0
  170. package/lib-next/theme/TOCCollapsible/index.module.css +31 -0
  171. package/lib-next/theme/TOCInline/index.js +10 -31
  172. package/lib-next/theme/TOCItems/Tree.js +40 -0
  173. package/lib-next/theme/TOCItems/index.js +54 -0
  174. package/lib-next/theme/TabItem/index.js +4 -5
  175. package/{lib/theme/IconEdit → lib-next/theme/TabItem}/styles.module.css +2 -3
  176. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  177. package/lib-next/theme/Tabs/index.js +111 -53
  178. package/lib-next/theme/Tabs/styles.module.css +4 -13
  179. package/lib-next/theme/Tag/index.js +23 -0
  180. package/lib-next/theme/Tag/styles.module.css +70 -0
  181. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  182. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  183. package/lib-next/theme/TagsListInline/index.js +31 -0
  184. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  185. package/lib-next/theme/ThemedImage/index.js +9 -12
  186. package/lib-next/theme/ThemedImage/styles.module.css +2 -2
  187. package/lib-next/theme/prism-include-languages.js +17 -15
  188. package/package.json +37 -32
  189. package/src/admonitions.css +39 -0
  190. package/src/deps.d.ts +13 -0
  191. package/src/getSwizzleConfig.ts +252 -0
  192. package/src/index.ts +48 -71
  193. package/src/nprogress.css +41 -0
  194. package/src/nprogress.ts +31 -0
  195. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  196. package/src/theme/Admonition/index.tsx +106 -0
  197. package/src/theme/AnnouncementBar/index.tsx +9 -15
  198. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  199. package/src/theme/BackToTopButton/index.tsx +34 -0
  200. package/src/theme/BackToTopButton/styles.module.css +44 -0
  201. package/src/theme/BlogArchivePage/index.tsx +92 -0
  202. package/src/theme/BlogLayout/index.tsx +38 -0
  203. package/src/theme/BlogListPage/index.tsx +45 -35
  204. package/src/theme/BlogListPaginator/index.tsx +27 -32
  205. package/src/theme/BlogPostAuthor/index.tsx +50 -0
  206. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  207. package/src/theme/{Toggle → BlogPostAuthors}/styles.module.css +11 -7
  208. package/src/theme/BlogPostItem/index.tsx +86 -92
  209. package/src/theme/BlogPostItem/styles.module.css +9 -0
  210. package/src/theme/BlogPostPage/index.tsx +84 -38
  211. package/src/theme/BlogPostPaginator/index.tsx +27 -36
  212. package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
  213. package/{lib-next/theme/BlogSidebar → src/theme/BlogSidebar/Desktop}/styles.module.css +5 -4
  214. package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
  215. package/src/theme/BlogSidebar/index.tsx +10 -33
  216. package/src/theme/BlogTagsListPage/index.tsx +24 -66
  217. package/src/theme/BlogTagsPostsPage/index.tsx +49 -47
  218. package/src/theme/CodeBlock/Container/index.tsx +35 -0
  219. package/src/theme/CodeBlock/Container/styles.module.css +14 -0
  220. package/src/theme/CodeBlock/Content/Element.tsx +30 -0
  221. package/src/theme/CodeBlock/Content/String.tsx +111 -0
  222. package/{lib-next/theme/CodeBlock → src/theme/CodeBlock/Content}/styles.module.css +45 -27
  223. package/src/theme/CodeBlock/CopyButton/index.tsx +67 -0
  224. package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  225. package/src/theme/CodeBlock/Line/index.tsx +48 -0
  226. package/src/theme/CodeBlock/Line/styles.module.css +51 -0
  227. package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
  228. package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  229. package/src/theme/CodeBlock/index.tsx +29 -253
  230. package/src/theme/ColorModeToggle/index.tsx +67 -0
  231. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  232. package/src/theme/Details/index.tsx +25 -0
  233. package/src/theme/Details/styles.module.css +13 -0
  234. package/src/theme/DocBreadcrumbs/index.tsx +140 -0
  235. package/src/theme/{Heading/styles.css → DocBreadcrumbs/styles.module.css} +9 -13
  236. package/src/theme/DocCard/index.tsx +116 -0
  237. package/src/theme/DocCard/styles.module.css +34 -0
  238. package/src/theme/DocCardList/index.tsx +36 -0
  239. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
  240. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  241. package/src/theme/DocItem/index.tsx +91 -77
  242. package/src/theme/DocItem/styles.module.css +12 -10
  243. package/src/theme/DocItemFooter/index.tsx +91 -0
  244. package/{lib-next/theme/Toggle → src/theme/DocItemFooter}/styles.module.css +9 -8
  245. package/src/theme/DocPage/Layout/Main/index.tsx +37 -0
  246. package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
  247. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
  248. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  249. package/src/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  250. package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
  251. package/src/theme/DocPage/Layout/index.module.css +15 -0
  252. package/src/theme/DocPage/Layout/index.tsx +39 -0
  253. package/src/theme/DocPage/index.tsx +39 -165
  254. package/src/theme/DocPaginator/index.tsx +28 -39
  255. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  256. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  257. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  258. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  259. package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
  260. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  261. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  262. package/src/theme/DocSidebar/index.tsx +14 -350
  263. package/src/theme/DocSidebarItem/Category.tsx +210 -0
  264. package/src/theme/DocSidebarItem/Html.module.css +13 -0
  265. package/src/theme/DocSidebarItem/Html.tsx +34 -0
  266. package/src/theme/DocSidebarItem/Link.module.css +10 -0
  267. package/src/theme/DocSidebarItem/Link.tsx +58 -0
  268. package/src/theme/DocSidebarItem/index.tsx +27 -0
  269. package/src/theme/DocSidebarItems/index.tsx +27 -0
  270. package/src/theme/DocTagDocListPage/index.tsx +96 -0
  271. package/src/theme/DocTagsListPage/index.tsx +44 -0
  272. package/src/theme/DocVersionBadge/index.tsx +35 -0
  273. package/src/theme/DocVersionBanner/index.tsx +53 -27
  274. package/src/theme/EditThisPage/index.tsx +6 -1
  275. package/src/theme/ErrorPageContent.tsx +41 -0
  276. package/src/theme/Footer/Copyright/index.tsx +20 -0
  277. package/src/theme/Footer/Layout/index.tsx +34 -0
  278. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  279. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  280. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  281. package/src/theme/Footer/Links/index.tsx +21 -0
  282. package/src/theme/Footer/Logo/index.tsx +41 -0
  283. package/src/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
  284. package/src/theme/Footer/index.tsx +13 -113
  285. package/src/theme/Heading/index.tsx +31 -58
  286. package/src/theme/Heading/styles.module.css +25 -5
  287. package/src/theme/IconArrow/index.tsx +2 -4
  288. package/src/theme/IconClose/index.tsx +26 -0
  289. package/src/theme/IconDarkMode/index.tsx +20 -0
  290. package/src/theme/IconEdit/index.tsx +5 -4
  291. package/src/theme/IconExternalLink/index.tsx +3 -5
  292. package/src/theme/IconExternalLink/styles.module.css +0 -2
  293. package/src/theme/IconHome/index.tsx +20 -0
  294. package/src/theme/IconLanguage/index.tsx +6 -8
  295. package/src/theme/IconLightMode/index.tsx +20 -0
  296. package/src/theme/IconMenu/index.tsx +3 -5
  297. package/src/theme/LastUpdated/index.tsx +4 -2
  298. package/src/theme/Layout/index.tsx +19 -15
  299. package/src/theme/LayoutProviders/index.tsx +16 -9
  300. package/src/theme/Logo/index.tsx +21 -19
  301. package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
  302. package/src/theme/MDXComponents/Code.tsx +37 -0
  303. package/src/theme/MDXComponents/Details.tsx +25 -0
  304. package/src/theme/MDXComponents/Head.tsx +29 -0
  305. package/src/theme/MDXComponents/Heading.tsx +14 -0
  306. package/src/theme/MDXComponents/Img.module.css +10 -0
  307. package/src/theme/MDXComponents/Img.tsx +26 -0
  308. package/src/theme/MDXComponents/Pre.tsx +22 -0
  309. package/src/theme/MDXComponents/Ul.tsx +24 -0
  310. package/src/theme/MDXComponents/index.tsx +23 -42
  311. package/src/theme/MDXContent/index.tsx +15 -0
  312. package/src/theme/MDXPage/index.tsx +37 -34
  313. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  314. package/src/theme/Navbar/Content/index.tsx +86 -0
  315. package/src/theme/Navbar/Content/styles.module.css +15 -0
  316. package/src/theme/Navbar/Layout/index.tsx +57 -0
  317. package/src/theme/Navbar/{styles.module.css → Layout/styles.module.css} +0 -6
  318. package/src/theme/Navbar/Logo/index.tsx +19 -0
  319. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  320. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  321. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  322. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
  323. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  324. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  325. package/src/theme/Navbar/Search/index.tsx +15 -0
  326. package/src/theme/Navbar/Search/styles.module.css +20 -0
  327. package/src/theme/Navbar/index.tsx +7 -147
  328. package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
  329. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -207
  330. package/src/theme/NavbarItem/DocNavbarItem.tsx +18 -38
  331. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +44 -0
  332. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +59 -51
  333. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +5 -8
  334. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +193 -0
  335. package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
  336. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +19 -17
  337. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  338. package/src/theme/NavbarItem/NavbarNavLink.tsx +80 -0
  339. package/src/theme/NavbarItem/SearchNavbarItem.tsx +6 -1
  340. package/src/theme/NavbarItem/index.tsx +22 -29
  341. package/src/theme/NavbarItem/utils.ts +13 -0
  342. package/src/theme/NotFound.tsx +39 -36
  343. package/src/theme/PaginatorNavLink/index.tsx +26 -0
  344. package/src/theme/SearchBar.tsx +2 -1
  345. package/src/theme/SearchMetadata/index.tsx +43 -0
  346. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +31 -44
  347. package/src/theme/SkipToContent/index.tsx +7 -32
  348. package/src/theme/SkipToContent/styles.module.css +7 -0
  349. package/src/theme/TOC/index.tsx +13 -44
  350. package/src/theme/TOC/styles.module.css +1 -1
  351. package/src/theme/TOCCollapsible/CollapseButton.module.css +29 -0
  352. package/src/theme/TOCCollapsible/CollapseButton.tsx +35 -0
  353. package/src/theme/TOCCollapsible/index.module.css +31 -0
  354. package/src/theme/TOCCollapsible/index.tsx +45 -0
  355. package/src/theme/TOCInline/index.tsx +14 -35
  356. package/src/theme/TOCItems/Tree.tsx +46 -0
  357. package/src/theme/TOCItems/index.tsx +61 -0
  358. package/src/theme/TabItem/index.tsx +12 -4
  359. package/src/theme/TabItem/styles.module.css +10 -0
  360. package/src/theme/Tabs/index.tsx +120 -62
  361. package/src/theme/Tabs/styles.module.css +4 -13
  362. package/src/theme/Tag/index.tsx +27 -0
  363. package/src/theme/Tag/styles.module.css +70 -0
  364. package/src/theme/TagsListByLetter/index.tsx +43 -0
  365. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  366. package/src/theme/TagsListInline/index.tsx +35 -0
  367. package/src/theme/TagsListInline/styles.module.css +15 -0
  368. package/src/theme/ThemedImage/index.tsx +10 -11
  369. package/src/theme/ThemedImage/styles.module.css +2 -2
  370. package/src/theme/prism-include-languages.ts +20 -15
  371. package/src/theme-classic.d.ts +1279 -0
  372. package/src/translations.ts +84 -58
  373. package/src/validateThemeConfig.ts +448 -0
  374. package/babel.config.js +0 -35
  375. package/codeTranslations/README.md +0 -20
  376. package/codeTranslations/ar.json +0 -57
  377. package/codeTranslations/base.json +0 -112
  378. package/codeTranslations/bn.json +0 -56
  379. package/codeTranslations/da.json +0 -57
  380. package/codeTranslations/de.json +0 -57
  381. package/codeTranslations/es.json +0 -57
  382. package/codeTranslations/fa.json +0 -57
  383. package/codeTranslations/fil.json +0 -57
  384. package/codeTranslations/fr.json +0 -57
  385. package/codeTranslations/he.json +0 -57
  386. package/codeTranslations/hi.json +0 -57
  387. package/codeTranslations/ja.json +0 -57
  388. package/codeTranslations/ko.json +0 -57
  389. package/codeTranslations/pl.json +0 -57
  390. package/codeTranslations/pt-BR.json +0 -57
  391. package/codeTranslations/pt-PT.json +0 -57
  392. package/codeTranslations/ru.json +0 -57
  393. package/codeTranslations/tr.json +0 -57
  394. package/codeTranslations/vi.json +0 -57
  395. package/codeTranslations/zh-Hans.json +0 -57
  396. package/codeTranslations/zh-Hant.json +0 -57
  397. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  398. package/lib/__tests__/translations.test.js +0 -112
  399. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  400. package/lib/theme/AnnouncementBar/index.js +0 -72
  401. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  402. package/lib/theme/BlogListPage/index.js +0 -71
  403. package/lib/theme/BlogListPaginator/index.js +0 -63
  404. package/lib/theme/BlogPostItem/index.js +0 -161
  405. package/lib/theme/BlogPostPage/index.js +0 -69
  406. package/lib/theme/BlogPostPaginator/index.js +0 -64
  407. package/lib/theme/BlogSidebar/index.js +0 -51
  408. package/lib/theme/BlogTagsListPage/index.js +0 -76
  409. package/lib/theme/BlogTagsPostsPage/index.js +0 -100
  410. package/lib/theme/CodeBlock/index.js +0 -253
  411. package/lib/theme/DocItem/index.js +0 -129
  412. package/lib/theme/DocPage/index.js +0 -173
  413. package/lib/theme/DocPage/styles.module.css +0 -86
  414. package/lib/theme/DocPaginator/index.js +0 -63
  415. package/lib/theme/DocSidebar/index.js +0 -306
  416. package/lib/theme/DocSidebar/styles.module.css +0 -124
  417. package/lib/theme/DocVersionBanner/index.js +0 -128
  418. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  419. package/lib/theme/EditThisPage/index.js +0 -31
  420. package/lib/theme/Footer/index.js +0 -108
  421. package/lib/theme/Footer/styles.module.css +0 -15
  422. package/lib/theme/Heading/index.js +0 -76
  423. package/lib/theme/Heading/styles.module.css +0 -15
  424. package/lib/theme/IconArrow/index.js +0 -28
  425. package/lib/theme/IconEdit/index.js +0 -34
  426. package/lib/theme/IconExternalLink/index.js +0 -30
  427. package/lib/theme/IconLanguage/index.js +0 -29
  428. package/lib/theme/IconMenu/index.js +0 -30
  429. package/lib/theme/LastUpdated/index.js +0 -61
  430. package/lib/theme/Layout/index.js +0 -64
  431. package/lib/theme/Layout/styles.css +0 -27
  432. package/lib/theme/LayoutHead/index.js +0 -144
  433. package/lib/theme/LayoutProviders/index.js +0 -36
  434. package/lib/theme/Logo/index.js +0 -60
  435. package/lib/theme/MDXComponents/index.js +0 -65
  436. package/lib/theme/MDXPage/index.js +0 -66
  437. package/lib/theme/Navbar/index.js +0 -147
  438. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
  439. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
  440. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
  441. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  442. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  443. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  444. package/lib/theme/NavbarItem/index.js +0 -54
  445. package/lib/theme/NotFound.js +0 -57
  446. package/lib/theme/SearchBar.js +0 -15
  447. package/lib/theme/SearchMetadatas/index.js +0 -33
  448. package/lib/theme/Seo/index.js +0 -49
  449. package/lib/theme/SkipToContent/index.js +0 -63
  450. package/lib/theme/SkipToContent/styles.module.css +0 -14
  451. package/lib/theme/TOC/index.js +0 -59
  452. package/lib/theme/TOC/styles.module.css +0 -23
  453. package/lib/theme/TOCInline/index.js +0 -53
  454. package/lib/theme/TabItem/index.js +0 -32
  455. package/lib/theme/Tabs/index.js +0 -150
  456. package/lib/theme/Tabs/styles.module.css +0 -23
  457. package/lib/theme/ThemeContext.js +0 -21
  458. package/lib/theme/ThemeProvider/index.js +0 -38
  459. package/lib/theme/ThemedImage/index.js +0 -49
  460. package/lib/theme/ThemedImage/styles.module.css +0 -18
  461. package/lib/theme/Toggle/index.js +0 -94
  462. package/lib/theme/Toggle/styles.css +0 -103
  463. package/lib/theme/UserPreferencesContext.js +0 -18
  464. package/lib/theme/UserPreferencesProvider/index.js +0 -36
  465. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  466. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  467. package/lib/theme/hooks/useDocs.js +0 -18
  468. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  469. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  470. package/lib/theme/hooks/useLocationHash.js +0 -28
  471. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  472. package/lib/theme/hooks/usePrismTheme.js +0 -36
  473. package/lib/theme/hooks/useScrollPosition.js +0 -49
  474. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  475. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  476. package/lib/theme/hooks/useTheme.js +0 -99
  477. package/lib/theme/hooks/useThemeContext.js +0 -31
  478. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  479. package/lib/theme/hooks/useWindowSize.js +0 -55
  480. package/lib/theme/prism-include-languages.js +0 -39
  481. package/lib/types.d.ts +0 -598
  482. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  483. package/lib-next/__tests__/translations.test.js +0 -128
  484. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  485. package/lib-next/index.js +0 -221
  486. package/lib-next/theme/DocPage/styles.module.css +0 -86
  487. package/lib-next/theme/DocSidebar/styles.module.css +0 -124
  488. package/lib-next/theme/DocVersionSuggestions/index.js +0 -126
  489. package/lib-next/theme/Heading/styles.css +0 -23
  490. package/lib-next/theme/Navbar/styles.module.css +0 -20
  491. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  492. package/lib-next/theme/Seo/index.js +0 -36
  493. package/lib-next/theme/ThemeProvider/index.js +0 -25
  494. package/lib-next/theme/Toggle/index.js +0 -80
  495. package/lib-next/theme/Toggle/styles.css +0 -103
  496. package/lib-next/theme/UserPreferencesContext.js +0 -9
  497. package/lib-next/theme/UserPreferencesProvider/index.js +0 -24
  498. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  499. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  500. package/lib-next/theme/hooks/useDocs.js +0 -10
  501. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  502. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  503. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  504. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  505. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  506. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  507. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  508. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
  509. package/lib-next/theme/hooks/useTheme.js +0 -82
  510. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  511. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  512. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  513. package/lib-next/translations.js +0 -145
  514. package/lib-next/types.d.ts +0 -598
  515. package/lib-next/validateThemeConfig.js +0 -317
  516. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  517. package/src/__tests__/translations.test.ts +0 -116
  518. package/src/__tests__/validateThemeConfig.test.js +0 -333
  519. package/src/theme/BlogSidebar/styles.module.css +0 -44
  520. package/src/theme/CodeBlock/styles.module.css +0 -68
  521. package/src/theme/DocPage/styles.module.css +0 -86
  522. package/src/theme/DocSidebar/styles.module.css +0 -124
  523. package/src/theme/SearchMetadatas/index.tsx +0 -28
  524. package/src/theme/Seo/index.tsx +0 -46
  525. package/src/theme/ThemeProvider/index.tsx +0 -24
  526. package/src/theme/Toggle/index.tsx +0 -100
  527. package/src/theme/Toggle/styles.css +0 -103
  528. package/src/theme/UserPreferencesContext.ts +0 -12
  529. package/src/theme/UserPreferencesProvider/index.tsx +0 -27
  530. package/src/theme/hooks/styles.css +0 -10
  531. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  532. package/src/theme/hooks/useDocs.ts +0 -11
  533. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  534. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  535. package/src/theme/hooks/useLocationHash.ts +0 -25
  536. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  537. package/src/theme/hooks/usePrismTheme.ts +0 -22
  538. package/src/theme/hooks/useScrollPosition.ts +0 -45
  539. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  540. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  541. package/src/theme/hooks/useTheme.ts +0 -92
  542. package/src/theme/hooks/useThemeContext.ts +0 -23
  543. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  544. package/src/theme/hooks/useWindowSize.ts +0 -51
  545. package/src/types.d.ts +0 -598
  546. package/src/validateThemeConfig.js +0 -317
  547. package/tsconfig.json +0 -12
  548. package/update-code-translations.js +0 -240
  549. package/update-code-translations.test.js +0 -33
@@ -5,19 +5,15 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .anchor {
9
- display: block;
10
- position: relative;
11
- top: -0.5rem;
12
- }
13
-
14
- .hash-link {
15
- opacity: 0;
16
- padding-left: 0.5rem;
17
- transition: opacity var(--ifm-transition-fast);
8
+ .breadcrumbsContainer {
9
+ --ifm-breadcrumb-size-multiplier: 0.8;
10
+ margin-bottom: 0.8rem;
18
11
  }
19
12
 
20
- .hash-link:focus,
21
- *:hover > .hash-link {
22
- opacity: 1;
13
+ .breadcrumbHomeIcon {
14
+ position: relative;
15
+ top: 1px;
16
+ vertical-align: top;
17
+ height: 1.1rem;
18
+ width: 1.1rem;
23
19
  }
@@ -0,0 +1,116 @@
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
+ return (
29
+ <Link
30
+ href={href}
31
+ className={clsx('card padding--lg', styles.cardContainer)}>
32
+ {children}
33
+ </Link>
34
+ );
35
+ }
36
+
37
+ function CardLayout({
38
+ href,
39
+ icon,
40
+ title,
41
+ description,
42
+ }: {
43
+ href: string;
44
+ icon: ReactNode;
45
+ title: string;
46
+ description?: string;
47
+ }): JSX.Element {
48
+ return (
49
+ <CardContainer href={href}>
50
+ <h2 className={clsx('text--truncate', styles.cardTitle)} title={title}>
51
+ {icon} {title}
52
+ </h2>
53
+ {description && (
54
+ <p
55
+ className={clsx('text--truncate', styles.cardDescription)}
56
+ title={description}>
57
+ {description}
58
+ </p>
59
+ )}
60
+ </CardContainer>
61
+ );
62
+ }
63
+
64
+ function CardCategory({
65
+ item,
66
+ }: {
67
+ item: PropSidebarItemCategory;
68
+ }): JSX.Element | null {
69
+ const href = findFirstCategoryLink(item);
70
+
71
+ // Unexpected: categories that don't have a link have been filtered upfront
72
+ if (!href) {
73
+ return null;
74
+ }
75
+
76
+ return (
77
+ <CardLayout
78
+ href={href}
79
+ icon="🗃️"
80
+ title={item.label}
81
+ description={translate(
82
+ {
83
+ message: '{count} items',
84
+ id: 'theme.docs.DocCard.categoryDescription',
85
+ description:
86
+ 'The default description for a category card in the generated index about how many items this category includes',
87
+ },
88
+ {count: item.items.length},
89
+ )}
90
+ />
91
+ );
92
+ }
93
+
94
+ function CardLink({item}: {item: PropSidebarItemLink}): JSX.Element {
95
+ const icon = isInternalUrl(item.href) ? '📄️' : '🔗';
96
+ const doc = useDocById(item.docId ?? undefined);
97
+ return (
98
+ <CardLayout
99
+ href={item.href}
100
+ icon={icon}
101
+ title={item.label}
102
+ description={doc?.description}
103
+ />
104
+ );
105
+ }
106
+
107
+ export default function DocCard({item}: Props): JSX.Element {
108
+ switch (item.type) {
109
+ case 'link':
110
+ return <CardLink item={item} />;
111
+ case 'category':
112
+ return <CardCategory item={item} />;
113
+ default:
114
+ throw new Error(`unknown item type ${JSON.stringify(item)}`);
115
+ }
116
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .cardContainer {
9
+ --ifm-link-color: var(--ifm-color-emphasis-800);
10
+ --ifm-link-hover-color: var(--ifm-color-emphasis-700);
11
+ --ifm-link-hover-decoration: none;
12
+
13
+ box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%);
14
+ border: 1px solid var(--ifm-color-emphasis-200);
15
+ transition: all var(--ifm-transition-fast) ease;
16
+ transition-property: border, box-shadow;
17
+ }
18
+
19
+ .cardContainer:hover {
20
+ border-color: var(--ifm-color-primary);
21
+ box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%);
22
+ }
23
+
24
+ .cardContainer *:last-child {
25
+ margin-bottom: 0;
26
+ }
27
+
28
+ .cardTitle {
29
+ font-size: 1.2rem;
30
+ }
31
+
32
+ .cardDescription {
33
+ font-size: 0.8rem;
34
+ }
@@ -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
+
8
+ import React from 'react';
9
+ import clsx from 'clsx';
10
+
11
+ import DocCard from '@theme/DocCard';
12
+ import type {PropSidebarItem} from '@docusaurus/plugin-content-docs';
13
+ import {findFirstCategoryLink} from '@docusaurus/theme-common';
14
+ import type {Props} from '@theme/DocCardList';
15
+
16
+ // Filter categories that don't have a link.
17
+ function filterItems(items: PropSidebarItem[]): PropSidebarItem[] {
18
+ return items.filter((item) => {
19
+ if (item.type === 'category') {
20
+ return !!findFirstCategoryLink(item);
21
+ }
22
+ return true;
23
+ });
24
+ }
25
+
26
+ export default function DocCardList({items, className}: Props): JSX.Element {
27
+ return (
28
+ <section className={clsx('row', className)}>
29
+ {filterItems(items).map((item, index) => (
30
+ <article key={index} className="col col--6 margin-bottom--lg">
31
+ <DocCard key={index} item={item} />
32
+ </article>
33
+ ))}
34
+ </section>
35
+ );
36
+ }
@@ -0,0 +1,86 @@
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 {
10
+ PageMetadata,
11
+ useCurrentSidebarCategory,
12
+ } from '@docusaurus/theme-common';
13
+ import type {Props} from '@theme/DocCategoryGeneratedIndexPage';
14
+ import DocCardList from '@theme/DocCardList';
15
+ import DocPaginator from '@theme/DocPaginator';
16
+ import DocVersionBanner from '@theme/DocVersionBanner';
17
+ import DocVersionBadge from '@theme/DocVersionBadge';
18
+ import DocBreadcrumbs from '@theme/DocBreadcrumbs';
19
+ import Heading from '@theme/Heading';
20
+ import useBaseUrl from '@docusaurus/useBaseUrl';
21
+
22
+ import styles from './styles.module.css';
23
+
24
+ function DocCategoryGeneratedIndexPageMetadata({
25
+ categoryGeneratedIndex,
26
+ }: Props): JSX.Element {
27
+ return (
28
+ <PageMetadata
29
+ title={categoryGeneratedIndex.title}
30
+ description={categoryGeneratedIndex.description}
31
+ keywords={categoryGeneratedIndex.keywords}
32
+ // TODO `require` this?
33
+ image={useBaseUrl(categoryGeneratedIndex.image)}
34
+ />
35
+ );
36
+ }
37
+
38
+ function DocCategoryGeneratedIndexPageContent({
39
+ categoryGeneratedIndex,
40
+ }: Props): JSX.Element {
41
+ const category = useCurrentSidebarCategory();
42
+ return (
43
+ <>
44
+ <PageMetadata
45
+ title={categoryGeneratedIndex.title}
46
+ description={categoryGeneratedIndex.description}
47
+ keywords={categoryGeneratedIndex.keywords}
48
+ // TODO `require` this?
49
+ image={useBaseUrl(categoryGeneratedIndex.image)}
50
+ />
51
+ <div className={styles.generatedIndexPage}>
52
+ <DocVersionBanner />
53
+ <DocBreadcrumbs />
54
+ <DocVersionBadge />
55
+ <header>
56
+ <Heading as="h1" className={styles.title}>
57
+ {categoryGeneratedIndex.title}
58
+ </Heading>
59
+ {categoryGeneratedIndex.description && (
60
+ <p>{categoryGeneratedIndex.description}</p>
61
+ )}
62
+ </header>
63
+ <article className="margin-top--lg">
64
+ <DocCardList items={category.items} className={styles.list} />
65
+ </article>
66
+ <footer className="margin-top--lg">
67
+ <DocPaginator
68
+ previous={categoryGeneratedIndex.navigation.previous}
69
+ next={categoryGeneratedIndex.navigation.next}
70
+ />
71
+ </footer>
72
+ </div>
73
+ </>
74
+ );
75
+ }
76
+
77
+ export default function DocCategoryGeneratedIndexPage(
78
+ props: Props,
79
+ ): JSX.Element {
80
+ return (
81
+ <>
82
+ <DocCategoryGeneratedIndexPageMetadata {...props} />
83
+ <DocCategoryGeneratedIndexPageContent {...props} />
84
+ </>
85
+ );
86
+ }
@@ -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
+ @media (min-width: 997px) {
9
+ .generatedIndexPage {
10
+ max-width: 75% !important;
11
+ }
12
+
13
+ .list article:nth-last-child(-n + 2) {
14
+ margin-bottom: 0 !important;
15
+ }
16
+ }
17
+
18
+ /* Duplicated from .markdown h1 */
19
+ .title {
20
+ --ifm-h1-font-size: 3rem;
21
+ margin-bottom: calc(1.25 * var(--ifm-leading));
22
+ }
23
+
24
+ .list article:last-child {
25
+ margin-bottom: 0 !important;
26
+ }
@@ -6,110 +6,124 @@
6
6
  */
7
7
 
8
8
  import React from 'react';
9
+ import clsx from 'clsx';
9
10
  import DocPaginator from '@theme/DocPaginator';
10
11
  import DocVersionBanner from '@theme/DocVersionBanner';
11
- import Seo from '@theme/Seo';
12
- import LastUpdated from '@theme/LastUpdated';
12
+ import DocVersionBadge from '@theme/DocVersionBadge';
13
13
  import type {Props} from '@theme/DocItem';
14
+ import DocItemFooter from '@theme/DocItemFooter';
14
15
  import TOC from '@theme/TOC';
15
- import EditThisPage from '@theme/EditThisPage';
16
- import {MainHeading} from '@theme/Heading';
17
-
18
- import clsx from 'clsx';
16
+ import TOCCollapsible from '@theme/TOCCollapsible';
17
+ import Heading from '@theme/Heading';
19
18
  import styles from './styles.module.css';
20
- import {useActivePlugin, useVersions} from '@theme/hooks/useDocs';
19
+ import {
20
+ PageMetadata,
21
+ HtmlClassNameProvider,
22
+ ThemeClassNames,
23
+ useWindowSize,
24
+ } from '@docusaurus/theme-common';
25
+ import DocBreadcrumbs from '@theme/DocBreadcrumbs';
26
+ import MDXContent from '@theme/MDXContent';
27
+
28
+ function DocItemMetadata(props: Props): JSX.Element {
29
+ const {content: DocContent} = props;
30
+ const {metadata, frontMatter, assets} = DocContent;
31
+ const {keywords} = frontMatter;
32
+ const {description, title} = metadata;
33
+ const image = assets.image ?? frontMatter.image;
34
+
35
+ return <PageMetadata {...{title, description, keywords, image}} />;
36
+ }
21
37
 
22
- function DocItem(props: Props): JSX.Element {
23
- const {content: DocContent, versionMetadata} = props;
38
+ function DocItemContent(props: Props): JSX.Element {
39
+ const {content: DocContent} = props;
24
40
  const {metadata, frontMatter} = DocContent;
25
41
  const {
26
- image,
27
- keywords,
28
42
  hide_title: hideTitle,
29
43
  hide_table_of_contents: hideTableOfContents,
44
+ toc_min_heading_level: tocMinHeadingLevel,
45
+ toc_max_heading_level: tocMaxHeadingLevel,
30
46
  } = frontMatter;
31
- const {
32
- description,
33
- title,
34
- editUrl,
35
- lastUpdatedAt,
36
- formattedLastUpdatedAt,
37
- lastUpdatedBy,
38
- } = metadata;
39
-
40
- const {pluginId} = useActivePlugin({failfast: true});
41
- const versions = useVersions(pluginId);
42
-
43
- // If site is not versioned or only one version is included
44
- // we don't show the version badge
45
- // See https://github.com/facebook/docusaurus/issues/3362
46
- const showVersionBadge = versions.length > 1;
47
+ const {title} = metadata;
47
48
 
48
49
  // We only add a title if:
49
- // - user asks to hide it with frontmatter
50
+ // - user doesn't ask to hide it with front matter
50
51
  // - the markdown content does not already contain a top-level h1 heading
51
52
  const shouldAddTitle =
52
53
  !hideTitle && typeof DocContent.contentTitle === 'undefined';
53
54
 
55
+ const windowSize = useWindowSize();
56
+
57
+ const canRenderTOC =
58
+ !hideTableOfContents && DocContent.toc && DocContent.toc.length > 0;
59
+
60
+ const renderTocDesktop =
61
+ canRenderTOC && (windowSize === 'desktop' || windowSize === 'ssr');
62
+
54
63
  return (
55
- <>
56
- <Seo {...{title, description, keywords, image}} />
64
+ <div className="row">
65
+ <div className={clsx('col', !hideTableOfContents && styles.docItemCol)}>
66
+ <DocVersionBanner />
67
+ <div className={styles.docItemContainer}>
68
+ <article>
69
+ <DocBreadcrumbs />
70
+ <DocVersionBadge />
57
71
 
58
- <div className="row">
59
- <div
60
- className={clsx('col', {
61
- [styles.docItemCol]: !hideTableOfContents,
62
- })}>
63
- <DocVersionBanner versionMetadata={versionMetadata} />
64
- <div className={styles.docItemContainer}>
65
- <article>
66
- {showVersionBadge && (
67
- <span className="badge badge--secondary">
68
- Version: {versionMetadata.label}
69
- </span>
70
- )}
72
+ {canRenderTOC && (
73
+ <TOCCollapsible
74
+ toc={DocContent.toc}
75
+ minHeadingLevel={tocMinHeadingLevel}
76
+ maxHeadingLevel={tocMaxHeadingLevel}
77
+ className={clsx(
78
+ ThemeClassNames.docs.docTocMobile,
79
+ styles.tocMobile,
80
+ )}
81
+ />
82
+ )}
71
83
 
72
- <div className="markdown">
73
- {/*
74
- Title can be declared inside md content or declared through frontmatter and added manually
75
- To make both cases consistent, the added title is added under the same div.markdown block
84
+ <div className={clsx(ThemeClassNames.docs.docMarkdown, 'markdown')}>
85
+ {/*
86
+ Title can be declared inside md content or declared through
87
+ front matter and added manually. To make both cases consistent,
88
+ the added title is added under the same div.markdown block
76
89
  See https://github.com/facebook/docusaurus/pull/4882#issuecomment-853021120
77
90
  */}
78
- {shouldAddTitle && <MainHeading>{title}</MainHeading>}
79
-
91
+ {shouldAddTitle && (
92
+ <header>
93
+ <Heading as="h1">{title}</Heading>
94
+ </header>
95
+ )}
96
+ <MDXContent>
80
97
  <DocContent />
81
- </div>
82
-
83
- {(editUrl || lastUpdatedAt || lastUpdatedBy) && (
84
- <footer className="row docusaurus-mt-lg">
85
- <div className="col">
86
- {editUrl && <EditThisPage editUrl={editUrl} />}
87
- </div>
98
+ </MDXContent>
99
+ </div>
88
100
 
89
- <div className={clsx('col', styles.lastUpdated)}>
90
- {(lastUpdatedAt || lastUpdatedBy) && (
91
- <LastUpdated
92
- lastUpdatedAt={lastUpdatedAt}
93
- formattedLastUpdatedAt={formattedLastUpdatedAt}
94
- lastUpdatedBy={lastUpdatedBy}
95
- />
96
- )}
97
- </div>
98
- </footer>
99
- )}
100
- </article>
101
+ <DocItemFooter {...props} />
102
+ </article>
101
103
 
102
- <DocPaginator metadata={metadata} />
103
- </div>
104
+ <DocPaginator previous={metadata.previous} next={metadata.next} />
104
105
  </div>
105
- {!hideTableOfContents && DocContent.toc && (
106
- <div className="col col--3">
107
- <TOC toc={DocContent.toc} />
108
- </div>
109
- )}
110
106
  </div>
111
- </>
107
+ {renderTocDesktop && (
108
+ <div className="col col--3">
109
+ <TOC
110
+ toc={DocContent.toc}
111
+ minHeadingLevel={tocMinHeadingLevel}
112
+ maxHeadingLevel={tocMaxHeadingLevel}
113
+ className={ThemeClassNames.docs.docTocDesktop}
114
+ />
115
+ </div>
116
+ )}
117
+ </div>
112
118
  );
113
119
  }
114
120
 
115
- export default DocItem;
121
+ export default function DocItem(props: Props): JSX.Element {
122
+ const docHtmlClassName = `docs-doc-id-${props.content.metadata.unversionedId}`;
123
+ return (
124
+ <HtmlClassNameProvider className={docHtmlClassName}>
125
+ <DocItemMetadata {...props} />
126
+ <DocItemContent {...props} />
127
+ </HtmlClassNameProvider>
128
+ );
129
+ }
@@ -5,22 +5,24 @@
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;
21
+ }
22
+ }
23
+
24
+ @media print {
25
+ .tocMobile {
26
+ display: none;
25
27
  }
26
28
  }
@@ -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 from 'react';
9
+ import clsx from 'clsx';
10
+
11
+ import LastUpdated from '@theme/LastUpdated';
12
+ import type {Props} from '@theme/DocItem';
13
+ import EditThisPage from '@theme/EditThisPage';
14
+ import TagsListInline, {
15
+ type Props as TagsListInlineProps,
16
+ } from '@theme/TagsListInline';
17
+
18
+ import styles from './styles.module.css';
19
+ import {ThemeClassNames} from '@docusaurus/theme-common';
20
+
21
+ function TagsRow(props: TagsListInlineProps) {
22
+ return (
23
+ <div
24
+ className={clsx(
25
+ ThemeClassNames.docs.docFooterTagsRow,
26
+ 'row margin-bottom--sm',
27
+ )}>
28
+ <div className="col">
29
+ <TagsListInline {...props} />
30
+ </div>
31
+ </div>
32
+ );
33
+ }
34
+
35
+ type EditMetaRowProps = Pick<
36
+ Props['content']['metadata'],
37
+ 'editUrl' | 'lastUpdatedAt' | 'lastUpdatedBy' | 'formattedLastUpdatedAt'
38
+ >;
39
+ function EditMetaRow({
40
+ editUrl,
41
+ lastUpdatedAt,
42
+ lastUpdatedBy,
43
+ formattedLastUpdatedAt,
44
+ }: EditMetaRowProps) {
45
+ return (
46
+ <div className={clsx(ThemeClassNames.docs.docFooterEditMetaRow, 'row')}>
47
+ <div className="col">{editUrl && <EditThisPage editUrl={editUrl} />}</div>
48
+
49
+ <div className={clsx('col', styles.lastUpdated)}>
50
+ {(lastUpdatedAt || lastUpdatedBy) && (
51
+ <LastUpdated
52
+ lastUpdatedAt={lastUpdatedAt}
53
+ formattedLastUpdatedAt={formattedLastUpdatedAt}
54
+ lastUpdatedBy={lastUpdatedBy}
55
+ />
56
+ )}
57
+ </div>
58
+ </div>
59
+ );
60
+ }
61
+
62
+ export default function DocItemFooter(props: Props): JSX.Element | null {
63
+ const {content: DocContent} = props;
64
+ const {metadata} = DocContent;
65
+ const {editUrl, lastUpdatedAt, formattedLastUpdatedAt, lastUpdatedBy, tags} =
66
+ metadata;
67
+
68
+ const canDisplayTagsRow = tags.length > 0;
69
+ const canDisplayEditMetaRow = !!(editUrl || lastUpdatedAt || lastUpdatedBy);
70
+
71
+ const canDisplayFooter = canDisplayTagsRow || canDisplayEditMetaRow;
72
+
73
+ if (!canDisplayFooter) {
74
+ return null;
75
+ }
76
+
77
+ return (
78
+ <footer
79
+ className={clsx(ThemeClassNames.docs.docFooter, 'docusaurus-mt-lg')}>
80
+ {canDisplayTagsRow && <TagsRow tags={tags} />}
81
+ {canDisplayEditMetaRow && (
82
+ <EditMetaRow
83
+ editUrl={editUrl}
84
+ lastUpdatedAt={lastUpdatedAt}
85
+ lastUpdatedBy={lastUpdatedBy}
86
+ formattedLastUpdatedAt={formattedLastUpdatedAt}
87
+ />
88
+ )}
89
+ </footer>
90
+ );
91
+ }
@@ -5,13 +5,14 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .toggle {
9
- align-items: center;
10
- display: flex;
11
- height: 10px;
12
- justify-content: center;
13
- width: 10px;
8
+ .lastUpdated {
9
+ margin-top: 0.2rem;
10
+ font-style: italic;
11
+ font-size: smaller;
14
12
  }
15
- .toggle::before {
16
- position: absolute;
13
+
14
+ @media (min-width: 997px) {
15
+ .lastUpdated {
16
+ text-align: right;
17
+ }
17
18
  }