@docusaurus/theme-classic 2.0.0-beta.1decd6f80 → 2.0.0-beta.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +39 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +243 -0
  5. package/lib/index.js +65 -54
  6. package/lib/nprogress.css +41 -0
  7. package/lib/nprogress.js +46 -0
  8. package/lib/prism-include-languages.js +9 -5
  9. package/lib/theme-classic.d.ts +1279 -0
  10. package/lib/translations.js +52 -36
  11. package/lib/validateThemeConfig.js +298 -248
  12. package/lib-next/theme/Admonition/index.js +101 -0
  13. package/lib-next/theme/AnnouncementBar/index.js +10 -22
  14. package/lib-next/theme/AnnouncementBar/styles.module.css +26 -35
  15. package/lib-next/theme/BackToTopButton/index.js +33 -0
  16. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  17. package/lib-next/theme/BlogArchivePage/index.js +84 -0
  18. package/lib-next/theme/BlogLayout/index.js +33 -0
  19. package/lib-next/theme/BlogListPage/index.js +45 -35
  20. package/lib-next/theme/BlogListPaginator/index.js +27 -33
  21. package/lib-next/theme/BlogPostAuthor/index.js +49 -0
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/lib-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 +14 -1
  26. package/lib-next/theme/BlogPostPage/index.js +84 -41
  27. package/lib-next/theme/BlogPostPaginator/index.js +28 -38
  28. package/lib-next/theme/BlogSidebar/Desktop/index.js +41 -0
  29. package/{lib/theme/BlogSidebar → lib-next/theme/BlogSidebar/Desktop}/styles.module.css +8 -9
  30. package/lib-next/theme/BlogSidebar/Mobile/index.js +36 -0
  31. package/lib-next/theme/BlogSidebar/index.js +11 -24
  32. package/lib-next/theme/BlogTagsListPage/index.js +24 -71
  33. package/lib-next/theme/BlogTagsPostsPage/index.js +55 -62
  34. package/lib-next/theme/CodeBlock/Container/index.js +29 -0
  35. package/lib-next/theme/CodeBlock/Container/styles.module.css +14 -0
  36. package/lib-next/theme/CodeBlock/Content/Element.js +23 -0
  37. package/lib-next/theme/CodeBlock/Content/String.js +104 -0
  38. package/{src/theme/CodeBlock → lib-next/theme/CodeBlock/Content}/styles.module.css +47 -32
  39. package/lib-next/theme/CodeBlock/CopyButton/index.js +61 -0
  40. package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  41. package/lib-next/theme/CodeBlock/Line/index.js +49 -0
  42. package/lib-next/theme/CodeBlock/Line/styles.module.css +51 -0
  43. package/lib-next/theme/CodeBlock/WordWrapButton/index.js +40 -0
  44. package/lib-next/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  45. package/lib-next/theme/CodeBlock/index.js +28 -255
  46. package/lib-next/theme/ColorModeToggle/index.js +62 -0
  47. package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
  48. package/lib-next/theme/Details/index.js +21 -0
  49. package/lib-next/theme/Details/styles.module.css +13 -0
  50. package/lib-next/theme/DocBreadcrumbs/index.js +120 -0
  51. package/{lib/theme/Heading/styles.css → lib-next/theme/DocBreadcrumbs/styles.module.css} +9 -13
  52. package/lib-next/theme/DocCard/index.js +93 -0
  53. package/lib-next/theme/DocCard/styles.module.css +34 -0
  54. package/lib-next/theme/DocCardList/index.js +33 -0
  55. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
  56. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  57. package/lib-next/theme/DocItem/index.js +99 -86
  58. package/lib-next/theme/DocItem/styles.module.css +12 -12
  59. package/lib-next/theme/DocItemFooter/index.js +79 -0
  60. package/{lib/theme/Layout/styles.css → lib-next/theme/DocItemFooter/styles.module.css} +8 -11
  61. package/lib-next/theme/DocPage/Layout/Main/index.js +29 -0
  62. package/lib-next/theme/DocPage/Layout/Main/styles.module.css +28 -0
  63. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +34 -0
  64. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  65. package/lib-next/theme/DocPage/Layout/Sidebar/index.js +68 -0
  66. package/lib-next/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  67. package/lib-next/theme/DocPage/Layout/index.js +34 -0
  68. package/{lib/theme/BlogPostItem/styles.module.css → lib-next/theme/DocPage/Layout/index.module.css} +5 -4
  69. package/lib-next/theme/DocPage/index.js +40 -133
  70. package/lib-next/theme/DocPaginator/index.js +29 -41
  71. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  72. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  73. package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
  74. package/lib-next/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  75. package/lib-next/theme/DocSidebar/Desktop/index.js +36 -0
  76. package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
  77. package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
  78. package/lib-next/theme/DocSidebar/index.js +13 -333
  79. package/lib-next/theme/DocSidebarItem/Category.js +197 -0
  80. package/lib-next/theme/DocSidebarItem/Html.js +27 -0
  81. package/lib-next/theme/DocSidebarItem/Html.module.css +13 -0
  82. package/lib-next/theme/DocSidebarItem/Link.js +53 -0
  83. package/lib-next/theme/DocSidebarItem/Link.module.css +10 -0
  84. package/lib-next/theme/DocSidebarItem/index.js +23 -0
  85. package/lib-next/theme/DocSidebarItems/index.js +23 -0
  86. package/lib-next/theme/DocTagDocListPage/index.js +96 -0
  87. package/lib-next/theme/DocTagsListPage/index.js +40 -0
  88. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  89. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +55 -37
  90. package/lib-next/theme/EditThisPage/index.js +6 -1
  91. package/lib-next/theme/ErrorPageContent.js +35 -0
  92. package/lib-next/theme/Footer/Copyright/index.js +18 -0
  93. package/lib-next/theme/Footer/Layout/index.js +26 -0
  94. package/lib-next/theme/Footer/LinkItem/index.js +33 -0
  95. package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
  96. package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
  97. package/lib-next/theme/Footer/Links/index.js +17 -0
  98. package/lib-next/theme/Footer/Logo/index.js +38 -0
  99. package/lib-next/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
  100. package/lib-next/theme/Footer/index.js +12 -100
  101. package/lib-next/theme/Heading/index.js +31 -38
  102. package/lib-next/theme/Heading/styles.module.css +27 -2
  103. package/lib-next/theme/IconArrow/index.js +3 -6
  104. package/lib-next/theme/IconClose/index.js +23 -0
  105. package/lib-next/theme/IconDarkMode/index.js +17 -0
  106. package/lib-next/theme/IconEdit/index.js +5 -10
  107. package/lib-next/theme/IconExternalLink/index.js +23 -0
  108. package/lib-next/theme/{LastUpdated → IconExternalLink}/styles.module.css +2 -2
  109. package/lib-next/theme/IconHome/index.js +17 -0
  110. package/lib-next/theme/IconLanguage/index.js +5 -8
  111. package/lib-next/theme/IconLightMode/index.js +17 -0
  112. package/lib-next/theme/IconMenu/index.js +8 -9
  113. package/lib-next/theme/LastUpdated/index.js +36 -39
  114. package/lib-next/theme/Layout/index.js +19 -16
  115. package/lib-next/theme/Layout/styles.css +6 -0
  116. package/lib-next/theme/LayoutProviders/index.js +22 -10
  117. package/lib-next/theme/Logo/index.js +21 -16
  118. package/lib-next/theme/{ThemeContext.js → MDXComponents/A.js} +4 -2
  119. package/lib-next/theme/MDXComponents/Code.js +28 -0
  120. package/lib-next/theme/MDXComponents/Details.js +20 -0
  121. package/lib-next/theme/MDXComponents/Head.js +26 -0
  122. package/lib-next/theme/MDXComponents/Heading.js +11 -0
  123. package/lib-next/theme/MDXComponents/Img.js +24 -0
  124. package/{lib/theme/LastUpdated/styles.module.css → lib-next/theme/MDXComponents/Img.module.css} +2 -2
  125. package/lib-next/theme/MDXComponents/Pre.js +18 -0
  126. package/lib-next/theme/MDXComponents/Ul.js +21 -0
  127. package/lib-next/theme/MDXComponents/index.js +22 -42
  128. package/lib-next/theme/MDXContent/index.js +12 -0
  129. package/lib-next/theme/MDXPage/index.js +38 -39
  130. package/{lib/theme/IconEdit → lib-next/theme/MDXPage}/styles.module.css +2 -3
  131. package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
  132. package/lib-next/theme/Navbar/Content/index.js +75 -0
  133. package/lib-next/theme/Navbar/Content/styles.module.css +15 -0
  134. package/lib-next/theme/Navbar/Layout/index.js +54 -0
  135. package/{src/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +1 -7
  136. package/lib-next/theme/Navbar/Logo/index.js +17 -0
  137. package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
  138. package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  139. package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  140. package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  141. package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  142. package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
  143. package/lib-next/theme/Navbar/Search/index.js +11 -0
  144. package/lib-next/theme/Navbar/Search/styles.module.css +20 -0
  145. package/lib-next/theme/Navbar/index.js +7 -137
  146. package/lib-next/theme/NavbarItem/ComponentTypes.js +27 -0
  147. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +33 -186
  148. package/lib-next/theme/NavbarItem/DocNavbarItem.js +14 -14
  149. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +41 -0
  150. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +55 -45
  151. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +2 -6
  152. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +167 -0
  153. package/lib-next/theme/NavbarItem/HtmlNavbarItem.js +30 -0
  154. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +16 -22
  155. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  156. package/lib-next/theme/NavbarItem/NavbarNavLink.js +84 -0
  157. package/lib-next/theme/NavbarItem/SearchNavbarItem.js +6 -1
  158. package/lib-next/theme/NavbarItem/index.js +18 -25
  159. package/lib-next/theme/NavbarItem/utils.js +10 -0
  160. package/lib-next/theme/NotFound.js +40 -34
  161. package/lib-next/theme/PaginatorNavLink/index.js +23 -0
  162. package/lib-next/theme/SearchBar.js +1 -1
  163. package/lib-next/theme/SearchMetadata/index.js +34 -0
  164. package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +31 -46
  165. package/lib-next/theme/SkipToContent/index.js +7 -32
  166. package/lib-next/theme/SkipToContent/styles.module.css +8 -3
  167. package/lib-next/theme/TOC/index.js +12 -39
  168. package/lib-next/theme/TOC/styles.module.css +2 -2
  169. package/lib-next/theme/TOCCollapsible/CollapseButton.js +29 -0
  170. package/lib-next/theme/TOCCollapsible/CollapseButton.module.css +29 -0
  171. package/lib-next/theme/TOCCollapsible/index.js +42 -0
  172. package/lib-next/theme/TOCCollapsible/index.module.css +31 -0
  173. package/lib-next/theme/TOCInline/index.js +10 -31
  174. package/lib-next/theme/TOCItems/Tree.js +40 -0
  175. package/lib-next/theme/TOCItems/index.js +54 -0
  176. package/lib-next/theme/TabItem/index.js +4 -5
  177. package/lib-next/theme/TabItem/styles.module.css +10 -0
  178. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  179. package/lib-next/theme/Tabs/index.js +111 -53
  180. package/lib-next/theme/Tabs/styles.module.css +4 -13
  181. package/lib-next/theme/Tag/index.js +23 -0
  182. package/lib-next/theme/Tag/styles.module.css +70 -0
  183. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  184. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  185. package/lib-next/theme/TagsListInline/index.js +31 -0
  186. package/{lib/theme/Heading → lib-next/theme/TagsListInline}/styles.module.css +7 -2
  187. package/lib-next/theme/ThemedImage/index.js +10 -14
  188. package/lib-next/theme/ThemedImage/styles.module.css +9 -2
  189. package/lib-next/theme/prism-include-languages.js +17 -15
  190. package/package.json +37 -31
  191. package/src/admonitions.css +39 -0
  192. package/src/deps.d.ts +13 -0
  193. package/src/getSwizzleConfig.ts +252 -0
  194. package/src/index.ts +76 -75
  195. package/src/nprogress.css +41 -0
  196. package/src/nprogress.ts +31 -0
  197. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  198. package/src/theme/Admonition/index.tsx +106 -0
  199. package/src/theme/AnnouncementBar/index.tsx +11 -20
  200. package/src/theme/AnnouncementBar/styles.module.css +26 -35
  201. package/src/theme/BackToTopButton/index.tsx +34 -0
  202. package/src/theme/BackToTopButton/styles.module.css +44 -0
  203. package/src/theme/BlogArchivePage/index.tsx +92 -0
  204. package/src/theme/BlogLayout/index.tsx +38 -0
  205. package/src/theme/BlogListPage/index.tsx +45 -35
  206. package/src/theme/BlogListPaginator/index.tsx +27 -32
  207. package/src/theme/BlogPostAuthor/index.tsx +50 -0
  208. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  209. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  210. package/src/theme/BlogPostItem/index.tsx +103 -93
  211. package/src/theme/BlogPostItem/styles.module.css +14 -1
  212. package/src/theme/BlogPostPage/index.tsx +84 -42
  213. package/src/theme/BlogPostPaginator/index.tsx +28 -37
  214. package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
  215. package/{lib-next/theme/BlogSidebar → src/theme/BlogSidebar/Desktop}/styles.module.css +8 -9
  216. package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
  217. package/src/theme/BlogSidebar/index.tsx +10 -24
  218. package/src/theme/BlogTagsListPage/index.tsx +24 -71
  219. package/src/theme/BlogTagsPostsPage/index.tsx +57 -65
  220. package/src/theme/CodeBlock/Container/index.tsx +35 -0
  221. package/src/theme/CodeBlock/Container/styles.module.css +14 -0
  222. package/src/theme/CodeBlock/Content/Element.tsx +30 -0
  223. package/src/theme/CodeBlock/Content/String.tsx +111 -0
  224. package/{lib/theme/CodeBlock → src/theme/CodeBlock/Content}/styles.module.css +47 -32
  225. package/src/theme/CodeBlock/CopyButton/index.tsx +67 -0
  226. package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  227. package/src/theme/CodeBlock/Line/index.tsx +48 -0
  228. package/src/theme/CodeBlock/Line/styles.module.css +51 -0
  229. package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
  230. package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  231. package/src/theme/CodeBlock/index.tsx +29 -252
  232. package/src/theme/ColorModeToggle/index.tsx +67 -0
  233. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  234. package/src/theme/Details/index.tsx +25 -0
  235. package/src/theme/Details/styles.module.css +13 -0
  236. package/src/theme/DocBreadcrumbs/index.tsx +140 -0
  237. package/src/theme/{Heading/styles.css → DocBreadcrumbs/styles.module.css} +9 -13
  238. package/src/theme/DocCard/index.tsx +116 -0
  239. package/src/theme/DocCard/styles.module.css +34 -0
  240. package/src/theme/DocCardList/index.tsx +36 -0
  241. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
  242. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  243. package/src/theme/DocItem/index.tsx +93 -79
  244. package/src/theme/DocItem/styles.module.css +12 -12
  245. package/src/theme/DocItemFooter/index.tsx +91 -0
  246. package/src/theme/DocItemFooter/styles.module.css +18 -0
  247. package/src/theme/DocPage/Layout/Main/index.tsx +37 -0
  248. package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
  249. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
  250. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  251. package/src/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  252. package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
  253. package/{lib-next/theme/hooks/styles.css → src/theme/DocPage/Layout/index.module.css} +7 -2
  254. package/src/theme/DocPage/Layout/index.tsx +39 -0
  255. package/src/theme/DocPage/index.tsx +40 -146
  256. package/src/theme/DocPaginator/index.tsx +29 -40
  257. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  258. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  259. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  260. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  261. package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
  262. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  263. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  264. package/src/theme/DocSidebar/index.tsx +14 -343
  265. package/src/theme/DocSidebarItem/Category.tsx +210 -0
  266. package/src/theme/DocSidebarItem/Html.module.css +13 -0
  267. package/src/theme/DocSidebarItem/Html.tsx +34 -0
  268. package/src/theme/DocSidebarItem/Link.module.css +10 -0
  269. package/src/theme/DocSidebarItem/Link.tsx +58 -0
  270. package/src/theme/DocSidebarItem/index.tsx +27 -0
  271. package/src/theme/DocSidebarItems/index.tsx +27 -0
  272. package/src/theme/DocTagDocListPage/index.tsx +96 -0
  273. package/src/theme/DocTagsListPage/index.tsx +44 -0
  274. package/src/theme/DocVersionBadge/index.tsx +35 -0
  275. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +78 -49
  276. package/src/theme/EditThisPage/index.tsx +6 -1
  277. package/src/theme/ErrorPageContent.tsx +41 -0
  278. package/src/theme/Footer/Copyright/index.tsx +20 -0
  279. package/src/theme/Footer/Layout/index.tsx +34 -0
  280. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  281. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  282. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  283. package/src/theme/Footer/Links/index.tsx +21 -0
  284. package/src/theme/Footer/Logo/index.tsx +41 -0
  285. package/{lib/theme/Footer → src/theme/Footer/Logo}/styles.module.css +2 -1
  286. package/src/theme/Footer/index.tsx +13 -113
  287. package/src/theme/Heading/index.tsx +33 -39
  288. package/src/theme/Heading/styles.module.css +27 -2
  289. package/src/theme/IconArrow/index.tsx +3 -5
  290. package/src/theme/IconClose/index.tsx +26 -0
  291. package/src/theme/IconDarkMode/index.tsx +20 -0
  292. package/src/theme/IconEdit/index.tsx +8 -9
  293. package/src/theme/IconExternalLink/index.tsx +30 -0
  294. package/src/theme/IconExternalLink/styles.module.css +10 -0
  295. package/src/theme/IconHome/index.tsx +20 -0
  296. package/src/theme/IconLanguage/index.tsx +6 -8
  297. package/src/theme/IconLightMode/index.tsx +20 -0
  298. package/src/theme/IconMenu/index.tsx +4 -9
  299. package/src/theme/LastUpdated/index.tsx +36 -39
  300. package/src/theme/Layout/index.tsx +19 -15
  301. package/src/theme/Layout/styles.css +6 -0
  302. package/src/theme/LayoutProviders/index.tsx +22 -10
  303. package/src/theme/Logo/index.tsx +21 -15
  304. package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
  305. package/src/theme/MDXComponents/Code.tsx +37 -0
  306. package/src/theme/MDXComponents/Details.tsx +25 -0
  307. package/src/theme/MDXComponents/Head.tsx +29 -0
  308. package/src/theme/MDXComponents/Heading.tsx +14 -0
  309. package/src/theme/{LastUpdated/styles.module.css → MDXComponents/Img.module.css} +2 -2
  310. package/src/theme/MDXComponents/Img.tsx +26 -0
  311. package/src/theme/MDXComponents/Pre.tsx +22 -0
  312. package/src/theme/MDXComponents/Ul.tsx +24 -0
  313. package/src/theme/MDXComponents/index.tsx +23 -42
  314. package/src/theme/MDXContent/index.tsx +15 -0
  315. package/src/theme/MDXPage/index.tsx +39 -39
  316. package/src/theme/MDXPage/styles.module.css +10 -0
  317. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  318. package/src/theme/Navbar/Content/index.tsx +86 -0
  319. package/src/theme/Navbar/Content/styles.module.css +15 -0
  320. package/src/theme/Navbar/Layout/index.tsx +57 -0
  321. package/{lib-next/theme/Navbar → src/theme/Navbar/Layout}/styles.module.css +1 -7
  322. package/src/theme/Navbar/Logo/index.tsx +19 -0
  323. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  324. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  325. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  326. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
  327. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  328. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  329. package/src/theme/Navbar/Search/index.tsx +15 -0
  330. package/src/theme/Navbar/Search/styles.module.css +20 -0
  331. package/src/theme/Navbar/index.tsx +7 -147
  332. package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
  333. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
  334. package/src/theme/NavbarItem/DocNavbarItem.tsx +17 -18
  335. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +44 -0
  336. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +60 -51
  337. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +5 -8
  338. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +193 -0
  339. package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
  340. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +19 -17
  341. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  342. package/src/theme/NavbarItem/NavbarNavLink.tsx +80 -0
  343. package/src/theme/NavbarItem/SearchNavbarItem.tsx +6 -1
  344. package/src/theme/NavbarItem/index.tsx +23 -30
  345. package/src/theme/NavbarItem/utils.ts +13 -0
  346. package/src/theme/NotFound.tsx +40 -33
  347. package/src/theme/PaginatorNavLink/index.tsx +26 -0
  348. package/src/theme/SearchBar.tsx +2 -1
  349. package/src/theme/SearchMetadata/index.tsx +43 -0
  350. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +31 -40
  351. package/src/theme/SkipToContent/index.tsx +7 -32
  352. package/src/theme/SkipToContent/styles.module.css +8 -3
  353. package/src/theme/TOC/index.tsx +13 -44
  354. package/src/theme/TOC/styles.module.css +2 -2
  355. package/src/theme/TOCCollapsible/CollapseButton.module.css +29 -0
  356. package/src/theme/TOCCollapsible/CollapseButton.tsx +35 -0
  357. package/src/theme/TOCCollapsible/index.module.css +31 -0
  358. package/src/theme/TOCCollapsible/index.tsx +45 -0
  359. package/src/theme/TOCInline/index.tsx +14 -35
  360. package/src/theme/TOCItems/Tree.tsx +46 -0
  361. package/src/theme/TOCItems/index.tsx +61 -0
  362. package/src/theme/TabItem/index.tsx +12 -4
  363. package/src/theme/TabItem/styles.module.css +10 -0
  364. package/src/theme/Tabs/index.tsx +120 -62
  365. package/src/theme/Tabs/styles.module.css +4 -13
  366. package/src/theme/Tag/index.tsx +27 -0
  367. package/src/theme/Tag/styles.module.css +70 -0
  368. package/src/theme/TagsListByLetter/index.tsx +43 -0
  369. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  370. package/src/theme/TagsListInline/index.tsx +35 -0
  371. package/src/theme/TagsListInline/styles.module.css +15 -0
  372. package/src/theme/ThemedImage/index.tsx +12 -13
  373. package/src/theme/ThemedImage/styles.module.css +9 -2
  374. package/src/theme/prism-include-languages.ts +20 -15
  375. package/src/theme-classic.d.ts +1279 -0
  376. package/src/translations.ts +84 -58
  377. package/src/validateThemeConfig.ts +448 -0
  378. package/babel.config.js +0 -35
  379. package/codeTranslations/README.md +0 -20
  380. package/codeTranslations/ar.json +0 -55
  381. package/codeTranslations/base.json +0 -108
  382. package/codeTranslations/da.json +0 -55
  383. package/codeTranslations/de.json +0 -55
  384. package/codeTranslations/es.json +0 -55
  385. package/codeTranslations/fa.json +0 -55
  386. package/codeTranslations/fil.json +0 -55
  387. package/codeTranslations/fr.json +0 -55
  388. package/codeTranslations/he.json +0 -55
  389. package/codeTranslations/hi.json +0 -55
  390. package/codeTranslations/ja.json +0 -55
  391. package/codeTranslations/ko.json +0 -55
  392. package/codeTranslations/pl.json +0 -55
  393. package/codeTranslations/pt-BR.json +0 -55
  394. package/codeTranslations/pt-PT.json +0 -55
  395. package/codeTranslations/ru.json +0 -55
  396. package/codeTranslations/tr.json +0 -55
  397. package/codeTranslations/vi.json +0 -55
  398. package/codeTranslations/zh-Hans.json +0 -55
  399. package/codeTranslations/zh-Hant.json +0 -55
  400. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  401. package/lib/__tests__/translations.test.js +0 -112
  402. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  403. package/lib/theme/AnnouncementBar/index.js +0 -74
  404. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  405. package/lib/theme/BlogListPage/index.js +0 -71
  406. package/lib/theme/BlogListPaginator/index.js +0 -63
  407. package/lib/theme/BlogPostItem/index.js +0 -152
  408. package/lib/theme/BlogPostPage/index.js +0 -75
  409. package/lib/theme/BlogPostPaginator/index.js +0 -64
  410. package/lib/theme/BlogSidebar/index.js +0 -43
  411. package/lib/theme/BlogTagsListPage/index.js +0 -81
  412. package/lib/theme/BlogTagsPostsPage/index.js +0 -104
  413. package/lib/theme/CodeBlock/index.js +0 -253
  414. package/lib/theme/DocItem/index.js +0 -120
  415. package/lib/theme/DocItem/styles.module.css +0 -28
  416. package/lib/theme/DocPage/index.js +0 -141
  417. package/lib/theme/DocPage/styles.module.css +0 -98
  418. package/lib/theme/DocPaginator/index.js +0 -63
  419. package/lib/theme/DocSidebar/index.js +0 -307
  420. package/lib/theme/DocSidebar/styles.module.css +0 -138
  421. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  422. package/lib/theme/EditThisPage/index.js +0 -31
  423. package/lib/theme/Footer/index.js +0 -108
  424. package/lib/theme/Heading/index.js +0 -60
  425. package/lib/theme/IconArrow/index.js +0 -28
  426. package/lib/theme/IconEdit/index.js +0 -34
  427. package/lib/theme/IconLanguage/index.js +0 -29
  428. package/lib/theme/IconMenu/index.js +0 -31
  429. package/lib/theme/LastUpdated/index.js +0 -65
  430. package/lib/theme/Layout/index.js +0 -64
  431. package/lib/theme/LayoutHead/index.js +0 -142
  432. package/lib/theme/LayoutProviders/index.js +0 -34
  433. package/lib/theme/Logo/index.js +0 -59
  434. package/lib/theme/MDXComponents/index.js +0 -65
  435. package/lib/theme/MDXPage/index.js +0 -68
  436. package/lib/theme/Navbar/index.js +0 -147
  437. package/lib/theme/Navbar/styles.module.css +0 -20
  438. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
  439. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
  440. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
  441. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  442. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  443. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  444. package/lib/theme/NavbarItem/index.js +0 -54
  445. package/lib/theme/NotFound.js +0 -50
  446. package/lib/theme/SearchBar.js +0 -15
  447. package/lib/theme/SearchMetadatas/index.js +0 -33
  448. package/lib/theme/Seo/index.js +0 -50
  449. package/lib/theme/SkipToContent/index.js +0 -61
  450. package/lib/theme/SkipToContent/styles.module.css +0 -16
  451. package/lib/theme/TOC/index.js +0 -59
  452. package/lib/theme/TOC/styles.module.css +0 -23
  453. package/lib/theme/TOCInline/index.js +0 -53
  454. package/lib/theme/TOCInline/styles.module.css +0 -12
  455. package/lib/theme/TabItem/index.js +0 -32
  456. package/lib/theme/Tabs/index.js +0 -150
  457. package/lib/theme/Tabs/styles.module.css +0 -23
  458. package/lib/theme/ThemeContext.js +0 -21
  459. package/lib/theme/ThemeProvider/index.js +0 -38
  460. package/lib/theme/ThemedImage/index.js +0 -48
  461. package/lib/theme/ThemedImage/styles.module.css +0 -11
  462. package/lib/theme/Toggle/index.js +0 -106
  463. package/lib/theme/Toggle/styles.module.css +0 -114
  464. package/lib/theme/UserPreferencesContext.js +0 -18
  465. package/lib/theme/UserPreferencesProvider/index.js +0 -44
  466. package/lib/theme/hooks/styles.css +0 -10
  467. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  468. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  469. package/lib/theme/hooks/useDocs.js +0 -18
  470. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  471. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  472. package/lib/theme/hooks/useLocationHash.js +0 -28
  473. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  474. package/lib/theme/hooks/usePrismTheme.js +0 -36
  475. package/lib/theme/hooks/useScrollPosition.js +0 -49
  476. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  477. package/lib/theme/hooks/useTabGroupChoice.js +0 -53
  478. package/lib/theme/hooks/useTheme.js +0 -99
  479. package/lib/theme/hooks/useThemeContext.js +0 -31
  480. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  481. package/lib/theme/hooks/useWindowSize.js +0 -55
  482. package/lib/theme/prism-include-languages.js +0 -39
  483. package/lib/types.d.ts +0 -600
  484. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  485. package/lib-next/__tests__/translations.test.js +0 -128
  486. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  487. package/lib-next/index.js +0 -198
  488. package/lib-next/theme/CodeBlock/styles.module.css +0 -71
  489. package/lib-next/theme/DocPage/styles.module.css +0 -98
  490. package/lib-next/theme/DocSidebar/styles.module.css +0 -138
  491. package/lib-next/theme/Heading/styles.css +0 -23
  492. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  493. package/lib-next/theme/Seo/index.js +0 -37
  494. package/lib-next/theme/ThemeProvider/index.js +0 -25
  495. package/lib-next/theme/Toggle/index.js +0 -95
  496. package/lib-next/theme/Toggle/styles.module.css +0 -114
  497. package/lib-next/theme/UserPreferencesContext.js +0 -9
  498. package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
  499. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  500. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  501. package/lib-next/theme/hooks/useDocs.js +0 -10
  502. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  503. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  504. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  505. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  506. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  507. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  508. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  509. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
  510. package/lib-next/theme/hooks/useTheme.js +0 -82
  511. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  512. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  513. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  514. package/lib-next/translations.js +0 -145
  515. package/lib-next/types.d.ts +0 -600
  516. package/lib-next/validateThemeConfig.js +0 -317
  517. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  518. package/src/__tests__/translations.test.ts +0 -116
  519. package/src/__tests__/validateThemeConfig.test.js +0 -333
  520. package/src/prism-include-languages.js +0 -11
  521. package/src/theme/BlogSidebar/styles.module.css +0 -46
  522. package/src/theme/DocPage/styles.module.css +0 -98
  523. package/src/theme/DocSidebar/styles.module.css +0 -138
  524. package/src/theme/Footer/styles.module.css +0 -15
  525. package/src/theme/SearchMetadatas/index.tsx +0 -28
  526. package/src/theme/Seo/index.tsx +0 -47
  527. package/src/theme/ThemeProvider/index.tsx +0 -24
  528. package/src/theme/Toggle/index.tsx +0 -113
  529. package/src/theme/Toggle/styles.module.css +0 -114
  530. package/src/theme/UserPreferencesContext.ts +0 -12
  531. package/src/theme/UserPreferencesProvider/index.tsx +0 -32
  532. package/src/theme/hooks/styles.css +0 -10
  533. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  534. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  535. package/src/theme/hooks/useDocs.ts +0 -11
  536. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  537. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  538. package/src/theme/hooks/useLocationHash.ts +0 -25
  539. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  540. package/src/theme/hooks/usePrismTheme.ts +0 -22
  541. package/src/theme/hooks/useScrollPosition.ts +0 -45
  542. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  543. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  544. package/src/theme/hooks/useTheme.ts +0 -92
  545. package/src/theme/hooks/useThemeContext.ts +0 -23
  546. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  547. package/src/theme/hooks/useWindowSize.ts +0 -51
  548. package/src/types.d.ts +0 -600
  549. package/src/validateThemeConfig.js +0 -317
  550. package/tsconfig.json +0 -12
  551. package/update-code-translations.js +0 -239
  552. package/update-code-translations.test.js +0 -33
@@ -4,20 +4,22 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
8
7
  import siteConfig from '@generated/docusaurus.config';
8
+ export default function prismIncludeLanguages(PrismObject) {
9
+ const {
10
+ themeConfig: {prism},
11
+ } = siteConfig;
12
+ const {additionalLanguages} = prism; // Prism components work on the Prism instance on the window, while prism-
13
+ // react-renderer uses its own Prism instance. We temporarily mount the
14
+ // instance onto window, import components to enhance it, then remove it to
15
+ // avoid polluting global namespace.
16
+ // You can mutate PrismObject: registering plugins, deleting languages... As
17
+ // long as you don't re-assign it
9
18
 
10
- const prismIncludeLanguages = (PrismObject) => {
11
- if (ExecutionEnvironment.canUseDOM) {
12
- const {
13
- themeConfig: {prism: {additionalLanguages = []} = {}},
14
- } = siteConfig;
15
- window.Prism = PrismObject;
16
- additionalLanguages.forEach((lang) => {
17
- require(`prismjs/components/prism-${lang}`); // eslint-disable-line
18
- });
19
- delete window.Prism;
20
- }
21
- };
22
-
23
- export default prismIncludeLanguages;
19
+ globalThis.Prism = PrismObject;
20
+ additionalLanguages.forEach((lang) => {
21
+ // eslint-disable-next-line global-require, import/no-dynamic-require
22
+ require(`prismjs/components/prism-${lang}`);
23
+ });
24
+ delete globalThis.Prism;
25
+ }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-classic",
3
- "version": "2.0.0-beta.1decd6f80",
3
+ "version": "2.0.0-beta.20",
4
4
  "description": "Classic theme for Docusaurus",
5
5
  "main": "lib/index.js",
6
- "types": "src/types.d.ts",
6
+ "types": "src/theme-classic.d.ts",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -14,49 +14,55 @@
14
14
  },
