@docusaurus/theme-classic 2.0.0-beta.8e9b829d9 → 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 (275) hide show
  1. package/README.md +1 -1
  2. package/codeTranslations/ar.json +12 -6
  3. package/codeTranslations/base.json +12 -0
  4. package/codeTranslations/bn.json +6 -0
  5. package/codeTranslations/cs.json +62 -0
  6. package/codeTranslations/da.json +6 -0
  7. package/codeTranslations/de.json +8 -2
  8. package/codeTranslations/es.json +10 -4
  9. package/codeTranslations/fa.json +9 -3
  10. package/codeTranslations/fil.json +6 -0
  11. package/codeTranslations/fr.json +6 -0
  12. package/codeTranslations/he.json +6 -0
  13. package/codeTranslations/hi.json +6 -0
  14. package/codeTranslations/ja.json +6 -0
  15. package/codeTranslations/ko.json +6 -0
  16. package/codeTranslations/pl.json +6 -0
  17. package/codeTranslations/pt-BR.json +8 -2
  18. package/codeTranslations/pt-PT.json +6 -0
  19. package/codeTranslations/ru.json +6 -0
  20. package/codeTranslations/sr.json +62 -0
  21. package/codeTranslations/tr.json +9 -3
  22. package/codeTranslations/vi.json +10 -4
  23. package/codeTranslations/zh-Hans.json +6 -0
  24. package/codeTranslations/zh-Hant.json +6 -0
  25. package/lib/__tests__/validateThemeConfig.test.js +154 -4
  26. package/lib/index.js +2 -3
  27. package/lib/prism-include-languages.js +9 -5
  28. package/lib/theme/AnnouncementBar/index.js +8 -12
  29. package/lib/theme/AnnouncementBar/styles.module.css +23 -32
  30. package/lib/theme/BackToTopButton/index.js +27 -13
  31. package/lib/theme/BackToTopButton/styles.module.css +17 -14
  32. package/lib/theme/BlogArchivePage/index.js +89 -0
  33. package/lib/theme/BlogLayout/index.js +2 -6
  34. package/lib/theme/BlogListPage/index.js +1 -1
  35. package/lib/theme/BlogPostAuthor/index.js +51 -0
  36. package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
  37. package/lib/theme/BlogPostAuthors/index.js +47 -0
  38. package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
  39. package/lib/theme/BlogPostItem/index.js +58 -67
  40. package/lib/theme/BlogPostPage/index.js +33 -4
  41. package/lib/theme/BlogSidebar/styles.module.css +2 -2
  42. package/lib/theme/BlogTagsListPage/index.js +3 -28
  43. package/lib/theme/BlogTagsPostsPage/index.js +5 -8
  44. package/lib/theme/CodeBlock/index.js +44 -37
  45. package/lib/theme/CodeBlock/styles.module.css +1 -2
  46. package/lib/theme/DocItem/index.js +15 -40
  47. package/lib/theme/DocItem/styles.module.css +2 -12
  48. package/lib/theme/DocItemFooter/index.js +79 -0
  49. package/lib/theme/DocItemFooter/styles.module.css +18 -0
  50. package/lib/theme/DocPage/index.js +18 -13
  51. package/lib/theme/DocSidebar/index.js +11 -16
  52. package/lib/theme/DocSidebarItem/index.js +12 -10
  53. package/lib/theme/DocTagDocListPage/index.js +89 -0
  54. package/lib/theme/DocTagsListPage/index.js +44 -0
  55. package/lib/theme/DocVersionBanner/index.js +6 -4
  56. package/lib/theme/EditThisPage/index.js +3 -1
  57. package/lib/theme/Footer/index.js +5 -3
  58. package/lib/theme/Heading/index.js +7 -9
  59. package/lib/theme/Heading/styles.css +4 -6
  60. package/lib/theme/Heading/styles.module.css +9 -5
  61. package/lib/theme/IconClose/index.js +31 -0
  62. package/lib/theme/LastUpdated/index.js +4 -2
  63. package/lib/theme/LayoutHead/index.js +13 -11
  64. package/lib/theme/LayoutProviders/index.js +7 -5
  65. package/lib/theme/Logo/index.js +14 -12
  66. package/lib/theme/MDXComponents/index.js +27 -1
  67. package/lib/theme/MDXComponents/styles.css +11 -0
  68. package/lib/theme/MDXPage/index.js +2 -1
  69. package/lib/theme/Navbar/index.js +20 -3
  70. package/lib/theme/Navbar/styles.module.css +5 -1
  71. package/lib/theme/NavbarItem/DefaultNavbarItem.js +12 -4
  72. package/lib/theme/NavbarItem/DocNavbarItem.js +5 -3
  73. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +7 -1
  74. package/lib/theme/NavbarItem/DropdownNavbarItem.js +3 -3
  75. package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +3 -4
  76. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  77. package/lib/theme/NavbarItem/index.js +5 -0
  78. package/lib/theme/Seo/index.js +10 -7
  79. package/lib/theme/TOC/index.js +9 -30
  80. package/lib/theme/TOC/styles.module.css +1 -1
  81. package/lib/theme/TOCCollapsible/index.js +5 -3
  82. package/lib/theme/TOCInline/index.js +7 -27
  83. package/lib/theme/TOCItems/index.js +78 -0
  84. package/lib/theme/Tabs/__tests__/index.test.js +123 -0
  85. package/lib/theme/Tabs/index.js +73 -50
  86. package/lib/theme/Tabs/styles.module.css +0 -13
  87. package/lib/theme/Tag/index.js +40 -0
  88. package/lib/theme/Tag/styles.module.css +70 -0
  89. package/lib/theme/TagsListByLetter/index.js +48 -0
  90. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  91. package/lib/theme/TagsListInline/index.js +44 -0
  92. package/lib/theme/TagsListInline/styles.module.css +15 -0
  93. package/lib/theme/ThemedImage/index.js +3 -5
  94. package/lib/theme/Toggle/index.js +23 -18
  95. package/lib/theme/Toggle/styles.module.css +91 -0
  96. package/lib/theme/hooks/useHideableNavbar.js +14 -31
  97. package/lib/theme/hooks/useTheme.js +2 -2
  98. package/lib/theme/hooks/useWindowSize.js +2 -7
  99. package/lib/theme/prism-include-languages.js +4 -3
  100. package/lib/translations.js +4 -4
  101. package/lib/types.d.ts +216 -105
  102. package/lib/validateThemeConfig.js +215 -254
  103. package/lib-next/__tests__/validateThemeConfig.test.js +154 -4
  104. package/lib-next/index.js +1 -2
  105. package/lib-next/prism-include-languages.js +0 -2
  106. package/lib-next/theme/AnnouncementBar/index.js +7 -12
  107. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  108. package/lib-next/theme/BackToTopButton/index.js +37 -17
  109. package/lib-next/theme/BackToTopButton/styles.module.css +17 -14
  110. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  111. package/lib-next/theme/BlogLayout/index.js +4 -7
  112. package/lib-next/theme/BlogListPage/index.js +1 -0
  113. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  114. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  115. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  116. package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
  117. package/lib-next/theme/BlogPostItem/index.js +79 -86
  118. package/lib-next/theme/BlogPostPage/index.js +55 -8
  119. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  120. package/lib-next/theme/BlogTagsListPage/index.js +7 -39
  121. package/lib-next/theme/BlogTagsPostsPage/index.js +3 -4
  122. package/lib-next/theme/CodeBlock/index.js +53 -49
  123. package/lib-next/theme/CodeBlock/styles.module.css +1 -2
  124. package/lib-next/theme/DocItem/index.js +27 -45
  125. package/lib-next/theme/DocItem/styles.module.css +2 -12
  126. package/lib-next/theme/DocItemFooter/index.js +79 -0
  127. package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
  128. package/lib-next/theme/DocPage/index.js +18 -14
  129. package/lib-next/theme/DocSidebar/index.js +18 -15
  130. package/lib-next/theme/DocSidebarItem/index.js +31 -11
  131. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  132. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  133. package/lib-next/theme/DocVersionBanner/index.js +16 -9
  134. package/lib-next/theme/EditThisPage/index.js +6 -1
  135. package/lib-next/theme/Footer/index.js +14 -3
  136. package/lib-next/theme/Heading/index.js +10 -13
  137. package/lib-next/theme/Heading/styles.css +4 -6
  138. package/lib-next/theme/Heading/styles.module.css +9 -5
  139. package/lib-next/theme/IconClose/index.js +23 -0
  140. package/lib-next/theme/LastUpdated/index.js +3 -2
  141. package/lib-next/theme/LayoutHead/index.js +9 -15
  142. package/lib-next/theme/LayoutProviders/index.js +8 -5
  143. package/lib-next/theme/Logo/index.js +23 -19
  144. package/lib-next/theme/MDXComponents/index.js +20 -1
  145. package/lib-next/theme/MDXComponents/styles.css +11 -0
  146. package/lib-next/theme/MDXPage/index.js +10 -2
  147. package/lib-next/theme/Navbar/index.js +27 -3
  148. package/lib-next/theme/Navbar/styles.module.css +5 -1
  149. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +15 -4
  150. package/lib-next/theme/NavbarItem/DocNavbarItem.js +5 -3
  151. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +12 -4
  152. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +4 -6
  153. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +2 -6
  154. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  155. package/lib-next/theme/NavbarItem/index.js +2 -0
  156. package/lib-next/theme/Seo/index.js +11 -7
  157. package/lib-next/theme/TOC/index.js +12 -36
  158. package/lib-next/theme/TOC/styles.module.css +1 -1
  159. package/lib-next/theme/TOCCollapsible/index.js +12 -3
  160. package/lib-next/theme/TOCInline/index.js +10 -28
  161. package/lib-next/theme/TOCItems/index.js +85 -0
  162. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  163. package/lib-next/theme/Tabs/index.js +91 -43
  164. package/lib-next/theme/Tabs/styles.module.css +0 -13
  165. package/lib-next/theme/Tag/index.js +27 -0
  166. package/lib-next/theme/Tag/styles.module.css +70 -0
  167. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  168. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  169. package/lib-next/theme/TagsListInline/index.js +31 -0
  170. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  171. package/lib-next/theme/ThemedImage/index.js +3 -3
  172. package/lib-next/theme/Toggle/index.js +20 -15
  173. package/lib-next/theme/Toggle/styles.module.css +91 -0
  174. package/lib-next/theme/hooks/useHideableNavbar.js +31 -47
  175. package/lib-next/theme/hooks/useTheme.js +2 -2
  176. package/lib-next/theme/hooks/useWindowSize.js +2 -6
  177. package/lib-next/theme/prism-include-languages.js +2 -1
  178. package/lib-next/translations.js +6 -10
  179. package/lib-next/types.d.ts +216 -105
  180. package/lib-next/validateThemeConfig.js +40 -36
  181. package/package.json +23 -19
  182. package/src/__tests__/validateThemeConfig.test.js +154 -4
  183. package/src/index.ts +11 -9
  184. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  185. package/src/theme/AnnouncementBar/index.tsx +8 -12
  186. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  187. package/src/theme/BackToTopButton/index.tsx +39 -17
  188. package/src/theme/BackToTopButton/styles.module.css +17 -14
  189. package/src/theme/BlogArchivePage/index.tsx +91 -0
  190. package/src/theme/BlogLayout/index.tsx +4 -8
  191. package/src/theme/BlogListPage/index.tsx +1 -0
  192. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  193. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  194. package/src/theme/BlogPostAuthors/index.tsx +36 -0
  195. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  196. package/src/theme/BlogPostItem/index.tsx +70 -80
  197. package/src/theme/BlogPostPage/index.tsx +57 -8
  198. package/src/theme/BlogSidebar/styles.module.css +2 -2
  199. package/src/theme/BlogTagsListPage/index.tsx +7 -41
  200. package/src/theme/BlogTagsPostsPage/index.tsx +3 -4
  201. package/src/theme/CodeBlock/index.tsx +63 -47
  202. package/src/theme/CodeBlock/styles.module.css +1 -2
  203. package/src/theme/DocItem/index.tsx +27 -46
  204. package/src/theme/DocItem/styles.module.css +2 -12
  205. package/src/theme/DocItemFooter/index.tsx +91 -0
  206. package/src/theme/DocItemFooter/styles.module.css +18 -0
  207. package/src/theme/DocPage/index.tsx +16 -12
  208. package/src/theme/DocSidebar/index.tsx +20 -16
  209. package/src/theme/DocSidebarItem/index.tsx +29 -10
  210. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  211. package/src/theme/DocTagsListPage/index.tsx +41 -0
  212. package/src/theme/DocVersionBanner/index.tsx +26 -15
  213. package/src/theme/EditThisPage/index.tsx +6 -1
  214. package/src/theme/Footer/index.tsx +16 -3
  215. package/src/theme/Heading/index.tsx +10 -13
  216. package/src/theme/Heading/styles.css +4 -6
  217. package/src/theme/Heading/styles.module.css +9 -5
  218. package/src/theme/IconClose/index.tsx +26 -0
  219. package/src/theme/LastUpdated/index.tsx +3 -2
  220. package/src/theme/LayoutHead/index.tsx +9 -9
  221. package/src/theme/LayoutProviders/index.tsx +8 -5
  222. package/src/theme/Logo/index.tsx +19 -15
  223. package/src/theme/MDXComponents/index.tsx +20 -1
  224. package/src/theme/MDXComponents/styles.css +11 -0
  225. package/src/theme/MDXPage/index.tsx +10 -2
  226. package/src/theme/Navbar/index.tsx +26 -2
  227. package/src/theme/Navbar/styles.module.css +5 -1
  228. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +15 -4
  229. package/src/theme/NavbarItem/DocNavbarItem.tsx +9 -5
  230. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +15 -6
  231. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  232. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +4 -6
  233. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +6 -5
  234. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  235. package/src/theme/NavbarItem/index.tsx +6 -1
  236. package/src/theme/Seo/index.tsx +7 -4
  237. package/src/theme/TOC/index.tsx +13 -38
  238. package/src/theme/TOC/styles.module.css +1 -1
  239. package/src/theme/TOCCollapsible/index.tsx +8 -2
  240. package/src/theme/TOCInline/index.tsx +13 -32
  241. package/src/theme/TOCItems/index.tsx +96 -0
  242. package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
  243. package/src/theme/Tabs/index.tsx +93 -49
  244. package/src/theme/Tabs/styles.module.css +0 -13
  245. package/src/theme/Tag/index.tsx +31 -0
  246. package/src/theme/Tag/styles.module.css +70 -0
  247. package/src/theme/TagsListByLetter/index.tsx +45 -0
  248. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  249. package/src/theme/TagsListInline/index.tsx +35 -0
  250. package/src/theme/TagsListInline/styles.module.css +15 -0
  251. package/src/theme/ThemedImage/index.tsx +3 -3
  252. package/src/theme/Toggle/index.tsx +20 -15
  253. package/src/theme/Toggle/styles.module.css +91 -0
  254. package/src/theme/hooks/useContextualSearchFilters.ts +1 -1
  255. package/src/theme/hooks/useHideableNavbar.ts +32 -47
  256. package/src/theme/hooks/useTabGroupChoice.ts +2 -2
  257. package/src/theme/hooks/useTheme.ts +2 -2
  258. package/src/theme/hooks/useWindowSize.ts +2 -7
  259. package/src/theme/prism-include-languages.ts +3 -2
  260. package/src/translations.ts +6 -10
  261. package/src/types.d.ts +216 -105
  262. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +46 -12
  263. package/tsconfig.json +0 -1
  264. package/update-code-translations.js +5 -4
  265. package/update-code-translations.test.js +1 -1
  266. package/update.js +151 -0
  267. package/lib/theme/Toggle/styles.css +0 -103
  268. package/lib/theme/hooks/useScrollPosition.js +0 -51
  269. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  270. package/lib-next/theme/Toggle/styles.css +0 -103
  271. package/lib-next/theme/hooks/useScrollPosition.js +0 -42
  272. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  273. package/src/theme/Toggle/styles.css +0 -103
  274. package/src/theme/hooks/useScrollPosition.ts +0 -52
  275. package/src/theme/hooks/useTOCHighlight.ts +0 -98
