@docusaurus/theme-classic 2.0.0-beta.1 → 2.0.0-beta.10

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 (367) 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 +41 -16
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme/AnnouncementBar/index.js +10 -16
  8. package/lib/theme/AnnouncementBar/styles.module.css +25 -30
  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 +29 -46
  34. package/lib/theme/DocItem/styles.module.css +5 -9
  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 -52
  38. package/lib/theme/DocPage/styles.module.css +8 -23
  39. package/lib/theme/DocPaginator/index.js +6 -7
  40. package/lib/theme/DocSidebar/index.js +53 -235
  41. package/lib/theme/DocSidebar/styles.module.css +0 -18
  42. package/lib/theme/DocSidebarItem/index.js +209 -0
  43. package/lib/theme/DocSidebarItem/styles.module.css +19 -0
  44. package/lib/theme/DocTagDocListPage/index.js +89 -0
  45. package/lib/theme/DocTagsListPage/index.js +44 -0
  46. package/lib/theme/DocVersionBadge/index.js +34 -0
  47. package/lib/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +39 -20
  48. package/lib/theme/EditThisPage/index.js +3 -1
  49. package/lib/theme/ErrorPageContent.js +43 -0
  50. package/lib/theme/Footer/index.js +16 -5
  51. package/lib/theme/Heading/index.js +17 -22
  52. package/lib/theme/Heading/styles.css +5 -6
  53. package/lib/theme/Heading/styles.module.css +9 -5
  54. package/lib/theme/IconArrow/index.js +2 -2
  55. package/lib/theme/IconClose/index.js +31 -0
  56. package/lib/theme/IconEdit/index.js +3 -3
  57. package/lib/theme/IconExternalLink/index.js +3 -3
  58. package/lib/theme/IconLanguage/index.js +3 -3
  59. package/lib/theme/IconMenu/index.js +3 -3
  60. package/lib/theme/LastUpdated/index.js +4 -2
  61. package/lib/theme/Layout/index.js +5 -1
  62. package/lib/theme/LayoutHead/index.js +22 -17
  63. package/lib/theme/LayoutProviders/index.js +11 -5
  64. package/lib/theme/Logo/index.js +16 -14
  65. package/lib/theme/MDXComponents/index.js +45 -4
  66. package/lib/theme/MDXComponents/styles.css +11 -0
  67. package/lib/theme/MDXPage/index.js +2 -1
  68. package/lib/theme/Navbar/index.js +162 -42
  69. package/lib/theme/Navbar/styles.module.css +10 -3
  70. package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -123
  71. package/lib/theme/NavbarItem/DocNavbarItem.js +7 -8
  72. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
  73. package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
  74. package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +6 -10
  75. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  76. package/lib/theme/NavbarItem/index.js +31 -11
  77. package/lib/theme/{SearchMetadatas → SearchMetadata}/index.js +2 -2
  78. package/lib/theme/Seo/index.js +10 -7
  79. package/lib/theme/SkipToContent/index.js +12 -4
  80. package/lib/theme/SkipToContent/styles.module.css +1 -0
  81. package/lib/theme/TOC/index.js +9 -29
  82. package/lib/theme/TOC/styles.module.css +1 -1
  83. package/lib/theme/TOCCollapsible/index.js +53 -0
  84. package/lib/theme/TOCCollapsible/styles.module.css +50 -0
  85. package/lib/theme/TOCInline/index.js +7 -27
  86. package/lib/theme/TOCItems/index.js +78 -0
  87. package/lib/theme/Tabs/__tests__/index.test.js +123 -0
  88. package/lib/theme/Tabs/index.js +73 -50
  89. package/lib/theme/Tabs/styles.module.css +0 -13
  90. package/lib/theme/Tag/index.js +40 -0
  91. package/lib/theme/Tag/styles.module.css +70 -0
  92. package/lib/theme/TagsListByLetter/index.js +48 -0
  93. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  94. package/lib/theme/TagsListInline/index.js +44 -0
  95. package/lib/theme/TagsListInline/styles.module.css +15 -0
  96. package/lib/theme/ThemeProvider/index.js +8 -3
  97. package/lib/theme/ThemedImage/index.js +6 -7
  98. package/lib/theme/Toggle/index.js +41 -44
  99. package/lib/theme/Toggle/styles.module.css +91 -3
  100. package/lib/theme/UserPreferencesProvider/index.js +9 -12
  101. package/lib/theme/hooks/useHideableNavbar.js +14 -32
  102. package/lib/theme/hooks/useTabGroupChoice.js +2 -4
  103. package/lib/theme/hooks/useTheme.js +3 -5
  104. package/lib/theme/hooks/useWindowSize.js +33 -20
  105. package/lib/theme/prism-include-languages.js +4 -3
  106. package/lib/theme-classic.d.ts +806 -0
  107. package/lib/translations.js +4 -4
  108. package/lib/types.d.ts +0 -599
  109. package/lib/validateThemeConfig.js +230 -246
  110. package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
  111. package/lib-next/admonitions.css +35 -0
  112. package/lib-next/deps.d.ts +13 -0
  113. package/lib-next/index.js +45 -13
  114. package/lib-next/prism-include-languages.js +0 -2
  115. package/lib-next/theme/AnnouncementBar/index.js +9 -18
  116. package/lib-next/theme/AnnouncementBar/styles.module.css +25 -30
  117. package/lib-next/theme/BackToTopButton/index.js +131 -0
  118. package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
  119. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  120. package/lib-next/theme/BlogLayout/index.js +40 -0
  121. package/lib-next/theme/BlogListPage/index.js +17 -25
  122. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  123. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  124. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  125. package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
  126. package/lib-next/theme/BlogPostItem/index.js +79 -86
  127. package/lib-next/theme/BlogPostPage/index.js +70 -35
  128. package/lib-next/theme/BlogSidebar/index.js +11 -13
  129. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  130. package/lib-next/theme/BlogTagsListPage/index.js +14 -55
  131. package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
  132. package/lib-next/theme/CodeBlock/index.js +17 -149
  133. package/lib-next/theme/CodeBlock/styles.module.css +6 -9
  134. package/lib-next/theme/Details/index.js +20 -0
  135. package/lib-next/theme/Details/styles.module.css +13 -0
  136. package/lib-next/theme/DocCard/index.js +80 -0
  137. package/lib-next/theme/DocCard/styles.module.css +43 -0
  138. package/lib-next/theme/DocCardList/index.js +19 -0
  139. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
  140. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  141. package/lib-next/theme/DocItem/index.js +40 -56
  142. package/lib-next/theme/DocItem/styles.module.css +5 -9
  143. package/lib-next/theme/DocItemFooter/index.js +79 -0
  144. package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
  145. package/lib-next/theme/DocPage/index.js +46 -47
  146. package/lib-next/theme/DocPage/styles.module.css +8 -23
  147. package/lib-next/theme/DocPaginator/index.js +7 -11
  148. package/lib-next/theme/DocSidebar/index.js +69 -295
  149. package/lib-next/theme/DocSidebar/styles.module.css +0 -18
  150. package/lib-next/theme/DocSidebarItem/index.js +217 -0
  151. package/lib-next/theme/DocSidebarItem/styles.module.css +19 -0
  152. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  153. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  154. package/lib-next/theme/DocVersionBadge/index.js +27 -0
  155. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +51 -36
  156. package/lib-next/theme/EditThisPage/index.js +6 -1
  157. package/lib-next/theme/ErrorPageContent.js +35 -0
  158. package/lib-next/theme/Footer/index.js +27 -5
  159. package/lib-next/theme/Heading/index.js +25 -29
  160. package/lib-next/theme/Heading/styles.css +5 -6
  161. package/lib-next/theme/Heading/styles.module.css +9 -5
  162. package/lib-next/theme/IconArrow/index.js +2 -2
  163. package/lib-next/theme/IconClose/index.js +23 -0
  164. package/lib-next/theme/IconEdit/index.js +2 -2
  165. package/lib-next/theme/IconExternalLink/index.js +2 -2
  166. package/lib-next/theme/IconLanguage/index.js +2 -2
  167. package/lib-next/theme/IconMenu/index.js +2 -2
  168. package/lib-next/theme/LastUpdated/index.js +3 -2
  169. package/lib-next/theme/Layout/index.js +3 -1
  170. package/lib-next/theme/LayoutHead/index.js +18 -23
  171. package/lib-next/theme/LayoutProviders/index.js +17 -6
  172. package/lib-next/theme/Logo/index.js +25 -21
  173. package/lib-next/theme/MDXComponents/index.js +34 -7
  174. package/lib-next/theme/MDXComponents/styles.css +11 -0
  175. package/lib-next/theme/MDXPage/index.js +10 -2
  176. package/lib-next/theme/Navbar/index.js +193 -56
  177. package/lib-next/theme/Navbar/styles.module.css +10 -3
  178. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
  179. package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
  180. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
  181. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +159 -0
  182. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
  183. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  184. package/lib-next/theme/NavbarItem/index.js +25 -12
  185. package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
  186. package/lib-next/theme/Seo/index.js +11 -7
  187. package/lib-next/theme/SkipToContent/index.js +7 -8
  188. package/lib-next/theme/SkipToContent/styles.module.css +1 -0
  189. package/lib-next/theme/TOC/index.js +12 -36
  190. package/lib-next/theme/TOC/styles.module.css +1 -1
  191. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  192. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  193. package/lib-next/theme/TOCInline/index.js +10 -28
  194. package/lib-next/theme/TOCItems/index.js +85 -0
  195. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  196. package/lib-next/theme/Tabs/index.js +91 -43
  197. package/lib-next/theme/Tabs/styles.module.css +0 -13
  198. package/lib-next/theme/Tag/index.js +27 -0
  199. package/lib-next/theme/Tag/styles.module.css +70 -0
  200. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  201. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  202. package/lib-next/theme/TagsListInline/index.js +31 -0
  203. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  204. package/lib-next/theme/ThemeProvider/index.js +10 -7
  205. package/lib-next/theme/ThemedImage/index.js +7 -8
  206. package/lib-next/theme/Toggle/index.js +34 -37
  207. package/lib-next/theme/Toggle/styles.module.css +91 -3
  208. package/lib-next/theme/UserPreferencesProvider/index.js +9 -10
  209. package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
  210. package/lib-next/theme/hooks/useTabGroupChoice.js +2 -4
  211. package/lib-next/theme/hooks/useTheme.js +4 -5
  212. package/lib-next/theme/hooks/useWindowSize.js +34 -20
  213. package/lib-next/theme/prism-include-languages.js +2 -1
  214. package/lib-next/theme-classic.d.ts +806 -0
  215. package/lib-next/translations.js +6 -10
  216. package/lib-next/types.d.ts +0 -599
  217. package/lib-next/validateThemeConfig.js +141 -114
  218. package/package.json +28 -25
  219. package/src/__tests__/validateThemeConfig.test.js +277 -3
  220. package/src/admonitions.css +35 -0
  221. package/src/deps.d.ts +13 -0
  222. package/src/index.ts +55 -22
  223. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  224. package/src/theme/AnnouncementBar/index.tsx +10 -17
  225. package/src/theme/AnnouncementBar/styles.module.css +25 -30
  226. package/src/theme/BackToTopButton/index.tsx +142 -0
  227. package/src/theme/BackToTopButton/styles.module.css +42 -0
  228. package/src/theme/BlogArchivePage/index.tsx +91 -0
  229. package/src/theme/BlogLayout/index.tsx +44 -0
  230. package/src/theme/BlogListPage/index.tsx +18 -25
  231. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  232. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  233. package/src/theme/BlogPostAuthors/index.tsx +39 -0
  234. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  235. package/src/theme/BlogPostItem/index.tsx +70 -80
  236. package/src/theme/BlogPostPage/index.tsx +72 -35
  237. package/src/theme/BlogSidebar/index.tsx +11 -13
  238. package/src/theme/BlogSidebar/styles.module.css +2 -2
  239. package/src/theme/BlogTagsListPage/index.tsx +14 -57
  240. package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
  241. package/src/theme/CodeBlock/index.tsx +21 -151
  242. package/src/theme/CodeBlock/styles.module.css +6 -9
  243. package/src/theme/Details/index.tsx +24 -0
  244. package/src/theme/Details/styles.module.css +13 -0
  245. package/src/theme/DocCard/index.tsx +100 -0
  246. package/src/theme/DocCard/styles.module.css +43 -0
  247. package/src/theme/DocCardList/index.tsx +27 -0
  248. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
  249. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  250. package/src/theme/DocItem/index.tsx +43 -56
  251. package/src/theme/DocItem/styles.module.css +5 -9
  252. package/src/theme/DocItemFooter/index.tsx +91 -0
  253. package/src/theme/DocItemFooter/styles.module.css +18 -0
  254. package/src/theme/DocPage/index.tsx +44 -42
  255. package/src/theme/DocPage/styles.module.css +8 -23
  256. package/src/theme/DocPaginator/index.tsx +9 -13
  257. package/src/theme/DocSidebar/index.tsx +80 -307
  258. package/src/theme/DocSidebar/styles.module.css +0 -18
  259. package/src/theme/DocSidebarItem/index.tsx +242 -0
  260. package/src/theme/DocSidebarItem/styles.module.css +19 -0
  261. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  262. package/src/theme/DocTagsListPage/index.tsx +41 -0
  263. package/src/theme/DocVersionBadge/index.tsx +30 -0
  264. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +74 -44
  265. package/src/theme/EditThisPage/index.tsx +6 -1
  266. package/src/theme/ErrorPageContent.tsx +41 -0
  267. package/src/theme/Footer/index.tsx +30 -6
  268. package/src/theme/Heading/index.tsx +25 -31
  269. package/src/theme/Heading/styles.css +5 -6
  270. package/src/theme/Heading/styles.module.css +9 -5
  271. package/src/theme/IconArrow/index.tsx +2 -2
  272. package/src/theme/IconClose/index.tsx +26 -0
  273. package/src/theme/IconEdit/index.tsx +2 -2
  274. package/src/theme/IconExternalLink/index.tsx +2 -5
  275. package/src/theme/IconLanguage/index.tsx +2 -6
  276. package/src/theme/IconMenu/index.tsx +3 -3
  277. package/src/theme/LastUpdated/index.tsx +3 -2
  278. package/src/theme/Layout/index.tsx +3 -1
  279. package/src/theme/LayoutHead/index.tsx +18 -17
  280. package/src/theme/LayoutProviders/index.tsx +17 -6
  281. package/src/theme/Logo/index.tsx +21 -17
  282. package/src/theme/MDXComponents/index.tsx +39 -5
  283. package/src/theme/MDXComponents/styles.css +11 -0
  284. package/src/theme/MDXPage/index.tsx +10 -2
  285. package/src/theme/Navbar/index.tsx +203 -61
  286. package/src/theme/Navbar/styles.module.css +10 -3
  287. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
  288. package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
  289. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
  290. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  291. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  292. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
  293. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  294. package/src/theme/NavbarItem/index.tsx +41 -16
  295. package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
  296. package/src/theme/Seo/index.tsx +7 -4
  297. package/src/theme/SkipToContent/index.tsx +7 -8
  298. package/src/theme/SkipToContent/styles.module.css +1 -0
  299. package/src/theme/TOC/index.tsx +12 -41
  300. package/src/theme/TOC/styles.module.css +1 -1
  301. package/src/theme/TOCCollapsible/index.tsx +58 -0
  302. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  303. package/src/theme/TOCInline/index.tsx +13 -32
  304. package/src/theme/TOCItems/index.tsx +96 -0
  305. package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
  306. package/src/theme/Tabs/index.tsx +93 -49
  307. package/src/theme/Tabs/styles.module.css +0 -13
  308. package/src/theme/Tag/index.tsx +31 -0
  309. package/src/theme/Tag/styles.module.css +70 -0
  310. package/src/theme/TagsListByLetter/index.tsx +45 -0
  311. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  312. package/src/theme/TagsListInline/index.tsx +35 -0
  313. package/src/theme/TagsListInline/styles.module.css +15 -0
  314. package/src/theme/ThemeProvider/index.tsx +6 -2
  315. package/src/theme/ThemedImage/index.tsx +8 -8
  316. package/src/theme/Toggle/index.tsx +36 -43
  317. package/src/theme/Toggle/styles.module.css +91 -3
  318. package/src/theme/UserPreferencesProvider/index.tsx +9 -11
  319. package/src/theme/hooks/useHideableNavbar.ts +32 -45
  320. package/src/theme/hooks/useTabGroupChoice.ts +4 -4
  321. package/src/theme/hooks/useTheme.ts +4 -5
  322. package/src/theme/hooks/useWindowSize.ts +38 -20
  323. package/src/theme/prism-include-languages.ts +3 -2
  324. package/src/theme-classic.d.ts +806 -0
  325. package/src/translations.ts +8 -10
  326. package/src/types.d.ts +0 -599
  327. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +151 -94
  328. package/tsconfig.json +1 -2
  329. package/codeTranslations/README.md +0 -20
  330. package/codeTranslations/ar.json +0 -57
  331. package/codeTranslations/base.json +0 -112
  332. package/codeTranslations/bn.json +0 -56
  333. package/codeTranslations/da.json +0 -57
  334. package/codeTranslations/de.json +0 -57
  335. package/codeTranslations/es.json +0 -57
  336. package/codeTranslations/fa.json +0 -57
  337. package/codeTranslations/fil.json +0 -57
  338. package/codeTranslations/fr.json +0 -57
  339. package/codeTranslations/he.json +0 -57
  340. package/codeTranslations/hi.json +0 -57
  341. package/codeTranslations/ja.json +0 -57
  342. package/codeTranslations/ko.json +0 -57
  343. package/codeTranslations/pl.json +0 -57
  344. package/codeTranslations/pt-BR.json +0 -57
  345. package/codeTranslations/pt-PT.json +0 -57
  346. package/codeTranslations/ru.json +0 -57
  347. package/codeTranslations/tr.json +0 -57
  348. package/codeTranslations/vi.json +0 -57
  349. package/codeTranslations/zh-Hans.json +0 -57
  350. package/codeTranslations/zh-Hant.json +0 -57
  351. package/lib/theme/Toggle/styles.css +0 -103
  352. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  353. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  354. package/lib/theme/hooks/useScrollPosition.js +0 -49
  355. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  356. package/lib-next/theme/Toggle/styles.css +0 -103
  357. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  358. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  359. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  360. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  361. package/src/theme/Toggle/styles.css +0 -103
  362. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  363. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  364. package/src/theme/hooks/useScrollPosition.ts +0 -45
  365. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  366. package/update-code-translations.js +0 -239
  367. package/update-code-translations.test.js +0 -33
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _clsx = _interopRequireDefault(require("clsx"));
11
+
12
+ var _Link = _interopRequireDefault(require("@docusaurus/Link"));
13
+
14
+ var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ /**
19
+ * Copyright (c) Facebook, Inc. and its affiliates.
20
+ *
21
+ * This source code is licensed under the MIT license found in the
22
+ * LICENSE file in the root directory of this source tree.
23
+ */
24
+ function Tag(props) {
25
+ const {
26
+ permalink,
27
+ name,
28
+ count
29
+ } = props;
30
+ return <_Link.default href={permalink} className={(0, _clsx.default)(_stylesModule.default.tag, {
31
+ [_stylesModule.default.tagRegular]: !count,
32
+ [_stylesModule.default.tagWithCount]: count
33
+ })}>
34
+ {name}
35
+ {count && <span>{count}</span>}
36
+ </_Link.default>;
37
+ }
38
+
39
+ var _default = Tag;
40
+ exports.default = _default;
@@ -0,0 +1,70 @@
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
+ :root {
9
+ --docusaurus-tag-list-border: var(--ifm-color-emphasis-300);
10
+ }
11
+
12
+ .tag {
13
+ border: 1px solid var(--docusaurus-tag-list-border);
14
+ transition: border var(--ifm-transition-fast);
15
+ }
16
+
17
+ .tag:hover {
18
+ --docusaurus-tag-list-border: var(--ifm-link-color);
19
+ text-decoration: none;
20
+ }
21
+
22
+ .tagRegular {
23
+ border-radius: 0.5rem;
24
+ padding: 0.3rem 0.5rem;
25
+ font-size: 90%;
26
+ }
27
+
28
+ .tagWithCount {
29
+ display: flex;
30
+ align-items: center;
31
+ position: relative;
32
+ padding: 0 0.5rem 0 1rem;
33
+ border-left: 0;
34
+ }
35
+
36
+ .tagWithCount:before,
37
+ .tagWithCount:after {
38
+ content: '';
39
+ position: absolute;
40
+ top: 50%;
41
+ border: 1px solid var(--docusaurus-tag-list-border);
42
+ transition: inherit;
43
+ }
44
+
45
+ .tagWithCount:before {
46
+ right: 100%;
47
+ transform: translate(50%, -50%) rotate(-45deg);
48
+ width: 1.18rem;
49
+ height: 1.18rem;
50
+ border-right: 0;
51
+ border-bottom: 0;
52
+ }
53
+
54
+ .tagWithCount:after {
55
+ left: 0;
56
+ transform: translateY(-50%);
57
+ width: 0.5rem;
58
+ height: 0.5rem;
59
+ border-radius: 50%;
60
+ }
61
+
62
+ .tagWithCount span {
63
+ background: var(--ifm-color-secondary);
64
+ color: var(--ifm-color-black);
65
+ font-size: 0.7rem;
66
+ line-height: 1.2;
67
+ border-radius: var(--ifm-global-radius);
68
+ padding: 0.1rem 0.4rem;
69
+ margin-left: 0.3rem;
70
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _Tag = _interopRequireDefault(require("@theme/Tag"));
11
+
12
+ var _themeCommon = require("@docusaurus/theme-common");
13
+
14
+ var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ /**
19
+ * Copyright (c) Facebook, Inc. and its affiliates.
20
+ *
21
+ * This source code is licensed under the MIT license found in the
22
+ * LICENSE file in the root directory of this source tree.
23
+ */
24
+ function TagLetterEntryItem({
25
+ letterEntry
26
+ }) {
27
+ return <article>
28
+ <h2>{letterEntry.letter}</h2>
29
+ <ul className="padding--none">
30
+ {letterEntry.tags.map(tag => <li key={tag.permalink} className={_stylesModule.default.tag}>
31
+ <_Tag.default {...tag} />
32
+ </li>)}
33
+ </ul>
34
+ <hr />
35
+ </article>;
36
+ }
37
+
38
+ function TagsListByLetter({
39
+ tags
40
+ }) {
41
+ const letterList = (0, _themeCommon.listTagsByLetters)(tags);
42
+ return <section className="margin-vert--lg">
43
+ {letterList.map(letterEntry => <TagLetterEntryItem key={letterEntry.letter} letterEntry={letterEntry} />)}
44
+ </section>;
45
+ }
46
+
47
+ var _default = TagsListByLetter;
48
+ exports.default = _default;
@@ -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
+ .tag {
9
+ display: inline-block;
10
+ margin: 0.5rem 0.5rem 0 1rem;
11
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = TagsListInline;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _clsx = _interopRequireDefault(require("clsx"));
11
+
12
+ var _Translate = _interopRequireDefault(require("@docusaurus/Translate"));
13
+
14
+ var _Tag = _interopRequireDefault(require("@theme/Tag"));
15
+
16
+ var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ /**
21
+ * Copyright (c) Facebook, Inc. and its affiliates.
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */
26
+ function TagsListInline({
27
+ tags
28
+ }) {
29
+ return <>
30
+ <b>
31
+ <_Translate.default id="theme.tags.tagsListLabel" description="The label alongside a tag list">
32
+ Tags:
33
+ </_Translate.default>
34
+ </b>
35
+ <ul className={(0, _clsx.default)(_stylesModule.default.tags, 'padding--none', 'margin-left--sm')}>
36
+ {tags.map(({
37
+ label,
38
+ permalink: tagPermalink
39
+ }) => <li key={tagPermalink} className={_stylesModule.default.tag}>
40
+ <_Tag.default name={label} permalink={tagPermalink} />
41
+ </li>)}
42
+ </ul>
43
+ </>;
44
+ }
@@ -0,0 +1,15 @@
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
+ .tags {
9
+ display: inline;
10
+ }
11
+
12
+ .tag {
13
+ margin: 0 0.4rem 0.5rem 0;
14
+ display: inline-block;
15
+ }
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _useTheme = _interopRequireDefault(require("@theme/hooks/useTheme"));
11
11
 
@@ -13,6 +13,10 @@ var _ThemeContext = _interopRequireDefault(require("@theme/ThemeContext"));
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
16
+ 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); }
17
+
18
+ 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; }
19
+
16
20
  /**
17
21
  * Copyright (c) Facebook, Inc. and its affiliates.
18
22
  *
@@ -25,11 +29,12 @@ function ThemeProvider(props) {
25
29
  setLightTheme,
26
30
  setDarkTheme
27
31
  } = (0, _useTheme.default)();
28
- return <_ThemeContext.default.Provider value={{
32
+ const contextValue = (0, _react.useMemo)(() => ({
29
33
  isDarkTheme,
30
34
  setLightTheme,
31
35
  setDarkTheme
32
- }}>
36
+ }), [isDarkTheme, setLightTheme, setDarkTheme]);
37
+ return <_ThemeContext.default.Provider value={contextValue}>
33
38
  {props.children}
34
39
  </_ThemeContext.default.Provider>;
35
40
  }
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _clsx = _interopRequireDefault(require("clsx"));
11
11
 
12
- var _useDocusaurusContext = _interopRequireDefault(require("@docusaurus/useDocusaurusContext"));
12
+ var _useIsBrowser = _interopRequireDefault(require("@docusaurus/useIsBrowser"));
13
13
 
14
14
  var _useThemeContext = _interopRequireDefault(require("@theme/hooks/useThemeContext"));
15
15
 
@@ -23,10 +23,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
23
23
  * This source code is licensed under the MIT license found in the
24
24
  * LICENSE file in the root directory of this source tree.
25
25
  */
