@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,167 @@
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, {useState, useRef, useEffect} from 'react';
8
+ import clsx from 'clsx';
9
+ import {
10
+ isSamePath,
11
+ useCollapsible,
12
+ Collapsible,
13
+ isRegexpStringMatch,
14
+ useLocalPathname,
15
+ } from '@docusaurus/theme-common';
16
+ import NavbarNavLink from '@theme/NavbarItem/NavbarNavLink';
17
+ import NavbarItem from '@theme/NavbarItem';
18
+ const dropdownLinkActiveClass = 'dropdown__link--active';
19
+
20
+ function isItemActive(item, localPathname) {
21
+ if (isSamePath(item.to, localPathname)) {
22
+ return true;
23
+ }
24
+
25
+ if (isRegexpStringMatch(item.activeBaseRegex, localPathname)) {
26
+ return true;
27
+ }
28
+
29
+ if (item.activeBasePath && localPathname.startsWith(item.activeBasePath)) {
30
+ return true;
31
+ }
32
+
33
+ return false;
34
+ }
35
+
36
+ function containsActiveItems(items, localPathname) {
37
+ return items.some((item) => isItemActive(item, localPathname));
38
+ }
39
+
40
+ function DropdownNavbarItemDesktop({items, position, className, ...props}) {
41
+ const dropdownRef = useRef(null);
42
+ const [showDropdown, setShowDropdown] = useState(false);
43
+ useEffect(() => {
44
+ const handleClickOutside = (event) => {
45
+ if (!dropdownRef.current || dropdownRef.current.contains(event.target)) {
46
+ return;
47
+ }
48
+
49
+ setShowDropdown(false);
50
+ };
51
+
52
+ document.addEventListener('mousedown', handleClickOutside);
53
+ document.addEventListener('touchstart', handleClickOutside);
54
+ return () => {
55
+ document.removeEventListener('mousedown', handleClickOutside);
56
+ document.removeEventListener('touchstart', handleClickOutside);
57
+ };
58
+ }, [dropdownRef]);
59
+ return (
60
+ <div
61
+ ref={dropdownRef}
62
+ className={clsx('navbar__item', 'dropdown', 'dropdown--hoverable', {
63
+ 'dropdown--right': position === 'right',
64
+ 'dropdown--show': showDropdown,
65
+ })}>
66
+ <NavbarNavLink
67
+ aria-haspopup="true"
68
+ aria-expanded={showDropdown}
69
+ role="button"
70
+ href={props.to ? undefined : '#'}
71
+ className={clsx('navbar__link', className)}
72
+ {...props}
73
+ onClick={props.to ? undefined : (e) => e.preventDefault()}
74
+ onKeyDown={(e) => {
75
+ if (e.key === 'Enter') {
76
+ e.preventDefault();
77
+ setShowDropdown(!showDropdown);
78
+ }
79
+ }}>
80
+ {props.children ?? props.label}
81
+ </NavbarNavLink>
82
+ <ul className="dropdown__menu">
83
+ {items.map((childItemProps, i) => (
84
+ <NavbarItem
85
+ isDropdownItem
86
+ onKeyDown={(e) => {
87
+ if (i === items.length - 1 && e.key === 'Tab') {
88
+ e.preventDefault();
89
+ setShowDropdown(false);
90
+ const nextNavbarItem = dropdownRef.current.nextElementSibling;
91
+
92
+ if (nextNavbarItem) {
93
+ const targetItem =
94
+ nextNavbarItem instanceof HTMLAnchorElement
95
+ ? nextNavbarItem // Next item is another dropdown; focus on the inner
96
+ : // anchor element instead so there's outline
97
+ nextNavbarItem.querySelector('a');
98
+ targetItem.focus();
99
+ }
100
+ }
101
+ }}
102
+ activeClassName={dropdownLinkActiveClass}
103
+ {...childItemProps}
104
+ key={i}
105
+ />
106
+ ))}
107
+ </ul>
108
+ </div>
109
+ );
110
+ }
111
+
112
+ function DropdownNavbarItemMobile({
113
+ items,
114
+ className,
115
+ position,
116
+ // Need to destructure position from props so that it doesn't get passed on.
117
+ ...props
118
+ }) {
119
+ const localPathname = useLocalPathname();
120
+ const containsActive = containsActiveItems(items, localPathname);
121
+ const {collapsed, toggleCollapsed, setCollapsed} = useCollapsible({
122
+ initialState: () => !containsActive,
123
+ }); // Expand/collapse if any item active after a navigation
124
+
125
+ useEffect(() => {
126
+ if (containsActive) {
127
+ setCollapsed(!containsActive);
128
+ }
129
+ }, [localPathname, containsActive, setCollapsed]);
130
+ return (
131
+ <li
132
+ className={clsx('menu__list-item', {
133
+ 'menu__list-item--collapsed': collapsed,
134
+ })}>
135
+ <NavbarNavLink
136
+ role="button"
137
+ className={clsx(
138
+ 'menu__link menu__link--sublist menu__link--sublist-caret',
139
+ className,
140
+ )}
141
+ {...props}
142
+ onClick={(e) => {
143
+ e.preventDefault();
144
+ toggleCollapsed();
145
+ }}>
146
+ {props.children ?? props.label}
147
+ </NavbarNavLink>
148
+ <Collapsible lazy as="ul" className="menu__list" collapsed={collapsed}>
149
+ {items.map((childItemProps, i) => (
150
+ <NavbarItem
151
+ mobile
152
+ isDropdownItem
153
+ onClick={props.onClick}
154
+ activeClassName="menu__link--active"
155
+ {...childItemProps}
156
+ key={i}
157
+ />
158
+ ))}
159
+ </Collapsible>
160
+ </li>
161
+ );
162
+ }
163
+
164
+ export default function DropdownNavbarItem({mobile = false, ...props}) {
165
+ const Comp = mobile ? DropdownNavbarItemMobile : DropdownNavbarItemDesktop;
166
+ return <Comp {...props} />;
167
+ }
@@ -0,0 +1,30 @@
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
+ export default function HtmlNavbarItem({
10
+ value,
11
+ className,
12
+ mobile = false,
13
+ isDropdownItem = false,
14
+ }) {
15
+ const Comp = isDropdownItem ? 'li' : 'div';
16
+ return (
17
+ <Comp
18
+ className={clsx(
19
+ {
20
+ navbar__item: !mobile && !isDropdownItem,
21
+ 'menu__list-item': mobile,
22
+ },
23
+ className,
24
+ )}
25
+ dangerouslySetInnerHTML={{
26
+ __html: value,
27
+ }}
28
+ />
29
+ );
30
+ }
@@ -5,10 +5,12 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
- import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem';
8
+ import DropdownNavbarItem from '@theme/NavbarItem/DropdownNavbarItem';
9
9
  import IconLanguage from '@theme/IconLanguage';