15
15
  "license": "MIT",
16
16
  "scripts": {
17
- "build": "tsc --noEmit && yarn babel:lib && yarn babel:lib-next && yarn prettier:lib-next",
18
- "watch": "concurrently -n \"lib,lib-next\" --kill-others \"yarn babel:lib --watch\" \"yarn babel:lib-next --watch\"",
17
+ "build": "tsc --noEmit && yarn babel:lib && yarn babel:lib-next && yarn format:lib-next",
18
+ "watch": "concurrently --names \"lib,lib-next,tsc\" --kill-others \"yarn babel:lib --watch\" \"yarn babel:lib-next --watch\" \"yarn tsc --watch\"",
19
19
  "babel:lib": "cross-env BABEL_ENV=lib babel src -d lib --extensions \".tsx,.ts\" --ignore \"**/*.d.ts\" --copy-files",
20
20
  "babel:lib-next": "cross-env BABEL_ENV=lib-next babel src -d lib-next --extensions \".tsx,.ts\" --ignore \"**/*.d.ts\" --copy-files",
21
- "prettier": "prettier --config ../../.prettierrc --ignore-path ../../.prettierignore --write \"**/*.{js,ts,jsx,tsc}\"",
22
- "prettier:lib-next": "prettier --config ../../.prettierrc --write \"lib-next/**/*.{js,ts,jsx,tsc}\"",
23
- "update-code-translations": "node -e 'require(\"./update-code-translations.js\").run()'"
21
+ "format:lib-next": "prettier --config ../../.prettierrc --write \"lib-next/**/*.{js,ts,jsx,tsc}\""
24
22
  },
