@docusaurus/theme-classic 2.0.0-beta.12faed89d → 2.0.0-beta.13

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 (350) hide show
  1. package/README.md +1 -1
  2. package/lib/__tests__/validateThemeConfig.test.js +277 -3
  3. package/lib/admonitions.css +35 -0
  4. package/lib/deps.d.ts +13 -0
  5. package/lib/index.js +16 -15
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme/AnnouncementBar/index.js +8 -12
  8. package/lib/theme/AnnouncementBar/styles.module.css +23 -32
  9. package/lib/theme/BackToTopButton/index.js +140 -0
  10. package/lib/theme/BackToTopButton/styles.module.css +42 -0
  11. package/lib/theme/BlogArchivePage/index.js +89 -0
  12. package/lib/theme/BlogLayout/index.js +51 -0
  13. package/lib/theme/BlogListPage/index.js +10 -21
  14. package/lib/theme/BlogPostAuthor/index.js +51 -0
  15. package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
  16. package/lib/theme/BlogPostAuthors/index.js +47 -0
  17. package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
  18. package/lib/theme/BlogPostItem/index.js +58 -67
  19. package/lib/theme/BlogPostPage/index.js +37 -24
  20. package/lib/theme/BlogSidebar/index.js +5 -7
  21. package/lib/theme/BlogSidebar/styles.module.css +2 -2
  22. package/lib/theme/BlogTagsListPage/index.js +8 -44
  23. package/lib/theme/BlogTagsPostsPage/index.js +24 -38
  24. package/lib/theme/CodeBlock/index.js +18 -138
  25. package/lib/theme/CodeBlock/styles.module.css +6 -9
  26. package/lib/theme/Details/index.js +30 -0
  27. package/lib/theme/Details/styles.module.css +13 -0
  28. package/lib/theme/DocCard/index.js +84 -0
  29. package/lib/theme/DocCard/styles.module.css +43 -0
  30. package/lib/theme/DocCardList/index.js +28 -0
  31. package/lib/theme/DocCategoryGeneratedIndexPage/index.js +57 -0
  32. package/lib/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  33. package/lib/theme/DocItem/index.js +22 -48
  34. package/lib/theme/DocItem/styles.module.css +2 -11
  35. package/lib/theme/DocItemFooter/index.js +79 -0
  36. package/lib/theme/DocItemFooter/styles.module.css +18 -0
  37. package/lib/theme/DocPage/index.js +35 -20
  38. package/lib/theme/DocPaginator/index.js +6 -7
  39. package/lib/theme/DocSidebar/index.js +23 -22
  40. package/lib/theme/DocSidebarItem/index.js +84 -50
  41. package/lib/theme/DocSidebarItem/styles.module.css +4 -0
  42. package/lib/theme/DocTagDocListPage/index.js +89 -0
  43. package/lib/theme/DocTagsListPage/index.js +44 -0
  44. package/lib/theme/DocVersionBadge/index.js +34 -0
  45. package/lib/theme/DocVersionBanner/index.js +12 -10
  46. package/lib/theme/EditThisPage/index.js +3 -1
  47. package/lib/theme/ErrorPageContent.js +43 -0
  48. package/lib/theme/Footer/index.js +8 -4
  49. package/lib/theme/Heading/index.js +17 -22
  50. package/lib/theme/Heading/styles.css +5 -6
  51. package/lib/theme/Heading/styles.module.css +9 -5
  52. package/lib/theme/IconArrow/index.js +2 -2
  53. package/lib/theme/IconClose/index.js +31 -0
  54. package/lib/theme/IconEdit/index.js +3 -3
  55. package/lib/theme/IconExternalLink/index.js +3 -3
  56. package/lib/theme/IconLanguage/index.js +3 -3
  57. package/lib/theme/IconMenu/index.js +3 -3
  58. package/lib/theme/LastUpdated/index.js +4 -2
  59. package/lib/theme/Layout/index.js +5 -1
  60. package/lib/theme/LayoutHead/index.js +22 -17
  61. package/lib/theme/LayoutProviders/index.js +7 -5
  62. package/lib/theme/Logo/index.js +16 -14
  63. package/lib/theme/MDXComponents/index.js +45 -4
  64. package/lib/theme/MDXComponents/styles.css +11 -0
  65. package/lib/theme/MDXPage/index.js +2 -1
  66. package/lib/theme/Navbar/index.js +46 -27
  67. package/lib/theme/Navbar/styles.module.css +3 -39
  68. package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -124
  69. package/lib/theme/NavbarItem/DocNavbarItem.js +7 -8
  70. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
  71. package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
  72. package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +6 -10
  73. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  74. package/lib/theme/NavbarItem/index.js +31 -11
  75. package/lib/theme/{SearchMetadatas → SearchMetadata}/index.js +2 -2
  76. package/lib/theme/Seo/index.js +10 -7
  77. package/lib/theme/TOC/index.js +9 -30
  78. package/lib/theme/TOC/styles.module.css +1 -1
  79. package/lib/theme/TOCCollapsible/index.js +7 -5
  80. package/lib/theme/TOCCollapsible/styles.module.css +1 -0
  81. package/lib/theme/TOCInline/index.js +7 -27
  82. package/lib/theme/TOCItems/index.js +78 -0
  83. package/lib/theme/Tabs/__tests__/index.test.js +123 -0
  84. package/lib/theme/Tabs/index.js +73 -50
  85. package/lib/theme/Tabs/styles.module.css +0 -13
  86. package/lib/theme/Tag/index.js +40 -0
  87. package/lib/theme/Tag/styles.module.css +70 -0
  88. package/lib/theme/TagsListByLetter/index.js +48 -0
  89. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  90. package/lib/theme/TagsListInline/index.js +44 -0
  91. package/lib/theme/TagsListInline/styles.module.css +15 -0
  92. package/lib/theme/ThemeProvider/index.js +8 -3
  93. package/lib/theme/ThemedImage/index.js +5 -7
  94. package/lib/theme/Toggle/index.js +41 -44
  95. package/lib/theme/Toggle/styles.module.css +91 -3
  96. package/lib/theme/UserPreferencesProvider/index.js +8 -3
  97. package/lib/theme/hooks/useHideableNavbar.js +14 -32
  98. package/lib/theme/hooks/useTheme.js +3 -5
  99. package/lib/theme/hooks/useWindowSize.js +2 -7
  100. package/lib/theme/prism-include-languages.js +4 -3
  101. package/lib/theme-classic.d.ts +806 -0
  102. package/lib/translations.js +4 -4
  103. package/lib/types.d.ts +0 -629
  104. package/lib/validateThemeConfig.js +230 -248
  105. package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
  106. package/lib-next/admonitions.css +35 -0
  107. package/lib-next/deps.d.ts +13 -0
  108. package/lib-next/index.js +16 -10
  109. package/lib-next/prism-include-languages.js +0 -2
  110. package/lib-next/theme/AnnouncementBar/index.js +7 -12
  111. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  112. package/lib-next/theme/BackToTopButton/index.js +131 -0
  113. package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
  114. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  115. package/lib-next/theme/BlogLayout/index.js +40 -0
  116. package/lib-next/theme/BlogListPage/index.js +17 -25
  117. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  118. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  119. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  120. package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
  121. package/lib-next/theme/BlogPostItem/index.js +79 -86
  122. package/lib-next/theme/BlogPostPage/index.js +70 -35
  123. package/lib-next/theme/BlogSidebar/index.js +11 -13
  124. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  125. package/lib-next/theme/BlogTagsListPage/index.js +14 -55
  126. package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
  127. package/lib-next/theme/CodeBlock/index.js +17 -149
  128. package/lib-next/theme/CodeBlock/styles.module.css +6 -9
  129. package/lib-next/theme/Details/index.js +20 -0
  130. package/lib-next/theme/Details/styles.module.css +13 -0
  131. package/lib-next/theme/DocCard/index.js +80 -0
  132. package/lib-next/theme/DocCard/styles.module.css +43 -0
  133. package/lib-next/theme/DocCardList/index.js +19 -0
  134. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
  135. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  136. package/lib-next/theme/DocItem/index.js +30 -59
  137. package/lib-next/theme/DocItem/styles.module.css +2 -11
  138. package/lib-next/theme/DocItemFooter/index.js +79 -0
  139. package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
  140. package/lib-next/theme/DocPage/index.js +46 -23
  141. package/lib-next/theme/DocPaginator/index.js +7 -11
  142. package/lib-next/theme/DocSidebar/index.js +37 -43
  143. package/lib-next/theme/DocSidebarItem/index.js +115 -65
  144. package/lib-next/theme/DocSidebarItem/styles.module.css +4 -0
  145. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  146. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  147. package/lib-next/theme/DocVersionBadge/index.js +27 -0
  148. package/lib-next/theme/DocVersionBanner/index.js +28 -14
  149. package/lib-next/theme/EditThisPage/index.js +6 -1
  150. package/lib-next/theme/ErrorPageContent.js +35 -0
  151. package/lib-next/theme/Footer/index.js +17 -4
  152. package/lib-next/theme/Heading/index.js +25 -29
  153. package/lib-next/theme/Heading/styles.css +5 -6
  154. package/lib-next/theme/Heading/styles.module.css +9 -5
  155. package/lib-next/theme/IconArrow/index.js +2 -2
  156. package/lib-next/theme/IconClose/index.js +23 -0
  157. package/lib-next/theme/IconEdit/index.js +2 -2
  158. package/lib-next/theme/IconExternalLink/index.js +2 -2
  159. package/lib-next/theme/IconLanguage/index.js +2 -2
  160. package/lib-next/theme/IconMenu/index.js +2 -2
  161. package/lib-next/theme/LastUpdated/index.js +3 -2
  162. package/lib-next/theme/Layout/index.js +3 -1
  163. package/lib-next/theme/LayoutHead/index.js +18 -23
  164. package/lib-next/theme/LayoutProviders/index.js +8 -5
  165. package/lib-next/theme/Logo/index.js +25 -21
  166. package/lib-next/theme/MDXComponents/index.js +34 -7
  167. package/lib-next/theme/MDXComponents/styles.css +11 -0
  168. package/lib-next/theme/MDXPage/index.js +10 -2
  169. package/lib-next/theme/Navbar/index.js +62 -34
  170. package/lib-next/theme/Navbar/styles.module.css +3 -39
  171. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -143
  172. package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
  173. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
  174. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +159 -0
  175. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
  176. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  177. package/lib-next/theme/NavbarItem/index.js +25 -12
  178. package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
  179. package/lib-next/theme/Seo/index.js +11 -7
  180. package/lib-next/theme/TOC/index.js +12 -36
  181. package/lib-next/theme/TOC/styles.module.css +1 -1
  182. package/lib-next/theme/TOCCollapsible/index.js +13 -4
  183. package/lib-next/theme/TOCCollapsible/styles.module.css +1 -0
  184. package/lib-next/theme/TOCInline/index.js +10 -28
  185. package/lib-next/theme/TOCItems/index.js +85 -0
  186. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  187. package/lib-next/theme/Tabs/index.js +91 -43
  188. package/lib-next/theme/Tabs/styles.module.css +0 -13
  189. package/lib-next/theme/Tag/index.js +27 -0
  190. package/lib-next/theme/Tag/styles.module.css +70 -0
  191. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  192. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  193. package/lib-next/theme/TagsListInline/index.js +31 -0
  194. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  195. package/lib-next/theme/ThemeProvider/index.js +10 -7
  196. package/lib-next/theme/ThemedImage/index.js +5 -5
  197. package/lib-next/theme/Toggle/index.js +34 -37
  198. package/lib-next/theme/Toggle/styles.module.css +91 -3
  199. package/lib-next/theme/UserPreferencesProvider/index.js +9 -6
  200. package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
  201. package/lib-next/theme/hooks/useTheme.js +4 -5
  202. package/lib-next/theme/hooks/useWindowSize.js +2 -6
  203. package/lib-next/theme/prism-include-languages.js +2 -1
  204. package/lib-next/theme-classic.d.ts +806 -0
  205. package/lib-next/translations.js +6 -10
  206. package/lib-next/types.d.ts +0 -629
  207. package/lib-next/validateThemeConfig.js +141 -116
  208. package/package.json +27 -24
  209. package/src/__tests__/validateThemeConfig.test.js +277 -3
  210. package/src/admonitions.css +35 -0
  211. package/src/deps.d.ts +13 -0
  212. package/src/index.ts +23 -17
  213. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  214. package/src/theme/AnnouncementBar/index.tsx +8 -12
  215. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  216. package/src/theme/BackToTopButton/index.tsx +142 -0
  217. package/src/theme/BackToTopButton/styles.module.css +42 -0
  218. package/src/theme/BlogArchivePage/index.tsx +91 -0
  219. package/src/theme/BlogLayout/index.tsx +44 -0
  220. package/src/theme/BlogListPage/index.tsx +18 -25
  221. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  222. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  223. package/src/theme/BlogPostAuthors/index.tsx +39 -0
  224. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  225. package/src/theme/BlogPostItem/index.tsx +70 -80
  226. package/src/theme/BlogPostPage/index.tsx +72 -35
  227. package/src/theme/BlogSidebar/index.tsx +11 -13
  228. package/src/theme/BlogSidebar/styles.module.css +2 -2
  229. package/src/theme/BlogTagsListPage/index.tsx +14 -57
  230. package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
  231. package/src/theme/CodeBlock/index.tsx +21 -151
  232. package/src/theme/CodeBlock/styles.module.css +6 -9
  233. package/src/theme/Details/index.tsx +24 -0
  234. package/src/theme/Details/styles.module.css +13 -0
  235. package/src/theme/DocCard/index.tsx +100 -0
  236. package/src/theme/DocCard/styles.module.css +43 -0
  237. package/src/theme/DocCardList/index.tsx +27 -0
  238. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
  239. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  240. package/src/theme/DocItem/index.tsx +30 -60
  241. package/src/theme/DocItem/styles.module.css +2 -11
  242. package/src/theme/DocItemFooter/index.tsx +91 -0
  243. package/src/theme/DocItemFooter/styles.module.css +18 -0
  244. package/src/theme/DocPage/index.tsx +44 -22
  245. package/src/theme/DocPaginator/index.tsx +9 -13
  246. package/src/theme/DocSidebar/index.tsx +38 -39
  247. package/src/theme/DocSidebarItem/index.tsx +108 -49
  248. package/src/theme/DocSidebarItem/styles.module.css +4 -0
  249. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  250. package/src/theme/DocTagsListPage/index.tsx +41 -0
  251. package/src/theme/DocVersionBadge/index.tsx +30 -0
  252. package/src/theme/DocVersionBanner/index.tsx +48 -21
  253. package/src/theme/EditThisPage/index.tsx +6 -1
  254. package/src/theme/ErrorPageContent.tsx +41 -0
  255. package/src/theme/Footer/index.tsx +20 -5
  256. package/src/theme/Heading/index.tsx +25 -31
  257. package/src/theme/Heading/styles.css +5 -6
  258. package/src/theme/Heading/styles.module.css +9 -5
  259. package/src/theme/IconArrow/index.tsx +2 -2
  260. package/src/theme/IconClose/index.tsx +26 -0
  261. package/src/theme/IconEdit/index.tsx +2 -2
  262. package/src/theme/IconExternalLink/index.tsx +2 -5
  263. package/src/theme/IconLanguage/index.tsx +2 -6
  264. package/src/theme/IconMenu/index.tsx +3 -3
  265. package/src/theme/LastUpdated/index.tsx +3 -2
  266. package/src/theme/Layout/index.tsx +3 -1
  267. package/src/theme/LayoutHead/index.tsx +18 -17
  268. package/src/theme/LayoutProviders/index.tsx +8 -5
  269. package/src/theme/Logo/index.tsx +21 -17
  270. package/src/theme/MDXComponents/index.tsx +39 -5
  271. package/src/theme/MDXComponents/styles.css +11 -0
  272. package/src/theme/MDXPage/index.tsx +10 -2
  273. package/src/theme/Navbar/index.tsx +62 -35
  274. package/src/theme/Navbar/styles.module.css +3 -39
  275. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -149
  276. package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
  277. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
  278. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  279. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  280. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
  281. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  282. package/src/theme/NavbarItem/index.tsx +41 -16
  283. package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
  284. package/src/theme/Seo/index.tsx +7 -4
  285. package/src/theme/TOC/index.tsx +13 -35
  286. package/src/theme/TOC/styles.module.css +1 -1
  287. package/src/theme/TOCCollapsible/index.tsx +13 -4
  288. package/src/theme/TOCCollapsible/styles.module.css +1 -0
  289. package/src/theme/TOCInline/index.tsx +13 -32
  290. package/src/theme/TOCItems/index.tsx +96 -0
  291. package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
  292. package/src/theme/Tabs/index.tsx +93 -49
  293. package/src/theme/Tabs/styles.module.css +0 -13
  294. package/src/theme/Tag/index.tsx +31 -0
  295. package/src/theme/Tag/styles.module.css +70 -0
  296. package/src/theme/TagsListByLetter/index.tsx +45 -0
  297. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  298. package/src/theme/TagsListInline/index.tsx +35 -0
  299. package/src/theme/TagsListInline/styles.module.css +15 -0
  300. package/src/theme/ThemeProvider/index.tsx +6 -2
  301. package/src/theme/ThemedImage/index.tsx +5 -5
  302. package/src/theme/Toggle/index.tsx +36 -43
  303. package/src/theme/Toggle/styles.module.css +91 -3
  304. package/src/theme/UserPreferencesProvider/index.tsx +9 -6
  305. package/src/theme/hooks/useHideableNavbar.ts +32 -45
  306. package/src/theme/hooks/useTabGroupChoice.ts +2 -2
  307. package/src/theme/hooks/useTheme.ts +4 -5
  308. package/src/theme/hooks/useWindowSize.ts +2 -7
  309. package/src/theme/prism-include-languages.ts +3 -2
  310. package/src/theme-classic.d.ts +806 -0
  311. package/src/translations.ts +8 -10
  312. package/src/types.d.ts +0 -629
  313. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +151 -96
  314. package/tsconfig.json +1 -2
  315. package/codeTranslations/README.md +0 -20
  316. package/codeTranslations/ar.json +0 -56
  317. package/codeTranslations/base.json +0 -110
  318. package/codeTranslations/bn.json +0 -56
  319. package/codeTranslations/da.json +0 -56
  320. package/codeTranslations/de.json +0 -56
  321. package/codeTranslations/es.json +0 -56
  322. package/codeTranslations/fa.json +0 -56
  323. package/codeTranslations/fil.json +0 -56
  324. package/codeTranslations/fr.json +0 -56
  325. package/codeTranslations/he.json +0 -56
  326. package/codeTranslations/hi.json +0 -56
  327. package/codeTranslations/ja.json +0 -56
  328. package/codeTranslations/ko.json +0 -56
  329. package/codeTranslations/pl.json +0 -56
  330. package/codeTranslations/pt-BR.json +0 -56
  331. package/codeTranslations/pt-PT.json +0 -56
  332. package/codeTranslations/ru.json +0 -56
  333. package/codeTranslations/tr.json +0 -56
  334. package/codeTranslations/vi.json +0 -56
  335. package/codeTranslations/zh-Hans.json +0 -56
  336. package/codeTranslations/zh-Hant.json +0 -56
  337. package/lib/theme/Toggle/styles.css +0 -103
  338. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  339. package/lib/theme/hooks/useScrollPosition.js +0 -49
  340. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  341. package/lib-next/theme/Toggle/styles.css +0 -103
  342. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  343. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  344. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  345. package/src/theme/Toggle/styles.css +0 -103
  346. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  347. package/src/theme/hooks/useScrollPosition.ts +0 -45
  348. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  349. package/update-code-translations.js +0 -242
  350. package/update-code-translations.test.js +0 -33