26
- const ThemedImage = props => {
27
- const {
28
- isClient
29
- } = (0, _useDocusaurusContext.default)();
26
+ function ThemedImage(props) {
27
+ const isBrowser = (0, _useIsBrowser.default)();
30
28
  const {
31
29
  isDarkTheme
32
30
  } = (0, _useThemeContext.default)();
@@ -36,13 +34,14 @@ const ThemedImage = props => {
36
34
  alt = '',
37
35
  ...propsRest
38
36
  } = props;
39
- const renderedSourceNames = isClient ? isDarkTheme ? ['dark'] : ['light'] : // We need to render both images on the server to avoid flash
37
+ const clientThemes = isDarkTheme ? ['dark'] : ['light'];
38
+ const renderedSourceNames = isBrowser ? clientThemes : // We need to render both images on the server to avoid flash
40
39
  // See https://github.com/facebook/docusaurus/pull/3730
41
40
  ['light', 'dark'];
42
41
  return <>
43
42
  {renderedSourceNames.map(sourceName => <img key={sourceName} src={sources[sourceName]} alt={alt} className={(0, _clsx.default)(_stylesModule.default.themedImage, _stylesModule.default[`themedImage--${sourceName}`], className)} {...propsRest} />)}
44
43
  </>;
45
- };
44
+ }
46
45
 
