@docusaurus/theme-classic 2.0.0-beta.15d451942 → 2.0.0-beta.18

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 (488) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +35 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +236 -0
  5. package/lib/index.js +63 -52
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +997 -0
  8. package/lib/translations.js +52 -36
  9. package/lib/types.d.ts +0 -589
  10. package/lib/validateThemeConfig.js +242 -250
  11. package/lib-next/theme/Admonition/index.js +101 -0
  12. package/lib-next/theme/AnnouncementBar/index.js +10 -22
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +26 -35
  14. package/lib-next/theme/BackToTopButton/index.js +129 -0
  15. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  16. package/lib-next/theme/BlogArchivePage/index.js +84 -0
  17. package/lib-next/theme/BlogLayout/index.js +37 -0
  18. package/lib-next/theme/BlogListPage/index.js +45 -35
  19. package/lib-next/theme/BlogListPaginator/index.js +13 -16
  20. package/lib-next/theme/BlogPostAuthor/index.js +52 -0
  21. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/lib-next/theme/BlogPostAuthors/styles.module.css +21 -0
  24. package/lib-next/theme/BlogPostItem/index.js +112 -97
  25. package/lib-next/theme/BlogPostItem/styles.module.css +5 -1
  26. package/lib-next/theme/BlogPostPage/index.js +84 -41
  27. package/lib-next/theme/BlogPostPaginator/index.js +13 -20
  28. package/lib-next/theme/BlogSidebar/index.js +23 -16
  29. package/lib-next/theme/BlogSidebar/styles.module.css +8 -8
  30. package/lib-next/theme/BlogTagsListPage/index.js +24 -70
  31. package/lib-next/theme/BlogTagsPostsPage/index.js +57 -62
  32. package/lib-next/theme/CodeBlock/CopyButton/index.js +60 -0
  33. package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +66 -0
  34. package/lib-next/theme/CodeBlock/index.js +74 -195
  35. package/lib-next/theme/CodeBlock/styles.module.css +13 -28
  36. package/lib-next/theme/ColorModeToggle/index.js +62 -0
  37. package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
  38. package/lib-next/theme/Details/index.js +21 -0
  39. package/lib-next/theme/Details/styles.module.css +13 -0
  40. package/lib-next/theme/DocBreadcrumbs/index.js +93 -0
  41. package/{lib/theme/Heading → lib-next/theme/DocBreadcrumbs}/styles.module.css +3 -2
  42. package/lib-next/theme/DocCard/index.js +93 -0
  43. package/lib-next/theme/DocCard/styles.module.css +34 -0
  44. package/lib-next/theme/DocCardList/index.js +31 -0
  45. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
  46. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  47. package/lib-next/theme/DocItem/index.js +99 -86
  48. package/lib-next/theme/DocItem/styles.module.css +7 -13
  49. package/lib-next/theme/DocItemFooter/index.js +79 -0
  50. package/{lib/theme/Layout/styles.css → lib-next/theme/DocItemFooter/styles.module.css} +8 -11
  51. package/lib-next/theme/DocPage/index.js +124 -99
  52. package/lib-next/theme/DocPage/styles.module.css +14 -30
  53. package/lib-next/theme/DocPaginator/index.js +16 -25
  54. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  55. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +44 -0
  56. package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
  57. package/{lib/theme/Footer → lib-next/theme/DocSidebar/Desktop/Content}/styles.module.css +8 -6
  58. package/lib-next/theme/DocSidebar/Desktop/index.js +34 -0
  59. package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
  60. package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
  61. package/lib-next/theme/DocSidebar/index.js +13 -333
  62. package/lib-next/theme/DocSidebarItem/index.js +265 -0
  63. package/lib-next/theme/DocSidebarItem/styles.module.css +17 -0
  64. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  65. package/lib-next/theme/DocTagDocListPage/index.js +96 -0
  66. package/lib-next/theme/DocTagsListPage/index.js +40 -0
  67. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  68. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +54 -36
  69. package/lib-next/theme/EditThisPage/index.js +6 -1
  70. package/lib-next/theme/ErrorPageContent.js +35 -0
  71. package/lib-next/theme/Footer/Copyright/index.js +18 -0
  72. package/lib-next/theme/Footer/Layout/index.js +26 -0
  73. package/lib-next/theme/Footer/LinkItem/index.js +33 -0
  74. package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
  75. package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
  76. package/lib-next/theme/Footer/Links/index.js +17 -0
  77. package/lib-next/theme/Footer/Logo/index.js +38 -0
  78. package/{src/theme/Footer → lib-next/theme/Footer/Logo}/styles.module.css +2 -1
  79. package/lib-next/theme/Footer/index.js +12 -100
  80. package/lib-next/theme/Heading/index.js +42 -33
  81. package/lib-next/theme/Heading/styles.module.css +27 -2
  82. package/lib-next/theme/IconArrow/index.js +3 -6
  83. package/lib-next/theme/IconClose/index.js +23 -0
  84. package/lib-next/theme/IconDarkMode/index.js +17 -0
  85. package/lib-next/theme/IconEdit/index.js +5 -10
  86. package/lib-next/theme/IconExternalLink/index.js +23 -0
  87. package/lib-next/theme/{LastUpdated → IconExternalLink}/styles.module.css +2 -2
  88. package/lib-next/theme/IconLanguage/index.js +5 -8
  89. package/lib-next/theme/IconLightMode/index.js +17 -0
  90. package/lib-next/theme/IconMenu/index.js +8 -9
  91. package/lib-next/theme/LastUpdated/index.js +35 -39
  92. package/lib-next/theme/Layout/index.js +19 -16
  93. package/lib-next/theme/Layout/styles.css +6 -0
  94. package/lib-next/theme/LayoutProviders/index.js +22 -10
  95. package/lib-next/theme/Logo/index.js +21 -16
  96. package/lib-next/theme/{ThemeContext.js → MDXComponents/A.js} +4 -2
  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/{hooks/styles.css → MDXComponents/Heading.js} +4 -3
  101. package/lib-next/theme/MDXComponents/Img.js +24 -0
  102. package/{lib/theme/LastUpdated/styles.module.css → lib-next/theme/MDXComponents/Img.module.css} +2 -2
  103. package/lib-next/theme/MDXComponents/Pre.js +18 -0
  104. package/lib-next/theme/MDXComponents/Ul.js +23 -0
  105. package/lib-next/theme/MDXComponents/Ul.module.css +11 -0
  106. package/lib-next/theme/MDXComponents/index.js +22 -42
  107. package/lib-next/theme/MDXContent/index.js +12 -0
  108. package/lib-next/theme/MDXPage/index.js +38 -39
  109. package/{lib/theme/IconEdit → lib-next/theme/MDXPage}/styles.module.css +2 -3
  110. package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
  111. package/lib-next/theme/Navbar/Content/index.js +70 -0
  112. package/lib-next/theme/Navbar/Content/styles.module.css +15 -0
  113. package/lib-next/theme/Navbar/Layout/index.js +54 -0
  114. package/{src/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +1 -7
  115. package/lib-next/theme/Navbar/Logo/index.js +17 -0
  116. package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
  117. package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  118. package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  119. package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  120. package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  121. package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
  122. package/lib-next/theme/Navbar/index.js +7 -137
  123. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +33 -186
  124. package/lib-next/theme/NavbarItem/DocNavbarItem.js +31 -14
  125. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  126. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +38 -24
  127. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  128. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +164 -0
  129. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
  130. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  131. package/lib-next/theme/NavbarItem/NavbarNavLink.js +66 -0
  132. package/lib-next/theme/NavbarItem/index.js +27 -15
  133. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  134. package/lib-next/theme/NotFound.js +40 -34
  135. package/lib-next/theme/PaginatorNavLink/index.js +17 -0
  136. package/lib-next/theme/SearchBar.js +1 -1
  137. package/lib-next/theme/SearchMetadata/index.js +34 -0
  138. package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +25 -45
  139. package/lib-next/theme/SkipToContent/index.js +9 -8
  140. package/lib-next/theme/SkipToContent/styles.module.css +8 -3
  141. package/lib-next/theme/TOC/index.js +12 -39
  142. package/lib-next/theme/TOC/styles.module.css +2 -2
  143. package/lib-next/theme/TOCCollapsible/index.js +52 -0
  144. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  145. package/lib-next/theme/TOCInline/index.js +10 -31
  146. package/lib-next/theme/TOCItems/index.js +85 -0
  147. package/lib-next/theme/TabItem/index.js +1 -4
  148. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  149. package/lib-next/theme/Tabs/index.js +108 -50
  150. package/lib-next/theme/Tabs/styles.module.css +0 -13
  151. package/lib-next/theme/Tag/index.js +24 -0
  152. package/lib-next/theme/Tag/styles.module.css +70 -0
  153. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  154. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  155. package/lib-next/theme/TagsListInline/index.js +31 -0
  156. package/{lib/theme/BlogPostItem → lib-next/theme/TagsListInline}/styles.module.css +5 -4
  157. package/lib-next/theme/ThemedImage/index.js +10 -14
  158. package/lib-next/theme/ThemedImage/styles.module.css +9 -2
  159. package/lib-next/theme/prism-include-languages.js +17 -15
  160. package/package.json +32 -31
  161. package/src/admonitions.css +35 -0
  162. package/src/deps.d.ts +13 -0
  163. package/src/getSwizzleConfig.ts +244 -0
  164. package/src/index.ts +72 -72
  165. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  166. package/src/theme/Admonition/index.tsx +106 -0
  167. package/src/theme/AnnouncementBar/index.tsx +11 -20
  168. package/src/theme/AnnouncementBar/styles.module.css +26 -35
  169. package/src/theme/BackToTopButton/index.tsx +141 -0
  170. package/src/theme/BackToTopButton/styles.module.css +44 -0
  171. package/src/theme/BlogArchivePage/index.tsx +92 -0
  172. package/src/theme/BlogLayout/index.tsx +42 -0
  173. package/src/theme/BlogListPage/index.tsx +45 -35
  174. package/src/theme/BlogListPaginator/index.tsx +13 -15
  175. package/src/theme/BlogPostAuthor/index.tsx +54 -0
  176. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  177. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  178. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  179. package/src/theme/BlogPostItem/index.tsx +103 -93
  180. package/src/theme/BlogPostItem/styles.module.css +5 -1
  181. package/src/theme/BlogPostPage/index.tsx +84 -42
  182. package/src/theme/BlogPostPaginator/index.tsx +13 -19
  183. package/src/theme/BlogSidebar/index.tsx +23 -16
  184. package/src/theme/BlogSidebar/styles.module.css +8 -8
  185. package/src/theme/BlogTagsListPage/index.tsx +24 -70
  186. package/src/theme/BlogTagsPostsPage/index.tsx +54 -65
  187. package/src/theme/CodeBlock/CopyButton/index.tsx +66 -0
  188. package/src/theme/CodeBlock/CopyButton/styles.module.css +66 -0
  189. package/src/theme/CodeBlock/index.tsx +77 -196
  190. package/src/theme/CodeBlock/styles.module.css +13 -28
  191. package/src/theme/ColorModeToggle/index.tsx +67 -0
  192. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  193. package/src/theme/Details/index.tsx +25 -0
  194. package/src/theme/Details/styles.module.css +13 -0
  195. package/src/theme/DocBreadcrumbs/index.tsx +110 -0
  196. package/src/theme/DocBreadcrumbs/styles.module.css +11 -0
  197. package/src/theme/DocCard/index.tsx +116 -0
  198. package/src/theme/DocCard/styles.module.css +34 -0
  199. package/src/theme/DocCardList/index.tsx +38 -0
  200. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
  201. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  202. package/src/theme/DocItem/index.tsx +93 -79
  203. package/src/theme/DocItem/styles.module.css +7 -13
  204. package/src/theme/DocItemFooter/index.tsx +91 -0
  205. package/src/theme/DocItemFooter/styles.module.css +18 -0
  206. package/src/theme/DocPage/index.tsx +124 -101
  207. package/src/theme/DocPage/styles.module.css +14 -30
  208. package/src/theme/DocPaginator/index.tsx +16 -24
  209. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  210. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +44 -0
  211. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  212. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +17 -0
  213. package/src/theme/DocSidebar/Desktop/index.tsx +38 -0
  214. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  215. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  216. package/src/theme/DocSidebar/index.tsx +14 -343
  217. package/src/theme/DocSidebarItem/index.tsx +282 -0
  218. package/src/theme/DocSidebarItem/styles.module.css +17 -0
  219. package/src/theme/DocSidebarItems/index.tsx +32 -0
  220. package/src/theme/DocTagDocListPage/index.tsx +97 -0
  221. package/src/theme/DocTagsListPage/index.tsx +44 -0
  222. package/src/theme/DocVersionBadge/index.tsx +35 -0
  223. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +76 -47
  224. package/src/theme/EditThisPage/index.tsx +6 -1
  225. package/src/theme/ErrorPageContent.tsx +41 -0
  226. package/src/theme/Footer/Copyright/index.tsx +20 -0
  227. package/src/theme/Footer/Layout/index.tsx +34 -0
  228. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  229. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  230. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  231. package/src/theme/Footer/Links/index.tsx +21 -0
  232. package/src/theme/Footer/Logo/index.tsx +41 -0
  233. package/{lib-next/theme/Footer → src/theme/Footer/Logo}/styles.module.css +2 -1
  234. package/src/theme/Footer/index.tsx +13 -113
  235. package/src/theme/Heading/index.tsx +43 -35
  236. package/src/theme/Heading/styles.module.css +27 -2
  237. package/src/theme/IconArrow/index.tsx +3 -5
  238. package/src/theme/IconClose/index.tsx +26 -0
  239. package/src/theme/IconDarkMode/index.tsx +20 -0
  240. package/src/theme/IconEdit/index.tsx +8 -9
  241. package/src/theme/IconExternalLink/index.tsx +30 -0
  242. package/src/theme/IconExternalLink/styles.module.css +10 -0
  243. package/src/theme/IconLanguage/index.tsx +6 -8
  244. package/src/theme/IconLightMode/index.tsx +20 -0
  245. package/src/theme/IconMenu/index.tsx +4 -9
  246. package/src/theme/LastUpdated/index.tsx +35 -39
  247. package/src/theme/Layout/index.tsx +19 -15
  248. package/src/theme/Layout/styles.css +6 -0
  249. package/src/theme/LayoutProviders/index.tsx +22 -10
  250. package/src/theme/Logo/index.tsx +21 -15
  251. package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
  252. package/src/theme/MDXComponents/Code.tsx +37 -0
  253. package/src/theme/MDXComponents/Details.tsx +26 -0
  254. package/src/theme/MDXComponents/Head.tsx +29 -0
  255. package/src/theme/MDXComponents/Heading.tsx +14 -0
  256. package/src/theme/{LastUpdated/styles.module.css → MDXComponents/Img.module.css} +2 -2
  257. package/src/theme/MDXComponents/Img.tsx +26 -0
  258. package/src/theme/MDXComponents/Pre.tsx +22 -0
  259. package/src/theme/MDXComponents/Ul.module.css +11 -0
  260. package/src/theme/MDXComponents/Ul.tsx +28 -0
  261. package/src/theme/MDXComponents/index.tsx +23 -42
  262. package/src/theme/MDXContent/index.tsx +15 -0
  263. package/src/theme/MDXPage/index.tsx +39 -39
  264. package/src/theme/MDXPage/styles.module.css +10 -0
  265. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  266. package/src/theme/Navbar/Content/index.tsx +81 -0
  267. package/src/theme/Navbar/Content/styles.module.css +15 -0
  268. package/src/theme/Navbar/Layout/index.tsx +57 -0
  269. package/{lib/theme/Navbar → src/theme/Navbar/Layout}/styles.module.css +1 -7
  270. package/src/theme/Navbar/Logo/index.tsx +19 -0
  271. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  272. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  273. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  274. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
  275. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  276. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  277. package/src/theme/Navbar/index.tsx +7 -147
  278. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
  279. package/src/theme/NavbarItem/DocNavbarItem.tsx +33 -15
  280. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  281. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +44 -28
  282. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  283. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +190 -0
  284. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +17 -11
  285. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  286. package/src/theme/NavbarItem/NavbarNavLink.tsx +64 -0
  287. package/src/theme/NavbarItem/index.tsx +41 -19
  288. package/src/theme/NavbarItem/utils.ts +10 -0
  289. package/src/theme/NotFound.tsx +40 -33
  290. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  291. package/src/theme/SearchBar.tsx +2 -1
  292. package/src/theme/SearchMetadata/index.tsx +43 -0
  293. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +25 -38
  294. package/src/theme/SkipToContent/index.tsx +9 -8
  295. package/src/theme/SkipToContent/styles.module.css +8 -3
  296. package/src/theme/TOC/index.tsx +13 -44
  297. package/src/theme/TOC/styles.module.css +2 -2
  298. package/src/theme/TOCCollapsible/index.tsx +56 -0
  299. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  300. package/src/theme/TOCInline/index.tsx +14 -35
  301. package/src/theme/TOCItems/index.tsx +100 -0
  302. package/src/theme/TabItem/index.tsx +5 -3
  303. package/src/theme/Tabs/index.tsx +117 -59
  304. package/src/theme/Tabs/styles.module.css +0 -13
  305. package/src/theme/Tag/index.tsx +29 -0
  306. package/src/theme/Tag/styles.module.css +70 -0
  307. package/src/theme/TagsListByLetter/index.tsx +43 -0
  308. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  309. package/src/theme/TagsListInline/index.tsx +35 -0
  310. package/src/theme/TagsListInline/styles.module.css +15 -0
  311. package/src/theme/ThemedImage/index.tsx +12 -13
  312. package/src/theme/ThemedImage/styles.module.css +9 -2
  313. package/src/theme/prism-include-languages.ts +20 -15
  314. package/src/theme-classic.d.ts +997 -0
  315. package/src/translations.ts +84 -58
  316. package/src/types.d.ts +0 -589
  317. package/src/validateThemeConfig.ts +381 -0
  318. package/babel.config.js +0 -35
  319. package/codeTranslations/README.md +0 -20
  320. package/codeTranslations/ar.json +0 -55
  321. package/codeTranslations/base.json +0 -108
  322. package/codeTranslations/da.json +0 -55
  323. package/codeTranslations/de.json +0 -55
  324. package/codeTranslations/es.json +0 -55
  325. package/codeTranslations/fa.json +0 -55
  326. package/codeTranslations/fil.json +0 -55
  327. package/codeTranslations/fr.json +0 -55
  328. package/codeTranslations/he.json +0 -55
  329. package/codeTranslations/hi.json +0 -55
  330. package/codeTranslations/ja.json +0 -55
  331. package/codeTranslations/ko.json +0 -55
  332. package/codeTranslations/pl.json +0 -55
  333. package/codeTranslations/pt-BR.json +0 -55
  334. package/codeTranslations/pt-PT.json +0 -55
  335. package/codeTranslations/ru.json +0 -55
  336. package/codeTranslations/tr.json +0 -55
  337. package/codeTranslations/vi.json +0 -55
  338. package/codeTranslations/zh-Hans.json +0 -55
  339. package/codeTranslations/zh-Hant.json +0 -55
  340. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  341. package/lib/__tests__/translations.test.js +0 -112
  342. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  343. package/lib/theme/AnnouncementBar/index.js +0 -74
  344. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  345. package/lib/theme/BlogListPage/index.js +0 -71
  346. package/lib/theme/BlogListPaginator/index.js +0 -63
  347. package/lib/theme/BlogPostItem/index.js +0 -152
  348. package/lib/theme/BlogPostPage/index.js +0 -75
  349. package/lib/theme/BlogPostPaginator/index.js +0 -64
  350. package/lib/theme/BlogSidebar/index.js +0 -43
  351. package/lib/theme/BlogSidebar/styles.module.css +0 -46
  352. package/lib/theme/BlogTagsListPage/index.js +0 -81
  353. package/lib/theme/BlogTagsPostsPage/index.js +0 -104
  354. package/lib/theme/CodeBlock/index.js +0 -253
  355. package/lib/theme/CodeBlock/styles.module.css +0 -71
  356. package/lib/theme/DocItem/index.js +0 -120
  357. package/lib/theme/DocItem/styles.module.css +0 -28
  358. package/lib/theme/DocPage/index.js +0 -141
  359. package/lib/theme/DocPage/styles.module.css +0 -98
  360. package/lib/theme/DocPaginator/index.js +0 -63
  361. package/lib/theme/DocSidebar/index.js +0 -307
  362. package/lib/theme/DocSidebar/styles.module.css +0 -138
  363. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  364. package/lib/theme/EditThisPage/index.js +0 -31
  365. package/lib/theme/Footer/index.js +0 -108
  366. package/lib/theme/Heading/index.js +0 -60
  367. package/lib/theme/Heading/styles.css +0 -23
  368. package/lib/theme/IconArrow/index.js +0 -28
  369. package/lib/theme/IconEdit/index.js +0 -34
  370. package/lib/theme/IconLanguage/index.js +0 -29
  371. package/lib/theme/IconMenu/index.js +0 -31
  372. package/lib/theme/LastUpdated/index.js +0 -65
  373. package/lib/theme/Layout/index.js +0 -64
  374. package/lib/theme/LayoutHead/index.js +0 -144
  375. package/lib/theme/LayoutProviders/index.js +0 -34
  376. package/lib/theme/Logo/index.js +0 -59
  377. package/lib/theme/MDXComponents/index.js +0 -65
  378. package/lib/theme/MDXPage/index.js +0 -68
  379. package/lib/theme/Navbar/index.js +0 -147
  380. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
  381. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
  382. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
  383. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  384. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  385. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  386. package/lib/theme/NavbarItem/index.js +0 -54
  387. package/lib/theme/NotFound.js +0 -50
  388. package/lib/theme/SearchBar.js +0 -15
  389. package/lib/theme/SearchMetadatas/index.js +0 -33
  390. package/lib/theme/Seo/index.js +0 -49
  391. package/lib/theme/SkipToContent/index.js +0 -61
  392. package/lib/theme/SkipToContent/styles.module.css +0 -16
  393. package/lib/theme/TOC/index.js +0 -59
  394. package/lib/theme/TOC/styles.module.css +0 -23
  395. package/lib/theme/TOCInline/index.js +0 -53
  396. package/lib/theme/TOCInline/styles.module.css +0 -12
  397. package/lib/theme/TabItem/index.js +0 -32
  398. package/lib/theme/Tabs/index.js +0 -150
  399. package/lib/theme/Tabs/styles.module.css +0 -23
  400. package/lib/theme/ThemeContext.js +0 -21
  401. package/lib/theme/ThemeProvider/index.js +0 -38
  402. package/lib/theme/ThemedImage/index.js +0 -48
  403. package/lib/theme/ThemedImage/styles.module.css +0 -11
  404. package/lib/theme/Toggle/index.js +0 -106
  405. package/lib/theme/Toggle/styles.module.css +0 -114
  406. package/lib/theme/UserPreferencesContext.js +0 -18
  407. package/lib/theme/UserPreferencesProvider/index.js +0 -44
  408. package/lib/theme/hooks/styles.css +0 -10
  409. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  410. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  411. package/lib/theme/hooks/useDocs.js +0 -18
  412. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  413. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  414. package/lib/theme/hooks/useLocationHash.js +0 -28
  415. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  416. package/lib/theme/hooks/usePrismTheme.js +0 -36
  417. package/lib/theme/hooks/useScrollPosition.js +0 -49
  418. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  419. package/lib/theme/hooks/useTabGroupChoice.js +0 -53
  420. package/lib/theme/hooks/useTheme.js +0 -99
  421. package/lib/theme/hooks/useThemeContext.js +0 -31
  422. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  423. package/lib/theme/hooks/useWindowSize.js +0 -55
  424. package/lib/theme/prism-include-languages.js +0 -39
  425. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  426. package/lib-next/__tests__/translations.test.js +0 -128
  427. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  428. package/lib-next/index.js +0 -198
  429. package/lib-next/theme/DocSidebar/styles.module.css +0 -138
  430. package/lib-next/theme/Heading/styles.css +0 -23
  431. package/lib-next/theme/Navbar/styles.module.css +0 -20
  432. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  433. package/lib-next/theme/Seo/index.js +0 -36
  434. package/lib-next/theme/ThemeProvider/index.js +0 -25
  435. package/lib-next/theme/Toggle/index.js +0 -95
  436. package/lib-next/theme/Toggle/styles.module.css +0 -114
  437. package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
  438. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  439. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  440. package/lib-next/theme/hooks/useDocs.js +0 -10
  441. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  442. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  443. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  444. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  445. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  446. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  447. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  448. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
  449. package/lib-next/theme/hooks/useTheme.js +0 -82
  450. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  451. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  452. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  453. package/lib-next/translations.js +0 -145
  454. package/lib-next/types.d.ts +0 -600
  455. package/lib-next/validateThemeConfig.js +0 -317
  456. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  457. package/src/__tests__/translations.test.ts +0 -116
  458. package/src/__tests__/validateThemeConfig.test.js +0 -333
  459. package/src/prism-include-languages.js +0 -11
  460. package/src/theme/DocSidebar/styles.module.css +0 -138
  461. package/src/theme/Heading/styles.css +0 -23
  462. package/src/theme/SearchMetadatas/index.tsx +0 -28
  463. package/src/theme/Seo/index.tsx +0 -46
  464. package/src/theme/ThemeProvider/index.tsx +0 -24
  465. package/src/theme/Toggle/index.tsx +0 -113
  466. package/src/theme/Toggle/styles.module.css +0 -114
  467. package/src/theme/UserPreferencesContext.ts +0 -12
  468. package/src/theme/UserPreferencesProvider/index.tsx +0 -32
  469. package/src/theme/hooks/styles.css +0 -10
  470. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  471. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  472. package/src/theme/hooks/useDocs.ts +0 -11
  473. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  474. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  475. package/src/theme/hooks/useLocationHash.ts +0 -25
  476. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  477. package/src/theme/hooks/usePrismTheme.ts +0 -22
  478. package/src/theme/hooks/useScrollPosition.ts +0 -45
  479. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  480. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  481. package/src/theme/hooks/useTheme.ts +0 -92
  482. package/src/theme/hooks/useThemeContext.ts +0 -23
  483. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  484. package/src/theme/hooks/useWindowSize.ts +0 -51
  485. package/src/validateThemeConfig.js +0 -317
  486. package/tsconfig.json +0 -12
  487. package/update-code-translations.js +0 -239
  488. package/update-code-translations.test.js +0 -33
@@ -4,93 +4,27 @@
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, {useEffect, useState, useRef} from 'react';
7
+ import React, {isValidElement, useEffect, useState} from 'react';
8
8
  import clsx from 'clsx';
9
9
  import Highlight, {defaultProps} from 'prism-react-renderer';
10
- import copy from 'copy-text-to-clipboard';
11
- import rangeParser from 'parse-numeric-range';
12
- import usePrismTheme from '@theme/hooks/usePrismTheme';
13
- import Translate, {translate} from '@docusaurus/Translate';
10
+ import {
11
+ useThemeConfig,
12
+ parseCodeBlockTitle,
13
+ parseLanguage,
14
+ parseLines,
15
+ ThemeClassNames,
16
+ usePrismTheme,
17
+ } from '@docusaurus/theme-common';
18
+ import CopyButton from '@theme/CodeBlock/CopyButton';
14
19
  import styles from './styles.module.css';
15
- import {useThemeConfig, parseCodeBlockTitle} from '@docusaurus/theme-common';
16
- const highlightLinesRangeRegex = /{([\d,-]+)}/;
17
-
18
- const getHighlightDirectiveRegex = (
19
- languages = ['js', 'jsBlock', 'jsx', 'python', 'html'],
20
- ) => {
21
- // supported types of comments
22
- const comments = {
23
- js: {
24
- start: '\\/\\/',
25
- end: '',
26
- },
27
- jsBlock: {
28
- start: '\\/\\*',
29
- end: '\\*\\/',
30
- },
31
- jsx: {
32
- start: '\\{\\s*\\/\\*',
33
- end: '\\*\\/\\s*\\}',
34
- },
35
- python: {
36
- start: '#',
37
- end: '',
38
- },
39
- html: {
40
- start: '<!--',
41
- end: '-->',
42
- },
43
- }; // supported directives
44
-
45
- const directives = [
46
- 'highlight-next-line',
47
- 'highlight-start',
48
- 'highlight-end',
49
- ].join('|'); // to be more reliable, the opening and closing comment must match
50
-
51
- const commentPattern = languages
52
- .map(
53
- (lang) =>
54
- `(?:${comments[lang].start}\\s*(${directives})\\s*${comments[lang].end})`,
55
- )
56
- .join('|'); // white space is allowed, but otherwise it should be on it's own line
57
-
58
- return new RegExp(`^\\s*(?:${commentPattern})\\s*$`);
59
- }; // select comment styles based on language
60
-
61
- const highlightDirectiveRegex = (lang) => {
62
- switch (lang) {
63
- case 'js':
64
- case 'javascript':
65
- case 'ts':
66
- case 'typescript':
67
- return getHighlightDirectiveRegex(['js', 'jsBlock']);
68
-
69
- case 'jsx':
70
- case 'tsx':
71
- return getHighlightDirectiveRegex(['js', 'jsBlock', 'jsx']);
72
-
73
- case 'html':
74
- return getHighlightDirectiveRegex(['js', 'jsBlock', 'html']);
75
-
76
- case 'python':
77
- case 'py':
78
- return getHighlightDirectiveRegex(['python']);
79
-
80
- default:
81
- // all comment types
82
- return getHighlightDirectiveRegex();
83
- }
84
- };
85
-
86
20
  export default function CodeBlock({
87
21
  children,
88
- className: languageClassName,
22
+ className: blockClassName = '',
89
23
  metastring,
90
24
  title,
25
+ language: languageProp,
91
26
  }) {
92
27
  const {prism} = useThemeConfig();
93
- const [showCopied, setShowCopied] = useState(false);
94
28
  const [mounted, setMounted] = useState(false); // The Prism theme on SSR is always the default theme but the site theme
95
29
  // can be in a different mode. React hydration doesn't update DOM styles
96
30
  // that come from SSR. Hence force a re-render after mounting to apply the
@@ -101,112 +35,79 @@ export default function CodeBlock({
101
35
 
102
36
  useEffect(() => {
103
37
  setMounted(true);
104
- }, []); // TODO: the title is provided by MDX as props automatically
105
- // so we probably don't need to parse the metastring
106
- // (note: title="xyz" => title prop still has the quotes)
38
+ }, []); // We still parse the metastring in case we want to support more syntax in the
39
+ // future. Note that MDX doesn't strip quotes when parsing metastring:
40
+ // "title=\"xyz\"" => title: "\"xyz\""
107
41
 
108
42
  const codeBlockTitle = parseCodeBlockTitle(metastring) || title;
109
- const button = useRef(null);
110
- let highlightLines = [];
111
- const prismTheme = usePrismTheme(); // In case interleaved Markdown (e.g. when using CodeBlock as standalone component).
43
+ const prismTheme = usePrismTheme(); // <pre> tags in markdown map to CodeBlocks and they may contain JSX children.
44
+ // When the children is not a simple string, we just return a styled block
45
+ // without actually highlighting.
46
+
47
+ if (React.Children.toArray(children).some((el) => isValidElement(el))) {
48
+ return (
49
+ <Highlight
50
+ {...defaultProps}
51
+ key={String(mounted)}
52
+ theme={prismTheme}
53
+ code=""
54
+ language={'text'}>
55
+ {({className, style}) => (
56
+ <pre
57
+ /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
58
+ tabIndex={0}
59
+ className={clsx(
60
+ className,
61
+ styles.codeBlockStandalone,
62
+ 'thin-scrollbar',
63
+ styles.codeBlockContainer,
64
+ blockClassName,
65
+ ThemeClassNames.common.codeBlock,
66
+ )}
67
+ style={style}>
68
+ <code className={styles.codeBlockLines}>{children}</code>
69
+ </pre>
70
+ )}
71
+ </Highlight>
72
+ );
73
+ } // The children is now guaranteed to be one/more plain strings
112
74
 
113
75
  const content = Array.isArray(children) ? children.join('') : children;
114
-
115
- if (metastring && highlightLinesRangeRegex.test(metastring)) {
116
- // Tested above
117
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
118
- const highlightLinesRange = metastring.match(highlightLinesRangeRegex)[1];
119
- highlightLines = rangeParser(highlightLinesRange).filter((n) => n > 0);
120
- }
121
-
122
- let language =
123
- languageClassName && // Force Prism's language union type to `any` because it does not contain all available languages
124
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
- languageClassName.replace(/language-/, '');
126
-
127
- if (!language && prism.defaultLanguage) {
128
- language = prism.defaultLanguage;
129
- } // only declaration OR directive highlight can be used for a block
130
-
131
- let code = content.replace(/\n$/, '');
132
-
133
- if (highlightLines.length === 0 && language !== undefined) {
134
- let range = '';
135
- const directiveRegex = highlightDirectiveRegex(language); // go through line by line
136
-
137
- const lines = content.replace(/\n$/, '').split('\n');
138
- let blockStart; // loop through lines
139
-
140
- for (let index = 0; index < lines.length; ) {
141
- const line = lines[index]; // adjust for 0-index
142
-
143
- const lineNumber = index + 1;
144
- const match = line.match(directiveRegex);
145
-
146
- if (match !== null) {
147
- const directive = match
148
- .slice(1)
149
- .reduce((final, item) => final || item, undefined);
150
-
151
- switch (directive) {
152
- case 'highlight-next-line':
153
- range += `${lineNumber},`;
154
- break;
155
-
156
- case 'highlight-start':
157
- blockStart = lineNumber;
158
- break;
159
-
160
- case 'highlight-end':
161
- range += `${blockStart}-${lineNumber - 1},`;
162
- break;
163
-
164
- default:
165
- break;
166
- }
167
-
168
- lines.splice(index, 1);
169
- } else {
170
- // lines without directives are unchanged
171
- index += 1;
172
- }
173
- }
174
-
175
- highlightLines = rangeParser(range);
176
- code = lines.join('\n');
177
- }
178
-
179
- const handleCopyCode = () => {
180
- copy(code);
181
- setShowCopied(true);
182
- setTimeout(() => setShowCopied(false), 2000);
183
- };
184
-
76
+ const language =
77
+ languageProp ?? parseLanguage(blockClassName) ?? prism.defaultLanguage;
78
+ const {highlightLines, code} = parseLines(content, metastring, language);
185
79
  return (
186
80
  <Highlight
187
81
  {...defaultProps}
188
82
  key={String(mounted)}
189
83
  theme={prismTheme}
190
84
  code={code}
191
- language={language}>
85
+ language={language ?? 'text'}>
192
86
  {({className, style, tokens, getLineProps, getTokenProps}) => (
193
- <div className={styles.codeBlockContainer}>
87
+ <div
88
+ className={clsx(
89
+ styles.codeBlockContainer,
90
+ blockClassName,
91
+ {
92
+ [`language-${language}`]:
93
+ language && !blockClassName.includes(`language-${language}`),
94
+ },
95
+ ThemeClassNames.common.codeBlock,
96
+ )}>
194
97
  {codeBlockTitle && (
195
98
  <div style={style} className={styles.codeBlockTitle}>
196
99
  {codeBlockTitle}
197
100
  </div>
198
101
  )}
199
- <div className={clsx(styles.codeBlockContent, language)}>
200
- <div
102
+ <div className={styles.codeBlockContent} style={style}>
103
+ <pre
201
104
  /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
202
105
  tabIndex={0}
203
- className={clsx(className, styles.codeBlock, 'thin-scrollbar', {
204
- [styles.codeBlockWithTitle]: codeBlockTitle,
205
- })}>
206
- <div className={styles.codeBlockLines} style={style}>
106
+ className={clsx(className, styles.codeBlock, 'thin-scrollbar')}>
107
+ <code className={styles.codeBlockLines}>
207
108
  {tokens.map((line, i) => {
208
- if (line.length === 1 && line[0].content === '') {
209
- line[0].content = '\n'; // eslint-disable-line no-param-reassign
109
+ if (line.length === 1 && line[0].content === '\n') {
110
+ line[0].content = '';
210
111
  }
211
112
 
212
113
  const lineProps = getLineProps({
@@ -214,12 +115,12 @@ export default function CodeBlock({
214
115
  key: i,
215
116
  });
216
117
 
217
- if (highlightLines.includes(i + 1)) {
218
- lineProps.className = `${lineProps.className} docusaurus-highlight-code-line`;
118
+ if (highlightLines.includes(i)) {
119
+ lineProps.className += ' docusaurus-highlight-code-line';
219
120
  }
220
121
 
221
122
  return (
222
- <div key={i} {...lineProps}>
123
+ <span key={i} {...lineProps}>
223
124
  {line.map((token, key) => (
224
125
  <span
225
126
  key={key}
@@ -229,36 +130,14 @@ export default function CodeBlock({
229
130
  })}
230
131
  />
231
132
  ))}
232
- </div>
133
+ <br />
134
+ </span>
233
135
  );
234
136
  })}
235
- </div>
236
- </div>
137
+ </code>
138
+ </pre>
237
139
 
238
- <button
239
- ref={button}
240
- type="button"
241
- aria-label={translate({
242
- id: 'theme.CodeBlock.copyButtonAriaLabel',
243
- message: 'Copy code to clipboard',
244
- description: 'The ARIA label for copy code blocks button',
245
- })}
246
- className={clsx(styles.copyButton)}
247
- onClick={handleCopyCode}>
248
- {showCopied ? (
249
- <Translate
250
- id="theme.CodeBlock.copied"
251
- description="The copied button label on code blocks">
252
- Copied
253
- </Translate>
254
- ) : (
255
- <Translate
256
- id="theme.CodeBlock.copy"
257
- description="The copy button label on code blocks">
258
- Copy
259
- </Translate>
260
- )}
261
- </button>
140
+ <CopyButton code={code} />
262
141
  </div>
263
142
  </div>
264
143
  )}
@@ -7,58 +7,43 @@
7
7
 
8
8
  .codeBlockContainer {
9
9
  margin-bottom: var(--ifm-leading);
10
+ box-shadow: var(--ifm-global-shadow-lw);
10
11
  }
11
12
 
12
13
  .codeBlockContent {
13
14
  position: relative;
14
- /*rtl:ignore*/
15
+ /* rtl:ignore */
15
16
  direction: ltr;
17
+ border-radius: var(--ifm-global-radius);
16
18
  }
17
19
 
18
20
  .codeBlockTitle {
19
- border-top-left-radius: var(--ifm-global-radius);
20
- border-top-right-radius: var(--ifm-global-radius);
21
21
  border-bottom: 1px solid var(--ifm-color-emphasis-300);
22
22
  font-size: var(--ifm-code-font-size);
23
23
  font-weight: 500;
24
24
  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);
25
27
  }
26
28
 
27
29
  .codeBlock {
28
- overflow: auto;
29
- border-radius: var(--ifm-global-radius);
30
+ margin: 0;
31
+ padding: 0;
32
+ background-color: inherit;
30
33
  }
31
34
 
32
- .codeBlockWithTitle {
35
+ .codeBlockTitle + .codeBlockContent .codeBlock {
33
36
  border-top-left-radius: 0;
34
37
  border-top-right-radius: 0;
35
38
  }
36
39
 
37
- .copyButton {
38
- background: rgba(0, 0, 0, 0.3);
39
- border: none;
40
- border-radius: var(--ifm-global-radius);
41
- color: var(--ifm-color-white);
42
- cursor: pointer;
43
- opacity: 0;
44
- user-select: none;
45
- padding: 0.4rem 0.5rem;
46
- position: absolute;
47
- right: calc(var(--ifm-pre-padding) / 2);
48
- top: calc(var(--ifm-pre-padding) / 2);
49
- transition: opacity 200ms ease-in-out;
50
- }
51
-
52
- .codeBlockTitle:hover + .codeBlockContent .copyButton,
53
- .codeBlockContent:hover > .copyButton,
54
- .copyButton:focus {
55
- opacity: 1;
40
+ .codeBlockStandalone {
41
+ padding: 0;
56
42
  }
57
43
 
58
44
  .codeBlockLines {
59
- font: var(--ifm-code-font-size) / var(--ifm-pre-line-height)
60
- var(--ifm-font-family-monospace);
61
- white-space: pre;
45
+ font: inherit;
46
+ /* rtl:ignore */
62
47
  float: left;
63
48
  min-width: 100%;
64
49
  padding: var(--ifm-pre-padding);
@@ -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
+ }
@@ -0,0 +1,21 @@
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 {Details as DetailsGeneric} from '@docusaurus/theme-common';
10
+ import styles from './styles.module.css'; // Should we have a custom details/summary comp in Infima instead of reusing
11
+ // alert classes?
12
+
13
+ const InfimaClasses = 'alert alert--info';
14
+ export default function Details({...props}) {
15
+ return (
16
+ <DetailsGeneric
17
+ {...props}
18
+ className={clsx(InfimaClasses, styles.details, props.className)}
19
+ />
20
+ );
21
+ }
@@ -0,0 +1,13 @@
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
+ .details {
9
+ --docusaurus-details-decoration-color: var(--ifm-alert-border-color);
10
+ --docusaurus-details-transition: transform var(--ifm-transition-fast) ease;
11
+ margin: 0 0 var(--ifm-spacing-vertical);
12
+ border: 1px solid var(--ifm-alert-border-color);
13
+ }
@@ -0,0 +1,93 @@
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 {
9
+ ThemeClassNames,
10
+ useSidebarBreadcrumbs,
11
+ useHomePageRoute,
12
+ } from '@docusaurus/theme-common';
13
+ import styles from './styles.module.css';
14
+ import clsx from 'clsx';
15
+ import Link from '@docusaurus/Link';
16
+ import useBaseUrl from '@docusaurus/useBaseUrl'; // TODO move to design system folder
17
+
18
+ function BreadcrumbsItemLink({children, href}) {
19
+ const className = 'breadcrumbs__link';
20
+ return href ? (
21
+ <Link className={className} href={href} itemProp="item">
22
+ <span itemProp="name">{children}</span>
23
+ </Link>
24
+ ) : (
25
+ <span className={className} itemProp="item name">
26
+ {children}
27
+ </span>
28
+ );
29
+ } // TODO move to design system folder
30
+
31
+ function BreadcrumbsItem({children, active, index}) {
32
+ return (
33
+ <li
34
+ itemScope
35
+ itemProp="itemListElement"
36
+ itemType="https://schema.org/ListItem"
37
+ className={clsx('breadcrumbs__item', {
38
+ 'breadcrumbs__item--active': active,
39
+ })}>
40
+ {children}
41
+ <meta itemProp="position" content={String(index + 1)} />
42
+ </li>
43
+ );
44
+ }
45
+
46
+ function HomeBreadcrumbItem() {
47
+ const homeHref = useBaseUrl('/');
48
+ return (
49
+ <li className="breadcrumbs__item">
50
+ <Link
51
+ className={clsx('breadcrumbs__link', styles.breadcrumbsItemLink)}
52
+ href={homeHref}>
53
+ 🏠
54
+ </Link>
55
+ </li>
56
+ );
57
+ }
58
+
59
+ export default function DocBreadcrumbs() {
60
+ const breadcrumbs = useSidebarBreadcrumbs();
61
+ const homePageRoute = useHomePageRoute();
62
+
63
+ if (!breadcrumbs) {
64
+ return null;
65
+ }
66
+
67
+ return (
68
+ <nav
69
+ className={clsx(
70
+ ThemeClassNames.docs.docBreadcrumbs,
71
+ styles.breadcrumbsContainer,
72
+ )}
73
+ aria-label="breadcrumbs">
74
+ <ul
75
+ className="breadcrumbs"
76
+ itemScope
77
+ itemType="https://schema.org/BreadcrumbList">
78
+ {homePageRoute && <HomeBreadcrumbItem />}
79
+ {breadcrumbs.map((item, idx) => (
80
+ <BreadcrumbsItem
81
+ key={idx}
82
+ active={idx === breadcrumbs.length - 1}
83
+ index={idx}>
84
+ <BreadcrumbsItemLink
85
+ href={idx < breadcrumbs.length - 1 ? item.href : undefined}>
86
+ {item.label}
87
+ </BreadcrumbsItemLink>
88
+ </BreadcrumbsItem>
89
+ ))}
90
+ </ul>
91
+ </nav>
92
+ );
93
+ }
@@ -5,6 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .enhancedAnchor {
9
- top: calc(var(--ifm-navbar-height) * -1 - 0.5rem);
8
+ .breadcrumbsContainer {
9
+ --ifm-breadcrumb-size-multiplier: 0.8;
10
+ margin-bottom: 0.8rem;
10
11
  }