@docusaurus/theme-classic 2.0.0-beta.2 → 2.0.0-beta.20

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 (549) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +39 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +243 -0
  5. package/lib/index.js +42 -52
  6. package/lib/nprogress.css +41 -0
  7. package/lib/nprogress.js +46 -0
  8. package/lib/prism-include-languages.js +9 -5
  9. package/lib/theme-classic.d.ts +1279 -0
  10. package/lib/translations.js +52 -36
  11. package/lib/validateThemeConfig.js +298 -248
  12. package/lib-next/theme/Admonition/index.js +101 -0
  13. package/lib-next/theme/AnnouncementBar/index.js +8 -16
  14. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  15. package/lib-next/theme/BackToTopButton/index.js +33 -0
  16. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  17. package/lib-next/theme/BlogArchivePage/index.js +84 -0
  18. package/lib-next/theme/BlogLayout/index.js +33 -0
  19. package/lib-next/theme/BlogListPage/index.js +45 -35
  20. package/lib-next/theme/BlogListPaginator/index.js +27 -33
  21. package/lib-next/theme/BlogPostAuthor/index.js +49 -0
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/{lib/theme/Toggle → lib-next/theme/BlogPostAuthors}/styles.module.css +11 -7
  24. package/lib-next/theme/BlogPostItem/index.js +96 -98
  25. package/lib-next/theme/BlogPostItem/styles.module.css +9 -0
  26. package/lib-next/theme/BlogPostPage/index.js +84 -37
  27. package/lib-next/theme/BlogPostPaginator/index.js +27 -37
  28. package/lib-next/theme/BlogSidebar/Desktop/index.js +41 -0
  29. package/{lib/theme/BlogSidebar → lib-next/theme/BlogSidebar/Desktop}/styles.module.css +5 -4
  30. package/lib-next/theme/BlogSidebar/Mobile/index.js +36 -0
  31. package/lib-next/theme/BlogSidebar/index.js +11 -33
  32. package/lib-next/theme/BlogTagsListPage/index.js +24 -65
  33. package/lib-next/theme/BlogTagsPostsPage/index.js +45 -48
  34. package/lib-next/theme/CodeBlock/Container/index.js +29 -0
  35. package/lib-next/theme/CodeBlock/Container/styles.module.css +14 -0
  36. package/lib-next/theme/CodeBlock/Content/Element.js +23 -0
  37. package/lib-next/theme/CodeBlock/Content/String.js +104 -0
  38. package/{lib/theme/CodeBlock → lib-next/theme/CodeBlock/Content}/styles.module.css +45 -27
  39. package/lib-next/theme/CodeBlock/CopyButton/index.js +61 -0
  40. package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  41. package/lib-next/theme/CodeBlock/Line/index.js +49 -0
  42. package/lib-next/theme/CodeBlock/Line/styles.module.css +51 -0
  43. package/lib-next/theme/CodeBlock/WordWrapButton/index.js +40 -0
  44. package/{lib/theme/BlogPostItem → lib-next/theme/CodeBlock/WordWrapButton}/styles.module.css +5 -8
  45. package/lib-next/theme/CodeBlock/index.js +28 -256
  46. package/lib-next/theme/ColorModeToggle/index.js +62 -0
  47. package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
  48. package/lib-next/theme/Details/index.js +21 -0
  49. package/lib-next/theme/Details/styles.module.css +13 -0
  50. package/lib-next/theme/DocBreadcrumbs/index.js +120 -0
  51. package/{lib/theme/Heading/styles.css → lib-next/theme/DocBreadcrumbs/styles.module.css} +9 -13
  52. package/lib-next/theme/DocCard/index.js +93 -0
  53. package/lib-next/theme/DocCard/styles.module.css +34 -0
  54. package/lib-next/theme/DocCardList/index.js +33 -0
  55. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
  56. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  57. package/lib-next/theme/DocItem/index.js +98 -85
  58. package/lib-next/theme/DocItem/styles.module.css +12 -10
  59. package/lib-next/theme/DocItemFooter/index.js +79 -0
  60. package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
  61. package/lib-next/theme/DocPage/Layout/Main/index.js +29 -0
  62. package/lib-next/theme/DocPage/Layout/Main/styles.module.css +28 -0
  63. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +34 -0
  64. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  65. package/lib-next/theme/DocPage/Layout/Sidebar/index.js +68 -0
  66. package/lib-next/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  67. package/lib-next/theme/DocPage/Layout/index.js +34 -0
  68. package/{lib/theme/IconExternalLink/styles.module.css → lib-next/theme/DocPage/Layout/index.module.css} +7 -4
  69. package/lib-next/theme/DocPage/index.js +39 -159
  70. package/lib-next/theme/DocPaginator/index.js +28 -40
  71. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  72. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  73. package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
  74. package/lib-next/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  75. package/lib-next/theme/DocSidebar/Desktop/index.js +36 -0
  76. package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
  77. package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
  78. package/lib-next/theme/DocSidebar/index.js +13 -340
  79. package/lib-next/theme/DocSidebarItem/Category.js +197 -0
  80. package/lib-next/theme/DocSidebarItem/Html.js +27 -0
  81. package/lib-next/theme/DocSidebarItem/Html.module.css +13 -0
  82. package/lib-next/theme/DocSidebarItem/Link.js +53 -0
  83. package/{lib/theme/MDXPage/styles.module.css → lib-next/theme/DocSidebarItem/Link.module.css} +2 -2
  84. package/lib-next/theme/DocSidebarItem/index.js +23 -0
  85. package/lib-next/theme/DocSidebarItems/index.js +23 -0
  86. package/lib-next/theme/DocTagDocListPage/index.js +96 -0
  87. package/lib-next/theme/DocTagsListPage/index.js +40 -0
  88. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  89. package/lib-next/theme/DocVersionBanner/index.js +33 -16
  90. package/lib-next/theme/EditThisPage/index.js +6 -1
  91. package/lib-next/theme/ErrorPageContent.js +35 -0
  92. package/lib-next/theme/Footer/Copyright/index.js +18 -0
  93. package/lib-next/theme/Footer/Layout/index.js +26 -0
  94. package/lib-next/theme/Footer/LinkItem/index.js +33 -0
  95. package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
  96. package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
  97. package/lib-next/theme/Footer/Links/index.js +17 -0
  98. package/lib-next/theme/Footer/Logo/index.js +38 -0
  99. package/lib-next/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
  100. package/lib-next/theme/Footer/index.js +12 -100
  101. package/lib-next/theme/Heading/index.js +31 -54
  102. package/lib-next/theme/Heading/styles.module.css +25 -5
  103. package/lib-next/theme/IconArrow/index.js +2 -5
  104. package/lib-next/theme/IconClose/index.js +23 -0
  105. package/lib-next/theme/IconDarkMode/index.js +17 -0
  106. package/lib-next/theme/IconEdit/index.js +2 -5
  107. package/lib-next/theme/IconExternalLink/index.js +2 -5
  108. package/lib-next/theme/IconExternalLink/styles.module.css +0 -2
  109. package/lib-next/theme/IconHome/index.js +17 -0
  110. package/lib-next/theme/IconLanguage/index.js +5 -8
  111. package/lib-next/theme/IconLightMode/index.js +17 -0
  112. package/lib-next/theme/IconMenu/index.js +7 -5
  113. package/lib-next/theme/LastUpdated/index.js +4 -2
  114. package/lib-next/theme/Layout/index.js +19 -16
  115. package/lib-next/theme/LayoutProviders/index.js +16 -9
  116. package/lib-next/theme/Logo/index.js +25 -24
  117. package/lib-next/theme/{ThemeContext.js → MDXComponents/A.js} +4 -2
  118. package/lib-next/theme/MDXComponents/Code.js +28 -0
  119. package/lib-next/theme/MDXComponents/Details.js +20 -0
  120. package/lib-next/theme/MDXComponents/Head.js +26 -0
  121. package/lib-next/theme/MDXComponents/Heading.js +11 -0
  122. package/lib-next/theme/MDXComponents/Img.js +24 -0
  123. package/{lib/theme/hooks/styles.css → lib-next/theme/MDXComponents/Img.module.css} +2 -2
  124. package/lib-next/theme/MDXComponents/Pre.js +18 -0
  125. package/lib-next/theme/MDXComponents/Ul.js +21 -0
  126. package/lib-next/theme/MDXComponents/index.js +22 -42
  127. package/lib-next/theme/MDXContent/index.js +12 -0
  128. package/lib-next/theme/MDXPage/index.js +37 -34
  129. package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
  130. package/lib-next/theme/Navbar/Content/index.js +75 -0
  131. package/{lib/theme/TOCInline → lib-next/theme/Navbar/Content}/styles.module.css +7 -4
  132. package/lib-next/theme/Navbar/Layout/index.js +54 -0
  133. package/{lib/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +0 -6
  134. package/lib-next/theme/Navbar/Logo/index.js +17 -0
  135. package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
  136. package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  137. package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  138. package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  139. package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  140. package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
  141. package/lib-next/theme/Navbar/Search/index.js +11 -0
  142. package/lib-next/theme/Navbar/Search/styles.module.css +20 -0
  143. package/lib-next/theme/Navbar/index.js +7 -137
  144. package/lib-next/theme/NavbarItem/ComponentTypes.js +27 -0
  145. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +32 -202
  146. package/lib-next/theme/NavbarItem/DocNavbarItem.js +16 -30
  147. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +41 -0
  148. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +54 -44
  149. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +2 -6
  150. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +167 -0
  151. package/lib-next/theme/NavbarItem/HtmlNavbarItem.js +30 -0
  152. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +16 -22
  153. package/lib-next/theme/{hooks/styles.css → NavbarItem/LocaleDropdownNavbarItem/styles.module.css} +3 -2
  154. package/lib-next/theme/NavbarItem/NavbarNavLink.js +84 -0
  155. package/lib-next/theme/NavbarItem/SearchNavbarItem.js +6 -1
  156. package/lib-next/theme/NavbarItem/index.js +17 -24
  157. package/lib-next/{prism-include-languages.js → theme/NavbarItem/utils.js} +3 -4
  158. package/lib-next/theme/NotFound.js +39 -37
  159. package/lib-next/theme/PaginatorNavLink/index.js +23 -0
  160. package/lib-next/theme/SearchBar.js +1 -1
  161. package/lib-next/theme/SearchMetadata/index.js +34 -0
  162. package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +31 -50
  163. package/lib-next/theme/SkipToContent/index.js +7 -32
  164. package/lib-next/theme/SkipToContent/styles.module.css +7 -0
  165. package/lib-next/theme/TOC/index.js +12 -39
  166. package/lib-next/theme/TOC/styles.module.css +1 -1
  167. package/lib-next/theme/TOCCollapsible/CollapseButton.js +29 -0
  168. package/lib-next/theme/TOCCollapsible/CollapseButton.module.css +29 -0
  169. package/lib-next/theme/TOCCollapsible/index.js +42 -0
  170. package/lib-next/theme/TOCCollapsible/index.module.css +31 -0
  171. package/lib-next/theme/TOCInline/index.js +10 -31
  172. package/lib-next/theme/TOCItems/Tree.js +40 -0
  173. package/lib-next/theme/TOCItems/index.js +54 -0
  174. package/lib-next/theme/TabItem/index.js +4 -5
  175. package/{lib/theme/IconEdit → lib-next/theme/TabItem}/styles.module.css +2 -3
  176. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  177. package/lib-next/theme/Tabs/index.js +111 -53
  178. package/lib-next/theme/Tabs/styles.module.css +4 -13
  179. package/lib-next/theme/Tag/index.js +23 -0
  180. package/lib-next/theme/Tag/styles.module.css +70 -0
  181. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  182. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  183. package/lib-next/theme/TagsListInline/index.js +31 -0
  184. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  185. package/lib-next/theme/ThemedImage/index.js +9 -12
  186. package/lib-next/theme/ThemedImage/styles.module.css +2 -2
  187. package/lib-next/theme/prism-include-languages.js +17 -15
  188. package/package.json +37 -32
  189. package/src/admonitions.css +39 -0
  190. package/src/deps.d.ts +13 -0
  191. package/src/getSwizzleConfig.ts +252 -0
  192. package/src/index.ts +48 -71
  193. package/src/nprogress.css +41 -0
  194. package/src/nprogress.ts +31 -0
  195. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  196. package/src/theme/Admonition/index.tsx +106 -0
  197. package/src/theme/AnnouncementBar/index.tsx +9 -15
  198. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  199. package/src/theme/BackToTopButton/index.tsx +34 -0
  200. package/src/theme/BackToTopButton/styles.module.css +44 -0
  201. package/src/theme/BlogArchivePage/index.tsx +92 -0
  202. package/src/theme/BlogLayout/index.tsx +38 -0
  203. package/src/theme/BlogListPage/index.tsx +45 -35
  204. package/src/theme/BlogListPaginator/index.tsx +27 -32
  205. package/src/theme/BlogPostAuthor/index.tsx +50 -0
  206. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  207. package/src/theme/{Toggle → BlogPostAuthors}/styles.module.css +11 -7
  208. package/src/theme/BlogPostItem/index.tsx +86 -92
  209. package/src/theme/BlogPostItem/styles.module.css +9 -0
  210. package/src/theme/BlogPostPage/index.tsx +84 -38
  211. package/src/theme/BlogPostPaginator/index.tsx +27 -36
  212. package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
  213. package/{lib-next/theme/BlogSidebar → src/theme/BlogSidebar/Desktop}/styles.module.css +5 -4
  214. package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
  215. package/src/theme/BlogSidebar/index.tsx +10 -33
  216. package/src/theme/BlogTagsListPage/index.tsx +24 -66
  217. package/src/theme/BlogTagsPostsPage/index.tsx +49 -47
  218. package/src/theme/CodeBlock/Container/index.tsx +35 -0
  219. package/src/theme/CodeBlock/Container/styles.module.css +14 -0
  220. package/src/theme/CodeBlock/Content/Element.tsx +30 -0
  221. package/src/theme/CodeBlock/Content/String.tsx +111 -0
  222. package/{lib-next/theme/CodeBlock → src/theme/CodeBlock/Content}/styles.module.css +45 -27
  223. package/src/theme/CodeBlock/CopyButton/index.tsx +67 -0
  224. package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  225. package/src/theme/CodeBlock/Line/index.tsx +48 -0
  226. package/src/theme/CodeBlock/Line/styles.module.css +51 -0
  227. package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
  228. package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  229. package/src/theme/CodeBlock/index.tsx +29 -253
  230. package/src/theme/ColorModeToggle/index.tsx +67 -0
  231. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  232. package/src/theme/Details/index.tsx +25 -0
  233. package/src/theme/Details/styles.module.css +13 -0
  234. package/src/theme/DocBreadcrumbs/index.tsx +140 -0
  235. package/src/theme/{Heading/styles.css → DocBreadcrumbs/styles.module.css} +9 -13
  236. package/src/theme/DocCard/index.tsx +116 -0
  237. package/src/theme/DocCard/styles.module.css +34 -0
  238. package/src/theme/DocCardList/index.tsx +36 -0
  239. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
  240. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  241. package/src/theme/DocItem/index.tsx +91 -77
  242. package/src/theme/DocItem/styles.module.css +12 -10
  243. package/src/theme/DocItemFooter/index.tsx +91 -0
  244. package/{lib-next/theme/Toggle → src/theme/DocItemFooter}/styles.module.css +9 -8
  245. package/src/theme/DocPage/Layout/Main/index.tsx +37 -0
  246. package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
  247. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
  248. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  249. package/src/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  250. package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
  251. package/src/theme/DocPage/Layout/index.module.css +15 -0
  252. package/src/theme/DocPage/Layout/index.tsx +39 -0
  253. package/src/theme/DocPage/index.tsx +39 -165
  254. package/src/theme/DocPaginator/index.tsx +28 -39
  255. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  256. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  257. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  258. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  259. package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
  260. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  261. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  262. package/src/theme/DocSidebar/index.tsx +14 -350
  263. package/src/theme/DocSidebarItem/Category.tsx +210 -0
  264. package/src/theme/DocSidebarItem/Html.module.css +13 -0
  265. package/src/theme/DocSidebarItem/Html.tsx +34 -0
  266. package/src/theme/DocSidebarItem/Link.module.css +10 -0
  267. package/src/theme/DocSidebarItem/Link.tsx +58 -0
  268. package/src/theme/DocSidebarItem/index.tsx +27 -0
  269. package/src/theme/DocSidebarItems/index.tsx +27 -0
  270. package/src/theme/DocTagDocListPage/index.tsx +96 -0
  271. package/src/theme/DocTagsListPage/index.tsx +44 -0
  272. package/src/theme/DocVersionBadge/index.tsx +35 -0
  273. package/src/theme/DocVersionBanner/index.tsx +53 -27
  274. package/src/theme/EditThisPage/index.tsx +6 -1
  275. package/src/theme/ErrorPageContent.tsx +41 -0
  276. package/src/theme/Footer/Copyright/index.tsx +20 -0
  277. package/src/theme/Footer/Layout/index.tsx +34 -0
  278. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  279. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  280. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  281. package/src/theme/Footer/Links/index.tsx +21 -0
  282. package/src/theme/Footer/Logo/index.tsx +41 -0
  283. package/src/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
  284. package/src/theme/Footer/index.tsx +13 -113
  285. package/src/theme/Heading/index.tsx +31 -58
  286. package/src/theme/Heading/styles.module.css +25 -5
  287. package/src/theme/IconArrow/index.tsx +2 -4
  288. package/src/theme/IconClose/index.tsx +26 -0
  289. package/src/theme/IconDarkMode/index.tsx +20 -0
  290. package/src/theme/IconEdit/index.tsx +5 -4
  291. package/src/theme/IconExternalLink/index.tsx +3 -5
  292. package/src/theme/IconExternalLink/styles.module.css +0 -2
  293. package/src/theme/IconHome/index.tsx +20 -0
  294. package/src/theme/IconLanguage/index.tsx +6 -8
  295. package/src/theme/IconLightMode/index.tsx +20 -0
  296. package/src/theme/IconMenu/index.tsx +3 -5
  297. package/src/theme/LastUpdated/index.tsx +4 -2
  298. package/src/theme/Layout/index.tsx +19 -15
  299. package/src/theme/LayoutProviders/index.tsx +16 -9
  300. package/src/theme/Logo/index.tsx +21 -19
  301. package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
  302. package/src/theme/MDXComponents/Code.tsx +37 -0
  303. package/src/theme/MDXComponents/Details.tsx +25 -0
  304. package/src/theme/MDXComponents/Head.tsx +29 -0
  305. package/src/theme/MDXComponents/Heading.tsx +14 -0
  306. package/src/theme/MDXComponents/Img.module.css +10 -0
  307. package/src/theme/MDXComponents/Img.tsx +26 -0
  308. package/src/theme/MDXComponents/Pre.tsx +22 -0
  309. package/src/theme/MDXComponents/Ul.tsx +24 -0
  310. package/src/theme/MDXComponents/index.tsx +23 -42
  311. package/src/theme/MDXContent/index.tsx +15 -0
  312. package/src/theme/MDXPage/index.tsx +37 -34
  313. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  314. package/src/theme/Navbar/Content/index.tsx +86 -0
  315. package/src/theme/Navbar/Content/styles.module.css +15 -0
  316. package/src/theme/Navbar/Layout/index.tsx +57 -0
  317. package/src/theme/Navbar/{styles.module.css → Layout/styles.module.css} +0 -6
  318. package/src/theme/Navbar/Logo/index.tsx +19 -0
  319. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  320. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  321. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  322. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
  323. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  324. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  325. package/src/theme/Navbar/Search/index.tsx +15 -0
  326. package/src/theme/Navbar/Search/styles.module.css +20 -0
  327. package/src/theme/Navbar/index.tsx +7 -147
  328. package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
  329. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -207
  330. package/src/theme/NavbarItem/DocNavbarItem.tsx +18 -38
  331. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +44 -0
  332. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +59 -51
  333. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +5 -8
  334. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +193 -0
  335. package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
  336. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +19 -17
  337. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  338. package/src/theme/NavbarItem/NavbarNavLink.tsx +80 -0
  339. package/src/theme/NavbarItem/SearchNavbarItem.tsx +6 -1
  340. package/src/theme/NavbarItem/index.tsx +22 -29
  341. package/src/theme/NavbarItem/utils.ts +13 -0
  342. package/src/theme/NotFound.tsx +39 -36
  343. package/src/theme/PaginatorNavLink/index.tsx +26 -0
  344. package/src/theme/SearchBar.tsx +2 -1
  345. package/src/theme/SearchMetadata/index.tsx +43 -0
  346. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +31 -44
  347. package/src/theme/SkipToContent/index.tsx +7 -32
  348. package/src/theme/SkipToContent/styles.module.css +7 -0
  349. package/src/theme/TOC/index.tsx +13 -44
  350. package/src/theme/TOC/styles.module.css +1 -1
  351. package/src/theme/TOCCollapsible/CollapseButton.module.css +29 -0
  352. package/src/theme/TOCCollapsible/CollapseButton.tsx +35 -0
  353. package/src/theme/TOCCollapsible/index.module.css +31 -0
  354. package/src/theme/TOCCollapsible/index.tsx +45 -0
  355. package/src/theme/TOCInline/index.tsx +14 -35
  356. package/src/theme/TOCItems/Tree.tsx +46 -0
  357. package/src/theme/TOCItems/index.tsx +61 -0
  358. package/src/theme/TabItem/index.tsx +12 -4
  359. package/src/theme/TabItem/styles.module.css +10 -0
  360. package/src/theme/Tabs/index.tsx +120 -62
  361. package/src/theme/Tabs/styles.module.css +4 -13
  362. package/src/theme/Tag/index.tsx +27 -0
  363. package/src/theme/Tag/styles.module.css +70 -0
  364. package/src/theme/TagsListByLetter/index.tsx +43 -0
  365. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  366. package/src/theme/TagsListInline/index.tsx +35 -0
  367. package/src/theme/TagsListInline/styles.module.css +15 -0
  368. package/src/theme/ThemedImage/index.tsx +10 -11
  369. package/src/theme/ThemedImage/styles.module.css +2 -2
  370. package/src/theme/prism-include-languages.ts +20 -15
  371. package/src/theme-classic.d.ts +1279 -0
  372. package/src/translations.ts +84 -58
  373. package/src/validateThemeConfig.ts +448 -0
  374. package/babel.config.js +0 -35
  375. package/codeTranslations/README.md +0 -20
  376. package/codeTranslations/ar.json +0 -57
  377. package/codeTranslations/base.json +0 -112
  378. package/codeTranslations/bn.json +0 -56
  379. package/codeTranslations/da.json +0 -57
  380. package/codeTranslations/de.json +0 -57
  381. package/codeTranslations/es.json +0 -57
  382. package/codeTranslations/fa.json +0 -57
  383. package/codeTranslations/fil.json +0 -57
  384. package/codeTranslations/fr.json +0 -57
  385. package/codeTranslations/he.json +0 -57
  386. package/codeTranslations/hi.json +0 -57
  387. package/codeTranslations/ja.json +0 -57
  388. package/codeTranslations/ko.json +0 -57
  389. package/codeTranslations/pl.json +0 -57
  390. package/codeTranslations/pt-BR.json +0 -57
  391. package/codeTranslations/pt-PT.json +0 -57
  392. package/codeTranslations/ru.json +0 -57
  393. package/codeTranslations/tr.json +0 -57
  394. package/codeTranslations/vi.json +0 -57
  395. package/codeTranslations/zh-Hans.json +0 -57
  396. package/codeTranslations/zh-Hant.json +0 -57
  397. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  398. package/lib/__tests__/translations.test.js +0 -112
  399. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  400. package/lib/theme/AnnouncementBar/index.js +0 -72
  401. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  402. package/lib/theme/BlogListPage/index.js +0 -71
  403. package/lib/theme/BlogListPaginator/index.js +0 -63
  404. package/lib/theme/BlogPostItem/index.js +0 -161
  405. package/lib/theme/BlogPostPage/index.js +0 -69
  406. package/lib/theme/BlogPostPaginator/index.js +0 -64
  407. package/lib/theme/BlogSidebar/index.js +0 -51
  408. package/lib/theme/BlogTagsListPage/index.js +0 -76
  409. package/lib/theme/BlogTagsPostsPage/index.js +0 -100
  410. package/lib/theme/CodeBlock/index.js +0 -253
  411. package/lib/theme/DocItem/index.js +0 -129
  412. package/lib/theme/DocPage/index.js +0 -173
  413. package/lib/theme/DocPage/styles.module.css +0 -86
  414. package/lib/theme/DocPaginator/index.js +0 -63
  415. package/lib/theme/DocSidebar/index.js +0 -306
  416. package/lib/theme/DocSidebar/styles.module.css +0 -124
  417. package/lib/theme/DocVersionBanner/index.js +0 -128
  418. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  419. package/lib/theme/EditThisPage/index.js +0 -31
  420. package/lib/theme/Footer/index.js +0 -108
  421. package/lib/theme/Footer/styles.module.css +0 -15
  422. package/lib/theme/Heading/index.js +0 -76
  423. package/lib/theme/Heading/styles.module.css +0 -15
  424. package/lib/theme/IconArrow/index.js +0 -28
  425. package/lib/theme/IconEdit/index.js +0 -34
  426. package/lib/theme/IconExternalLink/index.js +0 -30
  427. package/lib/theme/IconLanguage/index.js +0 -29
  428. package/lib/theme/IconMenu/index.js +0 -30
  429. package/lib/theme/LastUpdated/index.js +0 -61
  430. package/lib/theme/Layout/index.js +0 -64
  431. package/lib/theme/Layout/styles.css +0 -27
  432. package/lib/theme/LayoutHead/index.js +0 -144
  433. package/lib/theme/LayoutProviders/index.js +0 -36
  434. package/lib/theme/Logo/index.js +0 -60
  435. package/lib/theme/MDXComponents/index.js +0 -65
  436. package/lib/theme/MDXPage/index.js +0 -66
  437. package/lib/theme/Navbar/index.js +0 -147
  438. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
  439. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
  440. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
  441. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  442. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  443. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  444. package/lib/theme/NavbarItem/index.js +0 -54
  445. package/lib/theme/NotFound.js +0 -57
  446. package/lib/theme/SearchBar.js +0 -15
  447. package/lib/theme/SearchMetadatas/index.js +0 -33
  448. package/lib/theme/Seo/index.js +0 -49
  449. package/lib/theme/SkipToContent/index.js +0 -63
  450. package/lib/theme/SkipToContent/styles.module.css +0 -14
  451. package/lib/theme/TOC/index.js +0 -59
  452. package/lib/theme/TOC/styles.module.css +0 -23
  453. package/lib/theme/TOCInline/index.js +0 -53
  454. package/lib/theme/TabItem/index.js +0 -32
  455. package/lib/theme/Tabs/index.js +0 -150
  456. package/lib/theme/Tabs/styles.module.css +0 -23
  457. package/lib/theme/ThemeContext.js +0 -21
  458. package/lib/theme/ThemeProvider/index.js +0 -38
  459. package/lib/theme/ThemedImage/index.js +0 -49
  460. package/lib/theme/ThemedImage/styles.module.css +0 -18
  461. package/lib/theme/Toggle/index.js +0 -94
  462. package/lib/theme/Toggle/styles.css +0 -103
  463. package/lib/theme/UserPreferencesContext.js +0 -18
  464. package/lib/theme/UserPreferencesProvider/index.js +0 -36
  465. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  466. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  467. package/lib/theme/hooks/useDocs.js +0 -18
  468. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  469. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  470. package/lib/theme/hooks/useLocationHash.js +0 -28
  471. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  472. package/lib/theme/hooks/usePrismTheme.js +0 -36
  473. package/lib/theme/hooks/useScrollPosition.js +0 -49
  474. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  475. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  476. package/lib/theme/hooks/useTheme.js +0 -99
  477. package/lib/theme/hooks/useThemeContext.js +0 -31
  478. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  479. package/lib/theme/hooks/useWindowSize.js +0 -55
  480. package/lib/theme/prism-include-languages.js +0 -39
  481. package/lib/types.d.ts +0 -598
  482. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  483. package/lib-next/__tests__/translations.test.js +0 -128
  484. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  485. package/lib-next/index.js +0 -221
  486. package/lib-next/theme/DocPage/styles.module.css +0 -86
  487. package/lib-next/theme/DocSidebar/styles.module.css +0 -124
  488. package/lib-next/theme/DocVersionSuggestions/index.js +0 -126
  489. package/lib-next/theme/Heading/styles.css +0 -23
  490. package/lib-next/theme/Navbar/styles.module.css +0 -20
  491. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  492. package/lib-next/theme/Seo/index.js +0 -36
  493. package/lib-next/theme/ThemeProvider/index.js +0 -25
  494. package/lib-next/theme/Toggle/index.js +0 -80
  495. package/lib-next/theme/Toggle/styles.css +0 -103
  496. package/lib-next/theme/UserPreferencesContext.js +0 -9
  497. package/lib-next/theme/UserPreferencesProvider/index.js +0 -24
  498. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  499. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  500. package/lib-next/theme/hooks/useDocs.js +0 -10
  501. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  502. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  503. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  504. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  505. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  506. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  507. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  508. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
  509. package/lib-next/theme/hooks/useTheme.js +0 -82
  510. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  511. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  512. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  513. package/lib-next/translations.js +0 -145
  514. package/lib-next/types.d.ts +0 -598
  515. package/lib-next/validateThemeConfig.js +0 -317
  516. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  517. package/src/__tests__/translations.test.ts +0 -116
  518. package/src/__tests__/validateThemeConfig.test.js +0 -333
  519. package/src/theme/BlogSidebar/styles.module.css +0 -44
  520. package/src/theme/CodeBlock/styles.module.css +0 -68
  521. package/src/theme/DocPage/styles.module.css +0 -86
  522. package/src/theme/DocSidebar/styles.module.css +0 -124
  523. package/src/theme/SearchMetadatas/index.tsx +0 -28
  524. package/src/theme/Seo/index.tsx +0 -46
  525. package/src/theme/ThemeProvider/index.tsx +0 -24
  526. package/src/theme/Toggle/index.tsx +0 -100
  527. package/src/theme/Toggle/styles.css +0 -103
  528. package/src/theme/UserPreferencesContext.ts +0 -12
  529. package/src/theme/UserPreferencesProvider/index.tsx +0 -27
  530. package/src/theme/hooks/styles.css +0 -10
  531. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  532. package/src/theme/hooks/useDocs.ts +0 -11
  533. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  534. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  535. package/src/theme/hooks/useLocationHash.ts +0 -25
  536. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  537. package/src/theme/hooks/usePrismTheme.ts +0 -22
  538. package/src/theme/hooks/useScrollPosition.ts +0 -45
  539. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  540. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  541. package/src/theme/hooks/useTheme.ts +0 -92
  542. package/src/theme/hooks/useThemeContext.ts +0 -23
  543. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  544. package/src/theme/hooks/useWindowSize.ts +0 -51
  545. package/src/types.d.ts +0 -598
  546. package/src/validateThemeConfig.js +0 -317
  547. package/tsconfig.json +0 -12
  548. package/update-code-translations.js +0 -240
  549. package/update-code-translations.test.js +0 -33
@@ -4,28 +4,82 @@
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, cloneElement, Children} from 'react';
8
- import useUserPreferencesContext from '@theme/hooks/useUserPreferencesContext';
7
+ import React, {useState, cloneElement, isValidElement} from 'react';
8
+ import useIsBrowser from '@docusaurus/useIsBrowser';
9
+ import {
10
+ useScrollPositionBlocker,
11
+ duplicates,
12
+ useTabGroupChoice,
13
+ } from '@docusaurus/theme-common';
9
14
  import clsx from 'clsx';