@@ -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
+ ul.contains-task-list {
9
+ padding-left: 0;
10
+ list-style: none;
11
+ }
@@ -34,6 +34,7 @@ function MDXPage(props) {
34
34
  content: MDXPageContent
35
35
  } = props;
36
36
  const {
37
+ // TODO this frontmatter is not validated/normalized, it's the raw user-provided one. We should expose normalized one too!
37
38
  frontMatter,
38
39
  metadata
39
40
  } = MDXPageContent;
@@ -55,7 +56,7 @@ function MDXPage(props) {
55
56
  </_react2.MDXProvider>
56
57
  </div>
57
58
  {!hideTableOfContents && MDXPageContent.toc && <div className="col col--2">
58
- <_TOC.default toc={MDXPageContent.toc} />
59
+ <_TOC.default toc={MDXPageContent.toc} minHeadingLevel={frontMatter.toc_min_heading_level} maxHeadingLevel={frontMatter.toc_max_heading_level} />
59
60
  </div>}
60
61
  </div>
61
62
  </main>
@@ -33,6 +33,8 @@ var _Logo = _interopRequireDefault(require("@theme/Logo"));
33
33
 
34
34
  var _IconMenu = _interopRequireDefault(require("@theme/IconMenu"));
35
35
 
36
+ var _IconClose = _interopRequireDefault(require("@theme/IconClose"));
37
+
36
38
  var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
37
39
 
38
40
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -79,7 +81,19 @@ function useMobileSidebar() {
79
81
 
80
82
  const shouldRender = windowSize === 'mobile'; // || windowSize === 'ssr';
81
83
 
82
- const [shown, setShown] = (0, _react.useState)(false);
84
+ const [shown, setShown] = (0, _react.useState)(false); // Close mobile sidebar on navigation pop
85
+ // Most likely firing when using the Android back button (but not only)
86
+
87
+ (0, _themeCommon.useHistoryPopHandler)(() => {
88
+ if (shown) {
89
+ setShown(false); // Should we prevent the navigation here?
90
+ // See https://github.com/facebook/docusaurus/pull/5462#issuecomment-911699846
91
+
92
+ return false; // prevent pop navigation
93
+ }
94
+
95
+ return undefined;
96
+ });
83
97
  const toggle = (0, _react.useCallback)(() => {
84
98
  setShown(s => !s);
85
99
  }, []);
@@ -176,7 +190,10 @@ function NavbarMobileSidebar({
176
190
  return <div className="navbar-sidebar">
177
191
  <div className="navbar-sidebar__brand">
178
192
  <_Logo.default className="navbar__brand" imageClassName="navbar__logo" titleClassName="navbar__title" />
179
- {!colorModeToggle.disabled && sidebarShown && <_Toggle.default checked={colorModeToggle.isDarkTheme} onChange={colorModeToggle.toggle} />}
193
+ {!colorModeToggle.disabled && <_Toggle.default className={_stylesModule.default.navbarSidebarToggle} checked={colorModeToggle.isDarkTheme} onChange={colorModeToggle.toggle} />}
194
+ <button type="button" className="clean-btn navbar-sidebar__close" onClick={toggleSidebar}>
195
+ <_IconClose.default color="var(--ifm-color-emphasis-600)" className={_stylesModule.default.navbarSidebarCloseSvg} />
196
+ </button>
180
197
  </div>
181
198
 
182
199
  <div className={(0, _clsx.default)('navbar-sidebar__items', {
@@ -188,7 +205,7 @@ function NavbarMobileSidebar({
188
205
  </ul>
189
206
  </div>
190
207
 
191
- <div className="navbar-sidebar__item navbar-sidebar__item--secondary menu">
208
+ <div className="navbar-sidebar__item menu">
192
209
  {items.length > 0 && <button type="button" className="clean-btn navbar-sidebar__back" onClick={secondaryMenu.hide}>
193
210
  <_Translate.default id="theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel" description="The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)">
194
211
  ← Back to main menu
@@ -8,7 +8,7 @@
8
8
  /*
9
9
  Hide toggle in small viewports
10
10
  */
11
- @media screen and (max-width: 997px) {
11
+ @media (max-width: 996px) {
12
12
  .toggle {
13
13
  display: none;
14
14
  }
@@ -21,3 +21,7 @@ Hide toggle in small viewports
21
21
  .navbarHidden {
22
22
  transform: translate3d(0, calc(-100% - 2px), 0);
23
23
  }
24
+
25
+ .navbarSidebarToggle {
26
+ margin-right: 1rem;
27
+ }
@@ -18,6 +18,10 @@ var _IconExternalLink = _interopRequireDefault(require("@theme/IconExternalLink"
18
18
 
19
19
  var _isInternalUrl = _interopRequireDefault(require("@docusaurus/isInternalUrl"));
20
20
 
21
+ var _themeCommon = require("@docusaurus/theme-common");
22
+
23
+ var _index = require("./index");
24
+
21
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
26
 
23
27
  /**
@@ -34,10 +38,12 @@ function NavLink({
34
38
  to,
35
39
  href,
36
40
  label,
37
- activeClassName = 'navbar__link--active',
41
+ activeClassName = '',
38
42
  prependBaseUrlToHref,
39
43
  ...props
40
44
  }) {
45
+ var _props$className;
46
+
41
47
  // TODO all this seems hacky
42
48
  // {to: 'version'} should probably be forbidden, in favor of {to: '/version'}
43
49
  const toUrl = (0, _useBaseUrl.default)(to);
@@ -51,10 +57,10 @@ function NavLink({
51
57
  href: prependBaseUrlToHref ? normalizedHref : href
52
58
  } : {
53
59
  isNavLink: true,
54
- activeClassName,
60
+ activeClassName: !((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes(activeClassName)) ? activeClassName : '',
55
61
  to: toUrl,
56
62
  ...(activeBasePath || activeBaseRegex ? {
57
- 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)
58
64
  } : null)
59
65
  }} {...props}>
60
66
  {isExternalLink ? <span>
@@ -97,8 +103,10 @@ function DefaultNavbarItem({
97
103
  // Need to destructure position from props so that it doesn't get passed on.
98
104
  ...props
99
105
  }) {
106
+ var _props$activeClassNam;
107
+
100
108
  const Comp = mobile ? DefaultNavbarItemMobile : DefaultNavbarItemDesktop;
101
- return <Comp {...props} />;
109
+ return <Comp {...props} activeClassName={(_props$activeClassNam = props.activeClassName) !== null && _props$activeClassNam !== void 0 ? _props$activeClassNam : (0, _index.getInfimaActiveClassName)(mobile)} />;
102
110
  }
103
111
 
104
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");
@@ -40,7 +42,6 @@ Available doc ids are:\n- ${docIds}`);
40
42
 
41
43
  function DocNavbarItem({
42
44
  docId,
43
- activeSidebarClassName,
44
45
  label: staticLabel,
45
46
  docsPluginId,
46
47
  ...props
@@ -56,7 +57,8 @@ function DocNavbarItem({
56
57
 
57
58
  const versions = (0, _utilsCommon.uniq)([activeVersion, preferredVersion, latestVersion].filter(Boolean));
58
59
  const doc = getDocInVersions(versions, docId);
60
+ const activeDocInfimaClassName = (0, _index.getInfimaActiveClassName)(props.mobile);
59
61
  return <_DefaultNavbarItem.default exact {...props} className={(0, _clsx.default)(props.className, {
60
- [activeSidebarClassName]: activeDoc && activeDoc.sidebar === doc.sidebar
61
- })} 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} />;
62
64
  }
@@ -15,6 +15,8 @@ var _useDocs = require("@theme/hooks/useDocs");
15
15
 
16
16
  var _themeCommon = require("@docusaurus/theme-common");
17
17
 
18
+ var _Translate = require("@docusaurus/Translate");
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
20
22
  /**
@@ -64,7 +66,11 @@ function DocsVersionDropdownNavbarItem({
64
66
  const items = getItems();
65
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
66
68
 
67
- const dropdownLabel = mobile && items ? 'Versions' : dropdownVersion.label;
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;
68
74
  const dropdownTo = mobile && items ? undefined : getVersionMainDoc(dropdownVersion).path; // We don't want to render a version dropdown with 0 or 1 item
69
75
  // If we build the site with a single docs version (onlyIncludeVersions: ['1.0.0'])
70
76
  // We'd rather render a button instead of a dropdown
@@ -34,7 +34,7 @@ function isItemActive(item, localPathname) {
34
34
  return true;
35
35
  }
36
36
 
37
- if (item.activeBaseRegex && new RegExp(item.activeBaseRegex).test(localPathname)) {
37
+ if ((0, _themeCommon.isRegexpStringMatch)(item.activeBaseRegex, localPathname)) {
38
38
  return true;
39
39
  }
40
40
 
@@ -80,7 +80,7 @@ function DropdownNavbarItemDesktop({
80
80
  'dropdown--right': position === 'right',
81
81
  'dropdown--show': showDropdown
82
82
  })}>
83
- <_DefaultNavbarItem.NavLink className={(0, _clsx.default)('navbar__item navbar__link', className)} {...props} onClick={props.to ? undefined : e => e.preventDefault()} onKeyDown={e => {
83
+ <_DefaultNavbarItem.NavLink className={(0, _clsx.default)('navbar__link', className)} {...props} onClick={props.to ? undefined : e => e.preventDefault()} onKeyDown={e => {
84
84
  if (e.key === 'Enter') {
85
85
  e.preventDefault();
86
86
  setShowDropdown(!showDropdown);
@@ -127,7 +127,7 @@ function DropdownNavbarItemMobile({
127
127
  if (containsActive) {
128
128
  setCollapsed(!containsActive);
129
129
  }
130
- }, [localPathname, containsActive]);
130
+ }, [localPathname, containsActive, setCollapsed]);
131
131
  return <li className={(0, _clsx.default)('menu__list-item', {
132
132
  'menu__list-item--collapsed': collapsed
133
133
  })}>
@@ -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
  /**
@@ -63,10 +65,7 @@ function LocaleDropdownNavbarItem({
63
65
 
64
66
  const dropdownLabel = mobile ? 'Languages' : getLocaleLabel(currentLocale);
65
67
  return <_DropdownNavbarItem.default {...props} href="#" mobile={mobile} label={<span>
66
- <_IconLanguage.default style={{
67
- verticalAlign: 'text-bottom',
68
- marginRight: 5
69
- }} />
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,6 +4,7 @@ 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
 
@@ -59,6 +60,10 @@ function getComponentType(type, isDropdown) {
59
60
  return type;
60
61
  }
61
62
 
63
+ const getInfimaActiveClassName = mobile => mobile ? 'menu__link--active' : 'navbar__link--active';
64
+
65
+ exports.getInfimaActiveClassName = getInfimaActiveClassName;
66
+
62
67
  function NavbarItem({
63
68
  type,
64
69
  ...props
@@ -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
  }
@@ -3,14 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TOCHeadings = TOCHeadings;
7
6
  exports.default = void 0;
8
7
 
9
8
  var _react = _interopRequireDefault(require("react"));
10
9
 
11
10
  var _clsx = _interopRequireDefault(require("clsx"));
12
11
 
13
- var _useTOCHighlight = _interopRequireDefault(require("@theme/hooks/useTOCHighlight"));
12
+ var _TOCItems = _interopRequireDefault(require("@theme/TOCItems"));
14
13
 
15
14
  var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
16
15
 
@@ -22,37 +21,17 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
22
21
  * This source code is licensed under the MIT license found in the
23
22
  * LICENSE file in the root directory of this source tree.
24
23
  */
25
- const LINK_CLASS_NAME = 'table-of-contents__link';
26
- const ACTIVE_LINK_CLASS_NAME = 'table-of-contents__link--active';
27
- const TOP_OFFSET = 100;
28
- /* eslint-disable jsx-a11y/control-has-associated-label */
29
-
30
- function TOCHeadings({
31
- toc,
32
- isChild
33
- }) {
34
- if (!toc.length) {
35
- return null;
36
- }
37
-
38
- return <ul className={isChild ? '' : 'table-of-contents table-of-contents__left-border'}>
39
- {toc.map(heading => <li key={heading.id}>
40
- <a href={`#${heading.id}`} className={LINK_CLASS_NAME} // Developer provided the HTML, so assume it's safe.
41
- // eslint-disable-next-line react/no-danger
42
- dangerouslySetInnerHTML={{
43
- __html: heading.value
44
- }} />
45
- <TOCHeadings isChild toc={heading.children} />
46
- </li>)}
47
- </ul>;
48
- }
24
+ // Using a custom className
25
+ // This prevents TOC highlighting to highlight TOCInline/TOCCollapsible by mistake
26
+ const LINK_CLASS_NAME = 'table-of-contents__link toc-highlight';
27
+ const LINK_ACTIVE_CLASS_NAME = 'table-of-contents__link--active';
49
28
 
50
29
  function TOC({
51
- toc
30
+ className,
31
+ ...props
52
32
  }) {
53
- (0, _useTOCHighlight.default)(LINK_CLASS_NAME, ACTIVE_LINK_CLASS_NAME, TOP_OFFSET);
54
- return <div className={(0, _clsx.default)(_stylesModule.default.tableOfContents, 'thin-scrollbar')}>
55
- <TOCHeadings toc={toc} />
33
+ return <div className={(0, _clsx.default)(_stylesModule.default.tableOfContents, 'thin-scrollbar', className)}>
34
+ <_TOCItems.default {...props} linkClassName={LINK_CLASS_NAME} linkActiveClassName={LINK_ACTIVE_CLASS_NAME} />
56
35
  </div>;
57
36
  }
58
37
 
@@ -12,7 +12,7 @@
12
12
  top: calc(var(--ifm-navbar-height) + 1rem);
13
13
  }
14
14
 
15
- @media only screen and (max-width: 996px) {
15
+ @media (max-width: 996px) {
16
16
  .tableOfContents {
17
17
  display: none;
18
18
  }
@@ -15,7 +15,7 @@ var _themeCommon = require("@docusaurus/theme-common");
15
15
 
16
16
  var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
17
17
 
18
- var _TOC = require("@theme/TOC");
18
+ var _TOCItems = _interopRequireDefault(require("@theme/TOCItems"));
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
@@ -27,7 +27,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
27
27
  */
28
28
  function TOCCollapsible({
29
29
  toc,
30
- className
30
+ className,
31
+ minHeadingLevel,
32
+ maxHeadingLevel
31
33
  }) {
32
34
  const {
33
35
  collapsed,
@@ -45,7 +47,7 @@ function TOCCollapsible({
45
47
  </button>
46
48
 
47
49
  <_themeCommon.Collapsible lazy className={_stylesModule.default.tocCollapsibleContent} collapsed={collapsed}>
48
- <_TOC.TOCHeadings toc={toc} />
50
+ <_TOCItems.default toc={toc} minHeadingLevel={minHeadingLevel} maxHeadingLevel={maxHeadingLevel} />
49
51
  </_themeCommon.Collapsible>
50
52
  </div>;
51
53
  }
@@ -7,10 +7,10 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _clsx = _interopRequireDefault(require("clsx"));
11
-
12
10
  var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
13
11
 
12
+ var _TOCItems = _interopRequireDefault(require("@theme/TOCItems"));
13
+
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
16
16
  /**
@@ -19,33 +19,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
19
19
  * This source code is licensed under the MIT license found in the
20
20
  * LICENSE file in the root directory of this source tree.
21
21
  */
22
-
23
- /* eslint-disable jsx-a11y/control-has-associated-label */
24
- function HeadingsInline({
25
- toc,
26
- isChild
27
- }) {
28
- if (!toc.length) {
29
- return null;
30
- }
31
-
32
- return <ul className={isChild ? '' : 'table-of-contents'}>
33
- {toc.map(heading => <li key={heading.id}>
34
- <a href={`#${heading.id}`} // Developer provided the HTML, so assume it's safe.
35
- // eslint-disable-next-line react/no-danger
36
- dangerouslySetInnerHTML={{
37
- __html: heading.value
38
- }} />
39
- <HeadingsInline isChild toc={heading.children} />
40
- </li>)}
41
- </ul>;
42
- }
43
-
44
22
  function TOCInline({
45
- toc
23
+ toc,
24
+ minHeadingLevel,
25
+ maxHeadingLevel
46
26
  }) {
47
- return <div className={(0, _clsx.default)(_stylesModule.default.tableOfContentsInline)}>
48
- <HeadingsInline toc={toc} />
27
+ return <div className={_stylesModule.default.tableOfContentsInline}>
28
+ <_TOCItems.default toc={toc} minHeadingLevel={minHeadingLevel} maxHeadingLevel={maxHeadingLevel} className="table-of-contents" linkClassName={null} />
49
29
  </div>;
50
30
  }
51
31
 
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = TOCItems;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _themeCommon = require("@docusaurus/theme-common");
11
+
12
+ 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); }
13
+
14
+ 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; }
15
+
16
+ /**
17
+ * Copyright (c) Facebook, Inc. and its affiliates.
18
+ *
19
+ * This source code is licensed under the MIT license found in the
20
+ * LICENSE file in the root directory of this source tree.
21
+ */
22
+ // Recursive component rendering the toc tree
23
+
24
+ /* eslint-disable jsx-a11y/control-has-associated-label */
25
+ function TOCItemList({
26
+ toc,
27
+ className,
28
+ linkClassName,
29
+ isChild
30
+ }) {
31
+ if (!toc.length) {
32
+ return null;
33
+ }
34
+
35
+ return <ul className={isChild ? undefined : className}>
36
+ {toc.map(heading => <li key={heading.id}>
37
+ <a href={`#${heading.id}`} className={linkClassName !== null && linkClassName !== void 0 ? linkClassName : undefined} // Developer provided the HTML, so assume it's safe.
38
+ // eslint-disable-next-line react/no-danger
39
+ dangerouslySetInnerHTML={{
40
+ __html: heading.value
41
+ }} />
42
+ <TOCItemList isChild toc={heading.children} className={className} linkClassName={linkClassName} />
43
+ </li>)}
44
+ </ul>;
45
+ }
46
+
47
+ function TOCItems({
48
+ toc,
49
+ className = 'table-of-contents table-of-contents__left-border',
50
+ linkClassName = 'table-of-contents__link',
51
+ linkActiveClassName = undefined,
52
+ minHeadingLevel: minHeadingLevelOption,
53
+ maxHeadingLevel: maxHeadingLevelOption,
54
+ ...props
55
+ }) {
56
+ const themeConfig = (0, _themeCommon.useThemeConfig)();
57
+ const minHeadingLevel = minHeadingLevelOption !== null && minHeadingLevelOption !== void 0 ? minHeadingLevelOption : themeConfig.tableOfContents.minHeadingLevel;
58
+ const maxHeadingLevel = maxHeadingLevelOption !== null && maxHeadingLevelOption !== void 0 ? maxHeadingLevelOption : themeConfig.tableOfContents.maxHeadingLevel;
59
+ const tocFiltered = (0, _themeCommon.useTOCFilter)({
60
+ toc,
61
+ minHeadingLevel,
62
+ maxHeadingLevel
63
+ });
64
+ const tocHighlightConfig = (0, _react.useMemo)(() => {
65
+ if (linkClassName && linkActiveClassName) {
66
+ return {
67
+ linkClassName,
68
+ linkActiveClassName,
69
+ minHeadingLevel,
70
+ maxHeadingLevel
71
+ };
72
+ }
73
+
74
+ return undefined;
75
+ }, [linkClassName, linkActiveClassName, minHeadingLevel, maxHeadingLevel]);
76
+ (0, _themeCommon.useTOCHighlight)(tocHighlightConfig);
77
+ return <TOCItemList toc={tocFiltered} className={className} linkClassName={linkClassName} {...props} />;
78
+ }