25
23
  "dependencies": {
26
- "@docusaurus/core": "2.0.0-beta.1decd6f80",
27
- "@docusaurus/plugin-content-blog": "2.0.0-beta.1decd6f80",
28
- "@docusaurus/plugin-content-docs": "2.0.0-beta.1decd6f80",
29
- "@docusaurus/plugin-content-pages": "2.0.0-beta.1decd6f80",
30
- "@docusaurus/theme-common": "2.0.0-beta.1decd6f80",
31
- "@docusaurus/types": "2.0.0-beta.1decd6f80",
32
- "@docusaurus/utils": "2.0.0-beta.1decd6f80",
33
- "@docusaurus/utils-validation": "2.0.0-beta.1decd6f80",
34
- "@mdx-js/mdx": "^1.6.21",
35
- "@mdx-js/react": "^1.6.21",
36
- "chalk": "^4.1.1",
24
+ "@docusaurus/core": "2.0.0-beta.20",
25
+ "@docusaurus/plugin-content-blog": "2.0.0-beta.20",
26
+ "@docusaurus/plugin-content-docs": "2.0.0-beta.20",
27
+ "@docusaurus/plugin-content-pages": "2.0.0-beta.20",
28
+ "@docusaurus/theme-common": "2.0.0-beta.20",
29
+ "@docusaurus/theme-translations": "2.0.0-beta.20",
30
+ "@docusaurus/utils": "2.0.0-beta.20",
31
+ "@docusaurus/utils-common": "2.0.0-beta.20",
32
+ "@docusaurus/utils-validation": "2.0.0-beta.20",
33
+ "@mdx-js/react": "^1.6.22",
37
34
  "clsx": "^1.1.1",
38
35
  "copy-text-to-clipboard": "^3.0.1",
39
- "fs-extra": "^10.0.0",
40
- "globby": "^11.0.2",
41
- "infima": "0.2.0-alpha.24",
42
- "lodash": "^4.17.20",
43
- "parse-numeric-range": "^1.2.0",
44
- "postcss": "^8.2.15",
45
- "prism-react-renderer": "^1.2.1",
46
- "prismjs": "^1.23.0",
47
- "prop-types": "^15.7.2",
36
+ "infima": "0.2.0-alpha.39",
37
+ "lodash": "^4.17.21",
38
+ "nprogress": "^0.2.0",
39
+ "postcss": "^8.4.13",
40
+ "prism-react-renderer": "^1.3.1",
41
+ "prismjs": "^1.28.0",
48
42
  "react-router-dom": "^5.2.0",
49
- "rtlcss": "^3.1.2"
43
+ "rtlcss": "^3.5.0"
50
44
  },
