@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
@@ -5,16 +5,11 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .codeBlockContainer {
9
- margin-bottom: var(--ifm-leading);
10
- border-radius: var(--ifm-global-radius);
11
- box-shadow: var(--ifm-global-shadow-lw);
12
- }
13
-
14
8
  .codeBlockContent {
15
9
  position: relative;
16
10
  /* rtl:ignore */
17
11
  direction: ltr;
12
+ border-radius: inherit;
18
13
  }
19
14
 
20
15
  .codeBlockTitle {
@@ -22,14 +17,14 @@
22
17
  font-size: var(--ifm-code-font-size);
23
18
  font-weight: 500;
24
19
  padding: 0.75rem var(--ifm-pre-padding);
25
- border-top-left-radius: var(--ifm-global-radius);
26
- border-top-right-radius: var(--ifm-global-radius);
20
+ border-top-left-radius: inherit;
21
+ border-top-right-radius: inherit;
27
22
  }
28
23
 
29
24
  .codeBlock {
25
+ --ifm-pre-background: var(--prism-background-color);
30
26
  margin: 0;
31
27
  padding: 0;
32
- border-radius: var(--ifm-global-radius);
33
28
  }
34
29
 
35
30
  .codeBlockTitle + .codeBlockContent .codeBlock {
@@ -39,26 +34,6 @@
39
34
 
40
35
  .codeBlockStandalone {
41
36
  padding: 0;
42
- border-radius: var(--ifm-global-radius);
43
- }
44
-
45
- .copyButton {
46
- background: rgb(0 0 0 / 30%);
47
- border-radius: var(--ifm-global-radius);
48
- color: var(--ifm-color-white);
49
- opacity: 0;
50
- user-select: none;
51
- padding: 0.4rem 0.5rem;
52
- position: absolute;
53
- right: calc(var(--ifm-pre-padding) / 2);
54
- top: calc(var(--ifm-pre-padding) / 2);
55
- transition: opacity 200ms ease-in-out;
56
- }
57
-
58
- .copyButton:focus,
59
- .codeBlockContent:hover > .copyButton,
60
- .codeBlockTitle:hover + .codeBlockContent .copyButton {
61
- opacity: 1;
62
37
  }
63
38
 
64
39
  .codeBlockLines {
@@ -69,8 +44,43 @@
69
44
  padding: var(--ifm-pre-padding);
70
45
  }
71
46
 
47
+ .codeBlockLinesWithNumbering {
48
+ display: table;
49
+ padding: var(--ifm-pre-padding) 0;
50
+ }
51
+
72
52
  @media print {
73
53
  .codeBlockLines {
74
54
  white-space: pre-wrap;
75
55
  }
76
56
  }
57
+
58
+ .buttonGroup {
59
+ display: flex;
60
+ column-gap: 0.2rem;
61
+ position: absolute;
62
+ right: calc(var(--ifm-pre-padding) / 2);
63
+ top: calc(var(--ifm-pre-padding) / 2);
64
+ }
65
+
66
+ .buttonGroup button {
67
+ display: flex;
68
+ align-items: center;
69
+ background: var(--prism-background-color);
70
+ color: var(--prism-color);
71
+ border: 1px solid var(--ifm-color-emphasis-300);
72
+ border-radius: var(--ifm-global-radius);
73
+ padding: 0.4rem;
74
+ line-height: 0;
75
+ transition: opacity 200ms ease-in-out;
76
+ opacity: 0;
77
+ }
78
+
79
+ .buttonGroup button:focus-visible,
80
+ .buttonGroup button:hover {
81
+ opacity: 1 !important;
82
+ }
83
+
84
+ :global(.theme-code-block:hover) .buttonGroup button {
85
+ opacity: 0.4;
86
+ }
@@ -0,0 +1,61 @@
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, {useCallback, useState, useRef, useEffect} from 'react';
8
+ import clsx from 'clsx';
9
+ import copy from 'copy-text-to-clipboard';
10
+ import {translate} from '@docusaurus/Translate';
11
+ import styles from './styles.module.css';
12
+ export default function CopyButton({code, className}) {
13
+ const [isCopied, setIsCopied] = useState(false);
14
+ const copyTimeout = useRef(undefined);
15
+ const handleCopyCode = useCallback(() => {
16
+ copy(code);
17
+ setIsCopied(true);
18
+ copyTimeout.current = window.setTimeout(() => {
19
+ setIsCopied(false);
20
+ }, 1000);
21
+ }, [code]);
22
+ useEffect(() => () => window.clearTimeout(copyTimeout.current), []);
23
+ return (
24
+ <button
25
+ type="button"
26
+ aria-label={
27
+ isCopied
28
+ ? translate({
29
+ id: 'theme.CodeBlock.copied',
30
+ message: 'Copied',
31
+ description: 'The copied button label on code blocks',
32
+ })
33
+ : translate({
34
+ id: 'theme.CodeBlock.copyButtonAriaLabel',
35
+ message: 'Copy code to clipboard',
36
+ description: 'The ARIA label for copy code blocks button',
37
+ })
38
+ }
39
+ title={translate({
40
+ id: 'theme.CodeBlock.copy',
41
+ message: 'Copy',
42
+ description: 'The copy button label on code blocks',
43
+ })}
44
+ className={clsx(
45
+ 'clean-btn',
46
+ className,
47
+ styles.copyButton,
48
+ isCopied && styles.copyButtonCopied,
49
+ )}
50
+ onClick={handleCopyCode}>
51
+ <span className={styles.copyButtonIcons} aria-hidden="true">
52
+ <svg className={styles.copyButtonIcon} viewBox="0 0 24 24">
53
+ <path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" />
54
+ </svg>
55
+ <svg className={styles.copyButtonSuccessIcon} viewBox="0 0 24 24">
56
+ <path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" />
57
+ </svg>
58
+ </span>
59
+ </button>
60
+ );
61
+ }
@@ -0,0 +1,47 @@
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
+ :global(.theme-code-block:hover) .copyButtonCopied {
9
+ opacity: 1 !important;
10
+ }
11
+
12
+ .copyButtonIcons {
13
+ position: relative;
14
+ width: 1.125rem;
15
+ height: 1.125rem;
16
+ }
17
+
18
+ .copyButtonIcon,
19
+ .copyButtonSuccessIcon {
20
+ position: absolute;
21
+ top: 0;
22
+ left: 0;
23
+ fill: currentColor;
24
+ opacity: inherit;
25
+ width: inherit;
26
+ height: inherit;
27
+ transition: all 0.15s ease;
28
+ }
29
+
30
+ .copyButtonSuccessIcon {
31
+ top: 50%;
32
+ left: 50%;
33
+ transform: translate(-50%, -50%) scale(0.33);
34
+ opacity: 0;
35
+ color: #00d600;
36
+ }
37
+
38
+ .copyButtonCopied .copyButtonIcon {
39
+ transform: scale(0.33);
40
+ opacity: 0;
41
+ }
42
+
43
+ .copyButtonCopied .copyButtonSuccessIcon {
44
+ transform: translate(-50%, -50%) scale(1);
45
+ opacity: 1;
46
+ transition-delay: 0.075s;
47
+ }
@@ -0,0 +1,49 @@
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 styles from './styles.module.css';
10
+ export default function CodeBlockLine({
11
+ line,
12
+ classNames,
13
+ showLineNumbers,
14
+ getLineProps,
15
+ getTokenProps,
16
+ }) {
17
+ if (line.length === 1 && line[0].content === '\n') {
18
+ line[0].content = '';
19
+ }
20
+
21
+ const lineProps = getLineProps({
22
+ line,
23
+ className: clsx(classNames, showLineNumbers && styles.codeLine),
24
+ });
25
+ const lineTokens = line.map((token, key) => (
26
+ <span
27
+ key={key}
28
+ {...getTokenProps({
29
+ token,
30
+ key,
31
+ })}
32
+ />
33
+ ));
34
+ return (
35
+ <span {...lineProps}>
36
+ {showLineNumbers ? (
37
+ <>
38
+ <span className={styles.codeLineNumber} />
39
+ <span className={styles.codeLineContent}>{lineTokens}</span>
40
+ </>
41
+ ) : (
42
+ <>
43
+ {lineTokens}
44
+ <br />
45
+ </>
46
+ )}
47
+ </span>
48
+ );
49
+ }
@@ -0,0 +1,51 @@
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
+ :global(.theme-code-block-highlighted-line) {
9
+ background-color: var(--docusaurus-highlighted-code-line-bg);
10
+ display: block;
11
+ margin: 0 calc(-1 * var(--ifm-pre-padding));
12
+ padding: 0 var(--ifm-pre-padding);
13
+ }
14
+
15
+ /* Intentionally has zero specificity, so that to be able to override
16
+ the background in custom CSS file due bug https://github.com/facebook/docusaurus/issues/3678 */
17
+ :where(:root) {
18
+ --docusaurus-highlighted-code-line-bg: rgb(72 77 91);
19
+ }
20
+
21
+ :where([data-theme='dark']) {
22
+ --docusaurus-highlighted-code-line-bg: rgb(100 100 100);
23
+ }
24
+
25
+ .codeLine {
26
+ display: table-row;
27
+ counter-increment: line-count;
28
+ }
29
+
30
+ .codeLineNumber {
31
+ display: table-cell;
32
+ text-align: right;
33
+ width: 1%;
34
+ position: sticky;
35
+ left: 0;
36
+ padding: 0 var(--ifm-pre-padding);
37
+ background: var(--ifm-pre-background);
38
+ }
39
+
40
+ .codeLineNumber::before {
41
+ content: counter(line-count);
42
+ opacity: 0.4;
43
+ }
44
+
45
+ .highlightedCodeLine .codeLineNumber::before {
46
+ opacity: 0.8;
47
+ }
48
+
49
+ .codeLineContent {
50
+ padding-right: var(--ifm-pre-padding);
51
+ }
@@ -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 clsx from 'clsx';
9
+ import {translate} from '@docusaurus/Translate';
10
+ import styles from './styles.module.css';
11
+ export default function WordWrapButton({className, onClick, isEnabled}) {
12
+ const title = translate({
13
+ id: 'theme.CodeBlock.wordWrapToggle',
14
+ message: 'Toggle word wrap',
15
+ description:
16
+ 'The title attribute for toggle word wrapping button of code block lines',
17
+ });
18
+ return (
19
+ <button
20
+ type="button"
21
+ onClick={onClick}
22
+ className={clsx(
23
+ 'clean-btn',
24
+ className,
25
+ isEnabled && styles.wordWrapButtonEnabled,
26
+ )}
27
+ aria-label={title}
28
+ title={title}>
29
+ <svg
30
+ className={styles.wordWrapButtonIcon}
31
+ viewBox="0 0 24 24"
32
+ aria-hidden="true">
33
+ <path
34
+ fill="currentColor"
35
+ d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"
36
+ />
37
+ </svg>
38
+ </button>
39
+ );
40
+ }
@@ -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
+ .wordWrapButtonIcon {
9
+ width: 1.2rem;
10
+ height: 1.2rem;
11
+ }
12
+
13
+ .wordWrapButtonEnabled .wordWrapButtonIcon {
14
+ color: var(--ifm-color-primary);
15
+ }
@@ -4,175 +4,37 @@
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, useEffect, useState} from 'react';
8
- import clsx from 'clsx';
9
- import Highlight, {defaultProps} from 'prism-react-renderer';
10
- import copy from 'copy-text-to-clipboard';
11
- import Translate, {translate} from '@docusaurus/Translate';
12
- import {
13
- useThemeConfig,
14
- parseCodeBlockTitle,
15
- parseLanguage,
16
- parseLines,
17
- ThemeClassNames,
18
- usePrismTheme,
19
- } from '@docusaurus/theme-common';
20
- import styles from './styles.module.css';
21
- export default function CodeBlock({
22
- children,
23
- className: blockClassName = '',
24
- metastring,
25
- title,
26
- language: languageProp,
27
- }) {
28
- const {prism} = useThemeConfig();
29
- const [showCopied, setShowCopied] = useState(false);
30
- const [mounted, setMounted] = useState(false); // The Prism theme on SSR is always the default theme but the site theme
31
- // can be in a different mode. React hydration doesn't update DOM styles
32
- // that come from SSR. Hence force a re-render after mounting to apply the
33
- // current relevant styles. There will be a flash seen of the original
34
- // styles seen using this current approach but that's probably ok. Fixing
35
- // the flash will require changing the theming approach and is not worth it
36
- // at this point.
37
-
38
- useEffect(() => {
39
- setMounted(true);
40
- }, []); // We still parse the metastring in case we want to support more syntax in the
41
- // future. Note that MDX doesn't strip quotes when parsing metastring:
42
- // "title=\"xyz\"" => title: "\"xyz\""
43
-
44
- const codeBlockTitle = parseCodeBlockTitle(metastring) || title;
45
- const prismTheme = usePrismTheme(); // <pre> tags in markdown map to CodeBlocks and they may contain JSX children.
46
- // When the children is not a simple string, we just return a styled block
47
- // without actually highlighting.
7
+ import React, {isValidElement} from 'react';
8
+ import useIsBrowser from '@docusaurus/useIsBrowser';
9
+ import ElementContent from '@theme/CodeBlock/Content/Element';
10
+ import StringContent from '@theme/CodeBlock/Content/String';
11
+ /**
12
+ * Best attempt to make the children a plain string so it is copyable. If there
13
+ * are react elements, we will not be able to copy the content, and it will
14
+ * return `children` as-is; otherwise, it concatenates the string children
15
+ * together.
16
+ */
48
17
 
18
+ function maybeStringifyChildren(children) {
49
19
  if (React.Children.toArray(children).some((el) => isValidElement(el))) {
50
- return (
51
- <Highlight
52
- {...defaultProps}
53
- key={String(mounted)}
54
- theme={prismTheme}
55
- code=""
56
- language={'text'}>
57
- {({className, style}) => (
58
- <pre
59
- /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
60
- tabIndex={0}
61
- className={clsx(
62
- className,
63
- styles.codeBlockStandalone,
64
- 'thin-scrollbar',
65
- styles.codeBlockContainer,
66
- blockClassName,
67
- ThemeClassNames.common.codeBlock,
68
- )}
69
- style={style}>
70
- <code className={styles.codeBlockLines}>{children}</code>
71
- </pre>
72
- )}
73
- </Highlight>
74
- );
20
+ return children;
75
21
  } // The children is now guaranteed to be one/more plain strings
76
22
 
77
- const content = Array.isArray(children) ? children.join('') : children;
78
- const language =
79
- languageProp ?? parseLanguage(blockClassName) ?? prism.defaultLanguage;
80
- const {highlightLines, code} = parseLines(content, metastring, language);
81
-
82
- const handleCopyCode = () => {
83
- copy(code);
84
- setShowCopied(true);
85
- setTimeout(() => setShowCopied(false), 2000);
86
- };
23
+ return Array.isArray(children) ? children.join('') : children;
24
+ }
87
25
 
26
+ export default function CodeBlock({children: rawChildren, ...props}) {
27
+ // The Prism theme on SSR is always the default theme but the site theme can
28
+ // be in a different mode. React hydration doesn't update DOM styles that come
29
+ // from SSR. Hence force a re-render after mounting to apply the current
30
+ // relevant styles.
31
+ const isBrowser = useIsBrowser();
32
+ const children = maybeStringifyChildren(rawChildren);
33
+ const CodeBlockComp =
34
+ typeof children === 'string' ? StringContent : ElementContent;
88
35
  return (
89
- <Highlight
90
- {...defaultProps}
91
- key={String(mounted)}
92
- theme={prismTheme}
93
- code={code}
94
- language={language ?? 'text'}>
95
- {({className, style, tokens, getLineProps, getTokenProps}) => (
96
- <div
97
- className={clsx(
98
- styles.codeBlockContainer,
99
- blockClassName,
100
- {
101
- [`language-${language}`]:
102
- language && !blockClassName.includes(`language-${language}`),
103
- },
104
- ThemeClassNames.common.codeBlock,
105
- )}>
106
- {codeBlockTitle && (
107
- <div style={style} className={styles.codeBlockTitle}>
108
- {codeBlockTitle}
109
- </div>
110
- )}
111
- <div className={clsx(styles.codeBlockContent, language)}>
112
- <pre
113
- /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
114
- tabIndex={0}
115
- className={clsx(className, styles.codeBlock, 'thin-scrollbar')}
116
- style={style}>
117
- <code className={styles.codeBlockLines}>
118
- {tokens.map((line, i) => {
119
- if (line.length === 1 && line[0].content === '\n') {
120
- line[0].content = '';
121
- }
122
-
123
- const lineProps = getLineProps({
124
- line,
125
- key: i,
126
- });
127
-
128
- if (highlightLines.includes(i)) {
129
- lineProps.className += ' docusaurus-highlight-code-line';
130
- }
131
-
132
- return (
133
- <span key={i} {...lineProps}>
134
- {line.map((token, key) => (
135
- <span
136
- key={key}
137
- {...getTokenProps({
138
- token,
139
- key,
140
- })}
141
- />
142
- ))}
143
- <br />
144
- </span>
145
- );
146
- })}
147
- </code>
148
- </pre>
149
-
150
- <button
151
- type="button"
152
- aria-label={translate({
153
- id: 'theme.CodeBlock.copyButtonAriaLabel',
154
- message: 'Copy code to clipboard',
155
- description: 'The ARIA label for copy code blocks button',
156
- })}
157
- className={clsx(styles.copyButton, 'clean-btn')}
158
- onClick={handleCopyCode}>
159
- {showCopied ? (
160
- <Translate
161
- id="theme.CodeBlock.copied"
162
- description="The copied button label on code blocks">
163
- Copied
164
- </Translate>
165
- ) : (
166
- <Translate
167
- id="theme.CodeBlock.copy"
168
- description="The copy button label on code blocks">
169
- Copy
170
- </Translate>
171
- )}
172
- </button>
173
- </div>
174
- </div>
175
- )}
176
- </Highlight>
36
+ <CodeBlockComp key={String(isBrowser)} {...props}>
37
+ {children}
38
+ </CodeBlockComp>
177
39
  );
178
40
  }
@@ -0,0 +1,62 @@
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 useIsBrowser from '@docusaurus/useIsBrowser';
9
+ import {translate} from '@docusaurus/Translate';
10
+ import IconLightMode from '@theme/IconLightMode';
11
+ import IconDarkMode from '@theme/IconDarkMode';
12
+ import clsx from 'clsx';
13
+ import styles from './styles.module.css';
14
+
15
+ function ColorModeToggle({className, value, onChange}) {
16
+ const isBrowser = useIsBrowser();
17
+ const title = translate(
18
+ {
19
+ message: 'Switch between dark and light mode (currently {mode})',
20
+ id: 'theme.colorToggle.ariaLabel',
21
+ description: 'The ARIA label for the navbar color mode toggle',
22
+ },
23
+ {
24
+ mode:
25
+ value === 'dark'
26
+ ? translate({
27
+ message: 'dark mode',
28
+ id: 'theme.colorToggle.ariaLabel.mode.dark',
29
+ description: 'The name for the dark color mode',
30
+ })
31
+ : translate({
32
+ message: 'light mode',
33
+ id: 'theme.colorToggle.ariaLabel.mode.light',
34
+ description: 'The name for the light color mode',
35
+ }),
36
+ },
37
+ );
38
+ return (
39
+ <div className={clsx(styles.toggle, className)}>
40
+ <button
41
+ className={clsx(
42
+ 'clean-btn',
43
+ styles.toggleButton,
44
+ !isBrowser && styles.toggleButtonDisabled,
45
+ )}
46
+ type="button"
47
+ onClick={() => onChange(value === 'dark' ? 'light' : 'dark')}
48
+ disabled={!isBrowser}
49
+ title={title}
50
+ aria-label={title}>
51
+ <IconLightMode
52
+ className={clsx(styles.toggleIcon, styles.lightToggleIcon)}
53
+ />
54
+ <IconDarkMode
55
+ className={clsx(styles.toggleIcon, styles.darkToggleIcon)}
56
+ />
57
+ </button>
58
+ </div>
59
+ );
60
+ }
61
+
62
+ export default React.memo(ColorModeToggle);
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .toggle {
9
+ width: 2rem;
10
+ height: 2rem;
11
+ }
12
+
13
+ .toggleButton {
14
+ -webkit-tap-highlight-color: transparent;
15
+ align-items: center;
16
+ display: flex;
17
+ justify-content: center;
18
+ width: 100%;
19
+ height: 100%;
20
+ border-radius: 50%;
21
+ transition: background var(--ifm-transition-fast);
22
+ }
23
+
24
+ .toggleButton:hover {
25
+ background: var(--ifm-color-emphasis-200);
26
+ }
27
+
28
+ [data-theme='light'] .darkToggleIcon,
29
+ [data-theme='dark'] .lightToggleIcon {
30
+ display: none;
31
+ }
32
+
33
+ .toggleButtonDisabled {
34
+ cursor: not-allowed;
35
+ }
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import React from 'react';
8
8
  import clsx from 'clsx';
9
- import {Details as DetailsGeneric} from '@docusaurus/theme-common';
9
+ import {Details as DetailsGeneric} from '@docusaurus/theme-common/Details';
10
10
  import styles from './styles.module.css'; // Should we have a custom details/summary comp in Infima instead of reusing
11
11
  // alert classes?
12
12