@docusaurus/theme-classic 2.0.0-beta.15d451942 → 2.0.0-beta.18

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 (488) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +35 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +236 -0
  5. package/lib/index.js +63 -52
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +997 -0
  8. package/lib/translations.js +52 -36
  9. package/lib/types.d.ts +0 -589
  10. package/lib/validateThemeConfig.js +242 -250
  11. package/lib-next/theme/Admonition/index.js +101 -0
  12. package/lib-next/theme/AnnouncementBar/index.js +10 -22
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +26 -35
  14. package/lib-next/theme/BackToTopButton/index.js +129 -0
  15. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  16. package/lib-next/theme/BlogArchivePage/index.js +84 -0
  17. package/lib-next/theme/BlogLayout/index.js +37 -0
  18. package/lib-next/theme/BlogListPage/index.js +45 -35
  19. package/lib-next/theme/BlogListPaginator/index.js +13 -16
  20. package/lib-next/theme/BlogPostAuthor/index.js +52 -0
  21. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -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 +5 -1
  26. package/lib-next/theme/BlogPostPage/index.js +84 -41
  27. package/lib-next/theme/BlogPostPaginator/index.js +13 -20
  28. package/lib-next/theme/BlogSidebar/index.js +23 -16
  29. package/lib-next/theme/BlogSidebar/styles.module.css +8 -8
  30. package/lib-next/theme/BlogTagsListPage/index.js +24 -70
  31. package/lib-next/theme/BlogTagsPostsPage/index.js +57 -62
  32. package/lib-next/theme/CodeBlock/CopyButton/index.js +60 -0
  33. package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +66 -0
  34. package/lib-next/theme/CodeBlock/index.js +74 -195
  35. package/lib-next/theme/CodeBlock/styles.module.css +13 -28
  36. package/lib-next/theme/ColorModeToggle/index.js +62 -0
  37. package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
  38. package/lib-next/theme/Details/index.js +21 -0
  39. package/lib-next/theme/Details/styles.module.css +13 -0
  40. package/lib-next/theme/DocBreadcrumbs/index.js +93 -0
  41. package/{lib/theme/Heading → lib-next/theme/DocBreadcrumbs}/styles.module.css +3 -2
  42. package/lib-next/theme/DocCard/index.js +93 -0
  43. package/lib-next/theme/DocCard/styles.module.css +34 -0
  44. package/lib-next/theme/DocCardList/index.js +31 -0
  45. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
  46. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  47. package/lib-next/theme/DocItem/index.js +99 -86
  48. package/lib-next/theme/DocItem/styles.module.css +7 -13
  49. package/lib-next/theme/DocItemFooter/index.js +79 -0
  50. package/{lib/theme/Layout/styles.css → lib-next/theme/DocItemFooter/styles.module.css} +8 -11
  51. package/lib-next/theme/DocPage/index.js +124 -99
  52. package/lib-next/theme/DocPage/styles.module.css +14 -30
  53. package/lib-next/theme/DocPaginator/index.js +16 -25
  54. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  55. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +44 -0
  56. package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
  57. package/{lib/theme/Footer → lib-next/theme/DocSidebar/Desktop/Content}/styles.module.css +8 -6
  58. package/lib-next/theme/DocSidebar/Desktop/index.js +34 -0
  59. package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
  60. package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
  61. package/lib-next/theme/DocSidebar/index.js +13 -333
  62. package/lib-next/theme/DocSidebarItem/index.js +265 -0
  63. package/lib-next/theme/DocSidebarItem/styles.module.css +17 -0
  64. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  65. package/lib-next/theme/DocTagDocListPage/index.js +96 -0
  66. package/lib-next/theme/DocTagsListPage/index.js +40 -0
  67. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  68. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +54 -36
  69. package/lib-next/theme/EditThisPage/index.js +6 -1
  70. package/lib-next/theme/ErrorPageContent.js +35 -0
  71. package/lib-next/theme/Footer/Copyright/index.js +18 -0
  72. package/lib-next/theme/Footer/Layout/index.js +26 -0
  73. package/lib-next/theme/Footer/LinkItem/index.js +33 -0
  74. package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
  75. package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
  76. package/lib-next/theme/Footer/Links/index.js +17 -0
  77. package/lib-next/theme/Footer/Logo/index.js +38 -0
  78. package/{src/theme/Footer → lib-next/theme/Footer/Logo}/styles.module.css +2 -1
  79. package/lib-next/theme/Footer/index.js +12 -100
  80. package/lib-next/theme/Heading/index.js +42 -33
  81. package/lib-next/theme/Heading/styles.module.css +27 -2
  82. package/lib-next/theme/IconArrow/index.js +3 -6
  83. package/lib-next/theme/IconClose/index.js +23 -0
  84. package/lib-next/theme/IconDarkMode/index.js +17 -0
  85. package/lib-next/theme/IconEdit/index.js +5 -10
  86. package/lib-next/theme/IconExternalLink/index.js +23 -0
  87. package/lib-next/theme/{LastUpdated → IconExternalLink}/styles.module.css +2 -2
  88. package/lib-next/theme/IconLanguage/index.js +5 -8
  89. package/lib-next/theme/IconLightMode/index.js +17 -0
  90. package/lib-next/theme/IconMenu/index.js +8 -9
  91. package/lib-next/theme/LastUpdated/index.js +35 -39
  92. package/lib-next/theme/Layout/index.js +19 -16
  93. package/lib-next/theme/Layout/styles.css +6 -0
  94. package/lib-next/theme/LayoutProviders/index.js +22 -10
  95. package/lib-next/theme/Logo/index.js +21 -16
  96. package/lib-next/theme/{ThemeContext.js → MDXComponents/A.js} +4 -2
  97. package/lib-next/theme/MDXComponents/Code.js +28 -0
  98. package/lib-next/theme/MDXComponents/Details.js +20 -0
  99. package/lib-next/theme/MDXComponents/Head.js +26 -0
  100. package/lib-next/theme/{hooks/styles.css → MDXComponents/Heading.js} +4 -3
  101. package/lib-next/theme/MDXComponents/Img.js +24 -0
  102. package/{lib/theme/LastUpdated/styles.module.css → lib-next/theme/MDXComponents/Img.module.css} +2 -2
  103. package/lib-next/theme/MDXComponents/Pre.js +18 -0
  104. package/lib-next/theme/MDXComponents/Ul.js +23 -0
  105. package/lib-next/theme/MDXComponents/Ul.module.css +11 -0
  106. package/lib-next/theme/MDXComponents/index.js +22 -42
  107. package/lib-next/theme/MDXContent/index.js +12 -0
  108. package/lib-next/theme/MDXPage/index.js +38 -39
  109. package/{lib/theme/IconEdit → lib-next/theme/MDXPage}/styles.module.css +2 -3
  110. package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
  111. package/lib-next/theme/Navbar/Content/index.js +70 -0
  112. package/lib-next/theme/Navbar/Content/styles.module.css +15 -0
  113. package/lib-next/theme/Navbar/Layout/index.js +54 -0
  114. package/{src/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +1 -7
  115. package/lib-next/theme/Navbar/Logo/index.js +17 -0
  116. package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
  117. package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  118. package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  119. package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  120. package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  121. package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
  122. package/lib-next/theme/Navbar/index.js +7 -137
  123. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +33 -186
  124. package/lib-next/theme/NavbarItem/DocNavbarItem.js +31 -14
  125. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  126. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +38 -24
  127. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  128. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +164 -0
  129. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
  130. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  131. package/lib-next/theme/NavbarItem/NavbarNavLink.js +66 -0
  132. package/lib-next/theme/NavbarItem/index.js +27 -15
  133. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  134. package/lib-next/theme/NotFound.js +40 -34
  135. package/lib-next/theme/PaginatorNavLink/index.js +17 -0
  136. package/lib-next/theme/SearchBar.js +1 -1
  137. package/lib-next/theme/SearchMetadata/index.js +34 -0
  138. package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +25 -45
  139. package/lib-next/theme/SkipToContent/index.js +9 -8
  140. package/lib-next/theme/SkipToContent/styles.module.css +8 -3
  141. package/lib-next/theme/TOC/index.js +12 -39
  142. package/lib-next/theme/TOC/styles.module.css +2 -2
  143. package/lib-next/theme/TOCCollapsible/index.js +52 -0
  144. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  145. package/lib-next/theme/TOCInline/index.js +10 -31
  146. package/lib-next/theme/TOCItems/index.js +85 -0
  147. package/lib-next/theme/TabItem/index.js +1 -4
  148. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  149. package/lib-next/theme/Tabs/index.js +108 -50
  150. package/lib-next/theme/Tabs/styles.module.css +0 -13
  151. package/lib-next/theme/Tag/index.js +24 -0
  152. package/lib-next/theme/Tag/styles.module.css +70 -0
  153. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  154. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  155. package/lib-next/theme/TagsListInline/index.js +31 -0
  156. package/{lib/theme/BlogPostItem → lib-next/theme/TagsListInline}/styles.module.css +5 -4
  157. package/lib-next/theme/ThemedImage/index.js +10 -14
  158. package/lib-next/theme/ThemedImage/styles.module.css +9 -2
  159. package/lib-next/theme/prism-include-languages.js +17 -15
  160. package/package.json +32 -31
  161. package/src/admonitions.css +35 -0
  162. package/src/deps.d.ts +13 -0
  163. package/src/getSwizzleConfig.ts +244 -0
  164. package/src/index.ts +72 -72
  165. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  166. package/src/theme/Admonition/index.tsx +106 -0
  167. package/src/theme/AnnouncementBar/index.tsx +11 -20
  168. package/src/theme/AnnouncementBar/styles.module.css +26 -35
  169. package/src/theme/BackToTopButton/index.tsx +141 -0
  170. package/src/theme/BackToTopButton/styles.module.css +44 -0
  171. package/src/theme/BlogArchivePage/index.tsx +92 -0
  172. package/src/theme/BlogLayout/index.tsx +42 -0
  173. package/src/theme/BlogListPage/index.tsx +45 -35
  174. package/src/theme/BlogListPaginator/index.tsx +13 -15
  175. package/src/theme/BlogPostAuthor/index.tsx +54 -0
  176. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  177. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  178. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  179. package/src/theme/BlogPostItem/index.tsx +103 -93
  180. package/src/theme/BlogPostItem/styles.module.css +5 -1
  181. package/src/theme/BlogPostPage/index.tsx +84 -42
  182. package/src/theme/BlogPostPaginator/index.tsx +13 -19
  183. package/src/theme/BlogSidebar/index.tsx +23 -16
  184. package/src/theme/BlogSidebar/styles.module.css +8 -8
  185. package/src/theme/BlogTagsListPage/index.tsx +24 -70
  186. package/src/theme/BlogTagsPostsPage/index.tsx +54 -65
  187. package/src/theme/CodeBlock/CopyButton/index.tsx +66 -0
  188. package/src/theme/CodeBlock/CopyButton/styles.module.css +66 -0
  189. package/src/theme/CodeBlock/index.tsx +77 -196
  190. package/src/theme/CodeBlock/styles.module.css +13 -28
  191. package/src/theme/ColorModeToggle/index.tsx +67 -0
  192. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  193. package/src/theme/Details/index.tsx +25 -0
  194. package/src/theme/Details/styles.module.css +13 -0
  195. package/src/theme/DocBreadcrumbs/index.tsx +110 -0
  196. package/src/theme/DocBreadcrumbs/styles.module.css +11 -0
  197. package/src/theme/DocCard/index.tsx +116 -0
  198. package/src/theme/DocCard/styles.module.css +34 -0
  199. package/src/theme/DocCardList/index.tsx +38 -0
  200. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
  201. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  202. package/src/theme/DocItem/index.tsx +93 -79
  203. package/src/theme/DocItem/styles.module.css +7 -13
  204. package/src/theme/DocItemFooter/index.tsx +91 -0
  205. package/src/theme/DocItemFooter/styles.module.css +18 -0
  206. package/src/theme/DocPage/index.tsx +124 -101
  207. package/src/theme/DocPage/styles.module.css +14 -30
  208. package/src/theme/DocPaginator/index.tsx +16 -24
  209. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  210. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +44 -0
  211. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  212. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +17 -0
  213. package/src/theme/DocSidebar/Desktop/index.tsx +38 -0
  214. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  215. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  216. package/src/theme/DocSidebar/index.tsx +14 -343
  217. package/src/theme/DocSidebarItem/index.tsx +282 -0
  218. package/src/theme/DocSidebarItem/styles.module.css +17 -0
  219. package/src/theme/DocSidebarItems/index.tsx +32 -0
  220. package/src/theme/DocTagDocListPage/index.tsx +97 -0
  221. package/src/theme/DocTagsListPage/index.tsx +44 -0
  222. package/src/theme/DocVersionBadge/index.tsx +35 -0
  223. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +76 -47
  224. package/src/theme/EditThisPage/index.tsx +6 -1
  225. package/src/theme/ErrorPageContent.tsx +41 -0
  226. package/src/theme/Footer/Copyright/index.tsx +20 -0
  227. package/src/theme/Footer/Layout/index.tsx +34 -0
  228. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  229. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  230. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  231. package/src/theme/Footer/Links/index.tsx +21 -0
  232. package/src/theme/Footer/Logo/index.tsx +41 -0
  233. package/{lib-next/theme/Footer → src/theme/Footer/Logo}/styles.module.css +2 -1
  234. package/src/theme/Footer/index.tsx +13 -113
  235. package/src/theme/Heading/index.tsx +43 -35
  236. package/src/theme/Heading/styles.module.css +27 -2
  237. package/src/theme/IconArrow/index.tsx +3 -5
  238. package/src/theme/IconClose/index.tsx +26 -0
  239. package/src/theme/IconDarkMode/index.tsx +20 -0
  240. package/src/theme/IconEdit/index.tsx +8 -9
  241. package/src/theme/IconExternalLink/index.tsx +30 -0
  242. package/src/theme/IconExternalLink/styles.module.css +10 -0
  243. package/src/theme/IconLanguage/index.tsx +6 -8
  244. package/src/theme/IconLightMode/index.tsx +20 -0
  245. package/src/theme/IconMenu/index.tsx +4 -9
  246. package/src/theme/LastUpdated/index.tsx +35 -39
  247. package/src/theme/Layout/index.tsx +19 -15
  248. package/src/theme/Layout/styles.css +6 -0
  249. package/src/theme/LayoutProviders/index.tsx +22 -10
  250. package/src/theme/Logo/index.tsx +21 -15
  251. package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
  252. package/src/theme/MDXComponents/Code.tsx +37 -0
  253. package/src/theme/MDXComponents/Details.tsx +26 -0
  254. package/src/theme/MDXComponents/Head.tsx +29 -0
  255. package/src/theme/MDXComponents/Heading.tsx +14 -0
  256. package/src/theme/{LastUpdated/styles.module.css → MDXComponents/Img.module.css} +2 -2
  257. package/src/theme/MDXComponents/Img.tsx +26 -0
  258. package/src/theme/MDXComponents/Pre.tsx +22 -0
  259. package/src/theme/MDXComponents/Ul.module.css +11 -0
  260. package/src/theme/MDXComponents/Ul.tsx +28 -0
  261. package/src/theme/MDXComponents/index.tsx +23 -42
  262. package/src/theme/MDXContent/index.tsx +15 -0
  263. package/src/theme/MDXPage/index.tsx +39 -39
  264. package/src/theme/MDXPage/styles.module.css +10 -0
  265. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  266. package/src/theme/Navbar/Content/index.tsx +81 -0
  267. package/src/theme/Navbar/Content/styles.module.css +15 -0
  268. package/src/theme/Navbar/Layout/index.tsx +57 -0
  269. package/{lib/theme/Navbar → src/theme/Navbar/Layout}/styles.module.css +1 -7
  270. package/src/theme/Navbar/Logo/index.tsx +19 -0
  271. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  272. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  273. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  274. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
  275. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  276. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  277. package/src/theme/Navbar/index.tsx +7 -147
  278. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
  279. package/src/theme/NavbarItem/DocNavbarItem.tsx +33 -15
  280. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  281. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +44 -28
  282. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  283. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +190 -0
  284. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +17 -11
  285. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  286. package/src/theme/NavbarItem/NavbarNavLink.tsx +64 -0
  287. package/src/theme/NavbarItem/index.tsx +41 -19
  288. package/src/theme/NavbarItem/utils.ts +10 -0
  289. package/src/theme/NotFound.tsx +40 -33
  290. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  291. package/src/theme/SearchBar.tsx +2 -1
  292. package/src/theme/SearchMetadata/index.tsx +43 -0
  293. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +25 -38
  294. package/src/theme/SkipToContent/index.tsx +9 -8
  295. package/src/theme/SkipToContent/styles.module.css +8 -3
  296. package/src/theme/TOC/index.tsx +13 -44
  297. package/src/theme/TOC/styles.module.css +2 -2
  298. package/src/theme/TOCCollapsible/index.tsx +56 -0
  299. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  300. package/src/theme/TOCInline/index.tsx +14 -35
  301. package/src/theme/TOCItems/index.tsx +100 -0
  302. package/src/theme/TabItem/index.tsx +5 -3
  303. package/src/theme/Tabs/index.tsx +117 -59
  304. package/src/theme/Tabs/styles.module.css +0 -13
  305. package/src/theme/Tag/index.tsx +29 -0
  306. package/src/theme/Tag/styles.module.css +70 -0
  307. package/src/theme/TagsListByLetter/index.tsx +43 -0
  308. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  309. package/src/theme/TagsListInline/index.tsx +35 -0
  310. package/src/theme/TagsListInline/styles.module.css +15 -0
  311. package/src/theme/ThemedImage/index.tsx +12 -13
  312. package/src/theme/ThemedImage/styles.module.css +9 -2
  313. package/src/theme/prism-include-languages.ts +20 -15
  314. package/src/theme-classic.d.ts +997 -0
  315. package/src/translations.ts +84 -58
  316. package/src/types.d.ts +0 -589
  317. package/src/validateThemeConfig.ts +381 -0
  318. package/babel.config.js +0 -35
  319. package/codeTranslations/README.md +0 -20
  320. package/codeTranslations/ar.json +0 -55
  321. package/codeTranslations/base.json +0 -108
  322. package/codeTranslations/da.json +0 -55
  323. package/codeTranslations/de.json +0 -55
  324. package/codeTranslations/es.json +0 -55
  325. package/codeTranslations/fa.json +0 -55
  326. package/codeTranslations/fil.json +0 -55
  327. package/codeTranslations/fr.json +0 -55
  328. package/codeTranslations/he.json +0 -55
  329. package/codeTranslations/hi.json +0 -55
  330. package/codeTranslations/ja.json +0 -55
  331. package/codeTranslations/ko.json +0 -55
  332. package/codeTranslations/pl.json +0 -55
  333. package/codeTranslations/pt-BR.json +0 -55
  334. package/codeTranslations/pt-PT.json +0 -55
  335. package/codeTranslations/ru.json +0 -55
  336. package/codeTranslations/tr.json +0 -55
  337. package/codeTranslations/vi.json +0 -55
  338. package/codeTranslations/zh-Hans.json +0 -55
  339. package/codeTranslations/zh-Hant.json +0 -55
  340. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  341. package/lib/__tests__/translations.test.js +0 -112
  342. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  343. package/lib/theme/AnnouncementBar/index.js +0 -74
  344. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  345. package/lib/theme/BlogListPage/index.js +0 -71
  346. package/lib/theme/BlogListPaginator/index.js +0 -63
  347. package/lib/theme/BlogPostItem/index.js +0 -152
  348. package/lib/theme/BlogPostPage/index.js +0 -75
  349. package/lib/theme/BlogPostPaginator/index.js +0 -64
  350. package/lib/theme/BlogSidebar/index.js +0 -43
  351. package/lib/theme/BlogSidebar/styles.module.css +0 -46
  352. package/lib/theme/BlogTagsListPage/index.js +0 -81
  353. package/lib/theme/BlogTagsPostsPage/index.js +0 -104
  354. package/lib/theme/CodeBlock/index.js +0 -253
  355. package/lib/theme/CodeBlock/styles.module.css +0 -71
  356. package/lib/theme/DocItem/index.js +0 -120
  357. package/lib/theme/DocItem/styles.module.css +0 -28
  358. package/lib/theme/DocPage/index.js +0 -141
  359. package/lib/theme/DocPage/styles.module.css +0 -98
  360. package/lib/theme/DocPaginator/index.js +0 -63
  361. package/lib/theme/DocSidebar/index.js +0 -307
  362. package/lib/theme/DocSidebar/styles.module.css +0 -138
  363. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  364. package/lib/theme/EditThisPage/index.js +0 -31
  365. package/lib/theme/Footer/index.js +0 -108
  366. package/lib/theme/Heading/index.js +0 -60
  367. package/lib/theme/Heading/styles.css +0 -23
  368. package/lib/theme/IconArrow/index.js +0 -28
  369. package/lib/theme/IconEdit/index.js +0 -34
  370. package/lib/theme/IconLanguage/index.js +0 -29
  371. package/lib/theme/IconMenu/index.js +0 -31
  372. package/lib/theme/LastUpdated/index.js +0 -65
  373. package/lib/theme/Layout/index.js +0 -64
  374. package/lib/theme/LayoutHead/index.js +0 -144
  375. package/lib/theme/LayoutProviders/index.js +0 -34
  376. package/lib/theme/Logo/index.js +0 -59
  377. package/lib/theme/MDXComponents/index.js +0 -65
  378. package/lib/theme/MDXPage/index.js +0 -68
  379. package/lib/theme/Navbar/index.js +0 -147
  380. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
  381. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
  382. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
  383. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  384. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  385. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  386. package/lib/theme/NavbarItem/index.js +0 -54
  387. package/lib/theme/NotFound.js +0 -50
  388. package/lib/theme/SearchBar.js +0 -15
  389. package/lib/theme/SearchMetadatas/index.js +0 -33
  390. package/lib/theme/Seo/index.js +0 -49
  391. package/lib/theme/SkipToContent/index.js +0 -61
  392. package/lib/theme/SkipToContent/styles.module.css +0 -16
  393. package/lib/theme/TOC/index.js +0 -59
  394. package/lib/theme/TOC/styles.module.css +0 -23
  395. package/lib/theme/TOCInline/index.js +0 -53
  396. package/lib/theme/TOCInline/styles.module.css +0 -12
  397. package/lib/theme/TabItem/index.js +0 -32
  398. package/lib/theme/Tabs/index.js +0 -150
  399. package/lib/theme/Tabs/styles.module.css +0 -23
  400. package/lib/theme/ThemeContext.js +0 -21
  401. package/lib/theme/ThemeProvider/index.js +0 -38
  402. package/lib/theme/ThemedImage/index.js +0 -48
  403. package/lib/theme/ThemedImage/styles.module.css +0 -11
  404. package/lib/theme/Toggle/index.js +0 -106
  405. package/lib/theme/Toggle/styles.module.css +0 -114
  406. package/lib/theme/UserPreferencesContext.js +0 -18
  407. package/lib/theme/UserPreferencesProvider/index.js +0 -44
  408. package/lib/theme/hooks/styles.css +0 -10
  409. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  410. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  411. package/lib/theme/hooks/useDocs.js +0 -18
  412. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  413. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  414. package/lib/theme/hooks/useLocationHash.js +0 -28
  415. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  416. package/lib/theme/hooks/usePrismTheme.js +0 -36
  417. package/lib/theme/hooks/useScrollPosition.js +0 -49
  418. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  419. package/lib/theme/hooks/useTabGroupChoice.js +0 -53
  420. package/lib/theme/hooks/useTheme.js +0 -99
  421. package/lib/theme/hooks/useThemeContext.js +0 -31
  422. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  423. package/lib/theme/hooks/useWindowSize.js +0 -55
  424. package/lib/theme/prism-include-languages.js +0 -39
  425. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  426. package/lib-next/__tests__/translations.test.js +0 -128
  427. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  428. package/lib-next/index.js +0 -198
  429. package/lib-next/theme/DocSidebar/styles.module.css +0 -138
  430. package/lib-next/theme/Heading/styles.css +0 -23
  431. package/lib-next/theme/Navbar/styles.module.css +0 -20
  432. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  433. package/lib-next/theme/Seo/index.js +0 -36
  434. package/lib-next/theme/ThemeProvider/index.js +0 -25
  435. package/lib-next/theme/Toggle/index.js +0 -95
  436. package/lib-next/theme/Toggle/styles.module.css +0 -114
  437. package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
  438. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  439. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  440. package/lib-next/theme/hooks/useDocs.js +0 -10
  441. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  442. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  443. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  444. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  445. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  446. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  447. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  448. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
  449. package/lib-next/theme/hooks/useTheme.js +0 -82
  450. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  451. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  452. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  453. package/lib-next/translations.js +0 -145
  454. package/lib-next/types.d.ts +0 -600
  455. package/lib-next/validateThemeConfig.js +0 -317
  456. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  457. package/src/__tests__/translations.test.ts +0 -116
  458. package/src/__tests__/validateThemeConfig.test.js +0 -333
  459. package/src/prism-include-languages.js +0 -11
  460. package/src/theme/DocSidebar/styles.module.css +0 -138
  461. package/src/theme/Heading/styles.css +0 -23
  462. package/src/theme/SearchMetadatas/index.tsx +0 -28
  463. package/src/theme/Seo/index.tsx +0 -46
  464. package/src/theme/ThemeProvider/index.tsx +0 -24
  465. package/src/theme/Toggle/index.tsx +0 -113
  466. package/src/theme/Toggle/styles.module.css +0 -114
  467. package/src/theme/UserPreferencesContext.ts +0 -12
  468. package/src/theme/UserPreferencesProvider/index.tsx +0 -32
  469. package/src/theme/hooks/styles.css +0 -10
  470. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  471. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  472. package/src/theme/hooks/useDocs.ts +0 -11
  473. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  474. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  475. package/src/theme/hooks/useLocationHash.ts +0 -25
  476. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  477. package/src/theme/hooks/usePrismTheme.ts +0 -22
  478. package/src/theme/hooks/useScrollPosition.ts +0 -45
  479. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  480. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  481. package/src/theme/hooks/useTheme.ts +0 -92
  482. package/src/theme/hooks/useThemeContext.ts +0 -23
  483. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  484. package/src/theme/hooks/useWindowSize.ts +0 -51
  485. package/src/validateThemeConfig.js +0 -317
  486. package/tsconfig.json +0 -12
  487. package/update-code-translations.js +0 -239
  488. package/update-code-translations.test.js +0 -33
@@ -7,41 +7,48 @@
7
7
 
8
8
  import React from 'react';
9
9
  import Layout from '@theme/Layout';
10
- import Translate from '@docusaurus/Translate';
10
+ import Translate, {translate} from '@docusaurus/Translate';
11
+ import {PageMetadata} from '@docusaurus/theme-common';
11
12
 
12
- function NotFound(): JSX.Element {
13
+ export default function NotFound(): JSX.Element {
13
14
  return (
14
- <Layout title="Page Not Found">
15
- <main className="container margin-vert--xl">
16
- <div className="row">
17
- <div className="col col--6 col--offset-3">
18
- <h1 className="hero__title">
19
- <Translate
20
- id="theme.NotFound.title"
21
- description="The title of the 404 page">
22
- Page Not Found
23
- </Translate>
24
- </h1>
25
- <p>
26
- <Translate
27
- id="theme.NotFound.p1"
28
- description="The first paragraph of the 404 page">
29
- We could not find what you were looking for.
30
- </Translate>
31
- </p>
32
- <p>
33
- <Translate
34
- id="theme.NotFound.p2"
35
- description="The 2nd paragraph of the 404 page">
36
- Please contact the owner of the site that linked you to the
37
- original URL and let them know their link is broken.
38
- </Translate>
39
- </p>
15
+ <>
16
+ <PageMetadata
17
+ title={translate({
18
+ id: 'theme.NotFound.title',
19
+ message: 'Page Not Found',
20
+ })}
21
+ />
22
+ <Layout>
23
+ <main className="container margin-vert--xl">
24
+ <div className="row">
25
+ <div className="col col--6 col--offset-3">
26
+ <h1 className="hero__title">
27
+ <Translate
28
+ id="theme.NotFound.title"
29
+ description="The title of the 404 page">
30
+ Page Not Found
31
+ </Translate>
32
+ </h1>
33
+ <p>
34
+ <Translate
35
+ id="theme.NotFound.p1"
36
+ description="The first paragraph of the 404 page">
37
+ We could not find what you were looking for.
38
+ </Translate>
39
+ </p>
40
+ <p>
41
+ <Translate
42
+ id="theme.NotFound.p2"
43
+ description="The 2nd paragraph of the 404 page">
44
+ Please contact the owner of the site that linked you to the
45
+ original URL and let them know their link is broken.
46
+ </Translate>
47
+ </p>
48
+ </div>
40
49
  </div>
41
- </div>
42
- </main>
43
- </Layout>
50
+ </main>
51
+ </Layout>
52
+ </>
44
53
  );
45
54
  }
46
-
47
- export default NotFound;
@@ -0,0 +1,20 @@
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 Link from '@docusaurus/Link';
10
+ import type {Props} from '@theme/PaginatorNavLink';
11
+
12
+ export default function PaginatorNavLink(props: Props): JSX.Element {
13
+ const {permalink, title, subLabel} = props;
14
+ return (
15
+ <Link className="pagination-nav__link" to={permalink}>
16
+ {subLabel && <div className="pagination-nav__sublabel">{subLabel}</div>}
17
+ <div className="pagination-nav__label">{title}</div>
18
+ </Link>
19
+ );
20
+ }
@@ -6,7 +6,8 @@
6
6
  */
7
7
 
8
8
  // By default, the classic theme does not provide any SearchBar implementation
9
- // If you swizzled this file, it is your responsibility to provide an implementation
9
+ // If you swizzled this, it is your responsibility to provide an implementation
10
10
  // Tip: swizzle the SearchBar from the Algolia theme for inspiration:
11
11
  // npm run swizzle @docusaurus/theme-search-algolia SearchBar
12
+
12
13
  export {default} from '@docusaurus/Noop';
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import React from 'react';
9
+
10
+ import Head from '@docusaurus/Head';
11
+ import type {Props} from '@theme/SearchMetadata';
12
+
13
+ // Note: we bias toward using Algolia metadata on purpose
14
+ // Not doing so leads to confusion in the community,
15
+ // as it requires to first crawl the site with the Algolia plugin enabled first
16
+ // - https://github.com/facebook/docusaurus/issues/6693
17
+ // - https://github.com/facebook/docusaurus/issues/4555
18
+ export default function SearchMetadata({
19
+ locale,
20
+ version,
21
+ tag,
22
+ }: Props): JSX.Element {
23
+ // Seems safe to consider here the locale is the language, as the existing
24
+ // docsearch:language filter is afaik a regular string-based filter
25
+ const language = locale;
26
+
27
+ return (
28
+ <Head>
29
+ {/*
30
+ Docusaurus metadata, used by third-party search plugin
31
+ See https://github.com/cmfcmf/docusaurus-search-local/issues/99
32
+ */}
33
+ {locale && <meta name="docusaurus_locale" content={locale} />}
34
+ {version && <meta name="docusaurus_version" content={version} />}
35
+ {tag && <meta name="docusaurus_tag" content={tag} />}
36
+
37
+ {/* Algolia DocSearch metadata */}
38
+ {language && <meta name="docsearch:language" content={language} />}
39
+ {version && <meta name="docsearch:version" content={version} />}
40
+ {tag && <meta name="docsearch:docusaurus_tag" content={tag} />}
41
+ </Head>
42
+ );
43
+ }
@@ -9,22 +9,23 @@ import React from 'react';
9
9
  import Head from '@docusaurus/Head';
10
10
  import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
11
11
  import useBaseUrl from '@docusaurus/useBaseUrl';
12
- import type {Props} from '@theme/Layout';
13
- import SearchMetadatas from '@theme/SearchMetadatas';
14
- import Seo from '@theme/Seo';
12
+ import SearchMetadata from '@theme/SearchMetadata';
15
13
  import {
14
+ PageMetadata,
16
15
  DEFAULT_SEARCH_TAG,
17
- useTitleFormatter,
18
16
  useAlternatePageUtils,
17
+ useThemeConfig,
18
+ keyboardFocusedClassName,
19
19
  } from '@docusaurus/theme-common';
20
20
  import {useLocation} from '@docusaurus/router';
21
21
 
22
- // Useful for SEO
22
+ // TODO move to SiteMetadataDefaults or theme-common ?
23
+ // Useful for i18n/SEO
23
24
  // See https://developers.google.com/search/docs/advanced/crawling/localized-versions
24
25
  // See https://github.com/facebook/docusaurus/issues/3317
25
26
  function AlternateLangHeaders(): JSX.Element {
26
27
  const {
27
- i18n: {defaultLocale, locales},
28
+ i18n: {defaultLocale, localeConfigs},
28
29
  } = useDocusaurusContext();
29
30
  const alternatePageUtils = useAlternatePageUtils();
30
31
 
@@ -32,7 +33,7 @@ function AlternateLangHeaders(): JSX.Element {
32
33
  // See https://www.searchviu.com/en/multiple-hreflang-tags-one-url/
33
34
  return (
34
35
  <Head>
35
- {locales.map((locale) => (
36
+ {Object.entries(localeConfigs).map(([locale, {htmlLang}]) => (
36
37
  <link
37
38
  key={locale}
38
39
  rel="alternate"
@@ -40,7 +41,7 @@ function AlternateLangHeaders(): JSX.Element {
40
41
  locale,
41
42
  fullyQualified: true,
42
43
  })}
43
- hrefLang={locale}
44
+ hrefLang={htmlLang}
44
45
  />
45
46
  ))}
46
47
  <link
@@ -64,6 +65,7 @@ function useDefaultCanonicalUrl() {
64
65
  return siteUrl + useBaseUrl(pathname);
65
66
  }
66
67
 
68
+ // TODO move to SiteMetadataDefaults or theme-common ?
67
69
  function CanonicalUrlHeaders({permalink}: {permalink?: string}) {
68
70
  const {
69
71
  siteConfig: {url: siteUrl},
@@ -81,57 +83,42 @@ function CanonicalUrlHeaders({permalink}: {permalink?: string}) {
81
83
  );
82
84
  }
83
85
 
84
- export default function LayoutHead(props: Props): JSX.Element {
86
+ export default function SiteMetadata(): JSX.Element {
85
87
  const {
86
- siteConfig: {
87
- favicon,
88
- themeConfig: {metadatas, image: defaultImage},
89
- },
90
- i18n: {currentLocale, localeConfigs},
88
+ i18n: {currentLocale},
91
89
  } = useDocusaurusContext();
92
- const {title, description, image, keywords, searchMetadatas} = props;
93
- const faviconUrl = useBaseUrl(favicon);
94
- const pageTitle = useTitleFormatter(title);
95
90
 
96
- // See https://github.com/facebook/docusaurus/issues/3317#issuecomment-754661855
97
- // const htmlLang = currentLocale.split('-')[0];
98
- const htmlLang = currentLocale; // should we allow the user to override htmlLang with localeConfig?
99
- const htmlDir = localeConfigs[currentLocale].direction;
91
+ // TODO maybe move these 2 themeConfig to siteConfig?
92
+ // These seems useful for other themes as well
93
+ const {metadata, image: defaultImage} = useThemeConfig();
100
94
 
101
95
  return (
102
96
  <>
103
97
  <Head>
104
- <html lang={htmlLang} dir={htmlDir} />
105
- {favicon && <link rel="shortcut icon" href={faviconUrl} />}
106
- <title>{pageTitle}</title>
107
- <meta property="og:title" content={pageTitle} />
108
- {image ||
109
- (defaultImage && (
110
- <meta name="twitter:card" content="summary_large_image" />
111
- ))}
98
+ <meta name="twitter:card" content="summary_large_image" />
99
+ {/* The keyboard focus class name need to be applied when SSR so links
100
+ are outlined when JS is disabled */}
101
+ <body className={keyboardFocusedClassName} />
112
102
  </Head>
113
103
 
114
- <Seo {...{description, keywords, image}} />
104
+ {defaultImage && <PageMetadata image={defaultImage} />}
115
105
 
116
106
  <CanonicalUrlHeaders />
117
107
 
118
108
  <AlternateLangHeaders />
119
109
 
120
- <SearchMetadatas
121
- tag={DEFAULT_SEARCH_TAG}
122
- locale={currentLocale}
123
- {...searchMetadatas}
124
- />
110
+ <SearchMetadata tag={DEFAULT_SEARCH_TAG} locale={currentLocale} />
125
111
 
126
112
  <Head
127
113
  // it's important to have an additional <Head> element here,
128
114
  // as it allows react-helmet to override values set in previous <Head>
129
- // ie we can override default metadatas such as "twitter:card"
115
+ // ie we can override default metadata such as "twitter:card"
130
116
  // In same Head, the same meta would appear twice instead of overriding
131
117
  // See react-helmet doc
132
118
  >
133
- {metadatas.map((metadata, i) => (
134
- <meta key={`metadata_${i}`} {...metadata} />
119
+ {/* Yes, "metadatum" is the grammatically correct term */}
120
+ {metadata.map((metadatum, i) => (
121
+ <meta key={`metadata_${i}`} {...metadatum} />
135
122
  ))}
136
123
  </Head>
137
124
  </>
@@ -6,8 +6,9 @@
6
6
  */
7
7
 
8
8
  import React, {useRef} from 'react';
9
+ import {useHistory} from '@docusaurus/router';
9
10
  import Translate from '@docusaurus/Translate';
10
- import {useChangeRoute} from '@docusaurus/theme-common';
11
+ import {useLocationChange} from '@docusaurus/theme-common';
11
12
 
12
13
  import styles from './styles.module.css';
13
14
 
@@ -17,8 +18,9 @@ function programmaticFocus(el: HTMLElement) {
17
18
  el.removeAttribute('tabindex');
18
19
  }
19
20
 
20
- function SkipToContent(): JSX.Element {
21
+ export default function SkipToContent(): JSX.Element {
21
22
  const containerRef = useRef<HTMLDivElement>(null);
23
+ const {action} = useHistory();
22
24
  const handleSkip = (e: React.MouseEvent<HTMLAnchorElement>) => {
23
25
  e.preventDefault();
24
26
 
@@ -31,15 +33,16 @@ function SkipToContent(): JSX.Element {
31
33
  }
32
34
  };
33
35
 
34
- useChangeRoute(() => {
35
- if (containerRef.current) {
36
+ useLocationChange(({location}) => {
37
+ if (containerRef.current && !location.hash && action === 'PUSH') {
36
38
  programmaticFocus(containerRef.current);
37
39
  }
38
40
  });
39
41
 
40
42
  return (
41
- <div ref={containerRef}>
42
- <a href="#main" className={styles.skipToContent} onClick={handleSkip}>
43
+ <div ref={containerRef} role="region">
44
+ {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
45
+ <a href="#" className={styles.skipToContent} onClick={handleSkip}>
43
46
  <Translate
44
47
  id="theme.common.skipToMainContent"
45
48
  description="The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation">
@@ -49,5 +52,3 @@ function SkipToContent(): JSX.Element {
49
52
  </div>
50
53
  );
51
54
  }
52
-
53
- export default SkipToContent;
@@ -1,3 +1,10 @@
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
+
1
8
  .skipToContent {
2
9
  position: fixed;
3
10
  top: 1rem;
@@ -6,11 +13,9 @@
6
13
  padding: calc(var(--ifm-global-spacing) / 2) var(--ifm-global-spacing);
7
14
  color: var(--ifm-color-emphasis-900);
8
15
  background-color: var(--ifm-background-surface-color);
9
- border-radius: var(--ifm-global-radius);
10
- font: inherit;
11
- border: none;
12
16
  }
13
17
 
14
18
  .skipToContent:focus {
15
19
  left: 1rem;
20
+ box-shadow: var(--ifm-global-shadow-md);
16
21
  }
@@ -7,54 +7,23 @@
7
7
 
8
8
  import React from 'react';
9
9
  import clsx from 'clsx';
10
- import useTOCHighlight from '@theme/hooks/useTOCHighlight';
11
- import type {TOCProps} from '@theme/TOC';
10
+ import type {Props} from '@theme/TOC';
11
+ import TOCItems from '@theme/TOCItems';
12
12
  import styles from './styles.module.css';
13
- import {TOCItem} from '@docusaurus/types';
14
13
 
15
- const LINK_CLASS_NAME = 'table-of-contents__link';
16
- const ACTIVE_LINK_CLASS_NAME = 'table-of-contents__link--active';
17
- const TOP_OFFSET = 100;
14
+ // Using a custom className
15
+ // This prevents TOCInline/TOCCollapsible getting highlighted by mistake
16
+ const LINK_CLASS_NAME = 'table-of-contents__link toc-highlight';
17
+ const LINK_ACTIVE_CLASS_NAME = 'table-of-contents__link--active';
18
18
 
19
- /* eslint-disable jsx-a11y/control-has-associated-label */
20
- function Headings({
21
- toc,
22
- isChild,
23
- }: {
24
- toc: readonly TOCItem[];
25
- isChild?: boolean;
26
- }) {
27
- if (!toc.length) {
28
- return null;
29
- }
19
+ export default function TOC({className, ...props}: Props): JSX.Element {
30
20
  return (
31
- <ul
32
- className={
33
- isChild ? '' : 'table-of-contents table-of-contents__left-border'
34
- }>
35
- {toc.map((heading) => (
36
- <li key={heading.id}>
37
- <a
38
- href={`#${heading.id}`}
39
- className={LINK_CLASS_NAME}
40
- // Developer provided the HTML, so assume it's safe.
41
- // eslint-disable-next-line react/no-danger
42
- dangerouslySetInnerHTML={{__html: heading.value}}
43
- />
44
- <Headings isChild toc={heading.children} />
45
- </li>
46
- ))}
47
- </ul>
48
- );
49
- }
50
-
51
- function TOC({toc}: TOCProps): JSX.Element {
52
- useTOCHighlight(LINK_CLASS_NAME, ACTIVE_LINK_CLASS_NAME, TOP_OFFSET);
53
- return (
54
- <div className={clsx(styles.tableOfContents, 'thin-scrollbar')}>
55
- <Headings toc={toc} />
21
+ <div className={clsx(styles.tableOfContents, 'thin-scrollbar', className)}>
22
+ <TOCItems
23
+ {...props}
24
+ linkClassName={LINK_CLASS_NAME}
25
+ linkActiveClassName={LINK_ACTIVE_CLASS_NAME}
26
+ />
56
27
  </div>
57
28
  );
58
29
  }
59
-
60
- export default TOC;
@@ -9,10 +9,10 @@
9
9
  max-height: calc(100vh - (var(--ifm-navbar-height) + 2rem));
10
10
  overflow-y: auto;
11
11
  position: sticky;
12
- top: calc(var(--ifm-navbar-height) + 2rem);
12
+ top: calc(var(--ifm-navbar-height) + 1rem);
13
13
  }
14
14
 
15
- @media only screen and (max-width: 996px) {
15
+ @media (max-width: 996px) {
16
16
  .tableOfContents {
17
17
  display: none;
18
18
  }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import React from 'react';
9
+ import clsx from 'clsx';
10
+ import Translate from '@docusaurus/Translate';
11
+ import {useCollapsible, Collapsible} from '@docusaurus/theme-common';
12
+ import styles from './styles.module.css';
13
+ import TOCItems from '@theme/TOCItems';
14
+ import type {Props} from '@theme/TOCCollapsible';
15
+
16
+ export default function TOCCollapsible({
17
+ toc,
18
+ className,
19
+ minHeadingLevel,
20
+ maxHeadingLevel,
21
+ }: Props): JSX.Element {
22
+ const {collapsed, toggleCollapsed} = useCollapsible({
23
+ initialState: true,
24
+ });
25
+
26
+ return (
27
+ <div
28
+ className={clsx(
29
+ styles.tocCollapsible,
30
+ !collapsed && styles.tocCollapsibleExpanded,
31
+ className,
32
+ )}>
33
+ <button
34
+ type="button"
35
+ className={clsx('clean-btn', styles.tocCollapsibleButton)}
36
+ onClick={toggleCollapsed}>
37
+ <Translate
38
+ id="theme.TOCCollapsible.toggleButtonLabel"
39
+ description="The label used by the button on the collapsible TOC component">
40
+ On this page
41
+ </Translate>
42
+ </button>
43
+
44
+ <Collapsible
45
+ lazy
46
+ className={styles.tocCollapsibleContent}
47
+ collapsed={collapsed}>
48
+ <TOCItems
49
+ toc={toc}
50
+ minHeadingLevel={minHeadingLevel}
51
+ maxHeadingLevel={maxHeadingLevel}
52
+ />
53
+ </Collapsible>
54
+ </div>
55
+ );
56
+ }
@@ -0,0 +1,50 @@
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
+ .tocCollapsible {
9
+ background-color: var(--ifm-menu-color-background-active);
10
+ border-radius: var(--ifm-global-radius);
11
+ margin: 1rem 0;
12
+ }
13
+
14
+ .tocCollapsibleButton {
15
+ font-size: inherit;
16
+ display: flex;
17
+ justify-content: space-between;
18
+ align-items: center;
19
+ padding: 0.4rem 0.8rem;
20
+ width: 100%;
21
+ }
22
+
23
+ .tocCollapsibleButton::after {
24
+ content: '';
25
+ background: var(--ifm-menu-link-sublist-icon) 50% 50% / 2rem 2rem no-repeat;
26
+ filter: var(--ifm-menu-link-sublist-icon-filter);
27
+ height: 1.25rem;
28
+ width: 1.25rem;
29
+ transform: rotate(180deg);
30
+ transition: transform var(--ifm-transition-fast);
31
+ }
32
+
33
+ .tocCollapsibleContent > ul {
34
+ border-left: none;
35
+ border-top: 1px solid var(--ifm-color-emphasis-300);
36
+ padding: 0.2rem 0;
37
+ font-size: 15px;
38
+ }
39
+
40
+ .tocCollapsibleContent ul li {
41
+ margin: 0.4rem 0.8rem;
42
+ }
43
+
44
+ .tocCollapsibleContent a {
45
+ display: block;
46
+ }
47
+
48
+ .tocCollapsibleExpanded .tocCollapsibleButton::after {
49
+ transform: none;
50
+ }
@@ -6,45 +6,24 @@
6
6
  */
7
7
 
8
8
  import React from 'react';
9
- import clsx from 'clsx';
10
- import type {TOCInlineProps} from '@theme/TOCInline';
9
+ import type {Props} from '@theme/TOCInline';
11
10
  import styles from './styles.module.css';
12
- import {TOCItem} from '@docusaurus/types';
11
+ import TOCItems from '@theme/TOCItems';
13
12
 
14
- /* eslint-disable jsx-a11y/control-has-associated-label */
15
- function HeadingsInline({
13
+ export default function TOCInline({
16
14
  toc,
17
- isChild,
18
- }: {
19
- toc: readonly TOCItem[];
20
- isChild?: boolean;
21
- }) {
22
- if (!toc.length) {
23
- return null;
24
- }
15
+ minHeadingLevel,
16
+ maxHeadingLevel,
17
+ }: Props): JSX.Element {
25
18
  return (
26
- <ul className={isChild ? '' : 'table-of-contents'}>
27
- {toc.map((heading) => (
28
- <li key={heading.id}>
29
- <a
30
- href={`#${heading.id}`}
31
- // Developer provided the HTML, so assume it's safe.
32
- // eslint-disable-next-line react/no-danger
33
- dangerouslySetInnerHTML={{__html: heading.value}}
34
- />
35
- <HeadingsInline isChild toc={heading.children} />
36
- </li>
37
- ))}
38
- </ul>
39
- );
40
- }
41
-
42
- function TOCInline({toc}: TOCInlineProps): JSX.Element {
43
- return (
44
- <div className={clsx(styles.tableOfContentsInline)}>
45
- <HeadingsInline toc={toc} />
19
+ <div className={styles.tableOfContentsInline}>
20
+ <TOCItems
21
+ toc={toc}
22
+ minHeadingLevel={minHeadingLevel}
23
+ maxHeadingLevel={maxHeadingLevel}
24
+ className="table-of-contents"
25
+ linkClassName={null}
26
+ />
46
27
  </div>
47
28
  );
48
29
  }
49
-
50
- export default TOCInline;