51
45
  "devDependencies": {
52
- "@docusaurus/module-type-aliases": "2.0.0-beta.1decd6f80"
46
+ "@babel/cli": "^7.17.10",
47
+ "@babel/core": "^7.17.10",
48
+ "@babel/preset-typescript": "^7.16.7",
49
+ "@docusaurus/module-type-aliases": "2.0.0-beta.20",
50
+ "@docusaurus/types": "2.0.0-beta.20",
51
+ "@types/mdx-js__react": "^1.5.5",
52
+ "@types/nprogress": "^0.2.0",
53
+ "@types/prismjs": "^1.26.0",
54
+ "@types/rtlcss": "^3.1.4",
55
+ "cross-env": "^7.0.3",
56
+ "fs-extra": "^10.1.0",
57
+ "react-test-renderer": "^17.0.2",
58
+ "utility-types": "^3.10.0"
53
59
  },
54
60
  "peerDependencies": {
55
61
  "react": "^16.8.4 || ^17.0.0",
56
62
  "react-dom": "^16.8.4 || ^17.0.0"
57
63
  },
58
64
  "engines": {
59
- "node": ">=12.13.0"
65
+ "node": ">=14"
60
66
  },
61
- "gitHead": "0f82d5997e05666fa8c0e8852e551c1a8ffe3876"
67
+ "gitHead": "ed5cdba401a5948e187e927039b142a0decc702d"
62
68
  }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .admonition h5 {
9
+ margin-top: 0;
10
+ margin-bottom: 8px;
11
+ text-transform: uppercase;
12
+ }
13
+
14
+ .admonition h5 code {
15
+ text-transform: none;
16
+ }
17
+
18
+ .admonition-icon {
19
+ display: inline-block;
20
+ vertical-align: middle;
21
+ margin-right: 0.4em;
22
+ }
23
+
24
+ .admonition-icon svg {
25
+ display: inline-block;
26
+ width: 22px;
27
+ height: 22px;
28
+ stroke-width: 0;
29
+ fill: var(--ifm-alert-foreground-color);
30
+ stroke: var(--ifm-alert-foreground-color);
31
+ }
32
+
33
+ .admonition-content > :last-child {
34
+ margin-bottom: 0;
35
+ }
36
+
37
+ .admonition {
38
+ margin-bottom: 1em;
39
+ }
package/src/deps.d.ts ADDED
@@ -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
+ declare module 'prism-react-renderer/prism' {
9
+ import type * as PrismNamespace from 'prismjs';
10
+
11
+ const Prism: typeof PrismNamespace;
12
+ export default Prism;
13
+ }
@@ -0,0 +1,252 @@
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
+ import type {SwizzleConfig} from '@docusaurus/types';
9
+
10
+ /* eslint sort-keys: "error" */
11
+
12
+ export default function getSwizzleConfig(): SwizzleConfig {
13
+ return {
14
+ components: {
15
+ CodeBlock: {
16
+ actions: {
17
+ eject: 'safe',
18
+ wrap: 'safe',
19
+ },
20
+ description:
21
+ 'The component used to render multi-line code blocks, generally used in Markdown files.',
22
+ },
23
+ ColorModeToggle: {
24
+ actions: {
25
+ eject: 'safe',
26
+ wrap: 'safe',
27
+ },
28
+ description:
29
+ 'The color mode toggle to switch between light and dark mode.',
30
+ },
31
+ DocSidebar: {
32
+ actions: {
33
+ eject: 'unsafe', // Too much technical code in sidebar, not very safe atm
34
+ wrap: 'safe',
35
+ },
36
+ description: 'The sidebar component on docs pages',
37
+ },
38
+ Footer: {
39
+ actions: {
40
+ eject: 'safe',
41
+ wrap: 'safe',
42
+ },
43
+ description: "The footer component of you site's layout",
44
+ },
45
+ 'Footer/Copyright': {
46
+ actions: {
47
+ eject: 'safe',
48
+ wrap: 'safe',
49
+ },
50
+ description: 'The footer copyright',
51
+ },
52
+ 'Footer/Layout': {
53
+ actions: {
54
+ eject: 'safe',
55
+ wrap: 'safe',
56
+ },
57
+ description: 'The footer main layout component',
58
+ },
59
+ 'Footer/LinkItem': {
60
+ actions: {
61
+ eject: 'safe',
62
+ wrap: 'safe',
63
+ },
64
+ description: 'The footer link item component',
65
+ },
66
+ 'Footer/Links': {
67
+ actions: {
68
+ eject: 'safe',
69
+ wrap: 'safe',
70
+ },
71
+ description: 'The footer component rendering the footer links',
72
+ },
73
+ 'Footer/Links/MultiColumn': {
74
+ actions: {
75
+ eject: 'safe',
76
+ wrap: 'safe',
77
+ },
78
+ description:
79
+ 'The footer component rendering the footer links with a multi-column layout',
80
+ },
81
+ 'Footer/Links/Simple': {
82
+ actions: {
83
+ eject: 'safe',
84
+ wrap: 'safe',
85
+ },
86
+ description:
87
+ 'The footer component rendering the footer links with a simple layout (single row)',
88
+ },
89
+ 'Footer/Logo': {
90
+ actions: {
91
+ eject: 'safe',
92
+ wrap: 'safe',
93
+ },
94
+ description: 'The footer logo',
95
+ },
96
+ IconArrow: {
97
+ actions: {
98
+ eject: 'safe',
99
+ wrap: 'safe',
100
+ },
101
+ description: 'The arrow icon component',
102
+ },
103
+ IconDarkMode: {
104
+ actions: {
105
+ eject: 'safe',
106
+ wrap: 'safe',
107
+ },
108
+ description: 'The dark mode icon component.',
109
+ },
110
+ IconEdit: {
111
+ actions: {
112
+ eject: 'safe',
113
+ wrap: 'safe',
114
+ },
115
+ description: 'The edit icon component',
116
+ },
117
+ IconLightMode: {
118
+ actions: {
119
+ eject: 'safe',
120
+ wrap: 'safe',
121
+ },
122
+ description: 'The light mode icon component.',
123
+ },
124
+ IconMenu: {
125
+ actions: {
126
+ eject: 'safe',
127
+ wrap: 'safe',
128
+ },
129
+ description: 'The menu icon component',
130
+ },
131
+ MDXComponents: {
132
+ actions: {
133
+ eject: 'safe',
134
+ wrap: 'forbidden', /// TODO allow wrapping objects???
135
+ },
136
+ description:
137
+ 'The MDX components to use for rendering MDX files. Meant to be ejected.',
138
+ },
139
+ 'MDXComponents/A': {
140
+ actions: {
141
+ eject: 'safe',
142
+ wrap: 'safe',
143
+ },
144
+ description:
145
+ 'The component used to render <a> tags and Markdown links in MDX',
146
+ },
147
+ 'MDXComponents/Code': {
148
+ actions: {
149
+ eject: 'safe',
150
+ wrap: 'safe',
151
+ },
152
+ description:
153
+ 'The component used to render <code> tags and Markdown code blocks in MDX',
154
+ },
155
+ 'MDXComponents/Details': {
156
+ actions: {
157
+ eject: 'safe',
158
+ wrap: 'safe',
159
+ },
160
+ description: 'The component used to render <details> tags in MDX',
161
+ },
162
+ 'MDXComponents/Head': {
163
+ actions: {
164
+ eject: 'forbidden',
165
+ wrap: 'forbidden',
166
+ },
167
+ description:
168
+ 'Technical component used to assign metadata (generally for SEO purpose) to the current MDX document',
169
+ },
170
+ 'MDXComponents/Heading': {
171
+ actions: {
172
+ eject: 'safe',
173
+ wrap: 'safe',
174
+ },
175
+ description:
176
+ 'The component used to render heading tags (<h1>, <h2>...) and Markdown headings in MDX',
177
+ },
178
+ 'MDXComponents/Img': {
179
+ actions: {
180
+ eject: 'safe',
181
+ wrap: 'safe',
182
+ },
183
+ description:
184
+ 'The component used to render <img> tags and Markdown images in MDX',
185
+ },
186
+ 'MDXComponents/Pre': {
187
+ actions: {
188
+ eject: 'safe',
189
+ wrap: 'safe',
190
+ },
191
+ description: 'The component used to render <pre> tags in MDX',
192
+ },
193
+ 'MDXComponents/Ul': {
194
+ actions: {
195
+ eject: 'safe',
196
+ wrap: 'safe',
197
+ },
198
+ description:
199
+ 'The component used to render <ul> tags and Markdown unordered lists in MDX',
200
+ },
201
+ MDXContent: {
202
+ actions: {
203
+ eject: 'safe',
204
+ wrap: 'safe',
205
+ },
206
+ description:
207
+ 'A component wrapping all MDX content and providing the MDXComponents to the MDX context',
208
+ },
209
+ 'NavbarItem/ComponentTypes': {
210
+ actions: {
211
+ eject: 'safe',
212
+ wrap: 'forbidden',
213
+ },
214
+ description:
215
+ 'The Navbar item components mapping. Can be ejected to add custom navbar item types. See https://github.com/facebook/docusaurus/issues/7227.',
216
+ },
217
+ // TODO should probably not even appear here
218
+ 'NavbarItem/utils': {
219
+ actions: {
220
+ eject: 'forbidden',
221
+ wrap: 'forbidden',
222
+ },
223
+ },
224
+ NotFound: {
225
+ actions: {
226
+ eject: 'safe',
227
+ wrap: 'safe',
228
+ },
229
+ description:
230
+ 'The global 404 page of your site, meant to be ejected and customized',
231
+ },
232
+ SearchBar: {
233
+ actions: {
234
+ eject: 'safe',
235
+ wrap: 'safe',
236
+ },
237
+ // TODO how to describe this one properly?
238
+ // By default it's an empty placeholder for the user to fill
239
+ description:
240
+ 'The search bar component of your site, appearing in the navbar.',
241
+ },
242
+ 'prism-include-languages': {
243
+ actions: {
244
+ eject: 'safe',
245
+ wrap: 'forbidden', // Not a component!
246
+ },
247
+ description:
248
+ 'The Prism languages to include for code block syntax highlighting. Meant to be ejected.',
249
+ },
250
+ },
251
+ };
252
+ }
package/src/index.ts CHANGED
@@ -5,28 +5,29 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import {DocusaurusContext, Plugin} from '@docusaurus/types';
9
- import {ThemeConfig} from '@docusaurus/theme-common';
8
+ import type {LoadContext, Plugin} from '@docusaurus/types';
9
+ import type {ThemeConfig} from '@docusaurus/theme-common';
10
10
  import {getTranslationFiles, translateThemeConfig} from './translations';