@@ -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
  /**
@@ -53,20 +55,14 @@ function LocaleDropdownNavbarItem({
53
55
  to,
54
56
  target: '_self',
55
57
  autoAddBaseUrl: false,
56
- className: locale === currentLocale ? 'dropdown__link--active' : '',
57
- style: {
58
- textTransform: 'capitalize'
59
- }
58
+ className: locale === currentLocale ? 'dropdown__link--active' : ''
60
59
  };
61
60
  });
62
61
  const items = [...dropdownItemsBefore, ...localeItems, ...dropdownItemsAfter]; // Mobile is handled a bit differently
63
62
 
64
63
  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
- }} />
64
+ return <_DropdownNavbarItem.default {...props} mobile={mobile} label={<span>
65
+ <_IconLanguage.default className={_stylesModule.default.iconLanguage} />
70
66
  <span>{dropdownLabel}</span>
71
67
  </span>} items={items} />;
72
68
  }
@@ -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
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = SearchMetadatas;
6
+ exports.default = SearchMetadata;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
@@ -20,7 +20,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
20
20
  // Note: we don't couple this to Algolia/DocSearch on purpose
21
21
  // We may want to support other search engine plugins too
22
22
  // Search plugins should swizzle/override this comp to add their behavior
23
- function SearchMetadatas({
23
+ function SearchMetadata({
24
24
  locale,
25
25
  version,
26
26
  tag
@@ -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,
@@ -35,7 +37,7 @@ function TOCCollapsible({
35
37
  } = (0, _themeCommon.useCollapsible)({
36
38
  initialState: true
37
39
  });
38
- return <div className={(0, _clsx.default)('margin-vert--md', _stylesModule.default.tocCollapsible, {
40
+ return <div className={(0, _clsx.default)(_stylesModule.default.tocCollapsible, {
39
41
  [_stylesModule.default.tocCollapsibleExpanded]: !collapsed
40
42
  }, className)}>
41
43
  <button type="button" className={(0, _clsx.default)('clean-btn', _stylesModule.default.tocCollapsibleButton)} onClick={toggleCollapsed}>
@@ -44,8 +46,8 @@ function TOCCollapsible({
44
46
  </_Translate.default>
45
47
  </button>
46
48
 
47
- <_themeCommon.Collapsible className={_stylesModule.default.tocCollapsibleContent} collapsed={collapsed}>
48
- <_TOC.TOCHeadings toc={toc} />
49
+ <_themeCommon.Collapsible lazy className={_stylesModule.default.tocCollapsibleContent} collapsed={collapsed}>
50
+ <_TOCItems.default toc={toc} minHeadingLevel={minHeadingLevel} maxHeadingLevel={maxHeadingLevel} />
49
51
  </_themeCommon.Collapsible>
50
52
  </div>;
51
53
  }
@@ -8,6 +8,7 @@
8
8
  .tocCollapsible {
9
9
  background-color: var(--ifm-menu-color-background-active);
10
10
  border-radius: var(--ifm-global-radius);
11
+ margin: 1rem 0;
11
12
  }
12
13
 
13
14
  .tocCollapsibleButton {
@@ -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
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));
6
+
7
+ var _index = _interopRequireDefault(require("../index"));
8
+
9
+ var _TabItem = _interopRequireDefault(require("../../TabItem"));
10
+
11
+ var _UserPreferencesProvider = _interopRequireDefault(require("@theme/UserPreferencesProvider"));
12
+
13
+ var _themeCommon = require("@docusaurus/theme-common");
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+ /**
18
+ * Copyright (c) Facebook, Inc. and its affiliates.
19
+ *
20
+ * This source code is licensed under the MIT license found in the
21
+ * LICENSE file in the root directory of this source tree.
22
+ */
23
+ describe('Tabs', () => {
24
+ test('Should reject bad Tabs child', () => {
25
+ expect(() => {
26
+ _reactTestRenderer.default.create(<_index.default>
27
+ <div>Naughty</div>
28
+ <_TabItem.default value="good">Good</_TabItem.default>
29
+ </_index.default>);
30
+ }).toThrowErrorMatchingInlineSnapshot(`"Docusaurus error: Bad <Tabs> child <div>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique \\"value\\" prop."`);
31
+ });
32
+ test('Should reject bad Tabs defaultValue', () => {
33
+ expect(() => {
34
+ _reactTestRenderer.default.create(<_index.default defaultValue="bad">
35
+ <_TabItem.default value="v1">Tab 1</_TabItem.default>
36
+ <_TabItem.default value="v2">Tab 2</_TabItem.default>
37
+ </_index.default>);
38
+ }).toThrowErrorMatchingInlineSnapshot(`"Docusaurus error: The <Tabs> has a defaultValue \\"bad\\" but none of its children has the corresponding value. Available values are: v1, v2. If you intend to show no default tab, use defaultValue={null} instead."`);
39
+ });
40
+ test('Should reject duplicate values', () => {
41
+ expect(() => {
42
+ _reactTestRenderer.default.create(<_index.default>
43
+ <_TabItem.default value="v1">Tab 1</_TabItem.default>
44
+ <_TabItem.default value="v2">Tab 2</_TabItem.default>
45
+ <_TabItem.default value="v3">Tab 3</_TabItem.default>
46
+ <_TabItem.default value="v4">Tab 4</_TabItem.default>
47
+ <_TabItem.default value="v1">Tab 5</_TabItem.default>
48
+ <_TabItem.default value="v2">Tab 6</_TabItem.default>
49
+ </_index.default>);
50
+ }).toThrowErrorMatchingInlineSnapshot(`"Docusaurus error: Duplicate values \\"v1, v2\\" found in <Tabs>. Every value needs to be unique."`);
51
+ });
52
+ test('Should accept valid Tabs config', () => {
53
+ expect(() => {
54
+ _reactTestRenderer.default.create(<_themeCommon.ScrollControllerProvider>
55
+ <_UserPreferencesProvider.default>
56
+ <_index.default>
57
+ <_TabItem.default value="v1">Tab 1</_TabItem.default>
58
+ <_TabItem.default value="v2">Tab 2</_TabItem.default>
59
+ </_index.default>
60
+ <_index.default>
61
+ <_TabItem.default value="v1">Tab 1</_TabItem.default>
62
+ <_TabItem.default value="v2" default>
63
+ Tab 2
64
+ </_TabItem.default>
65
+ </_index.default>
66
+ <_index.default defaultValue="v1">
67
+ <_TabItem.default value="v1" label="V1">
68
+ Tab 1
69
+ </_TabItem.default>
70
+ <_TabItem.default value="v2" label="V2">
71
+ Tab 2
72
+ </_TabItem.default>
73
+ </_index.default>
74
+ <_index.default defaultValue="v1" values={[{
75
+ value: 'v1',
76
+ label: 'V1'
77
+ }, {
78
+ value: 'v2',
79
+ label: 'V2'
80
+ }]}>
81
+ <_TabItem.default value="v1">Tab 1</_TabItem.default>
82
+ <_TabItem.default value="v2">Tab 2</_TabItem.default>
83
+ </_index.default>
84
+ <_index.default defaultValue={null} values={[{
85
+ value: 'v1',
86
+ label: 'V1'
87
+ }, {
88
+ value: 'v2',
89
+ label: 'V2'
90
+ }]}>
91
+ <_TabItem.default value="v1">Tab 1</_TabItem.default>
92
+ <_TabItem.default value="v2">Tab 2</_TabItem.default>
93
+ </_index.default>
94
+ <_index.default defaultValue={null}>
95
+ <_TabItem.default value="v1" label="V1">
96
+ Tab 1
97
+ </_TabItem.default>
98
+ <_TabItem.default value="v2" label="V2">
99
+ Tab 2
100
+ </_TabItem.default>
101
+ </_index.default>
102
+ </_UserPreferencesProvider.default>
103
+ </_themeCommon.ScrollControllerProvider>);
104
+ }).not.toThrow(); // TODO Better Jest infrastructure to mock the Layout
105
+ }); // https://github.com/facebook/docusaurus/issues/5729
106
+
107
+ test('Should accept dynamic Tabs with number values', () => {
108
+ expect(() => {
109
+ const tabs = ['Apple', 'Banana', 'Carrot'];
110
+
111
+ _reactTestRenderer.default.create(<_themeCommon.ScrollControllerProvider>
112
+ <_UserPreferencesProvider.default>
113
+ <_index.default values={tabs.map((t, idx) => ({
114
+ label: t,
115
+ value: idx
116
+ }))} defaultValue={0}>
117
+ {tabs.map((t, idx) => <_TabItem.default value={idx}>{t}</_TabItem.default>)}
118
+ </_index.default>
119
+ </_UserPreferencesProvider.default>
120
+ </_themeCommon.ScrollControllerProvider>);
121
+ }).not.toThrow();
122
+ });
123
+ });