@docusaurus/theme-classic 2.0.0-beta.8bda3b2db → 2.0.0-beta.9

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 (310) hide show
  1. package/README.md +1 -1
  2. package/codeTranslations/ar.json +12 -7
  3. package/codeTranslations/base.json +17 -7
  4. package/codeTranslations/bn.json +11 -5
  5. package/codeTranslations/cs.json +62 -0
  6. package/codeTranslations/da.json +8 -3
  7. package/codeTranslations/de.json +8 -3
  8. package/codeTranslations/es.json +15 -10
  9. package/codeTranslations/fa.json +31 -26
  10. package/codeTranslations/fil.json +8 -3
  11. package/codeTranslations/fr.json +8 -3
  12. package/codeTranslations/he.json +9 -4
  13. package/codeTranslations/hi.json +9 -4
  14. package/codeTranslations/ja.json +8 -3
  15. package/codeTranslations/ko.json +8 -3
  16. package/codeTranslations/pl.json +8 -3
  17. package/codeTranslations/pt-BR.json +16 -11
  18. package/codeTranslations/pt-PT.json +8 -3
  19. package/codeTranslations/ru.json +10 -5
  20. package/codeTranslations/sr.json +62 -0
  21. package/codeTranslations/tr.json +9 -4
  22. package/codeTranslations/vi.json +10 -5
  23. package/codeTranslations/zh-Hans.json +9 -4
  24. package/codeTranslations/zh-Hant.json +9 -4
  25. package/lib/__tests__/validateThemeConfig.test.js +277 -3
  26. package/lib/admonitions.css +35 -0
  27. package/lib/index.js +31 -8
  28. package/lib/prism-include-languages.js +9 -5
  29. package/lib/theme/AnnouncementBar/index.js +10 -16
  30. package/lib/theme/AnnouncementBar/styles.module.css +25 -30
  31. package/lib/theme/BackToTopButton/index.js +140 -0
  32. package/lib/theme/BackToTopButton/styles.module.css +42 -0
  33. package/lib/theme/BlogArchivePage/index.js +89 -0
  34. package/lib/theme/BlogLayout/index.js +51 -0
  35. package/lib/theme/BlogListPage/index.js +10 -21
  36. package/lib/theme/BlogPostAuthor/index.js +51 -0
  37. package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
  38. package/lib/theme/BlogPostAuthors/index.js +47 -0
  39. package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
  40. package/lib/theme/BlogPostItem/index.js +58 -67
  41. package/lib/theme/BlogPostPage/index.js +37 -24
  42. package/lib/theme/BlogSidebar/styles.module.css +2 -2
  43. package/lib/theme/BlogTagsListPage/index.js +8 -44
  44. package/lib/theme/BlogTagsPostsPage/index.js +24 -38
  45. package/lib/theme/CodeBlock/index.js +45 -41
  46. package/lib/theme/CodeBlock/styles.module.css +6 -9
  47. package/lib/theme/Details/index.js +30 -0
  48. package/lib/theme/Details/styles.module.css +13 -0
  49. package/lib/theme/DocItem/index.js +29 -45
  50. package/lib/theme/DocItem/styles.module.css +5 -9
  51. package/lib/theme/DocItemFooter/index.js +79 -0
  52. package/lib/theme/DocItemFooter/styles.module.css +18 -0
  53. package/lib/theme/DocPage/index.js +25 -49
  54. package/lib/theme/DocPage/styles.module.css +8 -23
  55. package/lib/theme/DocSidebar/index.js +45 -227
  56. package/lib/theme/DocSidebar/styles.module.css +0 -18
  57. package/lib/theme/DocSidebarItem/index.js +177 -0
  58. package/lib/theme/DocSidebarItem/styles.module.css +15 -0
  59. package/lib/theme/DocTagDocListPage/index.js +89 -0
  60. package/lib/theme/DocTagsListPage/index.js +44 -0
  61. package/lib/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +37 -18
  62. package/lib/theme/EditThisPage/index.js +3 -1
  63. package/lib/theme/Footer/index.js +13 -4
  64. package/lib/theme/Heading/index.js +7 -9
  65. package/lib/theme/Heading/styles.css +4 -6
  66. package/lib/theme/Heading/styles.module.css +9 -5
  67. package/lib/theme/IconClose/index.js +31 -0
  68. package/lib/theme/LastUpdated/index.js +4 -2
  69. package/lib/theme/LayoutHead/index.js +13 -11
  70. package/lib/theme/LayoutProviders/index.js +11 -5
  71. package/lib/theme/Logo/index.js +14 -12
  72. package/lib/theme/MDXComponents/index.js +45 -4
  73. package/lib/theme/MDXComponents/styles.css +11 -0
  74. package/lib/theme/MDXPage/index.js +2 -1
  75. package/lib/theme/Navbar/index.js +164 -42
  76. package/lib/theme/Navbar/styles.module.css +10 -3
  77. package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -123
  78. package/lib/theme/NavbarItem/DocNavbarItem.js +6 -5
  79. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
  80. package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
  81. package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +5 -6
  82. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  83. package/lib/theme/NavbarItem/index.js +31 -11
  84. package/lib/theme/Seo/index.js +10 -7
  85. package/lib/theme/SkipToContent/index.js +9 -3
  86. package/lib/theme/SkipToContent/styles.module.css +1 -0
  87. package/lib/theme/TOC/index.js +9 -29
  88. package/lib/theme/TOC/styles.module.css +1 -1
  89. package/lib/theme/TOCCollapsible/index.js +53 -0
  90. package/lib/theme/TOCCollapsible/styles.module.css +50 -0
  91. package/lib/theme/TOCInline/index.js +7 -27
  92. package/lib/theme/TOCItems/index.js +78 -0
  93. package/lib/theme/Tabs/__tests__/index.test.js +123 -0
  94. package/lib/theme/Tabs/index.js +73 -50
  95. package/lib/theme/Tabs/styles.module.css +0 -13
  96. package/lib/theme/Tag/index.js +40 -0
  97. package/lib/theme/Tag/styles.module.css +70 -0
  98. package/lib/theme/TagsListByLetter/index.js +48 -0
  99. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  100. package/lib/theme/TagsListInline/index.js +44 -0
  101. package/lib/theme/TagsListInline/styles.module.css +15 -0
  102. package/lib/theme/ThemedImage/index.js +4 -5
  103. package/lib/theme/Toggle/index.js +23 -18
  104. package/lib/theme/Toggle/styles.module.css +91 -0
  105. package/lib/theme/UserPreferencesProvider/index.js +1 -9
  106. package/lib/theme/hooks/useHideableNavbar.js +14 -32
  107. package/lib/theme/hooks/useTabGroupChoice.js +2 -4
  108. package/lib/theme/hooks/useTheme.js +2 -2
  109. package/lib/theme/hooks/useWindowSize.js +33 -20
  110. package/lib/theme/prism-include-languages.js +4 -3
  111. package/lib/translations.js +4 -4
  112. package/lib/types.d.ts +338 -138
  113. package/lib/validateThemeConfig.js +226 -245
  114. package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
  115. package/lib-next/admonitions.css +35 -0
  116. package/lib-next/index.js +33 -7
  117. package/lib-next/prism-include-languages.js +0 -2
  118. package/lib-next/theme/AnnouncementBar/index.js +9 -18
  119. package/lib-next/theme/AnnouncementBar/styles.module.css +25 -30
  120. package/lib-next/theme/BackToTopButton/index.js +131 -0
  121. package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
  122. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  123. package/lib-next/theme/BlogLayout/index.js +40 -0
  124. package/lib-next/theme/BlogListPage/index.js +16 -24
  125. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  126. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  127. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  128. package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
  129. package/lib-next/theme/BlogPostItem/index.js +79 -86
  130. package/lib-next/theme/BlogPostPage/index.js +70 -35
  131. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  132. package/lib-next/theme/BlogTagsListPage/index.js +13 -54
  133. package/lib-next/theme/BlogTagsPostsPage/index.js +28 -38
  134. package/lib-next/theme/CodeBlock/index.js +54 -53
  135. package/lib-next/theme/CodeBlock/styles.module.css +6 -9
  136. package/lib-next/theme/Details/index.js +20 -0
  137. package/lib-next/theme/Details/styles.module.css +13 -0
  138. package/lib-next/theme/DocItem/index.js +46 -55
  139. package/lib-next/theme/DocItem/styles.module.css +5 -9
  140. package/lib-next/theme/DocItemFooter/index.js +79 -0
  141. package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
  142. package/lib-next/theme/DocPage/index.js +25 -43
  143. package/lib-next/theme/DocPage/styles.module.css +8 -23
  144. package/lib-next/theme/DocSidebar/index.js +59 -288
  145. package/lib-next/theme/DocSidebar/styles.module.css +0 -18
  146. package/lib-next/theme/DocSidebarItem/index.js +181 -0
  147. package/lib-next/theme/DocSidebarItem/styles.module.css +15 -0
  148. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  149. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  150. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +44 -36
  151. package/lib-next/theme/EditThisPage/index.js +6 -1
  152. package/lib-next/theme/Footer/index.js +24 -4
  153. package/lib-next/theme/Heading/index.js +10 -13
  154. package/lib-next/theme/Heading/styles.css +4 -6
  155. package/lib-next/theme/Heading/styles.module.css +9 -5
  156. package/lib-next/theme/IconClose/index.js +23 -0
  157. package/lib-next/theme/LastUpdated/index.js +3 -2
  158. package/lib-next/theme/LayoutHead/index.js +9 -15
  159. package/lib-next/theme/LayoutProviders/index.js +17 -6
  160. package/lib-next/theme/Logo/index.js +23 -19
  161. package/lib-next/theme/MDXComponents/index.js +34 -7
  162. package/lib-next/theme/MDXComponents/styles.css +11 -0
  163. package/lib-next/theme/MDXPage/index.js +10 -2
  164. package/lib-next/theme/Navbar/index.js +192 -56
  165. package/lib-next/theme/Navbar/styles.module.css +10 -3
  166. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
  167. package/lib-next/theme/NavbarItem/DocNavbarItem.js +6 -5
  168. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
  169. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +158 -0
  170. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -8
  171. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  172. package/lib-next/theme/NavbarItem/index.js +25 -12
  173. package/lib-next/theme/Seo/index.js +11 -7
  174. package/lib-next/theme/SkipToContent/index.js +5 -6
  175. package/lib-next/theme/SkipToContent/styles.module.css +1 -0
  176. package/lib-next/theme/TOC/index.js +12 -36
  177. package/lib-next/theme/TOC/styles.module.css +1 -1
  178. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  179. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  180. package/lib-next/theme/TOCInline/index.js +10 -28
  181. package/lib-next/theme/TOCItems/index.js +85 -0
  182. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  183. package/lib-next/theme/Tabs/index.js +91 -43
  184. package/lib-next/theme/Tabs/styles.module.css +0 -13
  185. package/lib-next/theme/Tag/index.js +27 -0
  186. package/lib-next/theme/Tag/styles.module.css +70 -0
  187. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  188. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  189. package/lib-next/theme/TagsListInline/index.js +31 -0
  190. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  191. package/lib-next/theme/ThemedImage/index.js +5 -6
  192. package/lib-next/theme/Toggle/index.js +20 -15
  193. package/lib-next/theme/Toggle/styles.module.css +91 -0
  194. package/lib-next/theme/UserPreferencesProvider/index.js +0 -4
  195. package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
  196. package/lib-next/theme/hooks/useTabGroupChoice.js +2 -4
  197. package/lib-next/theme/hooks/useTheme.js +2 -2
  198. package/lib-next/theme/hooks/useWindowSize.js +34 -20
  199. package/lib-next/theme/prism-include-languages.js +2 -1
  200. package/lib-next/translations.js +6 -10
  201. package/lib-next/types.d.ts +338 -138
  202. package/lib-next/validateThemeConfig.js +134 -110
  203. package/package.json +24 -19
  204. package/src/__tests__/validateThemeConfig.test.js +277 -3
  205. package/src/admonitions.css +35 -0
  206. package/src/index.ts +44 -14
  207. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  208. package/src/theme/AnnouncementBar/index.tsx +10 -17
  209. package/src/theme/AnnouncementBar/styles.module.css +25 -30
  210. package/src/theme/BackToTopButton/index.tsx +142 -0
  211. package/src/theme/BackToTopButton/styles.module.css +42 -0
  212. package/src/theme/BlogArchivePage/index.tsx +91 -0
  213. package/src/theme/BlogLayout/index.tsx +44 -0
  214. package/src/theme/BlogListPage/index.tsx +17 -24
  215. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  216. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  217. package/src/theme/BlogPostAuthors/index.tsx +36 -0
  218. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  219. package/src/theme/BlogPostItem/index.tsx +70 -80
  220. package/src/theme/BlogPostPage/index.tsx +72 -35
  221. package/src/theme/BlogSidebar/styles.module.css +2 -2
  222. package/src/theme/BlogTagsListPage/index.tsx +13 -56
  223. package/src/theme/BlogTagsPostsPage/index.tsx +28 -38
  224. package/src/theme/CodeBlock/index.tsx +70 -55
  225. package/src/theme/CodeBlock/styles.module.css +6 -9
  226. package/src/theme/Details/index.tsx +24 -0
  227. package/src/theme/Details/styles.module.css +13 -0
  228. package/src/theme/DocItem/index.tsx +49 -55
  229. package/src/theme/DocItem/styles.module.css +5 -9
  230. package/src/theme/DocItemFooter/index.tsx +91 -0
  231. package/src/theme/DocItemFooter/styles.module.css +18 -0
  232. package/src/theme/DocPage/index.tsx +24 -38
  233. package/src/theme/DocPage/styles.module.css +8 -23
  234. package/src/theme/DocSidebar/index.tsx +70 -300
  235. package/src/theme/DocSidebar/styles.module.css +0 -18
  236. package/src/theme/DocSidebarItem/index.tsx +206 -0
  237. package/src/theme/DocSidebarItem/styles.module.css +15 -0
  238. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  239. package/src/theme/DocTagsListPage/index.tsx +41 -0
  240. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +58 -44
  241. package/src/theme/EditThisPage/index.tsx +6 -1
  242. package/src/theme/Footer/index.tsx +26 -4
  243. package/src/theme/Heading/index.tsx +10 -13
  244. package/src/theme/Heading/styles.css +4 -6
  245. package/src/theme/Heading/styles.module.css +9 -5
  246. package/src/theme/IconClose/index.tsx +26 -0
  247. package/src/theme/LastUpdated/index.tsx +3 -2
  248. package/src/theme/LayoutHead/index.tsx +9 -9
  249. package/src/theme/LayoutProviders/index.tsx +17 -6
  250. package/src/theme/Logo/index.tsx +19 -15
  251. package/src/theme/MDXComponents/index.tsx +39 -5
  252. package/src/theme/MDXComponents/styles.css +11 -0
  253. package/src/theme/MDXPage/index.tsx +10 -2
  254. package/src/theme/Navbar/index.tsx +202 -61
  255. package/src/theme/Navbar/styles.module.css +10 -3
  256. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
  257. package/src/theme/NavbarItem/DocNavbarItem.tsx +11 -14
  258. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
  259. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  260. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +180 -0
  261. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -7
  262. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  263. package/src/theme/NavbarItem/index.tsx +41 -16
  264. package/src/theme/Seo/index.tsx +7 -4
  265. package/src/theme/SkipToContent/index.tsx +5 -6
  266. package/src/theme/SkipToContent/styles.module.css +1 -0
  267. package/src/theme/TOC/index.tsx +12 -41
  268. package/src/theme/TOC/styles.module.css +1 -1
  269. package/src/theme/TOCCollapsible/index.tsx +58 -0
  270. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  271. package/src/theme/TOCInline/index.tsx +13 -32
  272. package/src/theme/TOCItems/index.tsx +96 -0
  273. package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
  274. package/src/theme/Tabs/index.tsx +93 -49
  275. package/src/theme/Tabs/styles.module.css +0 -13
  276. package/src/theme/Tag/index.tsx +31 -0
  277. package/src/theme/Tag/styles.module.css +70 -0
  278. package/src/theme/TagsListByLetter/index.tsx +45 -0
  279. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  280. package/src/theme/TagsListInline/index.tsx +35 -0
  281. package/src/theme/TagsListInline/styles.module.css +15 -0
  282. package/src/theme/ThemedImage/index.tsx +6 -6
  283. package/src/theme/Toggle/index.tsx +20 -15
  284. package/src/theme/Toggle/styles.module.css +91 -0
  285. package/src/theme/UserPreferencesProvider/index.tsx +0 -5
  286. package/src/theme/hooks/useContextualSearchFilters.ts +1 -1
  287. package/src/theme/hooks/useHideableNavbar.ts +32 -45
  288. package/src/theme/hooks/useTabGroupChoice.ts +4 -4
  289. package/src/theme/hooks/useTheme.ts +2 -2
  290. package/src/theme/hooks/useWindowSize.ts +38 -20
  291. package/src/theme/prism-include-languages.ts +3 -2
  292. package/src/translations.ts +6 -10
  293. package/src/types.d.ts +338 -138
  294. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +144 -90
  295. package/tsconfig.json +1 -2
  296. package/update-code-translations.js +10 -6
  297. package/update-code-translations.test.js +1 -1
  298. package/update.js +151 -0
  299. package/lib/theme/Toggle/styles.css +0 -103
  300. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  301. package/lib/theme/hooks/useScrollPosition.js +0 -49
  302. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  303. package/lib-next/theme/Toggle/styles.css +0 -103
  304. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  305. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  306. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  307. package/src/theme/Toggle/styles.css +0 -103
  308. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  309. package/src/theme/hooks/useScrollPosition.ts +0 -45
  310. package/src/theme/hooks/useTOCHighlight.ts +0 -98
