@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
@@ -4,224 +4,34 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import React, {useState, useCallback, useEffect, useRef, memo} from 'react';
7
+ import React, {useState} from 'react';
8
8
  import clsx from 'clsx';
9
- import {useThemeConfig, isSamePath} from '@docusaurus/theme-common';
10
- import useUserPreferencesContext from '@theme/hooks/useUserPreferencesContext';
11
- import useLockBodyScroll from '@theme/hooks/useLockBodyScroll';
12
- import useWindowSize, {windowSizes} from '@theme/hooks/useWindowSize';
13
- import useScrollPosition from '@theme/hooks/useScrollPosition';
14
- import Link from '@docusaurus/Link';
15
- import isInternalUrl from '@docusaurus/isInternalUrl';
9
+ import {
10
+ useThemeConfig,
11
+ useAnnouncementBar,
12
+ MobileSecondaryMenuFiller,
13
+ ThemeClassNames,
14
+ useScrollPosition,
15
+ useWindowSize,
16
+ } from '@docusaurus/theme-common';
16
17
  import Logo from '@theme/Logo';
17
18
  import IconArrow from '@theme/IconArrow';
18
- import IconMenu from '@theme/IconMenu';
19
19
  import {translate} from '@docusaurus/Translate';
20
+ import DocSidebarItems from '@theme/DocSidebarItems';
20
21
  import styles from './styles.module.css';
21
- const MOBILE_TOGGLE_SIZE = 24;
22
-
23
- function usePrevious(value) {
24
- const ref = useRef(value);
25
- useEffect(() => {
26
- ref.current = value;
27
- }, [value]);
28
- return ref.current;
29
- }
30
-
31
- const isActiveSidebarItem = (item, activePath) => {
32
- if (item.type === 'link') {
33
- return isSamePath(item.href, activePath);
34
- }
35
-
36
- if (item.type === 'category') {
37
- return item.items.some((subItem) =>
38
- isActiveSidebarItem(subItem, activePath),
39
- );
40
- }
41
-
42
- return false;
43
- }; // Optimize sidebar at each "level"
44
- // TODO this item should probably not receive the "activePath" props
45
- // TODO this triggers whole sidebar re-renders on navigation
46
-
47
- const DocSidebarItems = memo(function DocSidebarItems({items, ...props}) {
48
- return items.map((item, index) => (
49
- <DocSidebarItem
50
- key={index} // sidebar is static, the index does not change
51
- item={item}
52
- {...props}
53
- />
54
- ));
55
- });
56
-
57
- function DocSidebarItem(props) {
58
- switch (props.item.type) {
59
- case 'category':
60
- return <DocSidebarItemCategory {...props} />;
61
-
62
- case 'link':
63
- default:
64
- return <DocSidebarItemLink {...props} />;
65
- }
66
- }
67
-
68
- function DocSidebarItemCategory({
69
- item,
70
- onItemClick,
71
- collapsible,
72
- activePath,
73
- ...props
74
- }) {
75
- const {items, label} = item;
76
- const isActive = isActiveSidebarItem(item, activePath);
77
- const wasActive = usePrevious(isActive); // active categories are always initialized as expanded
78
- // the default (item.collapsed) is only used for non-active categories
79
-
80
- const [collapsed, setCollapsed] = useState(() => {
81
- if (!collapsible) {
82
- return false;
83
- }
84
-
85
- return isActive ? false : item.collapsed;
86
- });
87
- const menuListRef = useRef(null);
88
- const [menuListHeight, setMenuListHeight] = useState(undefined);
89
-
90
- const handleMenuListHeight = (calc = true) => {
91
- setMenuListHeight(
92
- calc ? `${menuListRef.current?.scrollHeight}px` : undefined,
93
- );
94
- }; // If we navigate to a category, it should automatically expand itself
95
-
96
- useEffect(() => {
97
- const justBecameActive = isActive && !wasActive;
98
-
99
- if (justBecameActive && collapsed) {
100
- setCollapsed(false);
101
- }
102
- }, [isActive, wasActive, collapsed]);
103
- const handleItemClick = useCallback(
104
- (e) => {
105
- e.preventDefault();
106
-
107
- if (!menuListHeight) {
108
- handleMenuListHeight();
109
- }
110
-
111
- setTimeout(() => setCollapsed((state) => !state), 100);
112
- },
113
- [menuListHeight],
114
- );
115
-
116
- if (items.length === 0) {
117
- return null;
118
- }
119
-
120
- return (
121
- <li
122
- className={clsx('menu__list-item', {
123
- 'menu__list-item--collapsed': collapsed,
124
- })}>
125
- <a
126
- className={clsx('menu__link', {
127
- 'menu__link--sublist': collapsible,
128
- 'menu__link--active': collapsible && isActive,
129
- [styles.menuLinkText]: !collapsible,
130
- })}
131
- onClick={collapsible ? handleItemClick : undefined}
132
- href={collapsible ? '#!' : undefined}
133
- {...props}>
134
- {label}
135
- </a>
136
- <ul
137
- className="menu__list"
138
- ref={menuListRef}
139
- style={{
140
- height: menuListHeight,
141
- }}
142
- onTransitionEnd={() => {
143
- if (!collapsed) {
144
- handleMenuListHeight(false);
145
- }
146
- }}>
147
- <DocSidebarItems
148
- items={items}
149
- tabIndex={collapsed ? '-1' : '0'}
150
- onItemClick={onItemClick}
151
- collapsible={collapsible}
152
- activePath={activePath}
153
- />
154
- </ul>
155
- </li>
156
- );
157
- }
158
-
159
- function DocSidebarItemLink({
160
- item,
161
- onItemClick,
162
- activePath,
163
- collapsible: _collapsible,
164
- ...props
165
- }) {
166
- const {href, label} = item;
167
- const isActive = isActiveSidebarItem(item, activePath);
168
- return (
169
- <li className="menu__list-item" key={label}>
170
- <Link
171
- className={clsx('menu__link', {
172
- 'menu__link--active': isActive,
173
- [styles.menuLinkExternal]: !isInternalUrl(href),
174
- })}
175
- to={href}
176
- {...(isInternalUrl(href) && {
177
- isNavLink: true,
178
- exact: true,
179
- onClick: onItemClick,
180
- })}
181
- {...props}>
182
- {label}
183
- </Link>
184
- </li>
185
- );
186
- }
187
22
 
