@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
@@ -5,239 +5,41 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import React, {useState, useCallback, useEffect, useRef, memo} from 'react';
8
+ import React, {useState} from 'react';
9
9
  import clsx from 'clsx';
10
- import {useThemeConfig, isSamePath} from '@docusaurus/theme-common';
11
- import useUserPreferencesContext from '@theme/hooks/useUserPreferencesContext';
12
- import useLockBodyScroll from '@theme/hooks/useLockBodyScroll';
13
- import useWindowSize, {windowSizes} from '@theme/hooks/useWindowSize';
14
- import useScrollPosition from '@theme/hooks/useScrollPosition';
15
- import Link from '@docusaurus/Link';
16
- import isInternalUrl from '@docusaurus/isInternalUrl';
17
- import type {Props} from '@theme/DocSidebar';
10
+ import {
11
+ useThemeConfig,
12
+ useAnnouncementBar,
13
+ MobileSecondaryMenuFiller,
14
+ type MobileSecondaryMenuComponent,
15
+ ThemeClassNames,
16
+ useScrollPosition,
17
+ useWindowSize,
18
+ } from '@docusaurus/theme-common';
18
19
  import Logo from '@theme/Logo';
19
20
  import IconArrow from '@theme/IconArrow';
20
- import IconMenu from '@theme/IconMenu';
21
21
  import {translate} from '@docusaurus/Translate';
22
+ import DocSidebarItems from '@theme/DocSidebarItems';
23
+ import type {Props} from '@theme/DocSidebar';
22
24
 
23
25
  import styles from './styles.module.css';
24
26
 