11
- import path from 'path';
12
- import Module from 'module';
13
- import type {AcceptedPlugin, Result, Plugin as PostCssPlugin} from 'postcss';
11
+ import {createRequire} from 'module';
12
+ import type {Plugin as PostCssPlugin} from 'postcss';
14
13
  import rtlcss from 'rtlcss';
15
- import {readDefaultCodeTranslationMessages} from '@docusaurus/utils';
14
+ import {readDefaultCodeTranslationMessages} from '@docusaurus/theme-translations';
15
+ import type {Options} from '@docusaurus/theme-classic';
16
+ import type webpack from 'webpack';
16
17
 
17
- const createRequire = Module.createRequire || Module.createRequireFromPath;
18
18
  const requireFromDocusaurusCore = createRequire(
19
19
  require.resolve('@docusaurus/core/package.json'),
20
20
  );
21
- const ContextReplacementPlugin = requireFromDocusaurusCore(
22
- 'webpack/lib/ContextReplacementPlugin',
23
- );
21
+ const ContextReplacementPlugin: typeof webpack.ContextReplacementPlugin =
22
+ requireFromDocusaurusCore('webpack/lib/ContextReplacementPlugin');
24
23
 
25
24
  // Need to be inlined to prevent dark mode FOUC
26
- // Make sure that the 'storageKey' is the same as the one in `/theme/hooks/useTheme.js`
27
- const storageKey = 'theme';
28
- const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
29
- return `(function() {
25
+ // Make sure the key is the same as the one in `/theme/hooks/useTheme.js`
26
+ const ThemeStorageKey = 'theme';
27
+ const noFlashColorMode = ({
28
+ defaultMode,
29
+ respectPrefersColorScheme,
30
+ }: ThemeConfig['colorMode']) => `(function() {
30
31
  var defaultMode = '${defaultMode}';
31
32
  var respectPrefersColorScheme = ${respectPrefersColorScheme};
32
33
 
@@ -37,7 +38,7 @@ const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
37
38
  function getStoredTheme() {
38
39
  var theme = null;
39
40
  try {
40
- theme = localStorage.getItem('${storageKey}');
41
+ theme = localStorage.getItem('${ThemeStorageKey}');
41
42
  } catch (err) {}
42
43
  return theme;
43
44
  }
@@ -61,66 +62,83 @@ const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
61
62
  }
62
63
  }
