@docusaurus/theme-classic 2.0.0-beta.16 → 2.0.0-beta.19

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 (319) hide show
  1. package/lib/admonitions.css +4 -0
  2. package/lib/default.css +3038 -0
  3. package/lib/getSwizzleConfig.js +177 -36
  4. package/lib/index.js +10 -15
  5. package/lib/nprogress.css +41 -0
  6. package/lib/nprogress.js +46 -0
  7. package/lib/theme-classic.d.ts +600 -76
  8. package/lib/translations.js +12 -2
  9. package/lib/validateThemeConfig.js +77 -28
  10. package/lib-next/theme/BackToTopButton/index.js +6 -104
  11. package/lib-next/theme/BlogArchivePage/index.js +14 -10
  12. package/lib-next/theme/BlogLayout/index.js +1 -5
  13. package/lib-next/theme/BlogListPage/index.js +34 -13
  14. package/lib-next/theme/BlogListPaginator/index.js +25 -28
  15. package/lib-next/theme/BlogPostAuthor/index.js +16 -7
  16. package/lib-next/theme/BlogPostItem/index.js +6 -6
  17. package/lib-next/theme/BlogPostItem/styles.module.css +9 -0
  18. package/lib-next/theme/BlogPostPage/index.js +56 -45
  19. package/lib-next/theme/BlogPostPaginator/index.js +25 -28
  20. package/lib-next/theme/BlogSidebar/Desktop/index.js +41 -0
  21. package/lib-next/theme/BlogSidebar/{styles.module.css → Desktop/styles.module.css} +1 -2
  22. package/lib-next/theme/BlogSidebar/Mobile/index.js +36 -0
  23. package/lib-next/theme/BlogSidebar/index.js +11 -31
  24. package/lib-next/theme/BlogTagsListPage/index.js +17 -14
  25. package/lib-next/theme/BlogTagsPostsPage/index.js +43 -38
  26. package/lib-next/theme/CodeBlock/Container/index.js +29 -0
  27. package/lib-next/theme/CodeBlock/Container/styles.module.css +14 -0
  28. package/lib-next/theme/CodeBlock/Content/Element.js +23 -0
  29. package/lib-next/theme/CodeBlock/Content/String.js +104 -0
  30. package/lib-next/theme/CodeBlock/{styles.module.css → Content/styles.module.css} +39 -29
  31. package/lib-next/theme/CodeBlock/CopyButton/index.js +61 -0
  32. package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  33. package/lib-next/theme/CodeBlock/Line/index.js +49 -0
  34. package/lib-next/theme/CodeBlock/Line/styles.module.css +51 -0
  35. package/lib-next/theme/CodeBlock/WordWrapButton/index.js +40 -0
  36. package/lib-next/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  37. package/lib-next/theme/CodeBlock/index.js +26 -164
  38. package/lib-next/theme/ColorModeToggle/index.js +62 -0
  39. package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
  40. package/lib-next/theme/Details/index.js +1 -1
  41. package/lib-next/theme/DocBreadcrumbs/index.js +63 -19
  42. package/lib-next/theme/DocBreadcrumbs/styles.module.css +8 -15
  43. package/lib-next/theme/DocCard/index.js +17 -15
  44. package/lib-next/theme/DocCard/styles.module.css +8 -17
  45. package/lib-next/theme/DocCardList/index.js +20 -6
  46. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +30 -9
  47. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +8 -0
  48. package/lib-next/theme/DocItem/index.js +85 -67
  49. package/lib-next/theme/DocItem/styles.module.css +6 -0
  50. package/lib-next/theme/DocPage/Layout/Main/index.js +29 -0
  51. package/lib-next/theme/DocPage/Layout/Main/styles.module.css +28 -0
  52. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +34 -0
  53. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  54. package/lib-next/theme/DocPage/Layout/Sidebar/index.js +68 -0
  55. package/lib-next/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  56. package/lib-next/theme/DocPage/Layout/index.js +34 -0
  57. package/lib-next/theme/{BlogPostAuthor/styles.module.css → DocPage/Layout/index.module.css} +6 -3
  58. package/lib-next/theme/DocPage/index.js +30 -149
  59. package/lib-next/theme/DocPaginator/index.js +25 -28
  60. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  61. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  62. package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
  63. package/lib-next/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  64. package/lib-next/theme/DocSidebar/Desktop/index.js +36 -0
  65. package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
  66. package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
  67. package/lib-next/theme/DocSidebar/index.js +6 -113
  68. package/lib-next/theme/DocSidebarItem/Category.js +197 -0
  69. package/lib-next/theme/DocSidebarItem/Html.js +27 -0
  70. package/lib-next/theme/DocSidebarItem/{styles.module.css → Html.module.css} +0 -0
  71. package/lib-next/theme/DocSidebarItem/Link.js +53 -0
  72. package/lib-next/theme/DocSidebarItem/Link.module.css +10 -0
  73. package/lib-next/theme/DocSidebarItem/index.js +4 -245
  74. package/lib-next/theme/DocSidebarItems/index.js +1 -6
  75. package/lib-next/theme/DocTagDocListPage/index.js +40 -33
  76. package/lib-next/theme/DocTagsListPage/index.js +21 -16
  77. package/lib-next/theme/DocVersionBanner/index.js +2 -2
  78. package/lib-next/theme/Footer/Copyright/index.js +18 -0
  79. package/lib-next/theme/Footer/Layout/index.js +26 -0
  80. package/lib-next/theme/Footer/LinkItem/index.js +33 -0
  81. package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
  82. package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
  83. package/lib-next/theme/Footer/Links/index.js +17 -0
  84. package/lib-next/theme/Footer/Logo/index.js +38 -0
  85. package/lib-next/theme/Footer/{styles.module.css → Logo/styles.module.css} +0 -0
  86. package/lib-next/theme/Footer/index.js +11 -163
  87. package/lib-next/theme/Heading/index.js +10 -24
  88. package/lib-next/theme/IconDarkMode/index.js +17 -0
  89. package/lib-next/theme/IconExternalLink/styles.module.css +0 -2
  90. package/lib-next/theme/IconHome/index.js +17 -0
  91. package/lib-next/theme/IconLanguage/index.js +3 -3
  92. package/lib-next/theme/IconLightMode/index.js +17 -0
  93. package/lib-next/theme/LastUpdated/index.js +1 -0
  94. package/lib-next/theme/Layout/index.js +15 -10
  95. package/lib-next/theme/LayoutProviders/index.js +5 -4
  96. package/lib-next/theme/MDXComponents/A.js +11 -0
  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/MDXComponents/Heading.js +11 -0
  101. package/lib-next/theme/MDXComponents/Img.js +24 -0
  102. package/{src/theme/MDXComponents/styles.css → lib-next/theme/MDXComponents/Img.module.css} +1 -6
  103. package/lib-next/theme/MDXComponents/Pre.js +18 -0
  104. package/lib-next/theme/MDXComponents/Ul.js +21 -0
  105. package/lib-next/theme/MDXComponents/index.js +22 -57
  106. package/lib-next/theme/MDXContent/index.js +12 -0
  107. package/lib-next/theme/MDXPage/index.js +33 -28
  108. package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
  109. package/lib-next/theme/Navbar/Content/index.js +75 -0
  110. package/lib-next/theme/Navbar/Content/styles.module.css +15 -0
  111. package/lib-next/theme/Navbar/Layout/index.js +54 -0
  112. package/{src/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +0 -13
  113. package/lib-next/theme/Navbar/Logo/index.js +17 -0
  114. package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
  115. package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  116. package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  117. package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  118. package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  119. package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
  120. package/lib-next/theme/Navbar/Search/index.js +11 -0
  121. package/lib-next/theme/Navbar/Search/styles.module.css +20 -0
  122. package/lib-next/theme/Navbar/index.js +6 -271
  123. package/lib-next/theme/NavbarItem/ComponentTypes.js +27 -0
  124. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +2 -6
  125. package/lib-next/theme/NavbarItem/DocNavbarItem.js +11 -28
  126. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +10 -42
  127. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +25 -29
  128. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +2 -9
  129. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +14 -3
  130. package/lib-next/theme/NavbarItem/HtmlNavbarItem.js +30 -0
  131. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/index.js +5 -10
  132. package/lib-next/theme/NavbarItem/NavbarNavLink.js +49 -35
  133. package/lib-next/theme/NavbarItem/SearchNavbarItem.js +6 -1
  134. package/lib-next/theme/NavbarItem/index.js +4 -23
  135. package/lib-next/theme/NavbarItem/utils.js +2 -1
  136. package/lib-next/theme/NotFound.js +38 -33
  137. package/lib-next/theme/PaginatorNavLink/index.js +8 -2
  138. package/lib-next/theme/SearchMetadata/index.js +9 -0
  139. package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +19 -33
  140. package/lib-next/theme/SkipToContent/index.js +3 -29
  141. package/lib-next/theme/TOCCollapsible/CollapseButton.js +29 -0
  142. package/{src/theme/TOCCollapsible/styles.module.css → lib-next/theme/TOCCollapsible/CollapseButton.module.css} +1 -22
  143. package/lib-next/theme/TOCCollapsible/index.js +4 -16
  144. package/lib-next/theme/TOCCollapsible/index.module.css +31 -0
  145. package/lib-next/theme/TOCItems/Tree.js +40 -0
  146. package/lib-next/theme/TOCItems/index.js +3 -34
  147. package/lib-next/theme/TabItem/index.js +3 -1
  148. package/lib-next/theme/TabItem/styles.module.css +10 -0
  149. package/lib-next/theme/Tabs/__tests__/index.test.js +8 -8
  150. package/lib-next/theme/Tabs/index.js +5 -5
  151. package/lib-next/theme/Tabs/styles.module.css +4 -0
  152. package/lib-next/theme/Tag/index.js +6 -7
  153. package/lib-next/theme/TagsListInline/index.js +1 -1
  154. package/lib-next/theme/ThemedImage/index.js +3 -3
  155. package/package.json +25 -20
  156. package/src/admonitions.css +4 -0
  157. package/src/getSwizzleConfig.ts +173 -22
  158. package/src/index.ts +14 -15
  159. package/src/nprogress.css +41 -0
  160. package/src/nprogress.ts +31 -0
  161. package/src/theme/BackToTopButton/index.tsx +5 -114
  162. package/src/theme/BlogArchivePage/index.tsx +18 -17
  163. package/src/theme/BlogLayout/index.tsx +1 -5
  164. package/src/theme/BlogListPage/index.tsx +32 -13
  165. package/src/theme/BlogListPaginator/index.tsx +25 -28
  166. package/src/theme/BlogPostAuthor/index.tsx +14 -8
  167. package/src/theme/BlogPostItem/index.tsx +6 -6
  168. package/src/theme/BlogPostItem/styles.module.css +9 -0
  169. package/src/theme/BlogPostPage/index.tsx +55 -48
  170. package/src/theme/BlogPostPaginator/index.tsx +25 -28
  171. package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
  172. package/src/theme/BlogSidebar/{styles.module.css → Desktop/styles.module.css} +1 -2
  173. package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
  174. package/src/theme/BlogSidebar/index.tsx +10 -31
  175. package/src/theme/BlogTagsListPage/index.tsx +17 -14
  176. package/src/theme/BlogTagsPostsPage/index.tsx +46 -36
  177. package/src/theme/CodeBlock/Container/index.tsx +35 -0
  178. package/src/theme/CodeBlock/Container/styles.module.css +14 -0
  179. package/src/theme/CodeBlock/Content/Element.tsx +30 -0
  180. package/src/theme/CodeBlock/Content/String.tsx +111 -0
  181. package/src/theme/CodeBlock/{styles.module.css → Content/styles.module.css} +39 -29
  182. package/src/theme/CodeBlock/CopyButton/index.tsx +67 -0
  183. package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  184. package/src/theme/CodeBlock/Line/index.tsx +48 -0
  185. package/src/theme/CodeBlock/Line/styles.module.css +51 -0
  186. package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
  187. package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  188. package/src/theme/CodeBlock/index.tsx +29 -165
  189. package/src/theme/ColorModeToggle/index.tsx +67 -0
  190. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  191. package/src/theme/Details/index.tsx +1 -1
  192. package/src/theme/DocBreadcrumbs/index.tsx +65 -16
  193. package/src/theme/DocBreadcrumbs/styles.module.css +8 -15
  194. package/src/theme/DocCard/index.tsx +24 -17
  195. package/src/theme/DocCard/styles.module.css +8 -17
  196. package/src/theme/DocCardList/index.tsx +19 -10
  197. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +34 -7
  198. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +8 -0
  199. package/src/theme/DocItem/index.tsx +72 -56
  200. package/src/theme/DocItem/styles.module.css +6 -0
  201. package/src/theme/DocPage/Layout/Main/index.tsx +37 -0
  202. package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
  203. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
  204. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  205. package/src/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  206. package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
  207. package/src/theme/{BlogPostAuthor/styles.module.css → DocPage/Layout/index.module.css} +6 -3
  208. package/src/theme/DocPage/Layout/index.tsx +39 -0
  209. package/src/theme/DocPage/index.tsx +30 -160
  210. package/src/theme/DocPaginator/index.tsx +25 -28
  211. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  212. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  213. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  214. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  215. package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
  216. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  217. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  218. package/src/theme/DocSidebar/index.tsx +6 -121
  219. package/src/theme/DocSidebarItem/Category.tsx +210 -0
  220. package/src/theme/DocSidebarItem/{styles.module.css → Html.module.css} +0 -0
  221. package/src/theme/DocSidebarItem/Html.tsx +34 -0
  222. package/src/theme/DocSidebarItem/Link.module.css +10 -0
  223. package/src/theme/DocSidebarItem/Link.tsx +58 -0
  224. package/src/theme/DocSidebarItem/index.tsx +4 -260
  225. package/src/theme/DocSidebarItems/index.tsx +1 -6
  226. package/src/theme/DocTagDocListPage/index.tsx +40 -33
  227. package/src/theme/DocTagsListPage/index.tsx +21 -16
  228. package/src/theme/DocVersionBanner/index.tsx +5 -6
  229. package/src/theme/Footer/Copyright/index.tsx +20 -0
  230. package/src/theme/Footer/Layout/index.tsx +34 -0
  231. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  232. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  233. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  234. package/src/theme/Footer/Links/index.tsx +21 -0
  235. package/src/theme/Footer/Logo/index.tsx +41 -0
  236. package/src/theme/Footer/{styles.module.css → Logo/styles.module.css} +0 -0
  237. package/src/theme/Footer/index.tsx +12 -186
  238. package/src/theme/Heading/index.tsx +10 -22
  239. package/src/theme/IconDarkMode/index.tsx +20 -0
  240. package/src/theme/IconExternalLink/styles.module.css +0 -2
  241. package/src/theme/IconHome/index.tsx +20 -0
  242. package/src/theme/IconLanguage/index.tsx +3 -3
  243. package/src/theme/IconLightMode/index.tsx +20 -0
  244. package/src/theme/LastUpdated/index.tsx +1 -0
  245. package/src/theme/Layout/index.tsx +15 -10
  246. package/src/theme/LayoutProviders/index.tsx +5 -4
  247. package/src/theme/MDXComponents/A.tsx +14 -0
  248. package/src/theme/MDXComponents/Code.tsx +37 -0
  249. package/src/theme/MDXComponents/Details.tsx +25 -0
  250. package/src/theme/MDXComponents/Head.tsx +29 -0
  251. package/src/theme/MDXComponents/Heading.tsx +14 -0
  252. package/{lib-next/theme/MDXComponents/styles.css → src/theme/MDXComponents/Img.module.css} +1 -6
  253. package/src/theme/MDXComponents/Img.tsx +26 -0
  254. package/src/theme/MDXComponents/Pre.tsx +22 -0
  255. package/src/theme/MDXComponents/Ul.tsx +24 -0
  256. package/src/theme/MDXComponents/index.tsx +23 -66
  257. package/src/theme/MDXContent/index.tsx +15 -0
  258. package/src/theme/MDXPage/index.tsx +33 -28
  259. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  260. package/src/theme/Navbar/Content/index.tsx +86 -0
  261. package/src/theme/Navbar/Content/styles.module.css +15 -0
  262. package/src/theme/Navbar/Layout/index.tsx +57 -0
  263. package/{lib-next/theme/Navbar → src/theme/Navbar/Layout}/styles.module.css +0 -13
  264. package/src/theme/Navbar/Logo/index.tsx +19 -0
  265. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  266. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  267. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  268. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
  269. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  270. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  271. package/src/theme/Navbar/Search/index.tsx +15 -0
  272. package/src/theme/Navbar/Search/styles.module.css +20 -0
  273. package/src/theme/Navbar/index.tsx +6 -286
  274. package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
  275. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +2 -2
  276. package/src/theme/NavbarItem/DocNavbarItem.tsx +13 -32
  277. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +9 -49
  278. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +26 -33
  279. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +3 -10
  280. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +15 -3
  281. package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
  282. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx +5 -9
  283. package/src/theme/NavbarItem/NavbarNavLink.tsx +41 -29
  284. package/src/theme/NavbarItem/SearchNavbarItem.tsx +6 -1
  285. package/src/theme/NavbarItem/index.tsx +9 -39
  286. package/src/theme/NavbarItem/utils.ts +5 -2
  287. package/src/theme/NotFound.tsx +38 -33
  288. package/src/theme/PaginatorNavLink/index.tsx +8 -2
  289. package/src/theme/SearchMetadata/index.tsx +9 -0
  290. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +19 -33
  291. package/src/theme/SkipToContent/index.tsx +3 -29
  292. package/{lib-next/theme/TOCCollapsible/styles.module.css → src/theme/TOCCollapsible/CollapseButton.module.css} +1 -22
  293. package/src/theme/TOCCollapsible/CollapseButton.tsx +35 -0
  294. package/src/theme/TOCCollapsible/index.module.css +31 -0
  295. package/src/theme/TOCCollapsible/index.tsx +4 -17
  296. package/src/theme/TOCItems/Tree.tsx +46 -0
  297. package/src/theme/TOCItems/index.tsx +2 -41
  298. package/src/theme/TabItem/index.tsx +7 -1
  299. package/src/theme/TabItem/styles.module.css +10 -0
  300. package/src/theme/Tabs/index.tsx +8 -9
  301. package/src/theme/Tabs/styles.module.css +4 -0
  302. package/src/theme/Tag/index.tsx +6 -8
  303. package/src/theme/TagsListInline/index.tsx +1 -1
  304. package/src/theme/ThemedImage/index.tsx +4 -3
  305. package/src/theme-classic.d.ts +600 -76
  306. package/src/translations.ts +12 -6
  307. package/src/validateThemeConfig.ts +90 -39
  308. package/lib/types.d.ts +0 -11
  309. package/lib-next/theme/DocPage/styles.module.css +0 -86
  310. package/lib-next/theme/DocSidebar/styles.module.css +0 -107
  311. package/lib-next/theme/Seo/index.js +0 -40
  312. package/lib-next/theme/Toggle/index.js +0 -100
  313. package/lib-next/theme/Toggle/styles.module.css +0 -106
  314. package/src/theme/DocPage/styles.module.css +0 -86
  315. package/src/theme/DocSidebar/styles.module.css +0 -107
  316. package/src/theme/Seo/index.tsx +0 -49
  317. package/src/theme/Toggle/index.tsx +0 -117
  318. package/src/theme/Toggle/styles.module.css +0 -106
  319. package/src/types.d.ts +0 -11
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import React from 'react';
9
+ import clsx from 'clsx';
10
+
11
+ import type {Props} from '@theme/NavbarItem/HtmlNavbarItem';
12
+
13
+ export default function HtmlNavbarItem({
14
+ value,
15
+ className,
16
+ mobile = false,
17
+ isDropdownItem = false,
18
+ }: Props): JSX.Element {
19
+ const Comp = isDropdownItem ? 'li' : 'div';
20
+ return (
21
+ <Comp
22
+ className={clsx(
23
+ {
24
+ navbar__item: !mobile && !isDropdownItem,
25
+ 'menu__list-item': mobile,
26
+ },
27
+ className,
28
+ )}
29
+ dangerouslySetInnerHTML={{__html: value}}
30
+ />
31
+ );
32
+ }
@@ -27,10 +27,6 @@ export default function LocaleDropdownNavbarItem({
27
27
  } = useDocusaurusContext();
28
28
  const alternatePageUtils = useAlternatePageUtils();
29
29
 
30
- function getLocaleLabel(locale: string) {
31
- return localeConfigs[locale].label;
32
- }
33
-
34
30
  const localeItems = locales.map((locale): LinkLikeNavbarItemProps => {
35
31
  const to = `pathname://${alternatePageUtils.createUrl({
36
32
  locale,
@@ -38,7 +34,7 @@ export default function LocaleDropdownNavbarItem({
38
34
  })}`;
39
35
  return {
40
36
  isNavLink: true,
41
- label: getLocaleLabel(locale),
37
+ label: localeConfigs[locale]!.label,
42
38
  to,
43
39
  target: '_self',
44
40
  autoAddBaseUrl: false,
@@ -55,17 +51,17 @@ export default function LocaleDropdownNavbarItem({
55
51
  id: 'theme.navbar.mobileLanguageDropdown.label',
56
52
  description: 'The label for the mobile language switcher dropdown',
57
53
  })
58
- : getLocaleLabel(currentLocale);
54
+ : localeConfigs[currentLocale]!.label;
59
55
 
60
56
  return (
61
57
  <DropdownNavbarItem
62
58
  {...props}
63
59
  mobile={mobile}
64
60
  label={
65
- <span>
61
+ <>
66
62
  <IconLanguage className={styles.iconLanguage} />
67
- <span>{dropdownLabel}</span>
68
- </span>
63
+ {dropdownLabel}
64
+ </>
69
65
  }
70
66
  items={items}
71
67
  />
@@ -21,6 +21,7 @@ export default function NavbarNavLink({
21
21
  to,
22
22
  href,
23
23
  label,
24
+ html,
24
25
  activeClassName = '',
25
26
  prependBaseUrlToHref,
26
27
  ...props
@@ -33,36 +34,47 @@ export default function NavbarNavLink({
33
34
  const isExternalLink = label && href && !isInternalUrl(href);
34
35
  const isDropdownLink = activeClassName === dropdownLinkActiveClass;
35
36
 
37
+ // Link content is set through html XOR label
38
+ const linkContentProps = html
39
+ ? {dangerouslySetInnerHTML: {__html: html}}
40
+ : {
41
+ children: (
42
+ <>
43
+ {label}
44
+ {isExternalLink && (
45
+ <IconExternalLink
46
+ {...(isDropdownLink && {width: 12, height: 12})}
47
+ />
48
+ )}
49
+ </>
50
+ ),
51
+ };
52
+
53
+ if (href) {
54
+ return (
55
+ <Link
56
+ href={prependBaseUrlToHref ? normalizedHref : href}
57
+ {...props}
58
+ {...linkContentProps}
59
+ />
60
+ );
61
+ }
62
+
36
63
  return (
37
64
  <Link
38
- {...(href
39
- ? {
40
- href: prependBaseUrlToHref ? normalizedHref : href,
41
- }
42
- : {
43
- isNavLink: true,
44
- activeClassName: !props.className?.includes(activeClassName)
45
- ? activeClassName
46
- : '',
47
- to: toUrl,
48
- ...(activeBasePath || activeBaseRegex
49
- ? {
50
- isActive: (_match, location) =>
51
- activeBaseRegex
52
- ? isRegexpStringMatch(activeBaseRegex, location.pathname)
53
- : location.pathname.startsWith(activeBaseUrl),
54
- }
55
- : null),
56
- })}
57
- {...props}>
58
- {isExternalLink ? (
59
- <span>
60
- {label}
61
- <IconExternalLink {...(isDropdownLink && {width: 12, height: 12})} />
62
- </span>
63
- ) : (
64
- label
65
- )}
66
- </Link>
65
+ to={toUrl}
66
+ isNavLink
67
+ activeClassName={
68
+ !props.className?.includes(activeClassName) ? activeClassName : ''
69
+ }
70
+ {...((activeBasePath || activeBaseRegex) && {
71
+ isActive: (_match, location) =>
72
+ activeBaseRegex
73
+ ? isRegexpStringMatch(activeBaseRegex, location.pathname)
74
+ : location.pathname.startsWith(activeBaseUrl),
75
+ })}
76
+ {...props}
77
+ {...linkContentProps}
78
+ />
67
79
  );
68
80
  }
@@ -8,11 +8,16 @@
8
8
  import React from 'react';
9
9
  import type {Props} from '@theme/NavbarItem/SearchNavbarItem';
10
10
  import SearchBar from '@theme/SearchBar';
11
+ import NavbarSearch from '@theme/Navbar/Search';
11
12
 
12
13
  export default function SearchNavbarItem({mobile}: Props): JSX.Element | null {
13
14
  if (mobile) {
14
15
  return null;
15
16
  }
16
17
 
17
- return <SearchBar />;
18
+ return (
19
+ <NavbarSearch>
20
+ <SearchBar />
21
+ </NavbarSearch>
22
+ );
18
23
  }
@@ -6,56 +6,26 @@
6
6
  */
7
7
 
8
8
  import React from 'react';
9
- import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem';
10
- import DropdownNavbarItem, {
11
- type Props as DropdownNavbarItemProps,
12
- } from '@theme/NavbarItem/DropdownNavbarItem';
13
- import LocaleDropdownNavbarItem from '@theme/NavbarItem/LocaleDropdownNavbarItem';
14
- import SearchNavbarItem from '@theme/NavbarItem/SearchNavbarItem';
9
+ import {type Props as DropdownNavbarItemProps} from '@theme/NavbarItem/DropdownNavbarItem';
15
10
  import type {Types, Props} from '@theme/NavbarItem';
16
11
 
17
- const NavbarItemComponents: Record<
18
- Exclude<Types, undefined>,
19
- // Not really worth typing, as we pass all props down immediately
20
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
- () => (props: any) => JSX.Element
22
- > = {
23
- default: () => DefaultNavbarItem,
24
- localeDropdown: () => LocaleDropdownNavbarItem,
25
- search: () => SearchNavbarItem,
26
- dropdown: () => DropdownNavbarItem,
12
+ import ComponentTypes from '@theme/NavbarItem/ComponentTypes';
27
13
 
28
- // Need to lazy load these items as we don't know for sure the docs plugin is
29
- // loaded. See https://github.com/facebook/docusaurus/issues/3360
30
- /* eslint-disable @typescript-eslint/no-var-requires, global-require */
31
- docsVersion: () => require('@theme/NavbarItem/DocsVersionNavbarItem').default,
32
- docsVersionDropdown: () =>
33
- require('@theme/NavbarItem/DocsVersionDropdownNavbarItem').default,
34
- doc: () => require('@theme/NavbarItem/DocNavbarItem').default,
35
- docSidebar: () => require('@theme/NavbarItem/DocSidebarNavbarItem').default,
36
- /* eslint-enable @typescript-eslint/no-var-requires, global-require */
37
- } as const;
38
-
39
- type NavbarItemComponentType = keyof typeof NavbarItemComponents;
40
-
41
- const getNavbarItemComponent = (type: NavbarItemComponentType) => {
42
- const navbarItemComponentFn = NavbarItemComponents[type];
43
- if (!navbarItemComponentFn) {
14
+ const getNavbarItemComponent = (type: NonNullable<Types>) => {
15
+ const component = ComponentTypes[type];
16
+ if (!component) {
44
17
  throw new Error(`No NavbarItem component found for type "${type}".`);
45
18
  }
46
- return navbarItemComponentFn();
19
+ return component;
47
20
  };
48
21
 
49
- function getComponentType(
50
- type: Types,
51
- isDropdown: boolean,
52
- ): NavbarItemComponentType {
22
+ function getComponentType(type: Types, isDropdown: boolean) {
53
23
  // Backward compatibility: navbar item with no type set
54
24
  // but containing dropdown items should use the type "dropdown"
55
25
  if (!type || type === 'default') {
56
26
  return isDropdown ? 'dropdown' : 'default';
57
27
  }
58
- return type as NavbarItemComponentType;
28
+ return type as NonNullable<Types>;
59
29
  }
60
30
 
61
31
  export default function NavbarItem({type, ...props}: Props): JSX.Element {
@@ -64,5 +34,5 @@ export default function NavbarItem({type, ...props}: Props): JSX.Element {
64
34
  (props as DropdownNavbarItemProps).items !== undefined,
65
35
  );
66
36
  const NavbarItemComponent = getNavbarItemComponent(componentType);
67
- return <NavbarItemComponent {...props} />;
37
+ return <NavbarItemComponent {...(props as never)} />;
68
38
  }
@@ -5,6 +5,9 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- // eslint-disable-next-line import/no-named-export
9
- export const getInfimaActiveClassName = (mobile?: boolean): string =>
8
+ /* eslint-disable import/no-named-export */
9
+
10
+ export const getInfimaActiveClassName = (
11
+ mobile?: boolean,
12
+ ): `${'menu' | 'navbar'}__link--active` =>
10
13
  mobile ? 'menu__link--active' : 'navbar__link--active';
@@ -8,42 +8,47 @@
8
8
  import React from 'react';
9
9
  import Layout from '@theme/Layout';
10
10
  import Translate, {translate} from '@docusaurus/Translate';
11
+ import {PageMetadata} from '@docusaurus/theme-common';
11
12
 
12
13
  export default function NotFound(): JSX.Element {
13
14
  return (
14
- <Layout
15
- title={translate({
16
- id: 'theme.NotFound.title',
17
- message: 'Page Not Found',
18
- })}>
19
- <main className="container margin-vert--xl">
20
- <div className="row">
21
- <div className="col col--6 col--offset-3">
22
- <h1 className="hero__title">
23
- <Translate
24
- id="theme.NotFound.title"
25
- description="The title of the 404 page">
26
- Page Not Found
27
- </Translate>
28
- </h1>
29
- <p>
30
- <Translate
31
- id="theme.NotFound.p1"
32
- description="The first paragraph of the 404 page">
33
- We could not find what you were looking for.
34
- </Translate>
35
- </p>
36
- <p>
37
- <Translate
38
- id="theme.NotFound.p2"
39
- description="The 2nd paragraph of the 404 page">
40
- Please contact the owner of the site that linked you to the
41
- original URL and let them know their link is broken.
42
- </Translate>
43
- </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>
44
49
  </div>
45
- </div>
46
- </main>
47
- </Layout>
50
+ </main>
51
+ </Layout>
52
+ </>
48
53
  );
49
54
  }
@@ -6,13 +6,19 @@
6
6
  */
7
7
 
8
8
  import React from 'react';
9
+ import clsx from 'clsx';
9
10
  import Link from '@docusaurus/Link';
10
11
  import type {Props} from '@theme/PaginatorNavLink';
11
12
 
12
13
  export default function PaginatorNavLink(props: Props): JSX.Element {
13
- const {permalink, title, subLabel} = props;
14
+ const {permalink, title, subLabel, isNext} = props;
14
15
  return (
15
- <Link className="pagination-nav__link" to={permalink}>
16
+ <Link
17
+ className={clsx(
18
+ 'pagination-nav__link',
19
+ isNext ? 'pagination-nav__link--next' : 'pagination-nav__link--prev',
20
+ )}
21
+ to={permalink}>
16
22
  {subLabel && <div className="pagination-nav__sublabel">{subLabel}</div>}
17
23
  <div className="pagination-nav__label">{title}</div>
18
24
  </Link>
@@ -26,6 +26,15 @@ export default function SearchMetadata({
26
26
 
27
27
  return (
28
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 */}
29
38
  {language && <meta name="docsearch:language" content={language} />}
30
39
  {version && <meta name="docsearch:version" content={version} />}
31
40
  {tag && <meta name="docsearch:docusaurus_tag" content={tag} />}
@@ -9,19 +9,18 @@ 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
12
  import SearchMetadata from '@theme/SearchMetadata';
14
- import Seo from '@theme/Seo';
15
13
  import {
14
+ PageMetadata,
16
15
  DEFAULT_SEARCH_TAG,
17
- useTitleFormatter,
18
16
  useAlternatePageUtils,
19
17
  useThemeConfig,
20
18
  keyboardFocusedClassName,
21
19
  } from '@docusaurus/theme-common';
22
20
  import {useLocation} from '@docusaurus/router';
23
21
 
24
- // Useful for SEO
22
+ // TODO move to SiteMetadataDefaults or theme-common ?
23
+ // Useful for i18n/SEO
25
24
  // See https://developers.google.com/search/docs/advanced/crawling/localized-versions
26
25
  // See https://github.com/facebook/docusaurus/issues/3317
27
26
  function AlternateLangHeaders(): JSX.Element {
@@ -66,6 +65,7 @@ function useDefaultCanonicalUrl() {
66
65
  return siteUrl + useBaseUrl(pathname);
67
66
  }
68
67
 
68
+ // TODO move to SiteMetadataDefaults or theme-common ?
69
69
  function CanonicalUrlHeaders({permalink}: {permalink?: string}) {
70
70
  const {
71
71
  siteConfig: {url: siteUrl},
@@ -83,56 +83,42 @@ function CanonicalUrlHeaders({permalink}: {permalink?: string}) {
83
83
  );
84
84
  }
85
85
 
86
- export default function LayoutHead(props: Props): JSX.Element {
86
+ export default function SiteMetadata(): JSX.Element {
87
87
  const {
88
- siteConfig: {favicon},
89
- i18n: {currentLocale, localeConfigs},
88
+ i18n: {currentLocale},
90
89
  } = useDocusaurusContext();
90
+
91
+ // TODO maybe move these 2 themeConfig to siteConfig?
92
+ // These seems useful for other themes as well
91
93
  const {metadata, image: defaultImage} = useThemeConfig();
92
- const {title, description, image, keywords, searchMetadata} = props;
93
- const faviconUrl = useBaseUrl(favicon);
94
- const pageTitle = useTitleFormatter(title);
95
- const {htmlLang, direction: htmlDir} = localeConfigs[currentLocale];
96
94
 
97
95
  return (
98
96
  <>
99
97
  <Head>
100
- <html lang={htmlLang} dir={htmlDir} />
101
- {favicon && <link rel="icon" href={faviconUrl} />}
102
- <title>{pageTitle}</title>
103
- <meta property="og:title" content={pageTitle} />
104
98
  <meta name="twitter:card" content="summary_large_image" />
105
99
  {/* The keyboard focus class name need to be applied when SSR so links
106
100
  are outlined when JS is disabled */}
107
101
  <body className={keyboardFocusedClassName} />
108
102
  </Head>
109
103
 
110
- {/* image can override the default image */}
111
- {defaultImage && <Seo image={defaultImage} />}
112
- {image && <Seo image={image} />}
113
-
114
- <Seo description={description} keywords={keywords} />
104
+ {defaultImage && <PageMetadata image={defaultImage} />}
115
105
 
116
106
  <CanonicalUrlHeaders />
117
107
 
118
108
  <AlternateLangHeaders />
119
109
 
120
- <SearchMetadata
121
- tag={DEFAULT_SEARCH_TAG}
122
- locale={currentLocale}
123
- {...searchMetadata}
124
- />
110
+ <SearchMetadata tag={DEFAULT_SEARCH_TAG} locale={currentLocale} />
125
111
 
126
- <Head
127
- // it's important to have an additional <Head> element here,
128
- // as it allows react-helmet to override values set in previous <Head>
129
- // ie we can override default metadata such as "twitter:card"
130
- // In same Head, the same meta would appear twice instead of overriding
131
- // See react-helmet doc
132
- >
112
+ {/*
113
+ It's important to have an additional <Head> element here, as it allows
114
+ react-helmet to override default metadata values set in previous <Head>
115
+ like "twitter:card". In same Head, the same meta would appear twice
116
+ instead of overriding.
117
+ */}
118
+ <Head>
133
119
  {/* Yes, "metadatum" is the grammatically correct term */}
134
120
  {metadata.map((metadatum, i) => (
135
- <meta key={`metadata_${i}`} {...metadatum} />
121
+ <meta key={i} {...metadatum} />
136
122
  ))}
137
123
  </Head>
138
124
  </>
@@ -5,40 +5,14 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import React, {useRef} from 'react';
9
- import {useHistory} from '@docusaurus/router';
8
+ import React from 'react';
10
9
  import Translate from '@docusaurus/Translate';
11
- import {useLocationChange} from '@docusaurus/theme-common';
10
+ import {useSkipToContent} from '@docusaurus/theme-common';
12
11
 
13
12
  import styles from './styles.module.css';
14
13
 
15
- function programmaticFocus(el: HTMLElement) {
16
- el.setAttribute('tabindex', '-1');
17
- el.focus();
18
- el.removeAttribute('tabindex');
19
- }
20
-
21
14
  export default function SkipToContent(): JSX.Element {
22
- const containerRef = useRef<HTMLDivElement>(null);
23
- const {action} = useHistory();
24
- const handleSkip = (e: React.MouseEvent<HTMLAnchorElement>) => {
25
- e.preventDefault();
26
-
27
- const targetElement: HTMLElement | null =
28
- document.querySelector('main:first-of-type') ||
29
- document.querySelector('.main-wrapper');
30
-
31
- if (targetElement) {
32
- programmaticFocus(targetElement);
33
- }
34
- };
35
-
36
- useLocationChange(({location}) => {
37
- if (containerRef.current && !location.hash && action === 'PUSH') {
38
- programmaticFocus(containerRef.current);
39
- }
40
- });
41
-
15
+ const {containerRef, handleSkip} = useSkipToContent();
42
16
  return (
43
17
  <div ref={containerRef} role="region">
44
18
  {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
@@ -5,12 +5,6 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
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
8
  .tocCollapsibleButton {
15
9
  font-size: inherit;
16
10
  display: flex;
@@ -30,21 +24,6 @@
30
24
  transition: transform var(--ifm-transition-fast);
31
25
  }
32
26
 
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 {
27
+ .tocCollapsibleButtonExpanded::after {
49
28
  transform: none;
50
29
  }
@@ -0,0 +1,35 @@
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 styles from './CollapseButton.module.css';
12
+ import type {Props} from '@theme/TOCCollapsible/CollapseButton';
13
+
14
+ export default function TOCCollapsibleCollapseButton({
15
+ collapsed,
16
+ ...props
17
+ }: Props): JSX.Element {
18
+ return (
19
+ <button
20
+ type="button"
21
+ {...props}
22
+ className={clsx(
23
+ 'clean-btn',
24
+ styles.tocCollapsibleButton,
25
+ !collapsed && styles.tocCollapsibleButtonExpanded,
26
+ props.className,
27
+ )}>
28
+ <Translate
29
+ id="theme.TOCCollapsible.toggleButtonLabel"
30
+ description="The label used by the button on the collapsible TOC component">
31
+ On this page
32
+ </Translate>
33
+ </button>
34
+ );
35
+ }
@@ -0,0 +1,31 @@
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
+ .tocCollapsibleContent > ul {
15
+ border-left: none;
16
+ border-top: 1px solid var(--ifm-color-emphasis-300);
17
+ padding: 0.2rem 0;
18
+ font-size: 15px;
19
+ }
20
+
21
+ .tocCollapsibleContent ul li {
22
+ margin: 0.4rem 0.8rem;
23
+ }
24
+
25
+ .tocCollapsibleContent a {
26
+ display: block;
27
+ }
28
+
29
+ .tocCollapsibleExpanded {
30
+ transform: none;
31
+ }