25
- const MOBILE_TOGGLE_SIZE = 24;
26
-
27
- function usePrevious(value) {
28
- const ref = useRef(value);
29
- useEffect(() => {
30
- ref.current = value;
31
- }, [value]);
32
- return ref.current;
33
- }
34
-
35
- const isActiveSidebarItem = (item, activePath) => {
36
- if (item.type === 'link') {
37
- return isSamePath(item.href, activePath);
38
- }
39
- if (item.type === 'category') {
40
- return item.items.some((subItem) =>
41
- isActiveSidebarItem(subItem, activePath),
42
- );
43
- }
44
- return false;
45
- };
46
-
47
- // Optimize sidebar at each "level"
48
- // TODO this item should probably not receive the "activePath" props
49
- // TODO this triggers whole sidebar re-renders on navigation
50
- const DocSidebarItems = memo(function DocSidebarItems({
51
- items,
52
- ...props
53
- }: any): JSX.Element {
54
- return items.map((item, index) => (
55
- <DocSidebarItem
56
- key={index} // sidebar is static, the index does not change
57
- item={item}
58
- {...props}
59
- />
60
- ));
61
- });
62
-
63
- function DocSidebarItem(props): JSX.Element {
64
- switch (props.item.type) {
65
- case 'category':
66
- return <DocSidebarItemCategory {...props} />;
67
- case 'link':
68
- default:
69
- return <DocSidebarItemLink {...props} />;
70
- }
71
- }
72
-
73
- function DocSidebarItemCategory({
74
- item,
75
- onItemClick,
76
- collapsible,
77
- activePath,
78
- ...props
79
- }) {
80
- const {items, label} = item;
81
-
82
- const isActive = isActiveSidebarItem(item, activePath);
83
- const wasActive = usePrevious(isActive);
84
-
85
- // active categories are always initialized as expanded
86
- // the default (item.collapsed) is only used for non-active categories
87
- const [collapsed, setCollapsed] = useState(() => {
88
- if (!collapsible) {
89
- return false;
90
- }
91
- return isActive ? false : item.collapsed;
92
- });
93
-
94
- const menuListRef = useRef<HTMLUListElement>(null);
95
- const [menuListHeight, setMenuListHeight] = useState<string | undefined>(
96
- undefined,
97
- );
98
- const handleMenuListHeight = (calc = true) => {
99
- setMenuListHeight(
100
- calc ? `${menuListRef.current?.scrollHeight}px` : undefined,
101
- );
102
- };
103
-
104
- // If we navigate to a category, it should automatically expand itself
105
- useEffect(() => {
106
- const justBecameActive = isActive && !wasActive;
107
- if (justBecameActive && collapsed) {
108
- setCollapsed(false);
109
- }
110
- }, [isActive, wasActive, collapsed]);
111
-
112
- const handleItemClick = useCallback(
113
- (e) => {
114
- e.preventDefault();
115
-
116
- if (!menuListHeight) {
117
- handleMenuListHeight();
118
- }
119
-
120
- setTimeout(() => setCollapsed((state) => !state), 100);
121
- },
122
- [menuListHeight],
123
- );
124
-
125
- if (items.length === 0) {
126
- return null;
127
- }
128
-
129
- return (
130
- <li
131
- className={clsx('menu__list-item', {
132
- 'menu__list-item--collapsed': collapsed,
133
- })}>
134
- <a
135
- className={clsx('menu__link', {
136
- 'menu__link--sublist': collapsible,
137
- 'menu__link--active': collapsible && isActive,
138
- [styles.menuLinkText]: !collapsible,
139
- })}
140
- onClick={collapsible ? handleItemClick : undefined}
141
- href={collapsible ? '#!' : undefined}
142
- {...props}>
143
- {label}
144
- </a>
145
- <ul
146
- className="menu__list"
147
- ref={menuListRef}
148
- style={{
149
- height: menuListHeight,
150
- }}
151
- onTransitionEnd={() => {
152
- if (!collapsed) {
153
- handleMenuListHeight(false);
154
- }
155
- }}>
156
- <DocSidebarItems
157
- items={items}
158
- tabIndex={collapsed ? '-1' : '0'}
159
- onItemClick={onItemClick}
160
- collapsible={collapsible}
161
- activePath={activePath}
162
- />
163
- </ul>
164
- </li>
165
- );
166
- }
167
-
168
- function DocSidebarItemLink({
169
- item,
170
- onItemClick,
171
- activePath,
172
- collapsible: _collapsible,
173
- ...props
174
- }) {
175
- const {href, label} = item;
176
- const isActive = isActiveSidebarItem(item, activePath);
177
- return (
178
- <li className="menu__list-item" key={label}>
179
- <Link
180
- className={clsx('menu__link', {
181
- 'menu__link--active': isActive,
182
- [styles.menuLinkExternal]: !isInternalUrl(href),
183
- })}
184
- to={href}
185
- {...(isInternalUrl(href) && {
186
- isNavLink: true,
187
- exact: true,
188
- onClick: onItemClick,
189
- })}
190
- {...props}>
191
- {label}
192
- </Link>
193
- </li>
194
- );
195
- }
196
-
197
27
  function useShowAnnouncementBar() {
198
- const {isAnnouncementBarClosed} = useUserPreferencesContext();
199
- const [showAnnouncementBar, setShowAnnouncementBar] = useState(
200
- !isAnnouncementBarClosed,
201
- );
202
- useScrollPosition(({scrollY}) => {
203
- if (!isAnnouncementBarClosed) {
204
- setShowAnnouncementBar(scrollY === 0);
205
- }
206
- });
207
- return showAnnouncementBar;
208
- }
28
+ const {isActive} = useAnnouncementBar();
29
+ const [showAnnouncementBar, setShowAnnouncementBar] = useState(isActive);
209
30
 
