@docusaurus/theme-classic 2.0.0-beta.16 → 2.0.0-beta.19

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 (319) hide show
  1. package/lib/admonitions.css +4 -0
  2. package/lib/default.css +3038 -0
  3. package/lib/getSwizzleConfig.js +177 -36
  4. package/lib/index.js +10 -15
  5. package/lib/nprogress.css +41 -0
  6. package/lib/nprogress.js +46 -0
  7. package/lib/theme-classic.d.ts +600 -76
  8. package/lib/translations.js +12 -2
  9. package/lib/validateThemeConfig.js +77 -28
  10. package/lib-next/theme/BackToTopButton/index.js +6 -104
  11. package/lib-next/theme/BlogArchivePage/index.js +14 -10
  12. package/lib-next/theme/BlogLayout/index.js +1 -5
  13. package/lib-next/theme/BlogListPage/index.js +34 -13
  14. package/lib-next/theme/BlogListPaginator/index.js +25 -28
  15. package/lib-next/theme/BlogPostAuthor/index.js +16 -7
  16. package/lib-next/theme/BlogPostItem/index.js +6 -6
  17. package/lib-next/theme/BlogPostItem/styles.module.css +9 -0
  18. package/lib-next/theme/BlogPostPage/index.js +56 -45
  19. package/lib-next/theme/BlogPostPaginator/index.js +25 -28
  20. package/lib-next/theme/BlogSidebar/Desktop/index.js +41 -0
  21. package/lib-next/theme/BlogSidebar/{styles.module.css → Desktop/styles.module.css} +1 -2
  22. package/lib-next/theme/BlogSidebar/Mobile/index.js +36 -0
  23. package/lib-next/theme/BlogSidebar/index.js +11 -31
  24. package/lib-next/theme/BlogTagsListPage/index.js +17 -14
  25. package/lib-next/theme/BlogTagsPostsPage/index.js +43 -38
  26. package/lib-next/theme/CodeBlock/Container/index.js +29 -0
  27. package/lib-next/theme/CodeBlock/Container/styles.module.css +14 -0
  28. package/lib-next/theme/CodeBlock/Content/Element.js +23 -0
  29. package/lib-next/theme/CodeBlock/Content/String.js +104 -0
  30. package/lib-next/theme/CodeBlock/{styles.module.css → Content/styles.module.css} +39 -29
  31. package/lib-next/theme/CodeBlock/CopyButton/index.js +61 -0
  32. package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  33. package/lib-next/theme/CodeBlock/Line/index.js +49 -0
  34. package/lib-next/theme/CodeBlock/Line/styles.module.css +51 -0
  35. package/lib-next/theme/CodeBlock/WordWrapButton/index.js +40 -0
  36. package/lib-next/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  37. package/lib-next/theme/CodeBlock/index.js +26 -164
  38. package/lib-next/theme/ColorModeToggle/index.js +62 -0
  39. package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
  40. package/lib-next/theme/Details/index.js +1 -1
  41. package/lib-next/theme/DocBreadcrumbs/index.js +63 -19
  42. package/lib-next/theme/DocBreadcrumbs/styles.module.css +8 -15
  43. package/lib-next/theme/DocCard/index.js +17 -15
  44. package/lib-next/theme/DocCard/styles.module.css +8 -17
  45. package/lib-next/theme/DocCardList/index.js +20 -6
  46. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +30 -9
  47. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +8 -0
  48. package/lib-next/theme/DocItem/index.js +85 -67
  49. package/lib-next/theme/DocItem/styles.module.css +6 -0
  50. package/lib-next/theme/DocPage/Layout/Main/index.js +29 -0
  51. package/lib-next/theme/DocPage/Layout/Main/styles.module.css +28 -0
  52. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +34 -0
  53. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  54. package/lib-next/theme/DocPage/Layout/Sidebar/index.js +68 -0
  55. package/lib-next/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  56. package/lib-next/theme/DocPage/Layout/index.js +34 -0
  57. package/lib-next/theme/{BlogPostAuthor/styles.module.css → DocPage/Layout/index.module.css} +6 -3
  58. package/lib-next/theme/DocPage/index.js +30 -149
  59. package/lib-next/theme/DocPaginator/index.js +25 -28
  60. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  61. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  62. package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
  63. package/lib-next/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  64. package/lib-next/theme/DocSidebar/Desktop/index.js +36 -0
  65. package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
  66. package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
  67. package/lib-next/theme/DocSidebar/index.js +6 -113
  68. package/lib-next/theme/DocSidebarItem/Category.js +197 -0
  69. package/lib-next/theme/DocSidebarItem/Html.js +27 -0
  70. package/lib-next/theme/DocSidebarItem/{styles.module.css → Html.module.css} +0 -0
  71. package/lib-next/theme/DocSidebarItem/Link.js +53 -0
  72. package/lib-next/theme/DocSidebarItem/Link.module.css +10 -0
  73. package/lib-next/theme/DocSidebarItem/index.js +4 -245
  74. package/lib-next/theme/DocSidebarItems/index.js +1 -6
  75. package/lib-next/theme/DocTagDocListPage/index.js +40 -33
  76. package/lib-next/theme/DocTagsListPage/index.js +21 -16
  77. package/lib-next/theme/DocVersionBanner/index.js +2 -2
  78. package/lib-next/theme/Footer/Copyright/index.js +18 -0
  79. package/lib-next/theme/Footer/Layout/index.js +26 -0
  80. package/lib-next/theme/Footer/LinkItem/index.js +33 -0
  81. package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
  82. package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
  83. package/lib-next/theme/Footer/Links/index.js +17 -0
  84. package/lib-next/theme/Footer/Logo/index.js +38 -0
  85. package/lib-next/theme/Footer/{styles.module.css → Logo/styles.module.css} +0 -0
  86. package/lib-next/theme/Footer/index.js +11 -163
  87. package/lib-next/theme/Heading/index.js +10 -24
  88. package/lib-next/theme/IconDarkMode/index.js +17 -0
  89. package/lib-next/theme/IconExternalLink/styles.module.css +0 -2
  90. package/lib-next/theme/IconHome/index.js +17 -0
  91. package/lib-next/theme/IconLanguage/index.js +3 -3
  92. package/lib-next/theme/IconLightMode/index.js +17 -0
  93. package/lib-next/theme/LastUpdated/index.js +1 -0
  94. package/lib-next/theme/Layout/index.js +15 -10
  95. package/lib-next/theme/LayoutProviders/index.js +5 -4
  96. package/lib-next/theme/MDXComponents/A.js +11 -0
  97. package/lib-next/theme/MDXComponents/Code.js +28 -0
  98. package/lib-next/theme/MDXComponents/Details.js +20 -0
  99. package/lib-next/theme/MDXComponents/Head.js +26 -0
  100. package/lib-next/theme/MDXComponents/Heading.js +11 -0
  101. package/lib-next/theme/MDXComponents/Img.js +24 -0
  102. package/{src/theme/MDXComponents/styles.css → lib-next/theme/MDXComponents/Img.module.css} +1 -6
  103. package/lib-next/theme/MDXComponents/Pre.js +18 -0
  104. package/lib-next/theme/MDXComponents/Ul.js +21 -0
  105. package/lib-next/theme/MDXComponents/index.js +22 -57
  106. package/lib-next/theme/MDXContent/index.js +12 -0
  107. package/lib-next/theme/MDXPage/index.js +33 -28
  108. package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
  109. package/lib-next/theme/Navbar/Content/index.js +75 -0
  110. package/lib-next/theme/Navbar/Content/styles.module.css +15 -0
  111. package/lib-next/theme/Navbar/Layout/index.js +54 -0
  112. package/{src/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +0 -13
  113. package/lib-next/theme/Navbar/Logo/index.js +17 -0
  114. package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
  115. package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  116. package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  117. package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  118. package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  119. package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
  120. package/lib-next/theme/Navbar/Search/index.js +11 -0
  121. package/lib-next/theme/Navbar/Search/styles.module.css +20 -0
  122. package/lib-next/theme/Navbar/index.js +6 -271
  123. package/lib-next/theme/NavbarItem/ComponentTypes.js +27 -0
  124. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +2 -6
  125. package/lib-next/theme/NavbarItem/DocNavbarItem.js +11 -28
  126. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +10 -42
  127. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +25 -29
  128. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +2 -9
  129. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +14 -3
  130. package/lib-next/theme/NavbarItem/HtmlNavbarItem.js +30 -0
  131. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/index.js +5 -10
  132. package/lib-next/theme/NavbarItem/NavbarNavLink.js +49 -35
  133. package/lib-next/theme/NavbarItem/SearchNavbarItem.js +6 -1
  134. package/lib-next/theme/NavbarItem/index.js +4 -23
  135. package/lib-next/theme/NavbarItem/utils.js +2 -1
  136. package/lib-next/theme/NotFound.js +38 -33
  137. package/lib-next/theme/PaginatorNavLink/index.js +8 -2
  138. package/lib-next/theme/SearchMetadata/index.js +9 -0
  139. package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +19 -33
  140. package/lib-next/theme/SkipToContent/index.js +3 -29
  141. package/lib-next/theme/TOCCollapsible/CollapseButton.js +29 -0
  142. package/{src/theme/TOCCollapsible/styles.module.css → lib-next/theme/TOCCollapsible/CollapseButton.module.css} +1 -22
  143. package/lib-next/theme/TOCCollapsible/index.js +4 -16
  144. package/lib-next/theme/TOCCollapsible/index.module.css +31 -0
  145. package/lib-next/theme/TOCItems/Tree.js +40 -0
  146. package/lib-next/theme/TOCItems/index.js +3 -34
  147. package/lib-next/theme/TabItem/index.js +3 -1
  148. package/lib-next/theme/TabItem/styles.module.css +10 -0
  149. package/lib-next/theme/Tabs/__tests__/index.test.js +8 -8
  150. package/lib-next/theme/Tabs/index.js +5 -5
  151. package/lib-next/theme/Tabs/styles.module.css +4 -0
  152. package/lib-next/theme/Tag/index.js +6 -7
  153. package/lib-next/theme/TagsListInline/index.js +1 -1
  154. package/lib-next/theme/ThemedImage/index.js +3 -3
  155. package/package.json +25 -20
  156. package/src/admonitions.css +4 -0
  157. package/src/getSwizzleConfig.ts +173 -22
  158. package/src/index.ts +14 -15
  159. package/src/nprogress.css +41 -0
  160. package/src/nprogress.ts +31 -0
  161. package/src/theme/BackToTopButton/index.tsx +5 -114
  162. package/src/theme/BlogArchivePage/index.tsx +18 -17
  163. package/src/theme/BlogLayout/index.tsx +1 -5
  164. package/src/theme/BlogListPage/index.tsx +32 -13
  165. package/src/theme/BlogListPaginator/index.tsx +25 -28
  166. package/src/theme/BlogPostAuthor/index.tsx +14 -8
  167. package/src/theme/BlogPostItem/index.tsx +6 -6
  168. package/src/theme/BlogPostItem/styles.module.css +9 -0
  169. package/src/theme/BlogPostPage/index.tsx +55 -48
  170. package/src/theme/BlogPostPaginator/index.tsx +25 -28
  171. package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
  172. package/src/theme/BlogSidebar/{styles.module.css → Desktop/styles.module.css} +1 -2
  173. package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
  174. package/src/theme/BlogSidebar/index.tsx +10 -31
  175. package/src/theme/BlogTagsListPage/index.tsx +17 -14
  176. package/src/theme/BlogTagsPostsPage/index.tsx +46 -36
  177. package/src/theme/CodeBlock/Container/index.tsx +35 -0
  178. package/src/theme/CodeBlock/Container/styles.module.css +14 -0
  179. package/src/theme/CodeBlock/Content/Element.tsx +30 -0
  180. package/src/theme/CodeBlock/Content/String.tsx +111 -0
  181. package/src/theme/CodeBlock/{styles.module.css → Content/styles.module.css} +39 -29
  182. package/src/theme/CodeBlock/CopyButton/index.tsx +67 -0
  183. package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  184. package/src/theme/CodeBlock/Line/index.tsx +48 -0
  185. package/src/theme/CodeBlock/Line/styles.module.css +51 -0
  186. package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
  187. package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  188. package/src/theme/CodeBlock/index.tsx +29 -165
  189. package/src/theme/ColorModeToggle/index.tsx +67 -0
  190. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  191. package/src/theme/Details/index.tsx +1 -1
  192. package/src/theme/DocBreadcrumbs/index.tsx +65 -16
  193. package/src/theme/DocBreadcrumbs/styles.module.css +8 -15
  194. package/src/theme/DocCard/index.tsx +24 -17
  195. package/src/theme/DocCard/styles.module.css +8 -17
  196. package/src/theme/DocCardList/index.tsx +19 -10
  197. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +34 -7
  198. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +8 -0
  199. package/src/theme/DocItem/index.tsx +72 -56
  200. package/src/theme/DocItem/styles.module.css +6 -0
  201. package/src/theme/DocPage/Layout/Main/index.tsx +37 -0
  202. package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
  203. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
  204. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  205. package/src/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  206. package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
  207. package/src/theme/{BlogPostAuthor/styles.module.css → DocPage/Layout/index.module.css} +6 -3
  208. package/src/theme/DocPage/Layout/index.tsx +39 -0
  209. package/src/theme/DocPage/index.tsx +30 -160
  210. package/src/theme/DocPaginator/index.tsx +25 -28
  211. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  212. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  213. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  214. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  215. package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
  216. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  217. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  218. package/src/theme/DocSidebar/index.tsx +6 -121
  219. package/src/theme/DocSidebarItem/Category.tsx +210 -0
  220. package/src/theme/DocSidebarItem/{styles.module.css → Html.module.css} +0 -0
  221. package/src/theme/DocSidebarItem/Html.tsx +34 -0
  222. package/src/theme/DocSidebarItem/Link.module.css +10 -0
  223. package/src/theme/DocSidebarItem/Link.tsx +58 -0
  224. package/src/theme/DocSidebarItem/index.tsx +4 -260
  225. package/src/theme/DocSidebarItems/index.tsx +1 -6
  226. package/src/theme/DocTagDocListPage/index.tsx +40 -33
  227. package/src/theme/DocTagsListPage/index.tsx +21 -16
  228. package/src/theme/DocVersionBanner/index.tsx +5 -6
  229. package/src/theme/Footer/Copyright/index.tsx +20 -0
  230. package/src/theme/Footer/Layout/index.tsx +34 -0
  231. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  232. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  233. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  234. package/src/theme/Footer/Links/index.tsx +21 -0
  235. package/src/theme/Footer/Logo/index.tsx +41 -0
  236. package/src/theme/Footer/{styles.module.css → Logo/styles.module.css} +0 -0
  237. package/src/theme/Footer/index.tsx +12 -186
  238. package/src/theme/Heading/index.tsx +10 -22
  239. package/src/theme/IconDarkMode/index.tsx +20 -0
  240. package/src/theme/IconExternalLink/styles.module.css +0 -2
  241. package/src/theme/IconHome/index.tsx +20 -0
  242. package/src/theme/IconLanguage/index.tsx +3 -3
  243. package/src/theme/IconLightMode/index.tsx +20 -0
  244. package/src/theme/LastUpdated/index.tsx +1 -0
  245. package/src/theme/Layout/index.tsx +15 -10
  246. package/src/theme/LayoutProviders/index.tsx +5 -4
  247. package/src/theme/MDXComponents/A.tsx +14 -0
  248. package/src/theme/MDXComponents/Code.tsx +37 -0
  249. package/src/theme/MDXComponents/Details.tsx +25 -0
  250. package/src/theme/MDXComponents/Head.tsx +29 -0
  251. package/src/theme/MDXComponents/Heading.tsx +14 -0
  252. package/{lib-next/theme/MDXComponents/styles.css → src/theme/MDXComponents/Img.module.css} +1 -6
  253. package/src/theme/MDXComponents/Img.tsx +26 -0
  254. package/src/theme/MDXComponents/Pre.tsx +22 -0
  255. package/src/theme/MDXComponents/Ul.tsx +24 -0
  256. package/src/theme/MDXComponents/index.tsx +23 -66
  257. package/src/theme/MDXContent/index.tsx +15 -0
  258. package/src/theme/MDXPage/index.tsx +33 -28
  259. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  260. package/src/theme/Navbar/Content/index.tsx +86 -0
  261. package/src/theme/Navbar/Content/styles.module.css +15 -0
  262. package/src/theme/Navbar/Layout/index.tsx +57 -0
  263. package/{lib-next/theme/Navbar → src/theme/Navbar/Layout}/styles.module.css +0 -13
  264. package/src/theme/Navbar/Logo/index.tsx +19 -0
  265. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  266. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  267. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  268. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
  269. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  270. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  271. package/src/theme/Navbar/Search/index.tsx +15 -0
  272. package/src/theme/Navbar/Search/styles.module.css +20 -0
  273. package/src/theme/Navbar/index.tsx +6 -286
  274. package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
  275. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +2 -2
  276. package/src/theme/NavbarItem/DocNavbarItem.tsx +13 -32
  277. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +9 -49
  278. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +26 -33
  279. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +3 -10
  280. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +15 -3
  281. package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
  282. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx +5 -9
  283. package/src/theme/NavbarItem/NavbarNavLink.tsx +41 -29
  284. package/src/theme/NavbarItem/SearchNavbarItem.tsx +6 -1
  285. package/src/theme/NavbarItem/index.tsx +9 -39
  286. package/src/theme/NavbarItem/utils.ts +5 -2
  287. package/src/theme/NotFound.tsx +38 -33
  288. package/src/theme/PaginatorNavLink/index.tsx +8 -2
  289. package/src/theme/SearchMetadata/index.tsx +9 -0
  290. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +19 -33
  291. package/src/theme/SkipToContent/index.tsx +3 -29
  292. package/{lib-next/theme/TOCCollapsible/styles.module.css → src/theme/TOCCollapsible/CollapseButton.module.css} +1 -22
  293. package/src/theme/TOCCollapsible/CollapseButton.tsx +35 -0
  294. package/src/theme/TOCCollapsible/index.module.css +31 -0
  295. package/src/theme/TOCCollapsible/index.tsx +4 -17
  296. package/src/theme/TOCItems/Tree.tsx +46 -0
  297. package/src/theme/TOCItems/index.tsx +2 -41
  298. package/src/theme/TabItem/index.tsx +7 -1
  299. package/src/theme/TabItem/styles.module.css +10 -0
  300. package/src/theme/Tabs/index.tsx +8 -9
  301. package/src/theme/Tabs/styles.module.css +4 -0
  302. package/src/theme/Tag/index.tsx +6 -8
  303. package/src/theme/TagsListInline/index.tsx +1 -1
  304. package/src/theme/ThemedImage/index.tsx +4 -3
  305. package/src/theme-classic.d.ts +600 -76
  306. package/src/translations.ts +12 -6
  307. package/src/validateThemeConfig.ts +90 -39
  308. package/lib/types.d.ts +0 -11
  309. package/lib-next/theme/DocPage/styles.module.css +0 -86
  310. package/lib-next/theme/DocSidebar/styles.module.css +0 -107
  311. package/lib-next/theme/Seo/index.js +0 -40
  312. package/lib-next/theme/Toggle/index.js +0 -100
  313. package/lib-next/theme/Toggle/styles.module.css +0 -106
  314. package/src/theme/DocPage/styles.module.css +0 -86
  315. package/src/theme/DocSidebar/styles.module.css +0 -107
  316. package/src/theme/Seo/index.tsx +0 -49
  317. package/src/theme/Toggle/index.tsx +0 -117
  318. package/src/theme/Toggle/styles.module.css +0 -106
  319. package/src/types.d.ts +0 -11
@@ -4,63 +4,28 @@
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, {isValidElement} from 'react';
8
- import Head from '@docusaurus/Head';
9
- import Link from '@docusaurus/Link';
10
- import CodeBlock from '@theme/CodeBlock';
11
- import Heading from '@theme/Heading';
12
- import Details from '@theme/Details';
13
- import './styles.css'; // MDX elements are wrapped through the MDX pragma. In some cases (notably usage
14
- // with Head/Helmet) we need to unwrap those elements.
15
-
16
- function unwrapMDXElement(element) {
17
- if (element?.props?.mdxType && element?.props?.originalType) {
18
- const {mdxType, originalType, ...newProps} = element.props;
19
- return React.createElement(element.props.originalType, newProps);
20
- }
21
-
22
- return element;
23
- }
24
-
7
+ import React from 'react';
8
+ import MDXHead from '@theme/MDXComponents/Head';
9
+ import MDXCode from '@theme/MDXComponents/Code';
10
+ import MDXA from '@theme/MDXComponents/A';
11
+ import MDXPre from '@theme/MDXComponents/Pre';
12
+ import MDXDetails from '@theme/MDXComponents/Details';
13
+ import MDXHeading from '@theme/MDXComponents/Heading';
14
+ import MDXUl from '@theme/MDXComponents/Ul';
15
+ import MDXImg from '@theme/MDXComponents/Img';
25
16
  const MDXComponents = {
26
- head: (props) => {
27
- const unwrappedChildren = React.Children.map(props.children, (child) =>
28
- unwrapMDXElement(child),
29
- );
30
- return <Head {...props}>{unwrappedChildren}</Head>;
31
- },
32
- code: (props) => {
33
- const shouldBeInline = React.Children.toArray(props.children).every(
34
- (el) => typeof el === 'string' && !el.includes('\n'),
35
- );
36
- return shouldBeInline ? <code {...props} /> : <CodeBlock {...props} />;
37
- },
38
- a: (props) => <Link {...props} />,
39
- pre: (props) => (
40
- <CodeBlock // If this pre is created by a ``` fenced codeblock, unwrap the children
41
- {...(isValidElement(props.children) &&
42
- props.children.props.originalType === 'code'
43
- ? props.children?.props
44
- : {...props})}
45
- />
46
- ),
47
- details: (props) => {
48
- const items = React.Children.toArray(props.children); // Split summary item from the rest to pass it as a separate prop to the
49
- // Details theme component
50
-
51
- const summary = items.find((item) => item?.props?.mdxType === 'summary');
52
- const children = <>{items.filter((item) => item !== summary)}</>;
53
- return (
54
- <Details {...props} summary={summary}>
55
- {children}
56
- </Details>
57
- );
58
- },
59
- h1: (props) => <Heading as="h1" {...props} />,
60
- h2: (props) => <Heading as="h2" {...props} />,
61
- h3: (props) => <Heading as="h3" {...props} />,
62
- h4: (props) => <Heading as="h4" {...props} />,
63
- h5: (props) => <Heading as="h5" {...props} />,
64
- h6: (props) => <Heading as="h6" {...props} />,
17
+ head: MDXHead,
18
+ code: MDXCode,
19
+ a: MDXA,
20
+ pre: MDXPre,
21
+ details: MDXDetails,
22
+ ul: MDXUl,
23
+ img: MDXImg,
24
+ h1: (props) => <MDXHeading as="h1" {...props} />,
25
+ h2: (props) => <MDXHeading as="h2" {...props} />,
26
+ h3: (props) => <MDXHeading as="h3" {...props} />,
27
+ h4: (props) => <MDXHeading as="h4" {...props} />,
28
+ h5: (props) => <MDXHeading as="h5" {...props} />,
29
+ h6: (props) => <MDXHeading as="h6" {...props} />,
65
30
  };
66
31
  export default MDXComponents;
@@ -0,0 +1,12 @@
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 {MDXProvider} from '@mdx-js/react';
9
+ import MDXComponents from '@theme/MDXComponents';
10
+ export default function MDXContent({children}) {
11
+ return <MDXProvider components={MDXComponents}>{children}</MDXProvider>;
12
+ }
@@ -7,43 +7,48 @@
7
7
  import React from 'react';
8
8
  import clsx from 'clsx';
9
9
  import Layout from '@theme/Layout';
10
- import {MDXProvider} from '@mdx-js/react';
11
- import MDXComponents from '@theme/MDXComponents';
10
+ import MDXContent from '@theme/MDXContent';
12
11
  import TOC from '@theme/TOC';
13
- import {ThemeClassNames} from '@docusaurus/theme-common';
12
+ import {
13
+ PageMetadata,
14
+ HtmlClassNameProvider,
15
+ ThemeClassNames,
16
+ } from '@docusaurus/theme-common';
14
17
  import styles from './styles.module.css';
15
18
  export default function MDXPage(props) {
16
19
  const {content: MDXPageContent} = props;
17
20
  const {
18
- metadata: {title, description, permalink, frontMatter},
21
+ metadata: {title, description, frontMatter},
19
22
  } = MDXPageContent;
20
23
  const {wrapperClassName, hide_table_of_contents: hideTableOfContents} =
21
24
  frontMatter;
22
25
  return (
23
- <Layout
24
- title={title}
25
- description={description}
26
- permalink={permalink}
27
- wrapperClassName={wrapperClassName ?? ThemeClassNames.wrapper.mdxPages}
28
- pageClassName={ThemeClassNames.page.mdxPage}>
29
- <main className="container container--fluid margin-vert--lg">
30
- <div className={clsx('row', styles.mdxPageWrapper)}>
31
- <div className={clsx('col', !hideTableOfContents && 'col--8')}>
32
- <MDXProvider components={MDXComponents}>
33
- <MDXPageContent />
34
- </MDXProvider>
35
- </div>
36
- {!hideTableOfContents && MDXPageContent.toc && (
37
- <div className="col col--2">
38
- <TOC
39
- toc={MDXPageContent.toc}
40
- minHeadingLevel={frontMatter.toc_min_heading_level}
41
- maxHeadingLevel={frontMatter.toc_max_heading_level}
42
- />
26
+ <HtmlClassNameProvider
27
+ className={clsx(
28
+ wrapperClassName ?? ThemeClassNames.wrapper.mdxPages,
29
+ ThemeClassNames.page.mdxPage,
30
+ )}>
31
+ <PageMetadata title={title} description={description} />
32
+ <Layout>
33
+ <main className="container container--fluid margin-vert--lg">
34
+ <div className={clsx('row', styles.mdxPageWrapper)}>
35
+ <div className={clsx('col', !hideTableOfContents && 'col--8')}>
36
+ <MDXContent>
37
+ <MDXPageContent />
38
+ </MDXContent>
43
39
  </div>
44
- )}
45
- </div>
46
- </main>
47
- </Layout>
40
+ {!hideTableOfContents && MDXPageContent.toc && (
41
+ <div className="col col--2">
42
+ <TOC
43
+ toc={MDXPageContent.toc}
44
+ minHeadingLevel={frontMatter.toc_min_heading_level}
45
+ maxHeadingLevel={frontMatter.toc_max_heading_level}
46
+ />
47
+ </div>
48
+ )}
49
+ </div>
50
+ </main>
51
+ </Layout>
52
+ </HtmlClassNameProvider>
48
53
  );
49
54
  }
@@ -0,0 +1,25 @@
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 {useColorMode, useThemeConfig} from '@docusaurus/theme-common';
8
+ import ColorModeToggle from '@theme/ColorModeToggle';
9
+ import React from 'react';
10
+ export default function NavbarColorModeToggle({className}) {
11
+ const disabled = useThemeConfig().colorMode.disableSwitch;
12
+ const {colorMode, setColorMode} = useColorMode();
13
+
14
+ if (disabled) {
15
+ return null;
16
+ }
17
+
18
+ return (
19
+ <ColorModeToggle
20
+ className={className}
21
+ value={colorMode}
22
+ onChange={setColorMode}
23
+ />
24
+ );
25
+ }
@@ -0,0 +1,75 @@
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 NavbarItem from '@theme/NavbarItem';
9
+ import NavbarColorModeToggle from '@theme/Navbar/ColorModeToggle';
10
+ import SearchBar from '@theme/SearchBar';
11
+ import {
12
+ splitNavbarItems,
13
+ useNavbarMobileSidebar,
14
+ useThemeConfig,
15
+ } from '@docusaurus/theme-common';
16
+ import NavbarMobileSidebarToggle from '@theme/Navbar/MobileSidebar/Toggle';
17
+ import NavbarLogo from '@theme/Navbar/Logo';
18
+ import NavbarSearch from '@theme/Navbar/Search';
19
+ import styles from './styles.module.css';
20
+
21
+ function useNavbarItems() {
22
+ // TODO temporary casting until ThemeConfig type is improved
23
+ return useThemeConfig().navbar.items;
24
+ }
25
+
26
+ function NavbarItems({items}) {
27
+ return (
28
+ <>
29
+ {items.map((item, i) => (
30
+ <NavbarItem {...item} key={i} />
31
+ ))}
32
+ </>
33
+ );
34
+ }
35
+
36
+ function NavbarContentLayout({left, right}) {
37
+ return (
38
+ <div className="navbar__inner">
39
+ <div className="navbar__items">{left}</div>
40
+ <div className="navbar__items navbar__items--right">{right}</div>
41
+ </div>
42
+ );
43
+ }
44
+
45
+ export default function NavbarContent() {
46
+ const mobileSidebar = useNavbarMobileSidebar();
47
+ const items = useNavbarItems();
48
+ const [leftItems, rightItems] = splitNavbarItems(items);
49
+ const autoAddSearchBar = !items.some((item) => item.type === 'search');
50
+ return (
51
+ <NavbarContentLayout
52
+ left={
53
+ // TODO stop hardcoding items?
54
+ <>
55
+ {!mobileSidebar.disabled && <NavbarMobileSidebarToggle />}
56
+ <NavbarLogo />
57
+ <NavbarItems items={leftItems} />
58
+ </>
59
+ }
60
+ right={
61
+ // TODO stop hardcoding items?
62
+ // Ask the user to add the respective navbar items => more flexible
63
+ <>
64
+ <NavbarItems items={rightItems} />
65
+ <NavbarColorModeToggle className={styles.colorModeToggle} />
66
+ {autoAddSearchBar && (
67
+ <NavbarSearch>
68
+ <SearchBar />
69
+ </NavbarSearch>
70
+ )}
71
+ </>
72
+ }
73
+ />
74
+ );
75
+ }
@@ -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
+ /*
9
+ Hide color mode toggle in small viewports
10
+ */
11
+ @media (max-width: 996px) {
12
+ .colorModeToggle {
13
+ display: none;
14
+ }
15
+ }
@@ -0,0 +1,54 @@
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 NavbarMobileSidebar from '@theme/Navbar/MobileSidebar';
10
+ import {
11
+ useThemeConfig,
12
+ useHideableNavbar,
13
+ useNavbarMobileSidebar,
14
+ } from '@docusaurus/theme-common';
15
+ import styles from './styles.module.css';
16
+
17
+ function NavbarBackdrop(props) {
18
+ return (
19
+ <div
20
+ role="presentation"
21
+ {...props}
22
+ className={clsx('navbar-sidebar__backdrop', props.className)}
23
+ />
24
+ );
25
+ }
26
+
27
+ export default function NavbarLayout({children}) {
28
+ const {
29
+ navbar: {hideOnScroll, style},
30
+ } = useThemeConfig();
31
+ const mobileSidebar = useNavbarMobileSidebar();
32
+ const {navbarRef, isNavbarVisible} = useHideableNavbar(hideOnScroll);
33
+ return (
34
+ <nav
35
+ ref={navbarRef}
36
+ className={clsx(
37
+ 'navbar',
38
+ 'navbar--fixed-top',
39
+ hideOnScroll && [
40
+ styles.navbarHideable,
41
+ !isNavbarVisible && styles.navbarHidden,
42
+ ],
43
+ {
44
+ 'navbar--dark': style === 'dark',
45
+ 'navbar--primary': style === 'primary',
46
+ 'navbar-sidebar--show': mobileSidebar.shown,
47
+ },
48
+ )}>
49
+ {children}
50
+ <NavbarBackdrop onClick={mobileSidebar.toggle} />
51
+ <NavbarMobileSidebar />
52
+ </nav>
53
+ );
54
+ }
@@ -5,15 +5,6 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- /*
9
- Hide toggle in small viewports
10
- */
11
- @media (max-width: 996px) {
12
- .toggle {
13
- display: none;
14
- }
15
- }
16
-
17
8
  .navbarHideable {
18
9
  transition: transform var(--ifm-transition-fast) ease;
19
10
  }
@@ -21,7 +12,3 @@ Hide toggle in small viewports
21
12
  .navbarHidden {
22
13
  transform: translate3d(0, calc(-100% - 2px), 0);
23
14
  }
24
-
25
- .navbarSidebarToggle {
26
- margin-right: 1rem;
27
- }
@@ -0,0 +1,17 @@
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 Logo from '@theme/Logo';
9
+ export default function NavbarLogo() {
10
+ return (
11
+ <Logo
12
+ className="navbar__brand"
13
+ imageClassName="navbar__logo"
14
+ titleClassName="navbar__title text--truncate"
15
+ />
16
+ );
17
+ }
@@ -0,0 +1,33 @@
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 NavbarColorModeToggle from '@theme/Navbar/ColorModeToggle';
9
+ import IconClose from '@theme/IconClose';
10
+ import NavbarLogo from '@theme/Navbar/Logo';
11
+ import {useNavbarMobileSidebar} from '@docusaurus/theme-common';
12
+
13
+ function CloseButton() {
14
+ const mobileSidebar = useNavbarMobileSidebar();
15
+ return (
16
+ <button
17
+ type="button"
18
+ className="clean-btn navbar-sidebar__close"
19
+ onClick={() => mobileSidebar.toggle()}>
20
+ <IconClose color="var(--ifm-color-emphasis-600)" />
21
+ </button>
22
+ );
23
+ }
24
+
25
+ export default function NavbarMobileSidebarHeader() {
26
+ return (
27
+ <div className="navbar-sidebar__brand">
28
+ <NavbarLogo />
29
+ <NavbarColorModeToggle className="margin-right--md" />
30
+ <CloseButton />
31
+ </div>
32
+ );
33
+ }
@@ -0,0 +1,28 @@
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 {useNavbarSecondaryMenu} from '@docusaurus/theme-common';
10
+ export default function NavbarMobileSidebarLayout({
11
+ header,
12
+ primaryMenu,
13
+ secondaryMenu,
14
+ }) {
15
+ const {shown: secondaryMenuShown} = useNavbarSecondaryMenu();
16
+ return (
17
+ <div className="navbar-sidebar">
18
+ {header}
19
+ <div
20
+ className={clsx('navbar-sidebar__items', {
21
+ 'navbar-sidebar__items--show-secondary': secondaryMenuShown,
22
+ })}>
23
+ <div className="navbar-sidebar__item menu">{primaryMenu}</div>
24
+ <div className="navbar-sidebar__item menu">{secondaryMenu}</div>
25
+ </div>
26
+ </div>
27
+ );
28
+ }
@@ -0,0 +1,33 @@
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 {useNavbarMobileSidebar, useThemeConfig} from '@docusaurus/theme-common';
9
+ import NavbarItem from '../../../NavbarItem';
10
+
11
+ function useNavbarItems() {
12
+ // TODO temporary casting until ThemeConfig type is improved
13
+ return useThemeConfig().navbar.items;
14
+ } // The primary menu displays the navbar items
15
+
16
+ export default function NavbarMobilePrimaryMenu() {
17
+ const mobileSidebar = useNavbarMobileSidebar(); // TODO how can the order be defined for mobile?
18
+ // Should we allow providing a different list of items?
19
+
20
+ const items = useNavbarItems();
21
+ return (
22
+ <ul className="menu__list">
23
+ {items.map((item, i) => (
24
+ <NavbarItem
25
+ mobile
26
+ {...item}
27
+ onClick={() => mobileSidebar.toggle()}
28
+ key={i}
29
+ />
30
+ ))}
31
+ </ul>
32
+ );
33
+ }
@@ -0,0 +1,36 @@
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 {useNavbarSecondaryMenu, useThemeConfig} from '@docusaurus/theme-common';
9
+ import Translate from '@docusaurus/Translate';
10
+
11
+ function SecondaryMenuBackButton(props) {
12
+ return (
13
+ <button {...props} type="button" className="clean-btn navbar-sidebar__back">
14
+ <Translate
15
+ id="theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel"
16
+ description="The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)">
17
+ ← Back to main menu
18
+ </Translate>
19
+ </button>
20
+ );
21
+ } // The secondary menu slides from the right and shows contextual information
22
+ // such as the docs sidebar
23
+
24
+ export default function NavbarMobileSidebarSecondaryMenu() {
25
+ const isPrimaryMenuEmpty = useThemeConfig().navbar.items.length === 0;
26
+ const secondaryMenu = useNavbarSecondaryMenu();
27
+ return (
28
+ <>
29
+ {/* edge-case: prevent returning to the primaryMenu when it's empty */}
30
+ {!isPrimaryMenuEmpty && (
31
+ <SecondaryMenuBackButton onClick={() => secondaryMenu.hide()} />
32
+ )}
33
+ {secondaryMenu.content}
34
+ </>
35
+ );
36
+ }
@@ -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 IconMenu from '@theme/IconMenu';
9
+ import {useNavbarMobileSidebar} from '@docusaurus/theme-common';
10
+ export default function MobileSidebarToggle() {
11
+ const mobileSidebar = useNavbarMobileSidebar();
12
+ return (
13
+ <button
14
+ onClick={mobileSidebar.toggle}
15
+ onKeyDown={mobileSidebar.toggle}
16
+ aria-label="Navigation bar toggle"
17
+ className="navbar__toggle clean-btn"
18
+ type="button"
19
+ tabIndex={0}>
20
+ <IconMenu />
21
+ </button>
22
+ );
23
+ }
@@ -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 NavbarMobileSidebarLayout from '@theme/Navbar/MobileSidebar/Layout';
9
+ import NavbarMobileSidebarHeader from '@theme/Navbar/MobileSidebar/Header';
10
+ import {
11
+ useLockBodyScroll,
12
+ useNavbarMobileSidebar,
13
+ } from '@docusaurus/theme-common';
14
+ import NavbarMobileSidebarPrimaryMenu from '@theme/Navbar/MobileSidebar/PrimaryMenu';
15
+ import NavbarMobileSidebarSecondaryMenu from '@theme/Navbar/MobileSidebar/SecondaryMenu';
16
+ export default function NavbarMobileSidebar() {
17
+ const mobileSidebar = useNavbarMobileSidebar();
18
+ useLockBodyScroll(mobileSidebar.shown);
19
+
20
+ if (!mobileSidebar.shouldRender) {
21
+ return null;
22
+ }
23
+
24
+ return (
25
+ <NavbarMobileSidebarLayout
26
+ header={<NavbarMobileSidebarHeader />}
27
+ primaryMenu={<NavbarMobileSidebarPrimaryMenu />}
28
+ secondaryMenu={<NavbarMobileSidebarSecondaryMenu />}
29
+ />
30
+ );
31
+ }
@@ -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
+ import React from 'react';
8
+ import styles from './styles.module.css';
9
+ export default function NavbarSearch({children}) {
10
+ return <div className={styles.searchBox}>{children}</div>;
11
+ }
@@ -0,0 +1,20 @@
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
+ @media (max-width: 996px) {
9
+ .searchBox {
10
+ position: absolute;
11
+ right: var(--ifm-navbar-padding-horizontal);
12
+ }
13
+ }
14
+
15
+ @media (min-width: 997px) {
16
+ .searchBox {
17
+ padding: var(--ifm-navbar-item-padding-vertical)
18
+ var(--ifm-navbar-item-padding-horizontal);
19
+ }
20
+ }