47
46
  var _default = ThemedImage;
48
47
  exports.default = _default;
@@ -3,18 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = _default;
6
+ exports.default = Toggle;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _themeCommon = require("@docusaurus/theme-common");
11
11
 
12
- var _useDocusaurusContext = _interopRequireDefault(require("@docusaurus/useDocusaurusContext"));
12
+ var _useIsBrowser = _interopRequireDefault(require("@docusaurus/useIsBrowser"));
13
13
 
14
14
  var _clsx = _interopRequireDefault(require("clsx"));
15
15
 
16
- require("./styles.css");
17
-
18
16
  var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
19
17
 
20
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -29,66 +27,65 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
29
27
  * This source code is licensed under the MIT license found in the
30
28
  * LICENSE file in the root directory of this source tree.
31
29
  */
32
- const Dark = ({
33
- icon,
34
- style
35
- }) => <span className={(0, _clsx.default)(_stylesModule.default.toggle, _stylesModule.default.dark)} style={style}>
36
- {icon}
37
- </span>;
38
-
39
- const Light = ({
40
- icon,
41
- style
42
- }) => <span className={(0, _clsx.default)(_stylesModule.default.toggle, _stylesModule.default.light)} style={style}>
43
- {icon}
44
- </span>; // Based on react-toggle (https://github.com/aaronshaf/react-toggle/).
45
-
46
-
47
- const Toggle = (0, _react.memo)(({
30
+ // Based on react-toggle (https://github.com/aaronshaf/react-toggle/).
31
+ const ToggleComponent = (0, _react.memo)(({
48
32
  className,
49
- icons,
33
+ switchConfig,
50
34
  checked: defaultChecked,
51
35
  disabled,
52
36
  onChange
53
37
  }) => {
38
+ const {
39
+ darkIcon,
40
+ darkIconStyle,
41
+ lightIcon,
42
+ lightIconStyle
43
+ } = switchConfig;
54
44
  const [checked, setChecked] = (0, _react.useState)(defaultChecked);
55
45
  const [focused, setFocused] = (0, _react.useState)(false);
56
46
  const inputRef = (0, _react.useRef)(null);
57
- return <div className={(0, _clsx.default)('react-toggle', className, {
58
- 'react-toggle--checked': checked,
59
- 'react-toggle--focus': focused,
60
- 'react-toggle--disabled': disabled
47
+ return <div className={(0, _clsx.default)(_stylesModule.default.toggle, className, {
48
+ [_stylesModule.default.toggleChecked]: checked,
49
+ [_stylesModule.default.toggleFocused]: focused,
50
+ [_stylesModule.default.toggleDisabled]: disabled
61
51
  })}>
62
- <div className="react-toggle-track" role="button" tabIndex={-1} onClick={() => {
52
+ {
53
+ /* eslint-disable-next-line jsx-a11y/click-events-have-key-events */
54
+ }
55
+ <div className={_stylesModule.default.toggleTrack} role="button" tabIndex={-1} onClick={() => {
63
56
  var _inputRef$current;
64
57
 
65
58
  return (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
66
59
  }}>
67
- <div className="react-toggle-track-check">{icons.checked}</div>
68
- <div className="react-toggle-track-x">{icons.unchecked}</div>
69
- <div className="react-toggle-thumb" />
60
+ <div className={_stylesModule.default.toggleTrackCheck}>
61
+ <span className={_stylesModule.default.toggleIcon} style={darkIconStyle}>
62
+ {darkIcon}
63
+ </span>
64
+ </div>
65
+ <div className={_stylesModule.default.toggleTrackX}>
66
+ <span className={_stylesModule.default.toggleIcon} style={lightIconStyle}>
67
+ {lightIcon}
68
+ </span>
69
+ </div>
70
+ <div className={_stylesModule.default.toggleTrackThumb} />
70
71
  </div>
71
72
 
72
- <input ref={inputRef} checked={checked} type="checkbox" className="react-toggle-screenreader-only" aria-label="Switch between dark and light mode" onChange={onChange} onClick={() => setChecked(!checked)} onFocus={() => setFocused(true)} onBlur={() => setFocused(false)} />
73
+ <input ref={inputRef} checked={checked} type="checkbox" className={_stylesModule.default.toggleScreenReader} aria-label="Switch between dark and light mode" onChange={onChange} onClick={() => setChecked(!checked)} onFocus={() => setFocused(true)} onBlur={() => setFocused(false)} onKeyDown={e => {
74
+ if (e.key === 'Enter') {
75
+ var _inputRef$current2;
76
+
77
+ (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.click();
78
+ }
79
+ }} />
73
80
  </div>;
74
81
  });
75
82
 
76
- function _default(props) {
83
+ function Toggle(props) {
77
84
  const {
78
85
  colorMode: {
79
- switchConfig: {
80
- darkIcon,
81
- darkIconStyle,
82
- lightIcon,
83
- lightIconStyle
84
- }
86
+ switchConfig
85
87
  }
86
88
  } = (0, _themeCommon.useThemeConfig)();
87
- const {
88
- isClient
89
- } = (0, _useDocusaurusContext.default)();
90
- return <Toggle disabled={!isClient} icons={{
91
- checked: <Dark icon={darkIcon} style={darkIconStyle} />,
92
- unchecked: <Light icon={lightIcon} style={lightIconStyle} />
93
- }} {...props} />;
89
+ const isBrowser = (0, _useIsBrowser.default)();
90
+ return <ToggleComponent switchConfig={switchConfig} disabled={!isBrowser} {...props} />;
94
91
  }
@@ -6,12 +6,100 @@
6
6
  */
7
7
 
8
8
  .toggle {
9
+ touch-action: pan-x;
10
+ position: relative;
11
+ cursor: pointer;
12
+ user-select: none;
13
+ -webkit-tap-highlight-color: transparent;
14
+ }
15
+
16
+ .toggleScreenReader {
17
+ border: 0;
18
+ clip: rect(0 0 0 0);
19
+ height: 1px;
20
+ margin: -1px;
21
+ overflow: hidden;
22
+ position: absolute;
23
+ width: 1px;
24
+ }
25
+
26
+ .toggleDisabled {
27
+ cursor: not-allowed;
28
+ }
29
+
30
+ .toggleTrack {
31
+ width: 50px;
32
+ height: 24px;
33
+ border-radius: 30px;
34
+ background-color: #4d4d4d;
35
+ transition: all 0.2s ease;
36
+ }
37
+
38
+ .toggleTrackCheck {
39
+ position: absolute;
40
+ width: 14px;
41
+ height: 10px;
42
+ top: 0px;
43
+ bottom: 0px;
44
+ margin: auto 0;
45
+ left: 8px;
46
+ opacity: 0;
47
+ transition: opacity 0.25s ease;
48
+ }
49
+
50
+ [data-theme='dark'] .toggle .toggleTrackCheck,
51
+ .toggleChecked .toggleTrackCheck {
52
+ opacity: 1;
53
+ transition: opacity 0.25s ease;
54
+ }
55
+
56
+ .toggleTrackX {
57
+ position: absolute;
58
+ width: 10px;
59
+ height: 10px;
60
+ top: 0px;
61
+ bottom: 0px;
62
+ margin: auto 0;
63
+ right: 10px;
64
+ opacity: 1;
65
+ transition: opacity 0.25s ease;
66
+ }
67
+
68
+ [data-theme='dark'] .toggle .toggleTrackX,
69
+ .toggleChecked .toggleTrackX {
70
+ opacity: 0;
71
+ }
72
+
73
+ .toggleTrackThumb {
74
+ position: absolute;
75
+ top: 1px;
76
+ left: 1px;
77
+ width: 22px;
78
+ height: 22px;
79
+ border: 1px solid #4d4d4d;
80
+ border-radius: 50%;
81
+ background-color: #fafafa;
82
+ transition: all 0.25s ease;
83
+ }
84
+
85
+ [data-theme='dark'] .toggle .toggleTrackThumb,
86
+ .toggleChecked .toggleTrackThumb {
87
+ left: 27px;
88
+ }
89
+
90
+ .toggleFocused .toggleTrackThumb,
91
+ .toggle:hover .toggleTrackThumb {
92
+ box-shadow: 0px 0px 2px 3px var(--ifm-color-primary);
93
+ }
94
+
95
+ .toggle:active:not(.toggleDisabled) .toggleTrackThumb {
96
+ box-shadow: 0px 0px 5px 5px var(--ifm-color-primary);
97
+ }
98
+
99
+ .toggleIcon {
9
100
  align-items: center;
10
101
  display: flex;
11
102
  height: 10px;
12
103
  justify-content: center;
13
104
  width: 10px;
14
105
  }
15
- .toggle::before {
16
- position: absolute;
17
- }
@@ -5,16 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _useTabGroupChoice = _interopRequireDefault(require("@theme/hooks/useTabGroupChoice"));
11
11
 
12
- var _useAnnouncementBar = _interopRequireDefault(require("@theme/hooks/useAnnouncementBar"));
13
-
14
12
  var _UserPreferencesContext = _interopRequireDefault(require("@theme/UserPreferencesContext"));
15
13
 
16
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
15
 
16
+ 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); }
17
+
18
+ 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; }
19
+
18
20
  /**
19
21
  * Copyright (c) Facebook, Inc. and its affiliates.
20
22
  *
@@ -26,16 +28,11 @@ function UserPreferencesProvider(props) {
26
28
  tabGroupChoices,
27
29
  setTabGroupChoices
28
30
  } = (0, _useTabGroupChoice.default)();
29
- const {
30
- isAnnouncementBarClosed,
31
- closeAnnouncementBar
32
- } = (0, _useAnnouncementBar.default)();
33
- return <_UserPreferencesContext.default.Provider value={{
31
+ const contextValue = (0, _react.useMemo)(() => ({
34
32
  tabGroupChoices,
35
- setTabGroupChoices,
36
- isAnnouncementBarClosed,
37
- closeAnnouncementBar
38
- }}>
33
+ setTabGroupChoices
34
+ }), [tabGroupChoices, setTabGroupChoices]);
35
+ return <_UserPreferencesContext.default.Provider value={contextValue}>
39
36
  {props.children}
40
37
  </_UserPreferencesContext.default.Provider>;
41
38
  }
@@ -7,14 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
- var _router = require("@docusaurus/router");
11
-
12
- var _useScrollPosition = _interopRequireDefault(require("@theme/hooks/useScrollPosition"));
13
-
14
10
  var _themeCommon = require("@docusaurus/theme-common");
15
11
 
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
12
  /**
19
13
  * Copyright (c) Facebook, Inc. and its affiliates.
20
14
  *
@@ -22,40 +16,33 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
22
16
  * LICENSE file in the root directory of this source tree.
23
17
  */
24
18
  const useHideableNavbar = hideOnScroll => {
25
- const location = (0, _router.useLocation)();
26
19
  const [isNavbarVisible, setIsNavbarVisible] = (0, _react.useState)(hideOnScroll);
27
20
  const isFocusedAnchor = (0, _react.useRef)(false);
28
- const [navbarHeight, setNavbarHeight] = (0, _react.useState)(0);
21
+ const navbarHeight = (0, _react.useRef)(0);
29
22
  const navbarRef = (0, _react.useCallback)(node => {
30
23
  if (node !== null) {
31
- setNavbarHeight(node.getBoundingClientRect().height);
24
+ navbarHeight.current = node.getBoundingClientRect().height;
32
25
  }
33
26
  }, []);
34
- (0, _useScrollPosition.default)(({
35
- scrollY: scrollTop
36
- }, {
37
- scrollY: lastScrollTop
38
- }) => {
27
+ (0, _themeCommon.useScrollPosition)((currentPosition, lastPosition) => {
39
28
  if (!hideOnScroll) {
40
29
  return;
41
30
  }
42
31
 
43
- if (scrollTop < navbarHeight) {
32
+ const scrollTop = currentPosition.scrollY; // It needed for mostly to handle rubber band scrolling
33
+
34
+ if (scrollTop < navbarHeight.current) {
44
35
  setIsNavbarVisible(true);
45
36
  return;
46
37
  }
47
38
 
48
39
  if (isFocusedAnchor.current) {
49
40
  isFocusedAnchor.current = false;
50
- setIsNavbarVisible(false);
51
41
  return;
52
42
  }
53
43
 
54
- if (lastScrollTop && scrollTop === 0) {
55
- setIsNavbarVisible(true);
56
- }
57
-
58
- const documentHeight = document.documentElement.scrollHeight - navbarHeight;
44
+ const lastScrollTop = lastPosition === null || lastPosition === void 0 ? void 0 : lastPosition.scrollY;
45
+ const documentHeight = document.documentElement.scrollHeight - navbarHeight.current;
59
46
  const windowHeight = window.innerHeight;
60
47
 
61
48
  if (lastScrollTop && scrollTop >= lastScrollTop) {
@@ -63,25 +50,20 @@ const useHideableNavbar = hideOnScroll => {
63
50
  } else if (scrollTop + windowHeight < documentHeight) {
64
51
  setIsNavbarVisible(true);
65
52
  }
66
- }, [navbarHeight, isFocusedAnchor]);
67
- (0, _themeCommon.useChangeRoute)(() => {
68
- if (!hideOnScroll) {
69
- return;
70
- }
71
-
72
- setIsNavbarVisible(true);
73
53
  });
74
- (0, _react.useEffect)(() => {
54
+ (0, _themeCommon.useLocationChange)(locationChangeEvent => {
75
55
  if (!hideOnScroll) {
76
56
  return;
77
57
  }
78
58
 
79
- if (!location.hash) {
59
+ if (locationChangeEvent.location.hash) {
60
+ isFocusedAnchor.current = true;
61
+ setIsNavbarVisible(false);
80
62
  return;
81
63
  }
82
64
 
83
- isFocusedAnchor.current = true;
84
- }, [location.hash]);
65
+ setIsNavbarVisible(true);
66
+ });
85
67
  return {
86
68
  navbarRef,
87
69
  isNavbarVisible