188
23
  function useShowAnnouncementBar() {
189
- const {isAnnouncementBarClosed} = useUserPreferencesContext();
190
- const [showAnnouncementBar, setShowAnnouncementBar] = useState(
191
- !isAnnouncementBarClosed,
192
- );
193
- useScrollPosition(({scrollY}) => {
194
- if (!isAnnouncementBarClosed) {
195
- setShowAnnouncementBar(scrollY === 0);
196
- }
197
- });
198
- return showAnnouncementBar;
199
- }
200
-
201
- function useResponsiveSidebar() {
202
- const [showResponsiveSidebar, setShowResponsiveSidebar] = useState(false);
203
- useLockBodyScroll(showResponsiveSidebar);
204
- const windowSize = useWindowSize();
205
- useEffect(() => {
206
- if (windowSize === windowSizes.desktop) {
207
- setShowResponsiveSidebar(false);
208
- }
209
- }, [windowSize]);
210
- const closeResponsiveSidebar = useCallback(
211
- (e) => {
212
- e.target.blur();
213
- setShowResponsiveSidebar(false);
24
+ const {isActive} = useAnnouncementBar();
25
+ const [showAnnouncementBar, setShowAnnouncementBar] = useState(isActive);
26
+ useScrollPosition(
27
+ ({scrollY}) => {
28
+ if (isActive) {
29
+ setShowAnnouncementBar(scrollY === 0);
30
+ }
214
31
  },
215
- [setShowResponsiveSidebar],
32
+ [isActive],
216
33
  );
217
- const toggleResponsiveSidebar = useCallback(() => {
218
- setShowResponsiveSidebar((value) => !value);
219
- }, [setShowResponsiveSidebar]);
220
- return {
221
- showResponsiveSidebar,
222
- closeResponsiveSidebar,
223
- toggleResponsiveSidebar,
224
- };
34
+ return isActive && showAnnouncementBar;
225
35
  }
226
36
 
227
37
  function HideableSidebarButton({onClick}) {
@@ -248,62 +58,12 @@ function HideableSidebarButton({onClick}) {
248
58
  );
249
59
  }
250
60
 
251
- function ResponsiveSidebarButton({responsiveSidebarOpened, onClick}) {
252
- return (
253
- <button
254
- aria-label={
255
- responsiveSidebarOpened
256
- ? translate({
257
- id: 'theme.docs.sidebar.responsiveCloseButtonLabel',
258
- message: 'Close menu',
259
- description:
260
- 'The ARIA label for close button of mobile doc sidebar',
261
- })
262
- : translate({
263
- id: 'theme.docs.sidebar.responsiveOpenButtonLabel',
264
- message: 'Open menu',
265
- description:
266
- 'The ARIA label for open button of mobile doc sidebar',
267
- })
268
- }
269
- aria-haspopup="true"
270
- className="button button--secondary button--sm menu__button"
271
- type="button"
272
- onClick={onClick}>
273
- {responsiveSidebarOpened ? (
274
- <span
275
- className={clsx(styles.sidebarMenuIcon, styles.sidebarMenuCloseIcon)}>
276
- &times;
277
- </span>
278
- ) : (
279
- <IconMenu
280
- className={styles.sidebarMenuIcon}
281
- height={MOBILE_TOGGLE_SIZE}
282
- width={MOBILE_TOGGLE_SIZE}
283
- />
284
- )}
285
- </button>
286
- );
287
- }
288
-
289
- function DocSidebar({
290
- path,
291
- sidebar,
292
- sidebarCollapsible = true,
293
- onCollapse,
294
- isHidden,
295
- }) {
61
+ function DocSidebarDesktop({path, sidebar, onCollapse, isHidden}) {
296
62
  const showAnnouncementBar = useShowAnnouncementBar();
297
63
  const {
298
64
  navbar: {hideOnScroll},
299
65
  hideableSidebar,
300
66
  } = useThemeConfig();
301
- const {isAnnouncementBarClosed} = useUserPreferencesContext();
302
- const {
303
- showResponsiveSidebar,
304
- closeResponsiveSidebar,
305
- toggleResponsiveSidebar,
306
- } = useResponsiveSidebar();
307
67
  return (
308
68
  <div
309
69
  className={clsx(styles.sidebar, {
@@ -311,34 +71,61 @@ function DocSidebar({
311
71
  [styles.sidebarHidden]: isHidden,
312
72
  })}>
313
73
  {hideOnScroll && <Logo tabIndex={-1} className={styles.sidebarLogo} />}
314
- <div
315
- className={clsx(
316
- 'menu',
317
- 'menu--responsive',
318
- 'thin-scrollbar',
319
- styles.menu,
320
- {
321
- 'menu--show': showResponsiveSidebar,
322
- [styles.menuWithAnnouncementBar]:
323
- !isAnnouncementBarClosed && showAnnouncementBar,
324
- },
325
- )}>
326
- <ResponsiveSidebarButton
327
- responsiveSidebarOpened={showResponsiveSidebar}
328
- onClick={toggleResponsiveSidebar}
329
- />
330
- <ul className="menu__list">
331
- <DocSidebarItems
332
- items={sidebar}
333
- onItemClick={closeResponsiveSidebar}
334
- collapsible={sidebarCollapsible}
335
- activePath={path}
336
- />
74
+ <nav
75
+ className={clsx('menu thin-scrollbar', styles.menu, {
76
+ [styles.menuWithAnnouncementBar]: showAnnouncementBar,
77
+ })}>
78
+ <ul className={clsx(ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
79
+ <DocSidebarItems items={sidebar} activePath={path} level={1} />
337
80
  </ul>
338
- </div>
81
+ </nav>
339
82
  {hideableSidebar && <HideableSidebarButton onClick={onCollapse} />}
340
83
  </div>
341
84
  );
85
+ } // eslint-disable-next-line react/function-component-definition
86
+
87
+ const DocSidebarMobileSecondaryMenu = ({toggleSidebar, sidebar, path}) => (
88
+ <ul className={clsx(ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
89
+ <DocSidebarItems
90
+ items={sidebar}
91
+ activePath={path}
92
+ onItemClick={(item) => {
93
+ // Mobile sidebar should only be closed if the category has a link
94
+ if (item.type === 'category' && item.href) {
95
+ toggleSidebar();
96
+ }
97
+
98
+ if (item.type === 'link') {
99
+ toggleSidebar();
100
+ }
101
+ }}
102
+ level={1}
103
+ />
104
+ </ul>
105
+ );
106
+
107
+ function DocSidebarMobile(props) {
108
+ return (
109
+ <MobileSecondaryMenuFiller
110
+ component={DocSidebarMobileSecondaryMenu}
111
+ props={props}
112
+ />
113
+ );
342
114
  }
343
115
 
344
- export default DocSidebar;
116
+ const DocSidebarDesktopMemo = React.memo(DocSidebarDesktop);
117
+ const DocSidebarMobileMemo = React.memo(DocSidebarMobile);
118
+ export default function DocSidebar(props) {
119
+ const windowSize = useWindowSize(); // Desktop sidebar visible on hydration: need SSR rendering
120
+
121
+ const shouldRenderSidebarDesktop =
122
+ windowSize === 'desktop' || windowSize === 'ssr'; // Mobile sidebar not visible on hydration: can avoid SSR rendering
123
+
124
+ const shouldRenderSidebarMobile = windowSize === 'mobile';
125
+ return (
126
+ <>
127
+ {shouldRenderSidebarDesktop && <DocSidebarDesktopMemo {...props} />}
128
+ {shouldRenderSidebarMobile && <DocSidebarMobileMemo {...props} />}
129
+ </>
130
+ );
131
+ }
@@ -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
- }