@docusaurus/theme-classic 2.0.0-beta.15d451942 → 2.0.0-beta.16

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 (407) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +35 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +102 -0
  5. package/lib/index.js +59 -43
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +755 -0
  8. package/lib/translations.js +40 -34
  9. package/lib/types.d.ts +0 -589
  10. package/lib/validateThemeConfig.js +247 -246
  11. package/lib-next/theme/Admonition/index.js +101 -0
  12. package/lib-next/theme/AnnouncementBar/index.js +10 -22
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +26 -35
  14. package/lib-next/theme/BackToTopButton/index.js +131 -0
  15. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  16. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  17. package/lib-next/theme/BlogLayout/index.js +37 -0
  18. package/lib-next/theme/BlogListPage/index.js +18 -29
  19. package/lib-next/theme/BlogListPaginator/index.js +13 -16
  20. package/lib-next/theme/BlogPostAuthor/index.js +40 -0
  21. package/{lib/theme/IconEdit → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -3
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/lib-next/theme/BlogPostAuthors/styles.module.css +21 -0
  24. package/lib-next/theme/BlogPostItem/index.js +110 -95
  25. package/lib-next/theme/BlogPostItem/styles.module.css +5 -1
  26. package/lib-next/theme/BlogPostPage/index.js +75 -43
  27. package/lib-next/theme/BlogPostPaginator/index.js +13 -20
  28. package/lib-next/theme/BlogSidebar/index.js +23 -16
  29. package/lib-next/theme/BlogSidebar/styles.module.css +8 -8
  30. package/lib-next/theme/BlogTagsListPage/index.js +16 -66
  31. package/lib-next/theme/BlogTagsPostsPage/index.js +47 -59
  32. package/lib-next/theme/CodeBlock/index.js +73 -162
  33. package/lib-next/theme/CodeBlock/styles.module.css +18 -13
  34. package/lib-next/theme/Details/index.js +21 -0
  35. package/lib-next/theme/Details/styles.module.css +13 -0
  36. package/lib-next/theme/DocBreadcrumbs/index.js +76 -0
  37. package/lib-next/theme/DocBreadcrumbs/styles.module.css +26 -0
  38. package/lib-next/theme/DocCard/index.js +91 -0
  39. package/lib-next/theme/DocCard/styles.module.css +43 -0
  40. package/lib-next/theme/DocCardList/index.js +19 -0
  41. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +54 -0
  42. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  43. package/lib-next/theme/DocItem/index.js +64 -69
  44. package/lib-next/theme/DocItem/styles.module.css +7 -13
  45. package/lib-next/theme/DocItemFooter/index.js +79 -0
  46. package/{lib/theme/Layout/styles.css → lib-next/theme/DocItemFooter/styles.module.css} +8 -11
  47. package/lib-next/theme/DocPage/index.js +59 -33
  48. package/lib-next/theme/DocPage/styles.module.css +14 -26
  49. package/lib-next/theme/DocPaginator/index.js +16 -25
  50. package/lib-next/theme/DocSidebar/index.js +72 -285
  51. package/lib-next/theme/DocSidebar/styles.module.css +5 -36
  52. package/lib-next/theme/DocSidebarItem/index.js +264 -0
  53. package/lib-next/theme/DocSidebarItem/styles.module.css +13 -0
  54. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  55. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  56. package/lib-next/theme/DocTagsListPage/index.js +35 -0
  57. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  58. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +54 -36
  59. package/lib-next/theme/EditThisPage/index.js +6 -1
  60. package/lib-next/theme/ErrorPageContent.js +35 -0
  61. package/lib-next/theme/Footer/index.js +105 -41
  62. package/lib-next/theme/Footer/styles.module.css +2 -1
  63. package/lib-next/theme/Heading/index.js +40 -33
  64. package/lib-next/theme/Heading/styles.module.css +27 -2
  65. package/lib-next/theme/IconArrow/index.js +3 -6
  66. package/lib-next/theme/IconClose/index.js +23 -0
  67. package/lib-next/theme/IconEdit/index.js +5 -10
  68. package/lib-next/theme/IconExternalLink/index.js +23 -0
  69. package/{lib/theme/BlogPostItem → lib-next/theme/IconExternalLink}/styles.module.css +4 -6
  70. package/lib-next/theme/IconLanguage/index.js +3 -6
  71. package/lib-next/theme/IconMenu/index.js +8 -9
  72. package/lib-next/theme/LastUpdated/index.js +35 -39
  73. package/lib-next/theme/Layout/index.js +5 -7
  74. package/lib-next/theme/Layout/styles.css +6 -0
  75. package/lib-next/theme/LayoutHead/index.js +27 -32
  76. package/lib-next/theme/LayoutProviders/index.js +21 -10
  77. package/lib-next/theme/Logo/index.js +21 -16
  78. package/lib-next/theme/MDXComponents/index.js +45 -30
  79. package/lib-next/theme/{hooks → MDXComponents}/styles.css +7 -2
  80. package/lib-next/theme/MDXPage/index.js +22 -28
  81. package/{lib/theme/LastUpdated → lib-next/theme/MDXPage}/styles.module.css +2 -2
  82. package/lib-next/theme/Navbar/index.js +199 -64
  83. package/lib-next/theme/Navbar/styles.module.css +11 -4
  84. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +36 -185
  85. package/lib-next/theme/NavbarItem/DocNavbarItem.js +31 -14
  86. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  87. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +38 -24
  88. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  89. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +156 -0
  90. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
  91. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  92. package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
  93. package/lib-next/theme/NavbarItem/index.js +27 -15
  94. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  95. package/lib-next/theme/NotFound.js +7 -6
  96. package/lib-next/theme/PaginatorNavLink/index.js +17 -0
  97. package/lib-next/theme/SearchBar.js +1 -1
  98. package/lib-next/theme/SearchMetadata/index.js +25 -0
  99. package/lib-next/theme/Seo/index.js +11 -7
  100. package/lib-next/theme/SkipToContent/index.js +9 -8
  101. package/lib-next/theme/SkipToContent/styles.module.css +8 -3
  102. package/lib-next/theme/TOC/index.js +12 -39
  103. package/lib-next/theme/TOC/styles.module.css +2 -2
  104. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  105. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  106. package/lib-next/theme/TOCInline/index.js +10 -31
  107. package/lib-next/theme/TOCItems/index.js +85 -0
  108. package/lib-next/theme/TabItem/index.js +1 -4
  109. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  110. package/lib-next/theme/Tabs/index.js +108 -50
  111. package/lib-next/theme/Tabs/styles.module.css +0 -13
  112. package/lib-next/theme/Tag/index.js +24 -0
  113. package/lib-next/theme/Tag/styles.module.css +70 -0
  114. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  115. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  116. package/lib-next/theme/TagsListInline/index.js +31 -0
  117. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  118. package/lib-next/theme/ThemedImage/index.js +9 -13
  119. package/lib-next/theme/ThemedImage/styles.module.css +9 -2
  120. package/lib-next/theme/Toggle/index.js +65 -60
  121. package/lib-next/theme/Toggle/styles.module.css +30 -38
  122. package/lib-next/theme/prism-include-languages.js +17 -15
  123. package/package.json +31 -30
  124. package/src/admonitions.css +35 -0
  125. package/src/deps.d.ts +13 -0
  126. package/src/getSwizzleConfig.ts +101 -0
  127. package/src/index.ts +68 -66
  128. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  129. package/src/theme/Admonition/index.tsx +106 -0
  130. package/src/theme/AnnouncementBar/index.tsx +11 -20
  131. package/src/theme/AnnouncementBar/styles.module.css +26 -35
  132. package/src/theme/BackToTopButton/index.tsx +143 -0
  133. package/src/theme/BackToTopButton/styles.module.css +44 -0
  134. package/src/theme/BlogArchivePage/index.tsx +91 -0
  135. package/src/theme/BlogLayout/index.tsx +42 -0
  136. package/src/theme/BlogListPage/index.tsx +19 -28
  137. package/src/theme/BlogListPaginator/index.tsx +13 -15
  138. package/src/theme/BlogPostAuthor/index.tsx +44 -0
  139. package/src/theme/{LastUpdated → BlogPostAuthor}/styles.module.css +4 -2
  140. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  141. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  142. package/src/theme/BlogPostItem/index.tsx +101 -91
  143. package/src/theme/BlogPostItem/styles.module.css +5 -1
  144. package/src/theme/BlogPostPage/index.tsx +77 -42
  145. package/src/theme/BlogPostPaginator/index.tsx +13 -19
  146. package/src/theme/BlogSidebar/index.tsx +23 -16
  147. package/src/theme/BlogSidebar/styles.module.css +8 -8
  148. package/src/theme/BlogTagsListPage/index.tsx +16 -66
  149. package/src/theme/BlogTagsPostsPage/index.tsx +43 -61
  150. package/src/theme/CodeBlock/index.tsx +77 -164
  151. package/src/theme/CodeBlock/styles.module.css +18 -13
  152. package/src/theme/Details/index.tsx +25 -0
  153. package/src/theme/Details/styles.module.css +13 -0
  154. package/src/theme/DocBreadcrumbs/index.tsx +91 -0
  155. package/src/theme/DocBreadcrumbs/styles.module.css +26 -0
  156. package/src/theme/DocCard/index.tsx +109 -0
  157. package/src/theme/DocCard/styles.module.css +43 -0
  158. package/src/theme/DocCardList/index.tsx +27 -0
  159. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +59 -0
  160. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  161. package/src/theme/DocItem/index.tsx +66 -68
  162. package/src/theme/DocItem/styles.module.css +7 -13
  163. package/src/theme/DocItemFooter/index.tsx +91 -0
  164. package/src/theme/DocItemFooter/styles.module.css +18 -0
  165. package/src/theme/DocPage/index.tsx +58 -34
  166. package/src/theme/DocPage/styles.module.css +14 -26
  167. package/src/theme/DocPaginator/index.tsx +16 -24
  168. package/src/theme/DocSidebar/index.tsx +83 -297
  169. package/src/theme/DocSidebar/styles.module.css +5 -36
  170. package/src/theme/DocSidebarItem/index.tsx +283 -0
  171. package/src/theme/DocSidebarItem/styles.module.css +13 -0
  172. package/src/theme/DocSidebarItems/index.tsx +32 -0
  173. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  174. package/src/theme/DocTagsListPage/index.tsx +39 -0
  175. package/src/theme/DocVersionBadge/index.tsx +35 -0
  176. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +77 -47
  177. package/src/theme/EditThisPage/index.tsx +6 -1
  178. package/src/theme/ErrorPageContent.tsx +41 -0
  179. package/src/theme/Footer/index.tsx +119 -45
  180. package/src/theme/Footer/styles.module.css +2 -1
  181. package/src/theme/Heading/index.tsx +41 -35
  182. package/src/theme/Heading/styles.module.css +27 -2
  183. package/src/theme/IconArrow/index.tsx +3 -5
  184. package/src/theme/IconClose/index.tsx +26 -0
  185. package/src/theme/IconEdit/index.tsx +8 -9
  186. package/src/theme/IconExternalLink/index.tsx +30 -0
  187. package/{lib/theme/Heading → src/theme/IconExternalLink}/styles.module.css +4 -2
  188. package/src/theme/IconLanguage/index.tsx +4 -6
  189. package/src/theme/IconMenu/index.tsx +4 -9
  190. package/src/theme/LastUpdated/index.tsx +35 -39
  191. package/src/theme/Layout/index.tsx +5 -6
  192. package/src/theme/Layout/styles.css +6 -0
  193. package/src/theme/LayoutHead/index.tsx +26 -25
  194. package/src/theme/LayoutProviders/index.tsx +21 -10
  195. package/src/theme/Logo/index.tsx +21 -15
  196. package/src/theme/MDXComponents/index.tsx +56 -32
  197. package/{lib/theme/hooks → src/theme/MDXComponents}/styles.css +7 -2
  198. package/src/theme/MDXPage/index.tsx +23 -28
  199. package/{lib-next/theme/LastUpdated → src/theme/MDXPage}/styles.module.css +2 -2
  200. package/src/theme/Navbar/index.tsx +208 -68
  201. package/src/theme/Navbar/styles.module.css +11 -4
  202. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
  203. package/src/theme/NavbarItem/DocNavbarItem.tsx +33 -15
  204. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  205. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +44 -28
  206. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  207. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  208. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +16 -10
  209. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  210. package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
  211. package/src/theme/NavbarItem/index.tsx +42 -19
  212. package/src/theme/NavbarItem/utils.ts +10 -0
  213. package/src/theme/NotFound.tsx +7 -5
  214. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  215. package/src/theme/SearchBar.tsx +2 -1
  216. package/src/theme/SearchMetadata/index.tsx +34 -0
  217. package/src/theme/Seo/index.tsx +7 -4
  218. package/src/theme/SkipToContent/index.tsx +9 -8
  219. package/src/theme/SkipToContent/styles.module.css +8 -3
  220. package/src/theme/TOC/index.tsx +13 -44
  221. package/src/theme/TOC/styles.module.css +2 -2
  222. package/src/theme/TOCCollapsible/index.tsx +58 -0
  223. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  224. package/src/theme/TOCInline/index.tsx +14 -35
  225. package/src/theme/TOCItems/index.tsx +100 -0
  226. package/src/theme/TabItem/index.tsx +5 -3
  227. package/src/theme/Tabs/index.tsx +115 -56
  228. package/src/theme/Tabs/styles.module.css +0 -13
  229. package/src/theme/Tag/index.tsx +29 -0
  230. package/src/theme/Tag/styles.module.css +70 -0
  231. package/src/theme/TagsListByLetter/index.tsx +43 -0
  232. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  233. package/src/theme/TagsListInline/index.tsx +35 -0
  234. package/src/theme/TagsListInline/styles.module.css +15 -0
  235. package/src/theme/ThemedImage/index.tsx +10 -12
  236. package/src/theme/ThemedImage/styles.module.css +9 -2
  237. package/src/theme/Toggle/index.tsx +66 -62
  238. package/src/theme/Toggle/styles.module.css +30 -38
  239. package/src/theme/prism-include-languages.ts +20 -15
  240. package/src/theme-classic.d.ts +755 -0
  241. package/src/translations.ts +74 -54
  242. package/src/types.d.ts +0 -589
  243. package/{lib-next/validateThemeConfig.js → src/validateThemeConfig.ts} +184 -104
  244. package/babel.config.js +0 -35
  245. package/codeTranslations/README.md +0 -20
  246. package/codeTranslations/ar.json +0 -55
  247. package/codeTranslations/base.json +0 -108
  248. package/codeTranslations/da.json +0 -55
  249. package/codeTranslations/de.json +0 -55
  250. package/codeTranslations/es.json +0 -55
  251. package/codeTranslations/fa.json +0 -55
  252. package/codeTranslations/fil.json +0 -55
  253. package/codeTranslations/fr.json +0 -55
  254. package/codeTranslations/he.json +0 -55
  255. package/codeTranslations/hi.json +0 -55
  256. package/codeTranslations/ja.json +0 -55
  257. package/codeTranslations/ko.json +0 -55
  258. package/codeTranslations/pl.json +0 -55
  259. package/codeTranslations/pt-BR.json +0 -55
  260. package/codeTranslations/pt-PT.json +0 -55
  261. package/codeTranslations/ru.json +0 -55
  262. package/codeTranslations/tr.json +0 -55
  263. package/codeTranslations/vi.json +0 -55
  264. package/codeTranslations/zh-Hans.json +0 -55
  265. package/codeTranslations/zh-Hant.json +0 -55
  266. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  267. package/lib/__tests__/translations.test.js +0 -112
  268. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  269. package/lib/theme/AnnouncementBar/index.js +0 -74
  270. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  271. package/lib/theme/BlogListPage/index.js +0 -71
  272. package/lib/theme/BlogListPaginator/index.js +0 -63
  273. package/lib/theme/BlogPostItem/index.js +0 -152
  274. package/lib/theme/BlogPostPage/index.js +0 -75
  275. package/lib/theme/BlogPostPaginator/index.js +0 -64
  276. package/lib/theme/BlogSidebar/index.js +0 -43
  277. package/lib/theme/BlogSidebar/styles.module.css +0 -46
  278. package/lib/theme/BlogTagsListPage/index.js +0 -81
  279. package/lib/theme/BlogTagsPostsPage/index.js +0 -104
  280. package/lib/theme/CodeBlock/index.js +0 -253
  281. package/lib/theme/CodeBlock/styles.module.css +0 -71
  282. package/lib/theme/DocItem/index.js +0 -120
  283. package/lib/theme/DocItem/styles.module.css +0 -28
  284. package/lib/theme/DocPage/index.js +0 -141
  285. package/lib/theme/DocPage/styles.module.css +0 -98
  286. package/lib/theme/DocPaginator/index.js +0 -63
  287. package/lib/theme/DocSidebar/index.js +0 -307
  288. package/lib/theme/DocSidebar/styles.module.css +0 -138
  289. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  290. package/lib/theme/EditThisPage/index.js +0 -31
  291. package/lib/theme/Footer/index.js +0 -108
  292. package/lib/theme/Footer/styles.module.css +0 -15
  293. package/lib/theme/Heading/index.js +0 -60
  294. package/lib/theme/Heading/styles.css +0 -23
  295. package/lib/theme/IconArrow/index.js +0 -28
  296. package/lib/theme/IconEdit/index.js +0 -34
  297. package/lib/theme/IconLanguage/index.js +0 -29
  298. package/lib/theme/IconMenu/index.js +0 -31
  299. package/lib/theme/LastUpdated/index.js +0 -65
  300. package/lib/theme/Layout/index.js +0 -64
  301. package/lib/theme/LayoutHead/index.js +0 -144
  302. package/lib/theme/LayoutProviders/index.js +0 -34
  303. package/lib/theme/Logo/index.js +0 -59
  304. package/lib/theme/MDXComponents/index.js +0 -65
  305. package/lib/theme/MDXPage/index.js +0 -68
  306. package/lib/theme/Navbar/index.js +0 -147
  307. package/lib/theme/Navbar/styles.module.css +0 -20
  308. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
  309. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
  310. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
  311. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  312. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  313. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  314. package/lib/theme/NavbarItem/index.js +0 -54
  315. package/lib/theme/NotFound.js +0 -50
  316. package/lib/theme/SearchBar.js +0 -15
  317. package/lib/theme/SearchMetadatas/index.js +0 -33
  318. package/lib/theme/Seo/index.js +0 -49
  319. package/lib/theme/SkipToContent/index.js +0 -61
  320. package/lib/theme/SkipToContent/styles.module.css +0 -16
  321. package/lib/theme/TOC/index.js +0 -59
  322. package/lib/theme/TOC/styles.module.css +0 -23
  323. package/lib/theme/TOCInline/index.js +0 -53
  324. package/lib/theme/TOCInline/styles.module.css +0 -12
  325. package/lib/theme/TabItem/index.js +0 -32
  326. package/lib/theme/Tabs/index.js +0 -150
  327. package/lib/theme/Tabs/styles.module.css +0 -23
  328. package/lib/theme/ThemeContext.js +0 -21
  329. package/lib/theme/ThemeProvider/index.js +0 -38
  330. package/lib/theme/ThemedImage/index.js +0 -48
  331. package/lib/theme/ThemedImage/styles.module.css +0 -11
  332. package/lib/theme/Toggle/index.js +0 -106
  333. package/lib/theme/Toggle/styles.module.css +0 -114
  334. package/lib/theme/UserPreferencesContext.js +0 -18
  335. package/lib/theme/UserPreferencesProvider/index.js +0 -44
  336. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  337. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  338. package/lib/theme/hooks/useDocs.js +0 -18
  339. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  340. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  341. package/lib/theme/hooks/useLocationHash.js +0 -28
  342. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  343. package/lib/theme/hooks/usePrismTheme.js +0 -36
  344. package/lib/theme/hooks/useScrollPosition.js +0 -49
  345. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  346. package/lib/theme/hooks/useTabGroupChoice.js +0 -53
  347. package/lib/theme/hooks/useTheme.js +0 -99
  348. package/lib/theme/hooks/useThemeContext.js +0 -31
  349. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  350. package/lib/theme/hooks/useWindowSize.js +0 -55
  351. package/lib/theme/prism-include-languages.js +0 -39
  352. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  353. package/lib-next/__tests__/translations.test.js +0 -128
  354. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  355. package/lib-next/index.js +0 -198
  356. package/lib-next/theme/Heading/styles.css +0 -23
  357. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  358. package/lib-next/theme/ThemeContext.js +0 -9
  359. package/lib-next/theme/ThemeProvider/index.js +0 -25
  360. package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
  361. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  362. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  363. package/lib-next/theme/hooks/useDocs.js +0 -10
  364. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  365. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  366. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  367. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  368. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  369. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  370. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  371. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
  372. package/lib-next/theme/hooks/useTheme.js +0 -82
  373. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  374. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  375. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  376. package/lib-next/translations.js +0 -145
  377. package/lib-next/types.d.ts +0 -600
  378. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  379. package/src/__tests__/translations.test.ts +0 -116
  380. package/src/__tests__/validateThemeConfig.test.js +0 -333
  381. package/src/prism-include-languages.js +0 -11
  382. package/src/theme/Heading/styles.css +0 -23
  383. package/src/theme/SearchMetadatas/index.tsx +0 -28
  384. package/src/theme/ThemeContext.ts +0 -15
  385. package/src/theme/ThemeProvider/index.tsx +0 -24
  386. package/src/theme/UserPreferencesContext.ts +0 -12
  387. package/src/theme/UserPreferencesProvider/index.tsx +0 -32
  388. package/src/theme/hooks/styles.css +0 -10
  389. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  390. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  391. package/src/theme/hooks/useDocs.ts +0 -11
  392. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  393. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  394. package/src/theme/hooks/useLocationHash.ts +0 -25
  395. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  396. package/src/theme/hooks/usePrismTheme.ts +0 -22
  397. package/src/theme/hooks/useScrollPosition.ts +0 -45
  398. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  399. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  400. package/src/theme/hooks/useTheme.ts +0 -92
  401. package/src/theme/hooks/useThemeContext.ts +0 -23
  402. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  403. package/src/theme/hooks/useWindowSize.ts +0 -51
  404. package/src/validateThemeConfig.js +0 -317
  405. package/tsconfig.json +0 -12
  406. package/update-code-translations.js +0 -239
  407. package/update-code-translations.test.js +0 -33
@@ -1,114 +0,0 @@
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
- .toggle {
9
- align-items: center;
10
- display: flex;
11
- height: 10px;
12
- justify-content: center;
13
- width: 10px;
14
- }
15
- .toggle::before {
16
- position: absolute;
17
- }
18
-
19
- /**
20
- * styles for React Toggle
21
- * copied over because we want to allow user to swizzle it and modify the css
22
- * and also to make sure its compatible with our dark mode
23
- * https://github.com/aaronshaf/react-toggle/blob/master/style.css
24
- */
25
- :global(.react-toggle) {
26
- touch-action: pan-x;
27
- position: relative;
28
- cursor: pointer;
29
- user-select: none;
30
- -webkit-tap-highlight-color: transparent;
31
- }
32
-
33
- :global(.react-toggle-screenreader-only) {
34
- border: 0;
35
- clip: rect(0 0 0 0);
36
- height: 1px;
37
- margin: -1px;
38
- overflow: hidden;
39
- position: absolute;
40
- width: 1px;
41
- }
42
-
43
- :global(.react-toggle--disabled) {
44
- cursor: not-allowed;
45
- }
46
-
47
- :global(.react-toggle-track) {
48
- width: 50px;
49
- height: 24px;
50
- border-radius: 30px;
51
- background-color: #4d4d4d;
52
- transition: all 0.2s ease;
53
- }
54
-
55
- :global(.react-toggle-track-check) {
56
- position: absolute;
57
- width: 14px;
58
- height: 10px;
59
- top: 0px;
60
- bottom: 0px;
61
- margin: auto 0;
62
- left: 8px;
63
- opacity: 0;
64
- transition: opacity 0.25s ease;
65
- }
66
-
67
- :global([data-theme='dark'] .react-toggle .react-toggle-track-check),
68
- :global(.react-toggle--checked .react-toggle-track-check) {
69
- opacity: 1;
70
- transition: opacity 0.25s ease;
71
- }
72
-
73
- :global(.react-toggle-track-x) {
74
- position: absolute;
75
- width: 10px;
76
- height: 10px;
77
- top: 0px;
78
- bottom: 0px;
79
- margin: auto 0;
80
- right: 10px;
81
- opacity: 1;
82
- transition: opacity 0.25s ease;
83
- }
84
-
85
- :global([data-theme='dark'] .react-toggle .react-toggle-track-x),
86
- :global(.react-toggle--checked .react-toggle-track-x) {
87
- opacity: 0;
88
- }
89
-
90
- :global(.react-toggle-thumb) {
91
- position: absolute;
92
- top: 1px;
93
- left: 1px;
94
- width: 22px;
95
- height: 22px;
96
- border: 1px solid #4d4d4d;
97
- border-radius: 50%;
98
- background-color: #fafafa;
99
- transition: all 0.25s ease;
100
- }
101
-
102
- :global([data-theme='dark'] .react-toggle .react-toggle-thumb),
103
- :global(.react-toggle--checked .react-toggle-thumb) {
104
- left: 27px;
105
- }
106
-
107
- :global(.react-toggle--focus .react-toggle-thumb),
108
- :global(.react-toggle:hover .react-toggle-thumb) {
109
- box-shadow: 0px 0px 2px 3px var(--ifm-color-primary);
110
- }
111
-
112
- :global(.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb) {
113
- box-shadow: 0px 0px 5px 5px var(--ifm-color-primary);
114
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = require("react");
9
-
10
- /**
11
- * Copyright (c) Facebook, Inc. and its affiliates.
12
- *
13
- * This source code is licensed under the MIT license found in the
14
- * LICENSE file in the root directory of this source tree.
15
- */
16
- const UserPreferencesContext = (0, _react.createContext)(undefined);
17
- var _default = UserPreferencesContext;
18
- exports.default = _default;
@@ -1,44 +0,0 @@
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 _useTabGroupChoice = _interopRequireDefault(require("@theme/hooks/useTabGroupChoice"));
11
-
12
- var _useAnnouncementBar = _interopRequireDefault(require("@theme/hooks/useAnnouncementBar"));
13
-
14
- var _UserPreferencesContext = _interopRequireDefault(require("@theme/UserPreferencesContext"));
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 UserPreferencesProvider(props) {
25
- const {
26
- tabGroupChoices,
27
- setTabGroupChoices
28
- } = (0, _useTabGroupChoice.default)();
29
- const {
30
- isAnnouncementBarClosed,
31
- closeAnnouncementBar
32
- } = (0, _useAnnouncementBar.default)();
33
- return <_UserPreferencesContext.default.Provider value={{
34
- tabGroupChoices,
35
- setTabGroupChoices,
36
- isAnnouncementBarClosed,
37
- closeAnnouncementBar
38
- }}>
39
- {props.children}
40
- </_UserPreferencesContext.default.Provider>;
41
- }
42
-
43
- var _default = UserPreferencesProvider;
44
- exports.default = _default;
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = require("react");
9
-
10
- var _themeCommon = require("@docusaurus/theme-common");
11
-
12
- /**
13
- * Copyright (c) Facebook, Inc. and its affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */
18
- const DismissStorage = (0, _themeCommon.createStorageSlot)('docusaurus.announcement.dismiss');
19
- const IdStorage = (0, _themeCommon.createStorageSlot)('docusaurus.announcement.id');
20
-
21
- const useAnnouncementBar = () => {
22
- const {
23
- announcementBar
24
- } = (0, _themeCommon.useThemeConfig)();
25
- const [isClosed, setClosed] = (0, _react.useState)(true);
26
- const handleClose = (0, _react.useCallback)(() => {
27
- DismissStorage.set('true');
28
- setClosed(true);
29
- }, []);
30
- (0, _react.useEffect)(() => {
31
- if (!announcementBar) {
32
- return;
33
- }
34
-
35
- const {
36
- id
37
- } = announcementBar;
38
- let viewedId = IdStorage.get(); // retrocompatibility due to spelling mistake of default id
39
- // see https://github.com/facebook/docusaurus/issues/3338
40
-
41
- if (viewedId === 'annoucement-bar') {
42
- viewedId = 'announcement-bar';
43
- }
44
-
45
- const isNewAnnouncement = id !== viewedId;
46
- IdStorage.set(id);
47
-
48
- if (isNewAnnouncement) {
49
- DismissStorage.set('false');
50
- }
51
-
52
- if (isNewAnnouncement || DismissStorage.get() === 'false') {
53
- setClosed(false);
54
- }
55
- }, []);
56
- return {
57
- isAnnouncementBarClosed: isClosed,
58
- closeAnnouncementBar: handleClose
59
- };
60
- };
61
-
62
- var _default = useAnnouncementBar;
63
- exports.default = _default;
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = useContextualSearchFilters;
7
-
8
- var _useDocs = require("@theme/hooks/useDocs");
9
-
10
- var _themeCommon = require("@docusaurus/theme-common");
11
-
12
- var _useDocusaurusContext = _interopRequireDefault(require("@docusaurus/useDocusaurusContext"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
- // We may want to support multiple search engines, don't couple that to Algolia/DocSearch
23
- // Maybe users will want to use its own search engine solution
24
- function useContextualSearchFilters() {
25
- const {
26
- i18n
27
- } = (0, _useDocusaurusContext.default)();
28
- const allDocsData = (0, _useDocs.useAllDocsData)();
29
- const activePluginAndVersion = (0, _useDocs.useActivePluginAndVersion)();
30
- const docsPreferredVersionByPluginId = (0, _themeCommon.useDocsPreferredVersionByPluginId)();
31
-
32
- function getDocPluginTags(pluginId) {
33
- var _activePluginAndVersi, _ref;
34
-
35
- const activeVersion = (activePluginAndVersion === null || activePluginAndVersion === void 0 ? void 0 : (_activePluginAndVersi = activePluginAndVersion.activePlugin) === null || _activePluginAndVersi === void 0 ? void 0 : _activePluginAndVersi.pluginId) === pluginId ? activePluginAndVersion.activeVersion : undefined;
36
- const preferredVersion = docsPreferredVersionByPluginId[pluginId];
37
- const latestVersion = allDocsData[pluginId].versions.find(v => v.isLast);
38
- const version = (_ref = activeVersion !== null && activeVersion !== void 0 ? activeVersion : preferredVersion) !== null && _ref !== void 0 ? _ref : latestVersion;
39
- return (0, _themeCommon.docVersionSearchTag)(pluginId, version.name);
40
- }
41
-
42
- const tags = [_themeCommon.DEFAULT_SEARCH_TAG, ...Object.keys(allDocsData).map(getDocPluginTags)];
43
- return {
44
- locale: i18n.currentLocale,
45
- tags
46
- };
47
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _useDocs = require("@docusaurus/plugin-content-docs/lib/theme/hooks/useDocs");
8
-
9
- Object.keys(_useDocs).forEach(function (key) {
10
- if (key === "default" || key === "__esModule") return;
11
- if (key in exports && exports[key] === _useDocs[key]) return;
12
- Object.defineProperty(exports, key, {
13
- enumerable: true,
14
- get: function () {
15
- return _useDocs[key];
16
- }
17
- });
18
- });
@@ -1,92 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = require("react");
9
-
10
- var _router = require("@docusaurus/router");
11
-
12
- var _useScrollPosition = _interopRequireDefault(require("@theme/hooks/useScrollPosition"));
13
-
14
- var _themeCommon = require("@docusaurus/theme-common");
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
- const useHideableNavbar = hideOnScroll => {
25
- const location = (0, _router.useLocation)();
26
- const [isNavbarVisible, setIsNavbarVisible] = (0, _react.useState)(hideOnScroll);
27
- const isFocusedAnchor = (0, _react.useRef)(false);
28
- const [navbarHeight, setNavbarHeight] = (0, _react.useState)(0);
29
- const navbarRef = (0, _react.useCallback)(node => {
30
- if (node !== null) {
31
- setNavbarHeight(node.getBoundingClientRect().height);
32
- }
33
- }, []);
34
- (0, _useScrollPosition.default)(({
35
- scrollY: scrollTop
36
- }, {
37
- scrollY: lastScrollTop
38
- }) => {
39
- if (!hideOnScroll) {
40
- return;
41
- }
42
-
43
- if (scrollTop < navbarHeight) {
44
- setIsNavbarVisible(true);
45
- return;
46
- }
47
-
48
- if (isFocusedAnchor.current) {
49
- isFocusedAnchor.current = false;
50
- setIsNavbarVisible(false);
51
- return;
52
- }
53
-
54
- if (lastScrollTop && scrollTop === 0) {
55
- setIsNavbarVisible(true);
56
- }
57
-
58
- const documentHeight = document.documentElement.scrollHeight - navbarHeight;
59
- const windowHeight = window.innerHeight;
60
-
61
- if (lastScrollTop && scrollTop >= lastScrollTop) {
62
- setIsNavbarVisible(false);
63
- } else if (scrollTop + windowHeight < documentHeight) {
64
- setIsNavbarVisible(true);
65
- }
66
- }, [navbarHeight, isFocusedAnchor]);
67
- (0, _themeCommon.useChangeRoute)(() => {
68
- if (!hideOnScroll) {
69
- return;
70
- }
71
-
72
- setIsNavbarVisible(true);
73
- });
74
- (0, _react.useEffect)(() => {
75
- if (!hideOnScroll) {
76
- return;
77
- }
78
-
79
- if (!location.hash) {
80
- return;
81
- }
82
-
83
- isFocusedAnchor.current = true;
84
- }, [location.hash]);
85
- return {
86
- navbarRef,
87
- isNavbarVisible
88
- };
89
- };
90
-
91
- var _default = useHideableNavbar;
92
- exports.default = _default;
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = require("react");
9
-
10
- require("./styles.css");
11
-
12
- /**
13
- * Copyright (c) Facebook, Inc. and its affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */
18
- // This hook detect keyboard focus indicator to not show outline for mouse users
19
- // Inspired by https://hackernoon.com/removing-that-ugly-focus-ring-and-keeping-it-too-6c8727fefcd2
20
- function useKeyboardNavigation() {
21
- (0, _react.useEffect)(() => {
22
- const keyboardFocusedClassName = 'navigation-with-keyboard';
23
-
24
- function handleOutlineStyles(e) {
25
- if (e.type === 'keydown' && e.key === 'Tab') {
26
- document.body.classList.add(keyboardFocusedClassName);
27
- }
28
-
29
- if (e.type === 'mousedown') {
30
- document.body.classList.remove(keyboardFocusedClassName);
31
- }
32
- }
33
-
34
- document.addEventListener('keydown', handleOutlineStyles);
35
- document.addEventListener('mousedown', handleOutlineStyles);
36
- return () => {
37
- document.body.classList.remove(keyboardFocusedClassName);
38
- document.removeEventListener('keydown', handleOutlineStyles);
39
- document.removeEventListener('mousedown', handleOutlineStyles);
40
- };
41
- }, []);
42
- }
43
-
44
- var _default = useKeyboardNavigation;
45
- exports.default = _default;
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = require("react");
9
-
10
- /**
11
- * Copyright (c) Facebook, Inc. and its affiliates.
12
- *
13
- * This source code is licensed under the MIT license found in the
14
- * LICENSE file in the root directory of this source tree.
15
- */
16
- function useLocationHash(initialHash) {
17
- const [hash, setHash] = (0, _react.useState)(initialHash);
18
- (0, _react.useEffect)(() => {
19
- const handleHashChange = () => setHash(window.location.hash);
20
-
21
- window.addEventListener('hashchange', handleHashChange);
22
- return () => window.removeEventListener('hashchange', handleHashChange);
23
- }, []);
24
- return [hash, setHash];
25
- }
26
-
27
- var _default = useLocationHash;
28
- exports.default = _default;
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = require("react");
9
-
10
- /**
11
- * Copyright (c) Facebook, Inc. and its affiliates.
12
- *
13
- * This source code is licensed under the MIT license found in the
14
- * LICENSE file in the root directory of this source tree.
15
- */
16
- function useLockBodyScroll(lock = true) {
17
- (0, _react.useEffect)(() => {
18
- document.body.style.overflow = lock ? 'hidden' : 'visible';
19
- return () => {
20
- document.body.style.overflow = 'visible';
21
- };
22
- }, [lock]);
23
- }
24
-
25
- var _default = useLockBodyScroll;
26
- exports.default = _default;
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _palenight = _interopRequireDefault(require("prism-react-renderer/themes/palenight"));
9
-
10
- var _useThemeContext = _interopRequireDefault(require("@theme/hooks/useThemeContext"));
11
-
12
- var _themeCommon = require("@docusaurus/theme-common");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
- const usePrismTheme = () => {
23
- const {
24
- prism
25
- } = (0, _themeCommon.useThemeConfig)();
26
- const {
27
- isDarkTheme
28
- } = (0, _useThemeContext.default)();
29
- const lightModeTheme = prism.theme || _palenight.default;
30
- const darkModeTheme = prism.darkTheme || lightModeTheme;
31
- const prismTheme = isDarkTheme ? darkModeTheme : lightModeTheme;
32
- return prismTheme;
33
- };
34
-
35
- var _default = usePrismTheme;
36
- exports.default = _default;
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = require("react");
9
-
10
- var _ExecutionEnvironment = _interopRequireDefault(require("@docusaurus/ExecutionEnvironment"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /**
15
- * Copyright (c) Facebook, Inc. and its affiliates.
16
- *
17
- * This source code is licensed under the MIT license found in the
18
- * LICENSE file in the root directory of this source tree.
19
- */
20
- const getScrollPosition = () => ({
21
- scrollX: _ExecutionEnvironment.default.canUseDOM ? window.pageXOffset : 0,
22
- scrollY: _ExecutionEnvironment.default.canUseDOM ? window.pageYOffset : 0
23
- });
24
-
25
- const useScrollPosition = (effect, deps = []) => {
26
- const scrollPosition = (0, _react.useRef)(getScrollPosition());
27
-
28
- const handleScroll = () => {
29
- const currentScrollPosition = getScrollPosition();
30
-
31
- if (effect) {
32
- effect(currentScrollPosition, scrollPosition.current);
33
- }
34
-
35
- scrollPosition.current = currentScrollPosition;
36
- };
37
-
38
- (0, _react.useEffect)(() => {
39
- const opts = {
40
- passive: true
41
- };
42
- handleScroll();
43
- window.addEventListener('scroll', handleScroll, opts);
44
- return () => window.removeEventListener('scroll', handleScroll, opts);
45
- }, deps);
46
- };
47
-
48
- var _default = useScrollPosition;
49
- exports.default = _default;
@@ -1,87 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = require("react");
9
-
10
- /**
11
- * Copyright (c) Facebook, Inc. and its affiliates.
12
- *
13
- * This source code is licensed under the MIT license found in the
14
- * LICENSE file in the root directory of this source tree.
15
- */
16
- function useTOCHighlight(linkClassName, linkActiveClassName, topOffset) {
17
- const [lastActiveLink, setLastActiveLink] = (0, _react.useState)(undefined);
18
- (0, _react.useEffect)(() => {
19
- function setActiveLink() {
20
- function getActiveHeaderAnchor() {
21
- const headersAnchors = Array.from(document.getElementsByClassName('anchor'));
22
- const firstAnchorUnderViewportTop = headersAnchors.find(anchor => {
23
- const {
24
- top
25
- } = anchor.getBoundingClientRect();
26
- return top >= topOffset;
27
- });
28
-
29
- if (firstAnchorUnderViewportTop) {
30
- // If first anchor in viewport is under a certain threshold, we consider it's not the active anchor.
31
- // In such case, the active anchor is the previous one (if it exists), that may be above the viewport
32
- if (firstAnchorUnderViewportTop.getBoundingClientRect().top >= topOffset) {
33
- const previousAnchor = headersAnchors[headersAnchors.indexOf(firstAnchorUnderViewportTop) - 1];
34
- return previousAnchor !== null && previousAnchor !== void 0 ? previousAnchor : firstAnchorUnderViewportTop;
35
- } // If the anchor is at the top of the viewport, we consider it's the first anchor
36
- else {
37
- return firstAnchorUnderViewportTop;
38
- }
39
- } // no anchor under viewport top? (ie we are at the bottom of the page)
40
- else {
41
- // highlight the last anchor found
42
- return headersAnchors[headersAnchors.length - 1];
43
- }
44
- }
45
-
46
- const activeHeaderAnchor = getActiveHeaderAnchor();
47
-
48
- if (activeHeaderAnchor) {
49
- let index = 0;
50
- let itemHighlighted = false; // @ts-expect-error: Must be <a> tags.
51
-
52
- const links = document.getElementsByClassName(linkClassName);
53
-
54
- while (index < links.length && !itemHighlighted) {
55
- const link = links[index];
56
- const {
57
- href
58
- } = link;
59
- const anchorValue = decodeURIComponent(href.substring(href.indexOf('#') + 1));
60
-
61
- if (activeHeaderAnchor.id === anchorValue) {
62
- if (lastActiveLink) {
63
- lastActiveLink.classList.remove(linkActiveClassName);
64
- }
65
-
66
- link.classList.add(linkActiveClassName);
67
- setLastActiveLink(link);
68
- itemHighlighted = true;
69
- }
70
-
71
- index += 1;
72
- }
73
- }
74
- }
75
-
76
- document.addEventListener('scroll', setActiveLink);
77
- document.addEventListener('resize', setActiveLink);
78
- setActiveLink();
79
- return () => {
80
- document.removeEventListener('scroll', setActiveLink);
81
- document.removeEventListener('resize', setActiveLink);
82
- };
83
- });
84
- }
85
-
86
- var _default = useTOCHighlight;
87
- exports.default = _default;