210
- function useResponsiveSidebar() {
211
- const [showResponsiveSidebar, setShowResponsiveSidebar] = useState(false);
212
- useLockBodyScroll(showResponsiveSidebar);
213
-
214
- const windowSize = useWindowSize();
215
- useEffect(() => {
216
- if (windowSize === windowSizes.desktop) {
217
- setShowResponsiveSidebar(false);
218
- }
219
- }, [windowSize]);
220
-
221
- const closeResponsiveSidebar = useCallback(
222
- (e) => {
223
- e.target.blur();
224
- setShowResponsiveSidebar(false);
31
+ useScrollPosition(
32
+ ({scrollY}) => {
33
+ if (isActive) {
34
+ setShowAnnouncementBar(scrollY === 0);
35
+ }
225
36
  },
226
- [setShowResponsiveSidebar],
37
+ [isActive],
227
38
  );
228
-
229
- const toggleResponsiveSidebar = useCallback(() => {
230
- setShowResponsiveSidebar((value) => !value);
231
- }, [setShowResponsiveSidebar]);
232
-
233
- return {
234
- showResponsiveSidebar,
235
- closeResponsiveSidebar,
236
- toggleResponsiveSidebar,
237
- };
39
+ return isActive && showAnnouncementBar;
238
40
  }
239
41
 
240
- function HideableSidebarButton({onClick}) {
42
+ function HideableSidebarButton({onClick}: {onClick: React.MouseEventHandler}) {
241
43
  return (
242
44
  <button
243
45
  type="button"
@@ -261,63 +63,12 @@ function HideableSidebarButton({onClick}) {
261
63
  );
262
64
  }
263
65
 
264
- function ResponsiveSidebarButton({responsiveSidebarOpened, onClick}) {
265
- return (
266
- <button
267
- aria-label={
268
- responsiveSidebarOpened
269
- ? translate({
270
- id: 'theme.docs.sidebar.responsiveCloseButtonLabel',
271
- message: 'Close menu',
272
- description:
273
- 'The ARIA label for close button of mobile doc sidebar',
274
- })
275
- : translate({
276
- id: 'theme.docs.sidebar.responsiveOpenButtonLabel',
277
- message: 'Open menu',
278
- description:
279
- 'The ARIA label for open button of mobile doc sidebar',
280
- })
281
- }
282
- aria-haspopup="true"
283
- className="button button--secondary button--sm menu__button"
284
- type="button"
285
- onClick={onClick}>
286
- {responsiveSidebarOpened ? (
287
- <span
288
- className={clsx(styles.sidebarMenuIcon, styles.sidebarMenuCloseIcon)}>
289
- &times;
290
- </span>
291
- ) : (
292
- <IconMenu
293
- className={styles.sidebarMenuIcon}
294
- height={MOBILE_TOGGLE_SIZE}
295
- width={MOBILE_TOGGLE_SIZE}
296
- />
297
- )}
298
- </button>
299
- );
300
- }
301
-
302
- function DocSidebar({
303
- path,
304
- sidebar,
305
- sidebarCollapsible = true,
306
- onCollapse,
307
- isHidden,
308
- }: Props): JSX.Element | null {
66
+ function DocSidebarDesktop({path, sidebar, onCollapse, isHidden}: Props) {
309
67
  const showAnnouncementBar = useShowAnnouncementBar();
310
68
  const {
311
69
  navbar: {hideOnScroll},
312
70
  hideableSidebar,
313
71
  } = useThemeConfig();
314
- const {isAnnouncementBarClosed} = useUserPreferencesContext();
315
-
316
- const {
317
- showResponsiveSidebar,
318
- closeResponsiveSidebar,
319
- toggleResponsiveSidebar,
320
- } = useResponsiveSidebar();
321
72
 
322
73
  return (
323
74
  <div
@@ -326,34 +77,69 @@ function DocSidebar({
326
77
  [styles.sidebarHidden]: isHidden,
327
78
  })}>
328
79
  {hideOnScroll && <Logo tabIndex={-1} className={styles.sidebarLogo} />}
329
- <div
330
- className={clsx(
331
- 'menu',
332
- 'menu--responsive',
333
- 'thin-scrollbar',
334
- styles.menu,
335
- {
336
- 'menu--show': showResponsiveSidebar,
337
- [styles.menuWithAnnouncementBar]:
338
- !isAnnouncementBarClosed && showAnnouncementBar,
339
- },
340
- )}>
341
- <ResponsiveSidebarButton
342
- responsiveSidebarOpened={showResponsiveSidebar}
343
- onClick={toggleResponsiveSidebar}
344
- />
345
- <ul className="menu__list">
346
- <DocSidebarItems
347
- items={sidebar}
348
- onItemClick={closeResponsiveSidebar}
349
- collapsible={sidebarCollapsible}
350
- activePath={path}
351
- />
80
+ <nav
81
+ className={clsx('menu thin-scrollbar', styles.menu, {
82
+ [styles.menuWithAnnouncementBar]: showAnnouncementBar,
83
+ })}>
84
+ <ul className={clsx(ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
85
+ <DocSidebarItems items={sidebar} activePath={path} level={1} />
352
86
  </ul>
353
- </div>
87
+ </nav>
354
88
  {hideableSidebar && <HideableSidebarButton onClick={onCollapse} />}
355
89
  </div>
356
90
  );
357
91
  }
358
92
 
359
- export default DocSidebar;
93
+ // eslint-disable-next-line react/function-component-definition
94
+ const DocSidebarMobileSecondaryMenu: MobileSecondaryMenuComponent<Props> = ({
95
+ toggleSidebar,
96
+ sidebar,
97
+ path,
98
+ }) => (
99
+ <ul className={clsx(ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
100
+ <DocSidebarItems
101
+ items={sidebar}
102
+ activePath={path}
103
+ onItemClick={(item) => {
104
+ // Mobile sidebar should only be closed if the category has a link
105
+ if (item.type === 'category' && item.href) {
106
+ toggleSidebar();
107
+ }
108
+ if (item.type === 'link') {
109
+ toggleSidebar();
110
+ }
111
+ }}
112
+ level={1}
113
+ />
114
+ </ul>
115
+ );
116
+
117
+ function DocSidebarMobile(props: Props) {
118
+ return (
119
+ <MobileSecondaryMenuFiller
120
+ component={DocSidebarMobileSecondaryMenu}
121
+ props={props}
122
+ />
123
+ );
124
+ }
125
+
126
+ const DocSidebarDesktopMemo = React.memo(DocSidebarDesktop);
127
+ const DocSidebarMobileMemo = React.memo(DocSidebarMobile);
128
+
129
+ export default function DocSidebar(props: Props): JSX.Element {
130
+ const windowSize = useWindowSize();
131
+
132
+ // Desktop sidebar visible on hydration: need SSR rendering
133
+ const shouldRenderSidebarDesktop =
134
+ windowSize === 'desktop' || windowSize === 'ssr';
135
+
136
+ // Mobile sidebar not visible on hydration: can avoid SSR rendering
137
+ const shouldRenderSidebarMobile = windowSize === 'mobile';
138
+
139
+ return (
140
+ <>
141
+ {shouldRenderSidebarDesktop && <DocSidebarDesktopMemo {...props} />}
142
+ {shouldRenderSidebarMobile && <DocSidebarMobileMemo {...props} />}
143
+ </>
144
+ );
145
+ }
@@ -53,14 +53,6 @@
53
53
  padding: 0.5rem;
54
54
  }
55
55
 
56
- .menuLinkText {
57
- cursor: initial;
58
- }
59
-
60
- .menuLinkText:hover {
61
- background: none;
62
- }
63
-
64
56
  .menuWithAnnouncementBar {
65
57
  margin-bottom: var(--docusaurus-announcement-bar-height);
66
58
  }
@@ -79,16 +71,17 @@
79
71
  transform: rotate(180deg);
80
72
  margin-top: 4px;
81
73
  }
82
- html[dir='rtl'] .collapseSidebarButtonIcon {
74
+
75
+ [dir='rtl'] .collapseSidebarButtonIcon {
83
76
  transform: rotate(0);
84
77
  }
85
78
 
86
- html[data-theme='dark'] .collapseSidebarButton {
79
+ [data-theme='dark'] .collapseSidebarButton {
87
80
  background-color: var(--collapse-button-bg-color-dark);
88
81
  }
89
82
 
90
- html[data-theme='dark'] .collapseSidebarButton:hover,
91
- html[data-theme='dark'] .collapseSidebarButton:focus {
83
+ [data-theme='dark'] .collapseSidebarButton:hover,
84
+ [data-theme='dark'] .collapseSidebarButton:focus {
92
85
  background-color: var(--ifm-color-emphasis-200);
93
86
  }
94
87
  }
@@ -112,27 +105,3 @@
112
105
  line-height: 0.9;
113
106
  width: 24px;
114
107
  }
115
-
116
- :global(.menu__list) :global(.menu__list) {
117
- overflow-y: hidden;
118
- will-change: height;
119
- transition: height var(--ifm-transition-fast) linear;
120
- }
121
-
122
- :global(.menu__list-item--collapsed) :global(.menu__list) {
123
- height: 0 !important;
124
- }
125
-
126
- .menuLinkExternal {
127
- align-items: center;
128
- }
129
- .menuLinkExternal:after {
130
- content: '';
131
- height: 1.15rem;
132
- width: 1.15rem;
133
- min-width: 1.15rem;
134
- margin: 0 0 0 3%;
135
- background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z'/%3E%3C/svg%3E")
136
- no-repeat;
137
- filter: var(--ifm-menu-link-sublist-icon-filter);
138
- }