10
10
  import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
11
11
  import {useAlternatePageUtils} from '@docusaurus/theme-common';
12
+ import {translate} from '@docusaurus/Translate';
13
+ import styles from './styles.module.css';
12
14
  export default function LocaleDropdownNavbarItem({
13
15
  mobile,
14
16
  dropdownItemsBefore,
@@ -19,11 +21,6 @@ export default function LocaleDropdownNavbarItem({
19
21
  i18n: {currentLocale, locales, localeConfigs},
20
22
  } = useDocusaurusContext();
21
23
  const alternatePageUtils = useAlternatePageUtils();
22
-
23
- function getLocaleLabel(locale) {
24
- return localeConfigs[locale].label;
25
- }
26
-
27
24
  const localeItems = locales.map((locale) => {
28
25
  const to = `pathname://${alternatePageUtils.createUrl({
29
26
  locale,
@@ -31,34 +28,31 @@ export default function LocaleDropdownNavbarItem({
31
28
  })}`;
32
29
  return {
33
30
  isNavLink: true,
34
- label: getLocaleLabel(locale),
31
+ label: localeConfigs[locale].label,
35
32
  to,
36
33
  target: '_self',
37
34
  autoAddBaseUrl: false,
38
35
  className: locale === currentLocale ? 'dropdown__link--active' : '',
39
- style: {
40
- textTransform: 'capitalize',
41
- },
42
36
  };
43
37
  });
44
38
  const items = [...dropdownItemsBefore, ...localeItems, ...dropdownItemsAfter]; // Mobile is handled a bit differently
45
39
 
46
- const dropdownLabel = mobile ? 'Languages' : getLocaleLabel(currentLocale);
40
+ const dropdownLabel = mobile
41
+ ? translate({
42
+ message: 'Languages',
43
+ id: 'theme.navbar.mobileLanguageDropdown.label',
44
+ description: 'The label for the mobile language switcher dropdown',
45
+ })
46
+ : localeConfigs[currentLocale].label;
47
47
  return (
48
- <DefaultNavbarItem
48
+ <DropdownNavbarItem
49
49
  {...props}
50
- href="#"
51
50
  mobile={mobile}
52
51
  label={
53
- <span>
54
- <IconLanguage
55
- style={{
56
- verticalAlign: 'text-bottom',
57
- marginRight: 5,
58
- }}
59
- />
60
- <span>{dropdownLabel}</span>
61
- </span>
52
+ <>
53
+ <IconLanguage className={styles.iconLanguage} />
54
+ {dropdownLabel}
55
+ </>
62
56
  }
63
57
  items={items}
64
58
  />
@@ -0,0 +1,11 @@
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
+ .iconLanguage {
9
+ vertical-align: text-bottom;
10
+ margin-right: 5px;
11
+ }
@@ -0,0 +1,84 @@
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 useBaseUrl from '@docusaurus/useBaseUrl';
10
+ import IconExternalLink from '@theme/IconExternalLink';
11
+ import isInternalUrl from '@docusaurus/isInternalUrl';
12
+ import {isRegexpStringMatch} from '@docusaurus/theme-common';
13
+ const dropdownLinkActiveClass = 'dropdown__link--active';
14
+ export default function NavbarNavLink({
15
+ activeBasePath,
16
+ activeBaseRegex,
17
+ to,
18
+ href,
19
+ label,
20
+ html,
21
+ activeClassName = '',
22
+ prependBaseUrlToHref,
23
+ ...props
24
+ }) {
25
+ // TODO all this seems hacky
26
+ // {to: 'version'} should probably be forbidden, in favor of {to: '/version'}
27
+ const toUrl = useBaseUrl(to);
28
+ const activeBaseUrl = useBaseUrl(activeBasePath);
29
+ const normalizedHref = useBaseUrl(href, {
30
+ forcePrependBaseUrl: true,
31
+ });
32
+ const isExternalLink = label && href && !isInternalUrl(href);
33
+ const isDropdownLink = activeClassName === dropdownLinkActiveClass; // Link content is set through html XOR label
34
+
35
+ const linkContentProps = html
36
+ ? {
37
+ dangerouslySetInnerHTML: {
38
+ __html: html,
39
+ },
40
+ }
41
+ : {
42
+ children: (
43
+ <>
44
+ {label}
45
+ {isExternalLink && (
46
+ <IconExternalLink
47
+ {...(isDropdownLink && {
48
+ width: 12,
49
+ height: 12,
50
+ })}
51
+ />
52
+ )}
53
+ </>
54
+ ),
55
+ };
56
+
57
+ if (href) {
58
+ return (
59
+ <Link
60
+ href={prependBaseUrlToHref ? normalizedHref : href}
61
+ {...props}
62
+ {...linkContentProps}
63
+ />
64
+ );
65
+ }
66
+
67
+ return (
68
+ <Link
69
+ to={toUrl}
70
+ isNavLink
71
+ activeClassName={
72
+ !props.className?.includes(activeClassName) ? activeClassName : ''
73
+ }
74
+ {...((activeBasePath || activeBaseRegex) && {
75
+ isActive: (_match, location) =>
76
+ activeBaseRegex
77
+ ? isRegexpStringMatch(activeBaseRegex, location.pathname)
78
+ : location.pathname.startsWith(activeBaseUrl),
79
+ })}
80
+ {...props}
81
+ {...linkContentProps}
82
+ />
83
+ );
84
+ }
@@ -6,10 +6,15 @@
6
6
  */
7
7
  import React from 'react';
8
8
  import SearchBar from '@theme/SearchBar';
9
+ import NavbarSearch from '@theme/Navbar/Search';
9
10
  export default function SearchNavbarItem({mobile}) {
10
11
  if (mobile) {
11
12
  return null;
12
13
  }
13
14
 
14
- return <SearchBar />;
15
+ return (
16
+ <NavbarSearch>
17
+ <SearchBar />
18
+ </NavbarSearch>
19
+ );
15
20
  }
@@ -5,37 +5,30 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
- import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem';
9
- import LocaleDropdownNavbarItem from '@theme/NavbarItem/LocaleDropdownNavbarItem';
10
- import SearchNavbarItem from '@theme/NavbarItem/SearchNavbarItem';
11
- const NavbarItemComponents = {
12
- default: () => DefaultNavbarItem,
13
- localeDropdown: () => LocaleDropdownNavbarItem,
14
- search: () => SearchNavbarItem,
15
- // Need to lazy load these items as we don't know for sure the docs plugin is loaded
16
- // See https://github.com/facebook/docusaurus/issues/3360
17
- docsVersion: () =>
18
- // eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
19
- require('@theme/NavbarItem/DocsVersionNavbarItem').default,
20
- docsVersionDropdown: () =>
21
- // eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
22
- require('@theme/NavbarItem/DocsVersionDropdownNavbarItem').default,
23
- doc: () =>
24
- // eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
25
- require('@theme/NavbarItem/DocNavbarItem').default,
26
- };
8
+ import ComponentTypes from '@theme/NavbarItem/ComponentTypes';
27
9
 
28
- const getNavbarItemComponent = (type = 'default') => {
29
- const navbarItemComponent = NavbarItemComponents[type];
10
+ const getNavbarItemComponent = (type) => {
11
+ const component = ComponentTypes[type];
30
12
 
31
- if (!navbarItemComponent) {
32
- throw new Error(`No NavbarItem component found for type=${type}.`);
13
+ if (!component) {
14
+ throw new Error(`No NavbarItem component found for type "${type}".`);
33
15
  }
34
16
 
35
- return navbarItemComponent();
17
+ return component;
36
18
  };
37
19
 
20
+ function getComponentType(type, isDropdown) {
21
+ // Backward compatibility: navbar item with no type set
22
+ // but containing dropdown items should use the type "dropdown"
23
+ if (!type || type === 'default') {
24
+ return isDropdown ? 'dropdown' : 'default';
25
+ }
26
+
27
+ return type;
28
+ }
29
+
38
30
  export default function NavbarItem({type, ...props}) {
39
- const NavbarItemComponent = getNavbarItemComponent(type);
31
+ const componentType = getComponentType(type, props.items !== undefined);
32
+ const NavbarItemComponent = getNavbarItemComponent(componentType);
40
33
  return <NavbarItemComponent {...props} />;
41
34
  }
@@ -0,0 +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
+
8
+ /* eslint-disable import/no-named-export */
9
+ export const getInfimaActiveClassName = (mobile) =>
10
+ mobile ? 'menu__link--active' : 'navbar__link--active';
@@ -6,41 +6,47 @@
6
6
  */
7
7
  import React from 'react';
8
8
  import Layout from '@theme/Layout';
9
- import Translate from '@docusaurus/Translate';
10
-
11
- function NotFound() {
9
+ import Translate, {translate} from '@docusaurus/Translate';
10
+ import {PageMetadata} from '@docusaurus/theme-common';
11
+ export default function NotFound() {
12
12
  return (
13
- <Layout title="Page Not Found">
14
- <main className="container margin-vert--xl">
15
- <div className="row">
16
- <div className="col col--6 col--offset-3">
17
- <h1 className="hero__title">
18
- <Translate
19
- id="theme.NotFound.title"
20
- description="The title of the 404 page">
21
- Page Not Found
22
- </Translate>
23
- </h1>
24
- <p>
25
- <Translate
26
- id="theme.NotFound.p1"
27
- description="The first paragraph of the 404 page">
28
- We could not find what you were looking for.
29
- </Translate>
30
- </p>
31
- <p>
32
- <Translate
33
- id="theme.NotFound.p2"
34
- description="The 2nd paragraph of the 404 page">
35
- Please contact the owner of the site that linked you to the
36
- original URL and let them know their link is broken.
37
- </Translate>
38
- </p>
13
+ <>
14
+ <PageMetadata
15
+ title={translate({
16
+ id: 'theme.NotFound.title',
17
+ message: 'Page Not Found',
18
+ })}
19
+ />
20
+ <Layout>
21
+ <main className="container margin-vert--xl">
22
+ <div className="row">
23
+ <div className="col col--6 col--offset-3">
24
+ <h1 className="hero__title">
25
+ <Translate
26
+ id="theme.NotFound.title"
27
+ description="The title of the 404 page">
28
+ Page Not Found
29
+ </Translate>
30
+ </h1>
31
+ <p>
32
+ <Translate
33
+ id="theme.NotFound.p1"
34
+ description="The first paragraph of the 404 page">
35
+ We could not find what you were looking for.
36
+ </Translate>
37
+ </p>
38
+ <p>
39
+ <Translate
40
+ id="theme.NotFound.p2"
41
+ description="The 2nd paragraph of the 404 page">
42
+ Please contact the owner of the site that linked you to the
43
+ original URL and let them know their link is broken.
44
+ </Translate>
45
+ </p>
46
+ </div>
39
47
  </div>
40
- </div>
41
- </main>
42
- </Layout>
48
+ </main>
49
+ </Layout>
50
+ </>
43
51
  );
44
52
  }
45
-
46
- export default NotFound;
@@ -0,0 +1,23 @@
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 Link from '@docusaurus/Link';
10
+ export default function PaginatorNavLink(props) {
11
+ const {permalink, title, subLabel, isNext} = props;
12
+ return (
13
+ <Link
14
+ className={clsx(
15
+ 'pagination-nav__link',
16
+ isNext ? 'pagination-nav__link--next' : 'pagination-nav__link--prev',
17
+ )}
18
+ to={permalink}>
19
+ {subLabel && <div className="pagination-nav__sublabel">{subLabel}</div>}
20
+ <div className="pagination-nav__label">{title}</div>
21
+ </Link>
22
+ );
23
+ }
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  // By default, the classic theme does not provide any SearchBar implementation
8
- // If you swizzled this file, it is your responsibility to provide an implementation
8
+ // If you swizzled this, it is your responsibility to provide an implementation
9
9
  // Tip: swizzle the SearchBar from the Algolia theme for inspiration:
10
10
  // npm run swizzle @docusaurus/theme-search-algolia SearchBar
11
11
  export {default} from '@docusaurus/Noop';
@@ -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
+ import React from 'react';
8
+ import Head from '@docusaurus/Head';
9
+ // Note: we bias toward using Algolia metadata on purpose
10
+ // Not doing so leads to confusion in the community,
11
+ // as it requires to first crawl the site with the Algolia plugin enabled first
12
+ // - https://github.com/facebook/docusaurus/issues/6693
13
+ // - https://github.com/facebook/docusaurus/issues/4555
14
+ export default function SearchMetadata({locale, version, tag}) {
15
+ // Seems safe to consider here the locale is the language, as the existing
16
+ // docsearch:language filter is afaik a regular string-based filter
17
+ const language = locale;
18
+ return (
19
+ <Head>
20
+ {/*
21
+ Docusaurus metadata, used by third-party search plugin
22
+ See https://github.com/cmfcmf/docusaurus-search-local/issues/99
23
+ */}
24
+ {locale && <meta name="docusaurus_locale" content={locale} />}
25
+ {version && <meta name="docusaurus_version" content={version} />}
26
+ {tag && <meta name="docusaurus_tag" content={tag} />}
27
+
28
+ {/* Algolia DocSearch metadata */}
29
+ {language && <meta name="docsearch:language" content={language} />}
30
+ {version && <meta name="docsearch:version" content={version} />}
31
+ {tag && <meta name="docsearch:docusaurus_tag" content={tag} />}
32
+ </Head>
33
+ );
34
+ }