@@ -3,9 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.NavLink = NavLink;
6
7
  exports.default = void 0;
7
8
 
8
- var _react = _interopRequireWildcard(require("react"));
9
+ var _react = _interopRequireDefault(require("react"));
9
10
 
10
11
  var _clsx = _interopRequireDefault(require("clsx"));
11
12
 
@@ -13,19 +14,15 @@ var _Link = _interopRequireDefault(require("@docusaurus/Link"));
13
14
 
14
15
  var _useBaseUrl = _interopRequireDefault(require("@docusaurus/useBaseUrl"));
15
16
 
16
- var _router = require("@docusaurus/router");
17
-
18
- var _themeCommon = require("@docusaurus/theme-common");
19
-
20
17
  var _IconExternalLink = _interopRequireDefault(require("@theme/IconExternalLink"));
21
18
 
22
19
  var _isInternalUrl = _interopRequireDefault(require("@docusaurus/isInternalUrl"));
23
20
 
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+ var _themeCommon = require("@docusaurus/theme-common");
25
22
 
26
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+ var _index = require("./index");
27
24
 
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
26
 
30
27
  /**
31
28
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -41,10 +38,12 @@ function NavLink({
41
38
  to,
42
39
  href,
43
40
  label,
44
- activeClassName = 'navbar__link--active',
41
+ activeClassName = '',
45
42
  prependBaseUrlToHref,
46
43
  ...props
47
44
  }) {
45
+ var _props$className;
46
+
48
47
  // TODO all this seems hacky
49
48
  // {to: 'version'} should probably be forbidden, in favor of {to: '/version'}
50
49
  const toUrl = (0, _useBaseUrl.default)(to);
@@ -58,10 +57,10 @@ function NavLink({
58
57
  href: prependBaseUrlToHref ? normalizedHref : href
59
58
  } : {
60
59
  isNavLink: true,
61
- activeClassName,
60
+ activeClassName: !((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes(activeClassName)) ? activeClassName : '',
62
61
  to: toUrl,
63
62
  ...(activeBasePath || activeBaseRegex ? {
64
- isActive: (_match, location) => activeBaseRegex ? new RegExp(activeBaseRegex).test(location.pathname) : location.pathname.startsWith(activeBaseUrl)
63
+ isActive: (_match, location) => activeBaseRegex ? (0, _themeCommon.isRegexpStringMatch)(activeBaseRegex, location.pathname) : location.pathname.startsWith(activeBaseUrl)
65
64
  } : null)
66
65
  }} {...props}>
67
66
  {isExternalLink ? <span>
@@ -74,135 +73,40 @@ function NavLink({
74
73
  </_Link.default>;
75
74
  }
76
75
 
77
- function NavItemDesktop({
78
- items,
79
- position,
76
+ function DefaultNavbarItemDesktop({
80
77
  className,
78
+ isDropdownItem = false,
81
79
  ...props
82
80
  }) {
83
- var _props$children;
84
-
85
- const dropdownRef = (0, _react.useRef)(null);
86
- const dropdownMenuRef = (0, _react.useRef)(null);
87
- const [showDropdown, setShowDropdown] = (0, _react.useState)(false);
88
- (0, _react.useEffect)(() => {
89
- const handleClickOutside = event => {
90
- if (!dropdownRef.current || dropdownRef.current.contains(event.target)) {
91
- return;
92
- }
93
-
94
- setShowDropdown(false);
95
- };
96
-
97
- document.addEventListener('mousedown', handleClickOutside);
98
- document.addEventListener('touchstart', handleClickOutside);
99
- return () => {
100
- document.removeEventListener('mousedown', handleClickOutside);
101
- document.removeEventListener('touchstart', handleClickOutside);
102
- };
103
- }, [dropdownRef]);
104
-
105
- const navLinkClassNames = (extraClassName, isDropdownItem = false) => (0, _clsx.default)({
106
- 'navbar__item navbar__link': !isDropdownItem,
107
- dropdown__link: isDropdownItem
108
- }, extraClassName);
109
-
110
- if (!items) {
111
- return <NavLink className={navLinkClassNames(className)} {...props} />;
81
+ const element = <NavLink className={(0, _clsx.default)(isDropdownItem ? 'dropdown__link' : 'navbar__item navbar__link', className)} {...props} />;
82
+
83
+ if (isDropdownItem) {
84
+ return <li>{element}</li>;
112
85
  }
113
86
 
114
- return <div ref={dropdownRef} className={(0, _clsx.default)('navbar__item', 'dropdown', 'dropdown--hoverable', {
115
- 'dropdown--left': position === 'left',
116
- 'dropdown--right': position === 'right',
117
- 'dropdown--show': showDropdown
118
- })}>
119
- <NavLink className={navLinkClassNames(className)} {...props} onClick={props.to ? undefined : e => e.preventDefault()} onKeyDown={e => {
120
- if (e.key === 'Enter') {
121
- e.preventDefault();
122
- setShowDropdown(!showDropdown);
123
- }
124
- }}>
125
- {(_props$children = props.children) !== null && _props$children !== void 0 ? _props$children : props.label}
126
- </NavLink>
127
- <ul ref={dropdownMenuRef} className="dropdown__menu">
128
- {items.map(({
129
- className: childItemClassName,
130
- ...childItemProps
131
- }, i) => <li key={i}>
132
- <NavLink onKeyDown={e => {
133
- if (i === items.length - 1 && e.key === 'Tab') {
134
- e.preventDefault();
135
- setShowDropdown(false);
136
- const nextNavbarItem = dropdownRef.current.nextElementSibling;
137
-
138
- if (nextNavbarItem) {
139
- nextNavbarItem.focus();
140
- }
141
- }
142
- }} activeClassName={dropdownLinkActiveClass} className={navLinkClassNames(childItemClassName, true)} {...childItemProps} />
143
- </li>)}
144
- </ul>
145
- </div>;
87
+ return element;
146
88
  }
147
89
 
148
- function NavItemMobile({
149
- items,
90
+ function DefaultNavbarItemMobile({
150
91
  className,
151
- position: _position,
152
- // Need to destructure position from props so that it doesn't get passed on.
92
+ isDropdownItem: _isDropdownItem,
153
93
  ...props
154
94
  }) {
155
- var _menuListRef$current, _menuListRef$current2, _props$children2;
156
-
157
- const menuListRef = (0, _react.useRef)(null);
158
- const {
159
- pathname
160
- } = (0, _router.useLocation)();
161
- const [collapsed, setCollapsed] = (0, _react.useState)(() => {
162
- var _items$some;
163
-
164
- return (_items$some = !(items !== null && items !== void 0 && items.some(item => (0, _themeCommon.isSamePath)(item.to, pathname)))) !== null && _items$some !== void 0 ? _items$some : true;
165
- });
166
-
167
- const navLinkClassNames = (extraClassName, isSubList = false) => (0, _clsx.default)('menu__link', {
168
- 'menu__link--sublist': isSubList
169
- }, extraClassName);
170
-
171
- if (!items) {
172
- return <li className="menu__list-item">
173
- <NavLink className={navLinkClassNames(className)} {...props} />
174
- </li>;
175
- }
176
-
177
- const menuListHeight = (_menuListRef$current = menuListRef.current) !== null && _menuListRef$current !== void 0 && _menuListRef$current.scrollHeight ? `${(_menuListRef$current2 = menuListRef.current) === null || _menuListRef$current2 === void 0 ? void 0 : _menuListRef$current2.scrollHeight}px` : undefined;
178
- return <li className={(0, _clsx.default)('menu__list-item', {
179
- 'menu__list-item--collapsed': collapsed
180
- })}>
181
- <NavLink role="button" className={navLinkClassNames(className, true)} {...props} onClick={e => {
182
- e.preventDefault();
183
- setCollapsed(state => !state);
184
- }}>
185
- {(_props$children2 = props.children) !== null && _props$children2 !== void 0 ? _props$children2 : props.label}
186
- </NavLink>
187
- <ul className="menu__list" ref={menuListRef} style={{
188
- height: !collapsed ? menuListHeight : undefined
189
- }}>
190
- {items.map(({
191
- className: childItemClassName,
192
- ...childItemProps
193
- }, i) => <li className="menu__list-item" key={i}>
194
- <NavLink activeClassName="menu__link--active" className={navLinkClassNames(childItemClassName)} {...childItemProps} onClick={props.onClick} />
195
- </li>)}
196
- </ul>
95
+ return <li className="menu__list-item">
96
+ <NavLink className={(0, _clsx.default)('menu__link', className)} {...props} />
197
97
  </li>;
198
98
  }
199
99
 
200
100
  function DefaultNavbarItem({
201
101
  mobile = false,
102
+ position: _position,
103
+ // Need to destructure position from props so that it doesn't get passed on.
202
104
  ...props
203
105
  }) {
204
- const Comp = mobile ? NavItemMobile : NavItemDesktop;
205
- return <Comp {...props} />;
106
+ var _props$activeClassNam;
107
+
108
+ const Comp = mobile ? DefaultNavbarItemMobile : DefaultNavbarItemDesktop;
109
+ return <Comp {...props} activeClassName={(_props$activeClassNam = props.activeClassName) !== null && _props$activeClassNam !== void 0 ? _props$activeClassNam : (0, _index.getInfimaActiveClassName)(mobile)} />;
206
110
  }
207
111
 
208
112
  var _default = DefaultNavbarItem;
@@ -13,6 +13,8 @@ var _useDocs = require("@theme/hooks/useDocs");
13
13
 
14
14
  var _clsx = _interopRequireDefault(require("clsx"));
15
15
 
16
+ var _index = require("./index");
17
+
16
18
  var _themeCommon = require("@docusaurus/theme-common");
17
19
 
18
20
  var _utilsCommon = require("@docusaurus/utils-common");
@@ -26,8 +28,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
26
28
  * LICENSE file in the root directory of this source tree.
27
29
  */