10
- import styles from './styles.module.css';
15
+ import styles from './styles.module.css'; // A very rough duck type, but good enough to guard against mistakes while
16
+ // allowing customization
11
17
 
12
- function isInViewport(element) {
13
- const {top, left, bottom, right} = element.getBoundingClientRect();
14
- const {innerHeight, innerWidth} = window;
15
- return top >= 0 && right <= innerWidth && bottom <= innerHeight && left >= 0;
18
+ function isTabItem(comp) {
19
+ return typeof comp.props.value !== 'undefined';
16
20
  }
17
21
 
18
- const keys = {
19
- left: 37,
20
- right: 39,
21
- };
22
+ function TabsComponent(props) {
23
+ const {
24
+ lazy,
25
+ block,
26
+ defaultValue: defaultValueProp,
27
+ values: valuesProp,
28
+ groupId,
29
+ className,
30
+ } = props;
31
+ const children = React.Children.map(props.children, (child) => {
32
+ if (isValidElement(child) && isTabItem(child)) {
33
+ return child;
34
+ } // child.type.name will give non-sensical values in prod because of
35
+ // minification, but we assume it won't throw in prod.
36
+
37
+ throw new Error(
38
+ `Docusaurus error: Bad <Tabs> child <${
39
+ // @ts-expect-error: guarding against unexpected cases
40
+ typeof child.type === 'string' ? child.type : child.type.name
41
+ }>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`,
42
+ );
43
+ });
44
+ const values =
45
+ valuesProp ?? // Only pick keys that we recognize. MDX would inject some keys by default
46
+ children.map(({props: {value, label, attributes}}) => ({
47
+ value,
48
+ label,
49
+ attributes,
50
+ }));
51
+ const dup = duplicates(values, (a, b) => a.value === b.value);
52
+
53
+ if (dup.length > 0) {
54
+ throw new Error(
55
+ `Docusaurus error: Duplicate values "${dup
56
+ .map((a) => a.value)
57
+ .join(', ')}" found in <Tabs>. Every value needs to be unique.`,
58
+ );
59
+ } // When defaultValueProp is null, don't show a default tab
60
+
61
+ const defaultValue =
62
+ defaultValueProp === null
63
+ ? defaultValueProp
64
+ : defaultValueProp ??
65
+ children.find((child) => child.props.default)?.props.value ??
66
+ children[0]?.props.value;
67
+
68
+ if (defaultValue !== null && !values.some((a) => a.value === defaultValue)) {
69
+ throw new Error(
70
+ `Docusaurus error: The <Tabs> has a defaultValue "${defaultValue}" but none of its children has the corresponding value. Available values are: ${values
71
+ .map((a) => a.value)
72
+ .join(
73
+ ', ',
74
+ )}. If you intend to show no default tab, use defaultValue={null} instead.`,
75
+ );
76
+ }
22
77
 
23
- function Tabs(props) {
24
- const {lazy, block, defaultValue, values, groupId, className} = props;
25
- const {tabGroupChoices, setTabGroupChoices} = useUserPreferencesContext();
78
+ const {tabGroupChoices, setTabGroupChoices} = useTabGroupChoice();
26
79
  const [selectedValue, setSelectedValue] = useState(defaultValue);
27
- const children = Children.toArray(props.children);
28
80
  const tabRefs = [];
81
+ const {blockElementScrollPositionUntilNextRender} =
82
+ useScrollPositionBlocker();
29
83
 
30
84
  if (groupId != null) {
31
85
  const relevantTabGroupChoice = tabGroupChoices[groupId];
@@ -40,43 +94,32 @@ function Tabs(props) {
40
94
  }
41
95
 
42
96
  const handleTabChange = (event) => {
43
- const selectedTab = event.currentTarget;
44
- const selectedTabIndex = tabRefs.indexOf(selectedTab);
45
- const selectedTabValue = values[selectedTabIndex].value;
46
- setSelectedValue(selectedTabValue);
47
-
48
- if (groupId != null) {
49
- setTabGroupChoices(groupId, selectedTabValue);
50
- setTimeout(() => {
51
- if (isInViewport(selectedTab)) {
52
- return;
53
- }
54
-
55
- selectedTab.scrollIntoView({
56
- block: 'center',
57
- behavior: 'smooth',
58
- });
59
- selectedTab.classList.add(styles.tabItemActive);
60
- setTimeout(
61
- () => selectedTab.classList.remove(styles.tabItemActive),
62
- 2000,
63
- );
64
- }, 150);
97
+ const newTab = event.currentTarget;
98
+ const newTabIndex = tabRefs.indexOf(newTab);
99
+ const newTabValue = values[newTabIndex].value;
100
+
101
+ if (newTabValue !== selectedValue) {
102
+ blockElementScrollPositionUntilNextRender(newTab);
103
+ setSelectedValue(newTabValue);
104
+
105
+ if (groupId != null) {
106
+ setTabGroupChoices(groupId, newTabValue);
107
+ }
65
108
  }
66
109
  };
67
110
 
68
111
  const handleKeydown = (event) => {
69
- let focusElement;
112
+ let focusElement = null;
70
113
 
71
- switch (event.keyCode) {
72
- case keys.right: {
73
- const nextTab = tabRefs.indexOf(event.target) + 1;
114
+ switch (event.key) {
115
+ case 'ArrowRight': {
116
+ const nextTab = tabRefs.indexOf(event.currentTarget) + 1;
74
117
  focusElement = tabRefs[nextTab] || tabRefs[0];
75
118
  break;
76
119
  }
77
120
 
78
- case keys.left: {
79
- const prevTab = tabRefs.indexOf(event.target) - 1;
121
+ case 'ArrowLeft': {
122
+ const prevTab = tabRefs.indexOf(event.currentTarget) - 1;
80
123
  focusElement = tabRefs[prevTab] || tabRefs[tabRefs.length - 1];
81
124
  break;
82
125
  }
@@ -89,7 +132,7 @@ function Tabs(props) {
89
132
  };
90
133
 
91
134
  return (
92
- <div className="tabs-container">
135
+ <div className={clsx('tabs-container', styles.tabList)}>
93
136
  <ul
94
137
  role="tablist"
95
138
  aria-orientation="horizontal"
@@ -100,20 +143,26 @@ function Tabs(props) {
100
143
  },
101
144
  className,
102
145
  )}>
103
- {values.map(({value, label}) => (
146
+ {values.map(({value, label, attributes}) => (
104
147
  <li
105
148
  role="tab"
106
149
  tabIndex={selectedValue === value ? 0 : -1}
107
150
  aria-selected={selectedValue === value}
108
- className={clsx('tabs__item', styles.tabItem, {
109
- 'tabs__item--active': selectedValue === value,
110
- })}
111
151
  key={value}
112
152
  ref={(tabControl) => tabRefs.push(tabControl)}
113
153
  onKeyDown={handleKeydown}
114
154
  onFocus={handleTabChange}
115
- onClick={handleTabChange}>
116
- {label}
155
+ onClick={handleTabChange}
156
+ {...attributes}
157
+ className={clsx(
158
+ 'tabs__item',
159
+ styles.tabItem,
160
+ attributes?.className,
161
+ {
162
+ 'tabs__item--active': selectedValue === value,
163
+ },
164
+ )}>
165
+ {label ?? value}
117
166
  </li>
118
167
  ))}
119
168
  </ul>
@@ -124,11 +173,11 @@ function Tabs(props) {
124
173
  (tabItem) => tabItem.props.value === selectedValue,
125
174
  )[0],
126
175
  {
127
- className: 'margin-vert--md',
176
+ className: 'margin-top--md',
128
177
  },
129
178
  )
130
179
  ) : (
131
- <div className="margin-vert--md">
180
+ <div className="margin-top--md">
132
181
  {children.map((tabItem, i) =>
133
182
  cloneElement(tabItem, {
134
183
  key: i,
@@ -141,4 +190,13 @@ function Tabs(props) {
141
190
  );
142
191
  }
143
192
 
144
- export default Tabs;
193
+ export default function Tabs(props) {
194
+ const isBrowser = useIsBrowser();
195
+ return (
196
+ <TabsComponent // Remount tabs after hydration
197
+ // Temporary fix for https://github.com/facebook/docusaurus/issues/5653
198
+ key={String(isBrowser)}
199
+ {...props}
200
+ />
201
+ );
202
+ }
@@ -5,19 +5,10 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .tabItem {
9
- margin-top: 0 !important;
10
- }
11
-
12
- .tabItemActive {
13
- animation: blink 0.5s ease-in-out 5;
8
+ .tabList {
9
+ margin-bottom: var(--ifm-leading);
14
10
  }
15
11
 
16
- @keyframes blink {
17
- 0% {
18
- background-color: var(--ifm-hover-overlay);
19
- }
20
- 100% {
21
- background-color: rgba(0, 0, 0, 0);
22
- }
12
+ .tabItem {
13
+ margin-top: 0 !important;
23
14
  }
@@ -0,0 +1,23 @@
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
+ import React from 'react';
8
+ import clsx from 'clsx';
9
+ import Link from '@docusaurus/Link';
10
+ import styles from './styles.module.css';
11
+ export default function Tag({permalink, label, count}) {
12
+ return (
13
+ <Link
14
+ href={permalink}
15
+ className={clsx(
16
+ styles.tag,
17
+ count ? styles.tagWithCount : styles.tagRegular,
18
+ )}>
19
+ {label}
20
+ {count && <span>{count}</span>}
21
+ </Link>
22
+ );
23
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ :root {
9
+ --docusaurus-tag-list-border: var(--ifm-color-emphasis-300);
10
+ }
11
+
12
+ .tag {
13
+ border: 1px solid var(--docusaurus-tag-list-border);
14
+ transition: border var(--ifm-transition-fast);
15
+ }
16
+
17
+ .tag:hover {
18
+ --docusaurus-tag-list-border: var(--ifm-link-color);
19
+ text-decoration: none;
20
+ }
21
+
22
+ .tagRegular {
23
+ border-radius: 0.5rem;
24
+ padding: 0.3rem 0.5rem;
25
+ font-size: 90%;
26
+ }
27
+
28
+ .tagWithCount {
29
+ display: flex;
30
+ align-items: center;
31
+ position: relative;
32
+ padding: 0 0.5rem 0 1rem;
33
+ border-left: 0;
34
+ }
35
+
36
+ .tagWithCount::before,
37
+ .tagWithCount::after {
38
+ content: '';
39
+ position: absolute;
40
+ top: 50%;
41
+ border: 1px solid var(--docusaurus-tag-list-border);
42
+ transition: inherit;
43
+ }
44
+
45
+ .tagWithCount::before {
46
+ right: 100%;
47
+ transform: translate(50%, -50%) rotate(-45deg);
48
+ width: 1.18rem;
49
+ height: 1.18rem;
50
+ border-right: 0;
51
+ border-bottom: 0;
52
+ }
53
+
54
+ .tagWithCount::after {
55
+ left: 0;
56
+ transform: translateY(-50%);
57
+ width: 0.5rem;
58
+ height: 0.5rem;
59
+ border-radius: 50%;
60
+ }
61
+
62
+ .tagWithCount span {
63
+ background: var(--ifm-color-secondary);
64
+ color: var(--ifm-color-black);
65
+ font-size: 0.7rem;
66
+ line-height: 1.2;
67
+ border-radius: var(--ifm-global-radius);
68
+ padding: 0.1rem 0.4rem;
69
+ margin-left: 0.3rem;
70
+ }
@@ -0,0 +1,40 @@
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
+ import React from 'react';
8
+ import Tag from '@theme/Tag';
9
+ import {listTagsByLetters} from '@docusaurus/theme-common';
10
+ import styles from './styles.module.css';
11
+
12
+ function TagLetterEntryItem({letterEntry}) {
13
+ return (
14
+ <article>
15
+ <h2>{letterEntry.letter}</h2>
16
+ <ul className="padding--none">
17
+ {letterEntry.tags.map((tag) => (
18
+ <li key={tag.permalink} className={styles.tag}>
19
+ <Tag {...tag} />
20
+ </li>
21
+ ))}
22
+ </ul>
23
+ <hr />
24
+ </article>
25
+ );
26
+ }
27
+
28
+ export default function TagsListByLetter({tags}) {
29
+ const letterList = listTagsByLetters(tags);
30
+ return (
31
+ <section className="margin-vert--lg">
32
+ {letterList.map((letterEntry) => (
33
+ <TagLetterEntryItem
34
+ key={letterEntry.letter}
35
+ letterEntry={letterEntry}
36
+ />
37
+ ))}
38
+ </section>
39
+ );
40
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .tag {
9
+ display: inline-block;
10
+ margin: 0.5rem 0.5rem 0 1rem;
11
+ }
@@ -0,0 +1,31 @@
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
+ import React from 'react';
8
+ import clsx from 'clsx';
9
+ import Translate from '@docusaurus/Translate';
10
+ import Tag from '@theme/Tag';
11
+ import styles from './styles.module.css';
12
+ export default function TagsListInline({tags}) {
13
+ return (
14
+ <>
15
+ <b>
16
+ <Translate
17
+ id="theme.tags.tagsListLabel"
18
+ description="The label alongside a tag list">
19
+ Tags:
20
+ </Translate>
21
+ </b>
22
+ <ul className={clsx(styles.tags, 'padding--none', 'margin-left--sm')}>
23
+ {tags.map(({label, permalink: tagPermalink}) => (
24
+ <li key={tagPermalink} className={styles.tag}>
25
+ <Tag label={label} permalink={tagPermalink} />
26
+ </li>
27
+ ))}
28
+ </ul>
29
+ </>
30
+ );
31
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .tags {
9
+ display: inline;
10
+ }
11
+
12
+ .tag {
13
+ margin: 0 0.4rem 0.5rem 0;
14
+ display: inline-block;
15
+ }
@@ -6,16 +6,15 @@
6
6
  */
7
7
  import React from 'react';
8
8
  import clsx from 'clsx';
9
- import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
10
- import useThemeContext from '@theme/hooks/useThemeContext';
9
+ import useIsBrowser from '@docusaurus/useIsBrowser';
10
+ import {useColorMode} from '@docusaurus/theme-common';
11
11
  import styles from './styles.module.css';
12
-
13
- const ThemedImage = (props) => {
14
- const {isClient} = useDocusaurusContext();
15
- const {isDarkTheme} = useThemeContext();
16
- const {sources, className, alt = '', ...propsRest} = props;
17
- const clientThemes = isDarkTheme ? ['dark'] : ['light'];
18
- const renderedSourceNames = isClient
12
+ export default function ThemedImage(props) {
13
+ const isBrowser = useIsBrowser();
14
+ const {colorMode} = useColorMode();
15
+ const {sources, className, alt, ...propsRest} = props;
16
+ const clientThemes = colorMode === 'dark' ? ['dark'] : ['light'];
17
+ const renderedSourceNames = isBrowser
19
18
  ? clientThemes // We need to render both images on the server to avoid flash
20
19
  : // See https://github.com/facebook/docusaurus/pull/3730
21
20
  ['light', 'dark'];
@@ -36,6 +35,4 @@ const ThemedImage = (props) => {
36
35
  ))}
37
36
  </>
38
37
  );
39
- };
40
-
41
- export default ThemedImage;
38
+ }
@@ -9,10 +9,10 @@
9
9
  display: none;
10
10
  }
11
11
 
12
- html[data-theme='light'] .themedImage--light {
12
+ [data-theme='light'] .themedImage--light {
13
13
  display: initial;
14
14
  }
15
15
 
16
- html[data-theme='dark'] .themedImage--dark {
16
+ [data-theme='dark'] .themedImage--dark {
17
17
  display: initial;
18
18
  }
@@ -4,20 +4,22 @@
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 ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
8
7
  import siteConfig from '@generated/docusaurus.config';
8
+ export default function prismIncludeLanguages(PrismObject) {
9
+ const {
10
+ themeConfig: {prism},
11
+ } = siteConfig;
12
+ const {additionalLanguages} = prism; // Prism components work on the Prism instance on the window, while prism-
13
+ // react-renderer uses its own Prism instance. We temporarily mount the
14
+ // instance onto window, import components to enhance it, then remove it to
15
+ // avoid polluting global namespace.
16
+ // You can mutate PrismObject: registering plugins, deleting languages... As
17
+ // long as you don't re-assign it
9
18
 
10
- const prismIncludeLanguages = (PrismObject) => {
11
- if (ExecutionEnvironment.canUseDOM) {
12
- const {
13
- themeConfig: {prism: {additionalLanguages = []} = {}},
14
- } = siteConfig;
15
- window.Prism = PrismObject;
16
- additionalLanguages.forEach((lang) => {
17
- require(`prismjs/components/prism-${lang}`); // eslint-disable-line
18
- });
19
- delete window.Prism;
20
- }
21
- };
22
-
23
- export default prismIncludeLanguages;
19
+ globalThis.Prism = PrismObject;
20
+ additionalLanguages.forEach((lang) => {
21
+ // eslint-disable-next-line global-require, import/no-dynamic-require
22
+ require(`prismjs/components/prism-${lang}`);
23
+ });
24
+ delete globalThis.Prism;
25
+ }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-classic",
3
- "version": "2.0.0-beta.2",
3
+ "version": "2.0.0-beta.20",
4
4
  "description": "Classic theme for Docusaurus",
5
5
  "main": "lib/index.js",
6
- "types": "src/types.d.ts",
6
+ "types": "src/theme-classic.d.ts",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -14,50 +14,55 @@
14
14
  },
15
15
  "license": "MIT",
16
16
  "scripts": {
17
- "build": "tsc --noEmit && yarn babel:lib && yarn babel:lib-next && yarn prettier:lib-next",
18
- "watch": "concurrently -n \"lib,lib-next\" --kill-others \"yarn babel:lib --watch\" \"yarn babel:lib-next --watch\"",
17
+ "build": "tsc --noEmit && yarn babel:lib && yarn babel:lib-next && yarn format:lib-next",
18
+ "watch": "concurrently --names \"lib,lib-next,tsc\" --kill-others \"yarn babel:lib --watch\" \"yarn babel:lib-next --watch\" \"yarn tsc --watch\"",
19
19
  "babel:lib": "cross-env BABEL_ENV=lib babel src -d lib --extensions \".tsx,.ts\" --ignore \"**/*.d.ts\" --copy-files",
20
20
  "babel:lib-next": "cross-env BABEL_ENV=lib-next babel src -d lib-next --extensions \".tsx,.ts\" --ignore \"**/*.d.ts\" --copy-files",
21
- "prettier": "prettier --config ../../.prettierrc --ignore-path ../../.prettierignore --write \"**/*.{js,ts,jsx,tsc}\"",
22
- "prettier:lib-next": "prettier --config ../../.prettierrc --write \"lib-next/**/*.{js,ts,jsx,tsc}\"",
23
- "update-code-translations": "node -e 'require(\"./update-code-translations.js\").run()'"
21
+ "format:lib-next": "prettier --config ../../.prettierrc --write \"lib-next/**/*.{js,ts,jsx,tsc}\""
24
22
  },
25
23
  "dependencies": {
26
- "@docusaurus/core": "2.0.0-beta.2",
27
- "@docusaurus/plugin-content-blog": "2.0.0-beta.2",
28
- "@docusaurus/plugin-content-docs": "2.0.0-beta.2",
29
- "@docusaurus/plugin-content-pages": "2.0.0-beta.2",
30
- "@docusaurus/theme-common": "2.0.0-beta.2",
31
- "@docusaurus/types": "2.0.0-beta.2",
32
- "@docusaurus/utils": "2.0.0-beta.2",
33
- "@docusaurus/utils-common": "2.0.0-beta.2",
34
- "@docusaurus/utils-validation": "2.0.0-beta.2",
35
- "@mdx-js/mdx": "^1.6.21",
36
- "@mdx-js/react": "^1.6.21",
37
- "chalk": "^4.1.1",
24
+ "@docusaurus/core": "2.0.0-beta.20",
25
+ "@docusaurus/plugin-content-blog": "2.0.0-beta.20",
26
+ "@docusaurus/plugin-content-docs": "2.0.0-beta.20",
27
+ "@docusaurus/plugin-content-pages": "2.0.0-beta.20",
28
+ "@docusaurus/theme-common": "2.0.0-beta.20",
29
+ "@docusaurus/theme-translations": "2.0.0-beta.20",
30
+ "@docusaurus/utils": "2.0.0-beta.20",
31
+ "@docusaurus/utils-common": "2.0.0-beta.20",
32
+ "@docusaurus/utils-validation": "2.0.0-beta.20",
33
+ "@mdx-js/react": "^1.6.22",
38
34
  "clsx": "^1.1.1",
39
35
  "copy-text-to-clipboard": "^3.0.1",
40
- "fs-extra": "^10.0.0",
41
- "globby": "^11.0.2",
42
- "infima": "0.2.0-alpha.26",
43
- "lodash": "^4.17.20",
44
- "parse-numeric-range": "^1.2.0",
45
- "postcss": "^8.2.15",
46
- "prism-react-renderer": "^1.2.1",
47
- "prismjs": "^1.23.0",
48
- "prop-types": "^15.7.2",
36
+ "infima": "0.2.0-alpha.39",
37
+ "lodash": "^4.17.21",
38
+ "nprogress": "^0.2.0",
39
+ "postcss": "^8.4.13",
40
+ "prism-react-renderer": "^1.3.1",
41
+ "prismjs": "^1.28.0",
49
42
  "react-router-dom": "^5.2.0",
50
- "rtlcss": "^3.1.2"
43
+ "rtlcss": "^3.5.0"
51
44
  },
52
45
  "devDependencies": {
53
- "@docusaurus/module-type-aliases": "2.0.0-beta.2"
46
+ "@babel/cli": "^7.17.10",
47
+ "@babel/core": "^7.17.10",
48
+ "@babel/preset-typescript": "^7.16.7",
49
+ "@docusaurus/module-type-aliases": "2.0.0-beta.20",
50
+ "@docusaurus/types": "2.0.0-beta.20",
51
+ "@types/mdx-js__react": "^1.5.5",
52
+ "@types/nprogress": "^0.2.0",
53
+ "@types/prismjs": "^1.26.0",
54
+ "@types/rtlcss": "^3.1.4",
55
+ "cross-env": "^7.0.3",
56
+ "fs-extra": "^10.1.0",
57
+ "react-test-renderer": "^17.0.2",
58
+ "utility-types": "^3.10.0"
54
59
  },
55
60
  "peerDependencies": {
56
61
  "react": "^16.8.4 || ^17.0.0",
57
62
  "react-dom": "^16.8.4 || ^17.0.0"
58
63
  },
59
64
  "engines": {
60
- "node": ">=12.13.0"
65
+ "node": ">=14"
61
66
  },
62
- "gitHead": "883f07fddffaf1657407c8e202e370cc436e25f7"
67
+ "gitHead": "ed5cdba401a5948e187e927039b142a0decc702d"
63
68
  }
@@ -0,0 +1,39 @@
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
+ .admonition h5 {
9
+ margin-top: 0;
10
+ margin-bottom: 8px;
11
+ text-transform: uppercase;
12
+ }
13
+
14
+ .admonition h5 code {
15
+ text-transform: none;
16
+ }
17
+
18
+ .admonition-icon {
19
+ display: inline-block;
20
+ vertical-align: middle;
21
+ margin-right: 0.4em;
22
+ }
23
+
24
+ .admonition-icon svg {
25
+ display: inline-block;
26
+ width: 22px;
27
+ height: 22px;
28
+ stroke-width: 0;
29
+ fill: var(--ifm-alert-foreground-color);
30
+ stroke: var(--ifm-alert-foreground-color);
31
+ }
32
+
33
+ .admonition-content > :last-child {
34
+ margin-bottom: 0;
35
+ }
36
+
37
+ .admonition {
38
+ margin-bottom: 1em;
39
+ }