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