28
30
  function getDocInVersions(versions, docId) {
29
- // vanilla-js flatten, TODO replace soon by ES flat() / flatMap()
30
- const allDocs = [].concat(...versions.map(version => version.docs));
31
+ const allDocs = versions.flatMap(version => version.docs);
31
32
  const doc = allDocs.find(versionDoc => versionDoc.id === docId);
32
33
 
33
34
  if (!doc) {
@@ -41,7 +42,6 @@ Available doc ids are:\n- ${docIds}`);
41
42
 
42
43
  function DocNavbarItem({
43
44
  docId,
44
- activeSidebarClassName,
45
45
  label: staticLabel,
46
46
  docsPluginId,
47
47
  ...props
@@ -57,7 +57,8 @@ function DocNavbarItem({
57
57
 
58
58
  const versions = (0, _utilsCommon.uniq)([activeVersion, preferredVersion, latestVersion].filter(Boolean));
59
59
  const doc = getDocInVersions(versions, docId);
60
+ const activeDocInfimaClassName = (0, _index.getInfimaActiveClassName)(props.mobile);
60
61
  return <_DefaultNavbarItem.default exact {...props} className={(0, _clsx.default)(props.className, {
61
- [activeSidebarClassName]: activeDoc && activeDoc.sidebar === doc.sidebar
62
- })} label={staticLabel !== null && staticLabel !== void 0 ? staticLabel : doc.id} to={doc.path} />;
62
+ [activeDocInfimaClassName]: (activeDoc === null || activeDoc === void 0 ? void 0 : activeDoc.sidebar) && activeDoc.sidebar === doc.sidebar
63
+ })} activeClassName={activeDocInfimaClassName} label={staticLabel !== null && staticLabel !== void 0 ? staticLabel : doc.id} to={doc.path} />;
63
64
  }
@@ -9,10 +9,14 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _DefaultNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DefaultNavbarItem"));
11
11
 
12
+ var _DropdownNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DropdownNavbarItem"));
13
+
12
14
  var _useDocs = require("@theme/hooks/useDocs");
13
15
 
14
16
  var _themeCommon = require("@docusaurus/theme-common");
15
17
 
18
+ var _Translate = require("@docusaurus/Translate");
19
+
16
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
21
 
18
22
  /**
@@ -56,21 +60,24 @@ function DocsVersionDropdownNavbarItem({
56
60
  }
57
61
  };
58
62
  });
59
- const items = [...dropdownItemsBefore, ...versionLinks, ...dropdownItemsAfter]; // We don't want to render a version dropdown with 0 or 1 item
60
- // If we build the site with a single docs version (onlyIncludeVersions: ['1.0.0'])
61
- // We'd rather render a button instead of a dropdown
62
-
63
- if (items.length <= 1) {
64
- return undefined;
65
- }
66
-
67
- return items;
63
+ return [...dropdownItemsBefore, ...versionLinks, ...dropdownItemsAfter];
68
64
  }
69
65
 
70
66
  const items = getItems();
71
67
  const dropdownVersion = (_ref = (_activeDocContext$act = activeDocContext.activeVersion) !== null && _activeDocContext$act !== void 0 ? _activeDocContext$act : preferredVersion) !== null && _ref !== void 0 ? _ref : latestVersion; // Mobile dropdown is handled a bit differently
72
68
 
73
- const dropdownLabel = mobile && items ? 'Versions' : dropdownVersion.label;
74
- const dropdownTo = mobile && items ? undefined : getVersionMainDoc(dropdownVersion).path;
75
- return <_DefaultNavbarItem.default {...props} mobile={mobile} label={dropdownLabel} to={dropdownTo} items={items} isActive={dropdownActiveClassDisabled ? () => false : undefined} />;
69
+ const dropdownLabel = mobile && items ? (0, _Translate.translate)({
70
+ id: 'theme.navbar.mobileVersionsDropdown.label',
71
+ message: 'Versions',
72
+ description: 'The label for the navbar versions dropdown on mobile view'
73
+ }) : dropdownVersion.label;
74
+ const dropdownTo = mobile && items ? undefined : getVersionMainDoc(dropdownVersion).path; // We don't want to render a version dropdown with 0 or 1 item
75
+ // If we build the site with a single docs version (onlyIncludeVersions: ['1.0.0'])
76
+ // We'd rather render a button instead of a dropdown
77
+
78
+ if (items.length <= 1) {
79
+ return <_DefaultNavbarItem.default {...props} mobile={mobile} label={dropdownLabel} to={dropdownTo} isActive={dropdownActiveClassDisabled ? () => false : undefined} />;
80
+ }
81
+
82
+ return <_DropdownNavbarItem.default {...props} mobile={mobile} label={dropdownLabel} to={dropdownTo} items={items} isActive={dropdownActiveClassDisabled ? () => false : undefined} />;
76
83
  }
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _clsx = _interopRequireDefault(require("clsx"));
11
+
12
+ var _themeCommon = require("@docusaurus/theme-common");
13
+
14
+ var _DefaultNavbarItem = require("@theme/NavbarItem/DefaultNavbarItem");
15
+
16
+ var _NavbarItem = _interopRequireDefault(require("@theme/NavbarItem"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ /**
25
+ * Copyright (c) Facebook, Inc. and its affiliates.
26
+ *
27
+ * This source code is licensed under the MIT license found in the
28
+ * LICENSE file in the root directory of this source tree.
29
+ */
30
+ const dropdownLinkActiveClass = 'dropdown__link--active';
31
+
32
+ function isItemActive(item, localPathname) {
33
+ if ((0, _themeCommon.isSamePath)(item.to, localPathname)) {
34
+ return true;
35
+ }
36
+
37
+ if ((0, _themeCommon.isRegexpStringMatch)(item.activeBaseRegex, localPathname)) {
38
+ return true;
39
+ }
40
+
41
+ if (item.activeBasePath && localPathname.startsWith(item.activeBasePath)) {
42
+ return true;
43
+ }
44
+
45
+ return false;
46
+ }
47
+
48
+ function containsActiveItems(items, localPathname) {
49
+ return items.some(item => isItemActive(item, localPathname));
50
+ }
51
+
52
+ function DropdownNavbarItemDesktop({
53
+ items,
54
+ position,
55
+ className,
56
+ ...props
57
+ }) {
58
+ var _props$children;
59
+
60
+ const dropdownRef = (0, _react.useRef)(null);
61
+ const dropdownMenuRef = (0, _react.useRef)(null);
62
+ const [showDropdown, setShowDropdown] = (0, _react.useState)(false);
63
+ (0, _react.useEffect)(() => {
64
+ const handleClickOutside = event => {
65
+ if (!dropdownRef.current || dropdownRef.current.contains(event.target)) {
66
+ return;
67
+ }
68
+
69
+ setShowDropdown(false);
70
+ };
71
+
72
+ document.addEventListener('mousedown', handleClickOutside);
73
+ document.addEventListener('touchstart', handleClickOutside);
74
+ return () => {
75
+ document.removeEventListener('mousedown', handleClickOutside);
76
+ document.removeEventListener('touchstart', handleClickOutside);
77
+ };
78
+ }, [dropdownRef]);
79
+ return <div ref={dropdownRef} className={(0, _clsx.default)('navbar__item', 'dropdown', 'dropdown--hoverable', {
80
+ 'dropdown--right': position === 'right',
81
+ 'dropdown--show': showDropdown
82
+ })}>
83
+ <_DefaultNavbarItem.NavLink className={(0, _clsx.default)('navbar__link', className)} {...props} onClick={props.to ? undefined : e => e.preventDefault()} onKeyDown={e => {
84
+ if (e.key === 'Enter') {
85
+ e.preventDefault();
86
+ setShowDropdown(!showDropdown);
87
+ }
88
+ }}>
89
+ {(_props$children = props.children) !== null && _props$children !== void 0 ? _props$children : props.label}
90
+ </_DefaultNavbarItem.NavLink>
91
+ <ul ref={dropdownMenuRef} className="dropdown__menu">
92
+ {items.map((childItemProps, i) => <_NavbarItem.default isDropdownItem onKeyDown={e => {
93
+ if (i === items.length - 1 && e.key === 'Tab') {
94
+ e.preventDefault();
95
+ setShowDropdown(false);
96
+ const nextNavbarItem = dropdownRef.current.nextElementSibling;
97
+
98
+ if (nextNavbarItem) {
99
+ nextNavbarItem.focus();
100
+ }
101
+ }
102
+ }} activeClassName={dropdownLinkActiveClass} {...childItemProps} key={i} />)}
103
+ </ul>
104
+ </div>;
105
+ }
106
+
107
+ function DropdownNavbarItemMobile({
108
+ items,
109
+ className,
110
+ position: _position,
111
+ // Need to destructure position from props so that it doesn't get passed on.
112
+ ...props
113
+ }) {
114
+ var _props$children2;
115
+
116
+ const localPathname = (0, _themeCommon.useLocalPathname)();
117
+ const containsActive = containsActiveItems(items, localPathname);
118
+ const {
119
+ collapsed,
120
+ toggleCollapsed,
121
+ setCollapsed
122
+ } = (0, _themeCommon.useCollapsible)({
123
+ initialState: () => !containsActive
124
+ }); // Expand/collapse if any item active after a navigation
125
+
126
+ (0, _react.useEffect)(() => {
127
+ if (containsActive) {
128
+ setCollapsed(!containsActive);
129
+ }
130
+ }, [localPathname, containsActive, setCollapsed]);
131
+ return <li className={(0, _clsx.default)('menu__list-item', {
132
+ 'menu__list-item--collapsed': collapsed
133
+ })}>
134
+ <_DefaultNavbarItem.NavLink role="button" className={(0, _clsx.default)('menu__link menu__link--sublist', className)} {...props} onClick={e => {
135
+ e.preventDefault();
136
+ toggleCollapsed();
137
+ }}>
138
+ {(_props$children2 = props.children) !== null && _props$children2 !== void 0 ? _props$children2 : props.label}
139
+ </_DefaultNavbarItem.NavLink>
140
+ <_themeCommon.Collapsible lazy as="ul" className="menu__list" collapsed={collapsed}>
141
+ {items.map((childItemProps, i) => <_NavbarItem.default mobile isDropdownItem onClick={props.onClick} activeClassName="menu__link--active" {...childItemProps} key={i} />)}
142
+ </_themeCommon.Collapsible>
143
+ </li>;
144
+ }
145
+
146
+ function DropdownNavbarItem({
147
+ mobile = false,
148
+ ...props
149
+ }) {
150
+ const Comp = mobile ? DropdownNavbarItemMobile : DropdownNavbarItemDesktop;
151
+ return <Comp {...props} />;
152
+ }
153
+
154
+ var _default = DropdownNavbarItem;
155
+ exports.default = _default;
@@ -7,7 +7,7 @@ exports.default = LocaleDropdownNavbarItem;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _DefaultNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DefaultNavbarItem"));
10
+ var _DropdownNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DropdownNavbarItem"));
11
11
 
12
12
  var _IconLanguage = _interopRequireDefault(require("@theme/IconLanguage"));
13
13
 
@@ -15,6 +15,8 @@ var _useDocusaurusContext = _interopRequireDefault(require("@docusaurus/useDocus
15
15
 
16
16
  var _themeCommon = require("@docusaurus/theme-common");
17
17
 
18
+ var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
20
22
  /**
@@ -62,11 +64,8 @@ function LocaleDropdownNavbarItem({
62
64
  const items = [...dropdownItemsBefore, ...localeItems, ...dropdownItemsAfter]; // Mobile is handled a bit differently
63
65
 
64
66
  const dropdownLabel = mobile ? 'Languages' : getLocaleLabel(currentLocale);
65
- return <_DefaultNavbarItem.default {...props} href="#" mobile={mobile} label={<span>
66
- <_IconLanguage.default style={{
67
- verticalAlign: 'text-bottom',
68
- marginRight: 5
69
- }} />
67
+ return <_DropdownNavbarItem.default {...props} href="#" mobile={mobile} label={<span>
68
+ <_IconLanguage.default className={_stylesModule.default.iconLanguage} />
70
69
  <span>{dropdownLabel}</span>
71
70
  </span>} items={items} />;
72
71
  }
@@ -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
+ }
@@ -4,11 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = NavbarItem;
7
+ exports.getInfimaActiveClassName = void 0;
7
8
 
8
9
  var _react = _interopRequireDefault(require("react"));
9
10
 
10
11
  var _DefaultNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DefaultNavbarItem"));
11
12
 
13
+ var _DropdownNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/DropdownNavbarItem"));
14
+
12
15
  var _LocaleDropdownNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/LocaleDropdownNavbarItem"));
13
16
 
14
17
  var _SearchNavbarItem = _interopRequireDefault(require("@theme/NavbarItem/SearchNavbarItem"));
@@ -25,30 +28,47 @@ const NavbarItemComponents = {
25
28
  default: () => _DefaultNavbarItem.default,
26
29
  localeDropdown: () => _LocaleDropdownNavbarItem.default,
27
30
  search: () => _SearchNavbarItem.default,
31
+ dropdown: () => _DropdownNavbarItem.default,
28
32
  // Need to lazy load these items as we don't know for sure the docs plugin is loaded
29
33
  // See https://github.com/facebook/docusaurus/issues/3360
30
- docsVersion: () => // eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
31
- require('@theme/NavbarItem/DocsVersionNavbarItem').default,
32
- docsVersionDropdown: () => // eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
33
- require('@theme/NavbarItem/DocsVersionDropdownNavbarItem').default,
34
- doc: () => // eslint-disable-next-line @typescript-eslint/no-var-requires, global-require
35
- require('@theme/NavbarItem/DocNavbarItem').default
34
+
35
+ /* eslint-disable @typescript-eslint/no-var-requires, global-require */
36
+ docsVersion: () => require('@theme/NavbarItem/DocsVersionNavbarItem').default,
37
+ docsVersionDropdown: () => require('@theme/NavbarItem/DocsVersionDropdownNavbarItem').default,
38
+ doc: () => require('@theme/NavbarItem/DocNavbarItem').default
39
+ /* eslint-enable @typescript-eslint/no-var-requires, global-require */
40
+
36
41
  };
37
42
 
38
- const getNavbarItemComponent = (type = 'default') => {
39
- const navbarItemComponent = NavbarItemComponents[type];
43
+ const getNavbarItemComponent = type => {
44
+ const navbarItemComponentFn = NavbarItemComponents[type];
40
45
 
41
- if (!navbarItemComponent) {
46
+ if (!navbarItemComponentFn) {
42
47
  throw new Error(`No NavbarItem component found for type "${type}".`);
43
48
  }
44
49
 
45
- return navbarItemComponent();
50
+ return navbarItemComponentFn();
46
51
  };
47
52
 
53
+ function getComponentType(type, isDropdown) {
54
+ // Backward compatibility: navbar item with no type set
55
+ // but containing dropdown items should use the type "dropdown"
56
+ if (!type || type === 'default') {
57
+ return isDropdown ? 'dropdown' : 'default';
58
+ }
59
+
60
+ return type;
61
+ }
62
+
63
+ const getInfimaActiveClassName = mobile => mobile ? 'menu__link--active' : 'navbar__link--active';
64
+
65
+ exports.getInfimaActiveClassName = getInfimaActiveClassName;
66
+
48
67
  function NavbarItem({
49
68
  type,
50
69
  ...props
51
70
  }) {
52
- const NavbarItemComponent = getNavbarItemComponent(type);
71
+ const componentType = getComponentType(type, props.items !== undefined);
72
+ const NavbarItemComponent = getNavbarItemComponent(componentType);
53
73
  return <NavbarItemComponent {...props} />;
54
74
  }
@@ -11,7 +11,7 @@ var _Head = _interopRequireDefault(require("@docusaurus/Head"));
11
11
 
12
12
  var _themeCommon = require("@docusaurus/theme-common");
13
13
 
14
- var _useBaseUrl = _interopRequireDefault(require("@docusaurus/useBaseUrl"));
14
+ var _useBaseUrl = require("@docusaurus/useBaseUrl");
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
@@ -25,15 +25,16 @@ function Seo({
25
25
  title,
26
26
  description,
27
27
  keywords,
28
- image
28
+ image,
29
+ children
29
30
  }) {
30
- const {
31
- image: defaultImage
32
- } = (0, _themeCommon.useThemeConfig)();
33
31
  const pageTitle = (0, _themeCommon.useTitleFormatter)(title);
34
- const pageImage = (0, _useBaseUrl.default)(image || defaultImage, {
32
+ const {
33
+ withBaseUrl
34
+ } = (0, _useBaseUrl.useBaseUrlUtils)();
35
+ const pageImage = image ? withBaseUrl(image, {
35
36
  absolute: true
36
- });
37
+ }) : undefined;
37
38
  return <_Head.default>
38
39
  {title && <title>{pageTitle}</title>}
39
40
  {title && <meta property="og:title" content={pageTitle} />}
@@ -45,5 +46,7 @@ function Seo({
45
46
 
46
47
  {pageImage && <meta property="og:image" content={pageImage} />}
47
48
  {pageImage && <meta name="twitter:image" content={pageImage} />}
49
+
50
+ {children}
48
51
  </_Head.default>;
49
52
  }
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
10
- var _clsx = _interopRequireDefault(require("clsx"));
10
+ var _router = require("@docusaurus/router");
11
11
 
12
12
  var _Translate = _interopRequireDefault(require("@docusaurus/Translate"));
13
13
 
@@ -35,6 +35,9 @@ function programmaticFocus(el) {
35
35
 
36
36
  function SkipToContent() {
37
37
  const containerRef = (0, _react.useRef)(null);
38
+ const {
39
+ action
40
+ } = (0, _router.useHistory)();
38
41
 
39
42
  const handleSkip = e => {
40
43
  e.preventDefault();
@@ -48,12 +51,15 @@ function SkipToContent() {
48
51
  (0, _themeCommon.useLocationChange)(({
49
52
  location
50
53
  }) => {
51
- if (containerRef.current && !location.hash) {
54
+ if (containerRef.current && !location.hash && action === 'PUSH') {
52
55
  programmaticFocus(containerRef.current);
53
56
  }
54
57
  });
55
58
  return <div ref={containerRef}>
56
- <a href="#main" className={(0, _clsx.default)(_stylesModule.default.skipToContent, 'shadow--md')} onClick={handleSkip}>
59
+ {
60
+ /* eslint-disable-next-line jsx-a11y/anchor-is-valid */
61
+ }
62
+ <a href="#" className={_stylesModule.default.skipToContent} onClick={handleSkip}>
57
63
  <_Translate.default id="theme.common.skipToMainContent" description="The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation">
58
64
  Skip to main content
59
65
  </_Translate.default>
@@ -10,4 +10,5 @@
10
10
 
11
11
  .skipToContent:focus {
12
12
  left: 1rem;
13
+ box-shadow: var(--ifm-global-shadow-md);
13
14
  }