63
64
  })();`;
64
- };
65
65
 
66
- function getInfimaCSSFile(direction) {
66
+ // Duplicated constant. Unfortunately we can't import it from theme-common, as
67
+ // we need to support older nodejs versions without ESM support
68
+ // TODO: import from theme-common once we only support Node.js with ESM support
69
+ // + move all those announcementBar stuff there too
70
+ export const AnnouncementBarDismissStorageKey =
71
+ 'docusaurus.announcement.dismiss';
72
+ const AnnouncementBarDismissDataAttribute =
73
+ 'data-announcement-bar-initially-dismissed';
74
+ // We always render the announcement bar html on the server, to prevent layout
75
+ // shifts on React hydration. The theme can use CSS + the data attribute to hide
76
+ // the announcement bar asap (before React hydration)
77
+ const AnnouncementBarInlineJavaScript = `
78
+ (function() {
79
+ function isDismissed() {
80
+ try {
81
+ return localStorage.getItem('${AnnouncementBarDismissStorageKey}') === 'true';
82
+ } catch (err) {}
83
+ return false;
84
+ }
85
+ document.documentElement.setAttribute('${AnnouncementBarDismissDataAttribute}', isDismissed());
86
+ })();`;
87
+
88
+ function getInfimaCSSFile(direction: string) {
67
89
  return `infima/dist/css/default/default${
68
90
  direction === 'rtl' ? '-rtl' : ''
69
91
  }.css`;
70
92
  }
71
93
 
72
- type PluginOptions = {
73
- customCss?: string;
74
- };
75
-
76
- export default function docusaurusThemeClassic(
77
- context: DocusaurusContext, // TODO: LoadContext is missing some of properties
78
- options: PluginOptions,
79
- ): Plugin<void> {
94
+ export default function themeClassic(
95
+ context: LoadContext,
96
+ options: Options,
97
+ ): Plugin<undefined> {
80
98
  const {
81
- siteConfig: {themeConfig: roughlyTypedThemeConfig},
82
99
  i18n: {currentLocale, localeConfigs},
83
100
  } = context;
84
- const themeConfig = (roughlyTypedThemeConfig || {}) as ThemeConfig;
85
- const {colorMode, prism: {additionalLanguages = []} = {}} = themeConfig;
86
- const {customCss} = options || {};
87
- const {direction} = localeConfigs[currentLocale];
101
+ const themeConfig = context.siteConfig.themeConfig as ThemeConfig;
102
+ const {
103
+ announcementBar,
104
+ colorMode,
105
+ prism: {additionalLanguages},
106
+ } = themeConfig;
107
+ const {customCss} = options ?? {};
108
+ const {direction} = localeConfigs[currentLocale]!;
88
109
 
89
110
  return {
90
111
  name: 'docusaurus-theme-classic',
91
112
 
92
- /*
93
- Does not seem needed: webpack can already hot reload theme files
94
- getPathsToWatch() {
95
- return [
96
- path.join(__dirname, '..', 'lib'),
97
- path.join(__dirname, '..', 'lib-next'),
98
- ];
99
- },
100
- */
101
-
102
113
  getThemePath() {
103
- return path.join(__dirname, '..', 'lib-next', 'theme');
114
+ return '../lib-next/theme';
104
115
  },
105
116
 
106
117
  getTypeScriptThemePath() {
107
- return path.resolve(__dirname, '..', 'src', 'theme');
118
+ return '../src/theme';
108
119
  },
109
120
 
110
- getTranslationFiles: async () => getTranslationFiles({themeConfig}),
111
- translateThemeConfig,
121
+ getTranslationFiles: () => getTranslationFiles({themeConfig}),
122
+
123
+ translateThemeConfig: (params) =>
124
+ translateThemeConfig({
125
+ themeConfig: params.themeConfig as ThemeConfig,
126
+ translationFiles: params.translationFiles,
127
+ }),
112
128
 
113
- getDefaultCodeTranslationMessages: () => {
129
+ getDefaultCodeTranslationMessages() {
114
130
  return readDefaultCodeTranslationMessages({
115
- dirPath: path.resolve(__dirname, '..', 'codeTranslations'),
116
131
  locale: currentLocale,
132
+ name: 'theme-common',
117
133
  });
118
134
  },
119
135
 
120
136
  getClientModules() {
121
137
  const modules = [
122
138
  require.resolve(getInfimaCSSFile(direction)),
123
- path.resolve(__dirname, './prism-include-languages'),
139
+ './prism-include-languages',
140
+ './admonitions.css',
141
+ './nprogress',
124
142
  ];
125
143
 
126
144
  if (customCss) {
@@ -140,11 +158,10 @@ export default function docusaurusThemeClassic(
140
158
  .join('|');
141
159
 
142
160
  return {
143
- ignoreWarnings: [
144
- // See https://github.com/facebook/docusaurus/pull/3382
145
- (e) => e.message.includes("Can't resolve '@theme-init/hooks/useDocs"),
146
- ],
147
161
  plugins: [
162
+ // This allows better optimization by only bundling those components
163
+ // that the user actually needs, because the modules are dynamically
164
+ // required and can't be known during compile time.
148
165
  new ContextReplacementPlugin(
149
166
  /prismjs[\\/]components$/,
150
167
  new RegExp(`^./(${prismLanguages})$`),
@@ -153,18 +170,18 @@ export default function docusaurusThemeClassic(
153
170
  };
154
171
  },
155
172
 
156
- configurePostCss(postCssOptions: {plugins: AcceptedPlugin[]}) {
173
+ configurePostCss(postCssOptions) {
157
174
  if (direction === 'rtl') {
158
175
  const resolvedInfimaFile = require.resolve(getInfimaCSSFile(direction));
159
176
  const plugin: PostCssPlugin = {
160
177
  postcssPlugin: 'RtlCssPlugin',
161
- prepare: (result: Result) => {
178
+ prepare: (result) => {
162
179
  const file = result.root?.source?.input?.file;
163
180
  // Skip Infima as we are using the its RTL version.
164
181
  if (file === resolvedInfimaFile) {
165
182
  return {};
166
183
  }
167
- return rtlcss(result.root);
184
+ return rtlcss(result.root as unknown as rtlcss.ConfigOptions);
168
185
  },
169
186
  };
170
187
  postCssOptions.plugins.push(plugin);
@@ -178,10 +195,10 @@ export default function docusaurusThemeClassic(
178
195
  preBodyTags: [
179
196
  {
180
197
  tagName: 'script',
181
- attributes: {
182
- type: 'text/javascript',
183
- },
184
- innerHTML: noFlashColorMode(colorMode),
198
+ innerHTML: `
199
+ ${noFlashColorMode(colorMode)}
200
+ ${announcementBar ? AnnouncementBarInlineJavaScript : ''}
201
+ `,
185
202
  },
186
203
  ],
187
204
  };
@@ -189,21 +206,5 @@ export default function docusaurusThemeClassic(
189
206
  };
190
207
  }
191
208
 
192
- const swizzleAllowedComponents = [
193
- 'CodeBlock',
194
- 'DocSidebar',
195
- 'Footer',
196
- 'NotFound',
197
- 'SearchBar',
198
- 'IconArrow',
199
- 'IconEdit',
200
- 'IconMenu',
201
- 'hooks/useTheme',
202
- 'prism-include-languages',
203
- ];
204
-
205
- export function getSwizzleComponentList(): string[] {
206
- return swizzleAllowedComponents;
207
- }
208
-
209
+ export {default as getSwizzleConfig} from './getSwizzleConfig';
209
210
  export {validateThemeConfig} from './validateThemeConfig';