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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (549) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +39 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +243 -0
  5. package/lib/index.js +42 -52
  6. package/lib/nprogress.css +41 -0
  7. package/lib/nprogress.js +46 -0
  8. package/lib/prism-include-languages.js +9 -5
  9. package/lib/theme-classic.d.ts +1279 -0
  10. package/lib/translations.js +52 -36
  11. package/lib/validateThemeConfig.js +298 -248
  12. package/lib-next/theme/Admonition/index.js +101 -0
  13. package/lib-next/theme/AnnouncementBar/index.js +8 -16
  14. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  15. package/lib-next/theme/BackToTopButton/index.js +33 -0
  16. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  17. package/lib-next/theme/BlogArchivePage/index.js +84 -0
  18. package/lib-next/theme/BlogLayout/index.js +33 -0
  19. package/lib-next/theme/BlogListPage/index.js +45 -35
  20. package/lib-next/theme/BlogListPaginator/index.js +27 -33
  21. package/lib-next/theme/BlogPostAuthor/index.js +49 -0
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/{lib/theme/Toggle → lib-next/theme/BlogPostAuthors}/styles.module.css +11 -7
  24. package/lib-next/theme/BlogPostItem/index.js +96 -98
  25. package/lib-next/theme/BlogPostItem/styles.module.css +9 -0
  26. package/lib-next/theme/BlogPostPage/index.js +84 -37
  27. package/lib-next/theme/BlogPostPaginator/index.js +27 -37
  28. package/lib-next/theme/BlogSidebar/Desktop/index.js +41 -0
  29. package/{lib/theme/BlogSidebar → lib-next/theme/BlogSidebar/Desktop}/styles.module.css +5 -4
  30. package/lib-next/theme/BlogSidebar/Mobile/index.js +36 -0
  31. package/lib-next/theme/BlogSidebar/index.js +11 -33
  32. package/lib-next/theme/BlogTagsListPage/index.js +24 -65
  33. package/lib-next/theme/BlogTagsPostsPage/index.js +45 -48
  34. package/lib-next/theme/CodeBlock/Container/index.js +29 -0
  35. package/lib-next/theme/CodeBlock/Container/styles.module.css +14 -0
  36. package/lib-next/theme/CodeBlock/Content/Element.js +23 -0
  37. package/lib-next/theme/CodeBlock/Content/String.js +104 -0
  38. package/{lib/theme/CodeBlock → lib-next/theme/CodeBlock/Content}/styles.module.css +45 -27
  39. package/lib-next/theme/CodeBlock/CopyButton/index.js +61 -0
  40. package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  41. package/lib-next/theme/CodeBlock/Line/index.js +49 -0
  42. package/lib-next/theme/CodeBlock/Line/styles.module.css +51 -0
  43. package/lib-next/theme/CodeBlock/WordWrapButton/index.js +40 -0
  44. package/{lib/theme/BlogPostItem → lib-next/theme/CodeBlock/WordWrapButton}/styles.module.css +5 -8
  45. package/lib-next/theme/CodeBlock/index.js +28 -256
  46. package/lib-next/theme/ColorModeToggle/index.js +62 -0
  47. package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
  48. package/lib-next/theme/Details/index.js +21 -0
  49. package/lib-next/theme/Details/styles.module.css +13 -0
  50. package/lib-next/theme/DocBreadcrumbs/index.js +120 -0
  51. package/{lib/theme/Heading/styles.css → lib-next/theme/DocBreadcrumbs/styles.module.css} +9 -13
  52. package/lib-next/theme/DocCard/index.js +93 -0
  53. package/lib-next/theme/DocCard/styles.module.css +34 -0
  54. package/lib-next/theme/DocCardList/index.js +33 -0
  55. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
  56. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  57. package/lib-next/theme/DocItem/index.js +98 -85
  58. package/lib-next/theme/DocItem/styles.module.css +12 -10
  59. package/lib-next/theme/DocItemFooter/index.js +79 -0
  60. package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
  61. package/lib-next/theme/DocPage/Layout/Main/index.js +29 -0
  62. package/lib-next/theme/DocPage/Layout/Main/styles.module.css +28 -0
  63. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +34 -0
  64. package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  65. package/lib-next/theme/DocPage/Layout/Sidebar/index.js +68 -0
  66. package/lib-next/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  67. package/lib-next/theme/DocPage/Layout/index.js +34 -0
  68. package/{lib/theme/IconExternalLink/styles.module.css → lib-next/theme/DocPage/Layout/index.module.css} +7 -4
  69. package/lib-next/theme/DocPage/index.js +39 -159
  70. package/lib-next/theme/DocPaginator/index.js +28 -40
  71. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  72. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  73. package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
  74. package/lib-next/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  75. package/lib-next/theme/DocSidebar/Desktop/index.js +36 -0
  76. package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
  77. package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
  78. package/lib-next/theme/DocSidebar/index.js +13 -340
  79. package/lib-next/theme/DocSidebarItem/Category.js +197 -0
  80. package/lib-next/theme/DocSidebarItem/Html.js +27 -0
  81. package/lib-next/theme/DocSidebarItem/Html.module.css +13 -0
  82. package/lib-next/theme/DocSidebarItem/Link.js +53 -0
  83. package/{lib/theme/MDXPage/styles.module.css → lib-next/theme/DocSidebarItem/Link.module.css} +2 -2
  84. package/lib-next/theme/DocSidebarItem/index.js +23 -0
  85. package/lib-next/theme/DocSidebarItems/index.js +23 -0
  86. package/lib-next/theme/DocTagDocListPage/index.js +96 -0
  87. package/lib-next/theme/DocTagsListPage/index.js +40 -0
  88. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  89. package/lib-next/theme/DocVersionBanner/index.js +33 -16
  90. package/lib-next/theme/EditThisPage/index.js +6 -1
  91. package/lib-next/theme/ErrorPageContent.js +35 -0
  92. package/lib-next/theme/Footer/Copyright/index.js +18 -0
  93. package/lib-next/theme/Footer/Layout/index.js +26 -0
  94. package/lib-next/theme/Footer/LinkItem/index.js +33 -0
  95. package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
  96. package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
  97. package/lib-next/theme/Footer/Links/index.js +17 -0
  98. package/lib-next/theme/Footer/Logo/index.js +38 -0
  99. package/lib-next/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
  100. package/lib-next/theme/Footer/index.js +12 -100
  101. package/lib-next/theme/Heading/index.js +31 -54
  102. package/lib-next/theme/Heading/styles.module.css +25 -5
  103. package/lib-next/theme/IconArrow/index.js +2 -5
  104. package/lib-next/theme/IconClose/index.js +23 -0
  105. package/lib-next/theme/IconDarkMode/index.js +17 -0
  106. package/lib-next/theme/IconEdit/index.js +2 -5
  107. package/lib-next/theme/IconExternalLink/index.js +2 -5
  108. package/lib-next/theme/IconExternalLink/styles.module.css +0 -2
  109. package/lib-next/theme/IconHome/index.js +17 -0
  110. package/lib-next/theme/IconLanguage/index.js +5 -8
  111. package/lib-next/theme/IconLightMode/index.js +17 -0
  112. package/lib-next/theme/IconMenu/index.js +7 -5
  113. package/lib-next/theme/LastUpdated/index.js +4 -2
  114. package/lib-next/theme/Layout/index.js +19 -16
  115. package/lib-next/theme/LayoutProviders/index.js +16 -9
  116. package/lib-next/theme/Logo/index.js +25 -24
  117. package/lib-next/theme/{ThemeContext.js → MDXComponents/A.js} +4 -2
  118. package/lib-next/theme/MDXComponents/Code.js +28 -0
  119. package/lib-next/theme/MDXComponents/Details.js +20 -0
  120. package/lib-next/theme/MDXComponents/Head.js +26 -0
  121. package/lib-next/theme/MDXComponents/Heading.js +11 -0
  122. package/lib-next/theme/MDXComponents/Img.js +24 -0
  123. package/{lib/theme/hooks/styles.css → lib-next/theme/MDXComponents/Img.module.css} +2 -2
  124. package/lib-next/theme/MDXComponents/Pre.js +18 -0
  125. package/lib-next/theme/MDXComponents/Ul.js +21 -0
  126. package/lib-next/theme/MDXComponents/index.js +22 -42
  127. package/lib-next/theme/MDXContent/index.js +12 -0
  128. package/lib-next/theme/MDXPage/index.js +37 -34
  129. package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
  130. package/lib-next/theme/Navbar/Content/index.js +75 -0
  131. package/{lib/theme/TOCInline → lib-next/theme/Navbar/Content}/styles.module.css +7 -4
  132. package/lib-next/theme/Navbar/Layout/index.js +54 -0
  133. package/{lib/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +0 -6
  134. package/lib-next/theme/Navbar/Logo/index.js +17 -0
  135. package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
  136. package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  137. package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  138. package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  139. package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  140. package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
  141. package/lib-next/theme/Navbar/Search/index.js +11 -0
  142. package/lib-next/theme/Navbar/Search/styles.module.css +20 -0
  143. package/lib-next/theme/Navbar/index.js +7 -137
  144. package/lib-next/theme/NavbarItem/ComponentTypes.js +27 -0
  145. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +32 -202
  146. package/lib-next/theme/NavbarItem/DocNavbarItem.js +16 -30
  147. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +41 -0
  148. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +54 -44
  149. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +2 -6
  150. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +167 -0
  151. package/lib-next/theme/NavbarItem/HtmlNavbarItem.js +30 -0
  152. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +16 -22
  153. package/lib-next/theme/{hooks/styles.css → NavbarItem/LocaleDropdownNavbarItem/styles.module.css} +3 -2
  154. package/lib-next/theme/NavbarItem/NavbarNavLink.js +84 -0
  155. package/lib-next/theme/NavbarItem/SearchNavbarItem.js +6 -1
  156. package/lib-next/theme/NavbarItem/index.js +17 -24
  157. package/lib-next/{prism-include-languages.js → theme/NavbarItem/utils.js} +3 -4
  158. package/lib-next/theme/NotFound.js +39 -37
  159. package/lib-next/theme/PaginatorNavLink/index.js +23 -0
  160. package/lib-next/theme/SearchBar.js +1 -1
  161. package/lib-next/theme/SearchMetadata/index.js +34 -0
  162. package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +31 -50
  163. package/lib-next/theme/SkipToContent/index.js +7 -32
  164. package/lib-next/theme/SkipToContent/styles.module.css +7 -0
  165. package/lib-next/theme/TOC/index.js +12 -39
  166. package/lib-next/theme/TOC/styles.module.css +1 -1
  167. package/lib-next/theme/TOCCollapsible/CollapseButton.js +29 -0
  168. package/lib-next/theme/TOCCollapsible/CollapseButton.module.css +29 -0
  169. package/lib-next/theme/TOCCollapsible/index.js +42 -0
  170. package/lib-next/theme/TOCCollapsible/index.module.css +31 -0
  171. package/lib-next/theme/TOCInline/index.js +10 -31
  172. package/lib-next/theme/TOCItems/Tree.js +40 -0
  173. package/lib-next/theme/TOCItems/index.js +54 -0
  174. package/lib-next/theme/TabItem/index.js +4 -5
  175. package/{lib/theme/IconEdit → lib-next/theme/TabItem}/styles.module.css +2 -3
  176. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  177. package/lib-next/theme/Tabs/index.js +111 -53
  178. package/lib-next/theme/Tabs/styles.module.css +4 -13
  179. package/lib-next/theme/Tag/index.js +23 -0
  180. package/lib-next/theme/Tag/styles.module.css +70 -0
  181. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  182. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  183. package/lib-next/theme/TagsListInline/index.js +31 -0
  184. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  185. package/lib-next/theme/ThemedImage/index.js +9 -12
  186. package/lib-next/theme/ThemedImage/styles.module.css +2 -2
  187. package/lib-next/theme/prism-include-languages.js +17 -15
  188. package/package.json +37 -32
  189. package/src/admonitions.css +39 -0
  190. package/src/deps.d.ts +13 -0
  191. package/src/getSwizzleConfig.ts +252 -0
  192. package/src/index.ts +48 -71
  193. package/src/nprogress.css +41 -0
  194. package/src/nprogress.ts +31 -0
  195. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  196. package/src/theme/Admonition/index.tsx +106 -0
  197. package/src/theme/AnnouncementBar/index.tsx +9 -15
  198. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  199. package/src/theme/BackToTopButton/index.tsx +34 -0
  200. package/src/theme/BackToTopButton/styles.module.css +44 -0
  201. package/src/theme/BlogArchivePage/index.tsx +92 -0
  202. package/src/theme/BlogLayout/index.tsx +38 -0
  203. package/src/theme/BlogListPage/index.tsx +45 -35
  204. package/src/theme/BlogListPaginator/index.tsx +27 -32
  205. package/src/theme/BlogPostAuthor/index.tsx +50 -0
  206. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  207. package/src/theme/{Toggle → BlogPostAuthors}/styles.module.css +11 -7
  208. package/src/theme/BlogPostItem/index.tsx +86 -92
  209. package/src/theme/BlogPostItem/styles.module.css +9 -0
  210. package/src/theme/BlogPostPage/index.tsx +84 -38
  211. package/src/theme/BlogPostPaginator/index.tsx +27 -36
  212. package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
  213. package/{lib-next/theme/BlogSidebar → src/theme/BlogSidebar/Desktop}/styles.module.css +5 -4
  214. package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
  215. package/src/theme/BlogSidebar/index.tsx +10 -33
  216. package/src/theme/BlogTagsListPage/index.tsx +24 -66
  217. package/src/theme/BlogTagsPostsPage/index.tsx +49 -47
  218. package/src/theme/CodeBlock/Container/index.tsx +35 -0
  219. package/src/theme/CodeBlock/Container/styles.module.css +14 -0
  220. package/src/theme/CodeBlock/Content/Element.tsx +30 -0
  221. package/src/theme/CodeBlock/Content/String.tsx +111 -0
  222. package/{lib-next/theme/CodeBlock → src/theme/CodeBlock/Content}/styles.module.css +45 -27
  223. package/src/theme/CodeBlock/CopyButton/index.tsx +67 -0
  224. package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  225. package/src/theme/CodeBlock/Line/index.tsx +48 -0
  226. package/src/theme/CodeBlock/Line/styles.module.css +51 -0
  227. package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
  228. package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  229. package/src/theme/CodeBlock/index.tsx +29 -253
  230. package/src/theme/ColorModeToggle/index.tsx +67 -0
  231. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  232. package/src/theme/Details/index.tsx +25 -0
  233. package/src/theme/Details/styles.module.css +13 -0
  234. package/src/theme/DocBreadcrumbs/index.tsx +140 -0
  235. package/src/theme/{Heading/styles.css → DocBreadcrumbs/styles.module.css} +9 -13
  236. package/src/theme/DocCard/index.tsx +116 -0
  237. package/src/theme/DocCard/styles.module.css +34 -0
  238. package/src/theme/DocCardList/index.tsx +36 -0
  239. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
  240. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  241. package/src/theme/DocItem/index.tsx +91 -77
  242. package/src/theme/DocItem/styles.module.css +12 -10
  243. package/src/theme/DocItemFooter/index.tsx +91 -0
  244. package/{lib-next/theme/Toggle → src/theme/DocItemFooter}/styles.module.css +9 -8
  245. package/src/theme/DocPage/Layout/Main/index.tsx +37 -0
  246. package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
  247. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
  248. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  249. package/src/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
  250. package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
  251. package/src/theme/DocPage/Layout/index.module.css +15 -0
  252. package/src/theme/DocPage/Layout/index.tsx +39 -0
  253. package/src/theme/DocPage/index.tsx +39 -165
  254. package/src/theme/DocPaginator/index.tsx +28 -39
  255. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  256. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  257. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  258. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  259. package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
  260. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  261. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  262. package/src/theme/DocSidebar/index.tsx +14 -350
  263. package/src/theme/DocSidebarItem/Category.tsx +210 -0
  264. package/src/theme/DocSidebarItem/Html.module.css +13 -0
  265. package/src/theme/DocSidebarItem/Html.tsx +34 -0
  266. package/src/theme/DocSidebarItem/Link.module.css +10 -0
  267. package/src/theme/DocSidebarItem/Link.tsx +58 -0
  268. package/src/theme/DocSidebarItem/index.tsx +27 -0
  269. package/src/theme/DocSidebarItems/index.tsx +27 -0
  270. package/src/theme/DocTagDocListPage/index.tsx +96 -0
  271. package/src/theme/DocTagsListPage/index.tsx +44 -0
  272. package/src/theme/DocVersionBadge/index.tsx +35 -0
  273. package/src/theme/DocVersionBanner/index.tsx +53 -27
  274. package/src/theme/EditThisPage/index.tsx +6 -1
  275. package/src/theme/ErrorPageContent.tsx +41 -0
  276. package/src/theme/Footer/Copyright/index.tsx +20 -0
  277. package/src/theme/Footer/Layout/index.tsx +34 -0
  278. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  279. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  280. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  281. package/src/theme/Footer/Links/index.tsx +21 -0
  282. package/src/theme/Footer/Logo/index.tsx +41 -0
  283. package/src/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
  284. package/src/theme/Footer/index.tsx +13 -113
  285. package/src/theme/Heading/index.tsx +31 -58
  286. package/src/theme/Heading/styles.module.css +25 -5
  287. package/src/theme/IconArrow/index.tsx +2 -4
  288. package/src/theme/IconClose/index.tsx +26 -0
  289. package/src/theme/IconDarkMode/index.tsx +20 -0
  290. package/src/theme/IconEdit/index.tsx +5 -4
  291. package/src/theme/IconExternalLink/index.tsx +3 -5
  292. package/src/theme/IconExternalLink/styles.module.css +0 -2
  293. package/src/theme/IconHome/index.tsx +20 -0
  294. package/src/theme/IconLanguage/index.tsx +6 -8
  295. package/src/theme/IconLightMode/index.tsx +20 -0
  296. package/src/theme/IconMenu/index.tsx +3 -5
  297. package/src/theme/LastUpdated/index.tsx +4 -2
  298. package/src/theme/Layout/index.tsx +19 -15
  299. package/src/theme/LayoutProviders/index.tsx +16 -9
  300. package/src/theme/Logo/index.tsx +21 -19
  301. package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
  302. package/src/theme/MDXComponents/Code.tsx +37 -0
  303. package/src/theme/MDXComponents/Details.tsx +25 -0
  304. package/src/theme/MDXComponents/Head.tsx +29 -0
  305. package/src/theme/MDXComponents/Heading.tsx +14 -0
  306. package/src/theme/MDXComponents/Img.module.css +10 -0
  307. package/src/theme/MDXComponents/Img.tsx +26 -0
  308. package/src/theme/MDXComponents/Pre.tsx +22 -0
  309. package/src/theme/MDXComponents/Ul.tsx +24 -0
  310. package/src/theme/MDXComponents/index.tsx +23 -42
  311. package/src/theme/MDXContent/index.tsx +15 -0
  312. package/src/theme/MDXPage/index.tsx +37 -34
  313. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  314. package/src/theme/Navbar/Content/index.tsx +86 -0
  315. package/src/theme/Navbar/Content/styles.module.css +15 -0
  316. package/src/theme/Navbar/Layout/index.tsx +57 -0
  317. package/src/theme/Navbar/{styles.module.css → Layout/styles.module.css} +0 -6
  318. package/src/theme/Navbar/Logo/index.tsx +19 -0
  319. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  320. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  321. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  322. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
  323. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  324. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  325. package/src/theme/Navbar/Search/index.tsx +15 -0
  326. package/src/theme/Navbar/Search/styles.module.css +20 -0
  327. package/src/theme/Navbar/index.tsx +7 -147
  328. package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
  329. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -207
  330. package/src/theme/NavbarItem/DocNavbarItem.tsx +18 -38
  331. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +44 -0
  332. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +59 -51
  333. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +5 -8
  334. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +193 -0
  335. package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
  336. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +19 -17
  337. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  338. package/src/theme/NavbarItem/NavbarNavLink.tsx +80 -0
  339. package/src/theme/NavbarItem/SearchNavbarItem.tsx +6 -1
  340. package/src/theme/NavbarItem/index.tsx +22 -29
  341. package/src/theme/NavbarItem/utils.ts +13 -0
  342. package/src/theme/NotFound.tsx +39 -36
  343. package/src/theme/PaginatorNavLink/index.tsx +26 -0
  344. package/src/theme/SearchBar.tsx +2 -1
  345. package/src/theme/SearchMetadata/index.tsx +43 -0
  346. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +31 -44
  347. package/src/theme/SkipToContent/index.tsx +7 -32
  348. package/src/theme/SkipToContent/styles.module.css +7 -0
  349. package/src/theme/TOC/index.tsx +13 -44
  350. package/src/theme/TOC/styles.module.css +1 -1
  351. package/src/theme/TOCCollapsible/CollapseButton.module.css +29 -0
  352. package/src/theme/TOCCollapsible/CollapseButton.tsx +35 -0
  353. package/src/theme/TOCCollapsible/index.module.css +31 -0
  354. package/src/theme/TOCCollapsible/index.tsx +45 -0
  355. package/src/theme/TOCInline/index.tsx +14 -35
  356. package/src/theme/TOCItems/Tree.tsx +46 -0
  357. package/src/theme/TOCItems/index.tsx +61 -0
  358. package/src/theme/TabItem/index.tsx +12 -4
  359. package/src/theme/TabItem/styles.module.css +10 -0
  360. package/src/theme/Tabs/index.tsx +120 -62
  361. package/src/theme/Tabs/styles.module.css +4 -13
  362. package/src/theme/Tag/index.tsx +27 -0
  363. package/src/theme/Tag/styles.module.css +70 -0
  364. package/src/theme/TagsListByLetter/index.tsx +43 -0
  365. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  366. package/src/theme/TagsListInline/index.tsx +35 -0
  367. package/src/theme/TagsListInline/styles.module.css +15 -0
  368. package/src/theme/ThemedImage/index.tsx +10 -11
  369. package/src/theme/ThemedImage/styles.module.css +2 -2
  370. package/src/theme/prism-include-languages.ts +20 -15
  371. package/src/theme-classic.d.ts +1279 -0
  372. package/src/translations.ts +84 -58
  373. package/src/validateThemeConfig.ts +448 -0
  374. package/babel.config.js +0 -35
  375. package/codeTranslations/README.md +0 -20
  376. package/codeTranslations/ar.json +0 -57
  377. package/codeTranslations/base.json +0 -112
  378. package/codeTranslations/bn.json +0 -56
  379. package/codeTranslations/da.json +0 -57
  380. package/codeTranslations/de.json +0 -57
  381. package/codeTranslations/es.json +0 -57
  382. package/codeTranslations/fa.json +0 -57
  383. package/codeTranslations/fil.json +0 -57
  384. package/codeTranslations/fr.json +0 -57
  385. package/codeTranslations/he.json +0 -57
  386. package/codeTranslations/hi.json +0 -57
  387. package/codeTranslations/ja.json +0 -57
  388. package/codeTranslations/ko.json +0 -57
  389. package/codeTranslations/pl.json +0 -57
  390. package/codeTranslations/pt-BR.json +0 -57
  391. package/codeTranslations/pt-PT.json +0 -57
  392. package/codeTranslations/ru.json +0 -57
  393. package/codeTranslations/tr.json +0 -57
  394. package/codeTranslations/vi.json +0 -57
  395. package/codeTranslations/zh-Hans.json +0 -57
  396. package/codeTranslations/zh-Hant.json +0 -57
  397. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  398. package/lib/__tests__/translations.test.js +0 -112
  399. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  400. package/lib/theme/AnnouncementBar/index.js +0 -72
  401. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  402. package/lib/theme/BlogListPage/index.js +0 -71
  403. package/lib/theme/BlogListPaginator/index.js +0 -63
  404. package/lib/theme/BlogPostItem/index.js +0 -161
  405. package/lib/theme/BlogPostPage/index.js +0 -69
  406. package/lib/theme/BlogPostPaginator/index.js +0 -64
  407. package/lib/theme/BlogSidebar/index.js +0 -51
  408. package/lib/theme/BlogTagsListPage/index.js +0 -76
  409. package/lib/theme/BlogTagsPostsPage/index.js +0 -100
  410. package/lib/theme/CodeBlock/index.js +0 -253
  411. package/lib/theme/DocItem/index.js +0 -129
  412. package/lib/theme/DocPage/index.js +0 -173
  413. package/lib/theme/DocPage/styles.module.css +0 -86
  414. package/lib/theme/DocPaginator/index.js +0 -63
  415. package/lib/theme/DocSidebar/index.js +0 -306
  416. package/lib/theme/DocSidebar/styles.module.css +0 -124
  417. package/lib/theme/DocVersionBanner/index.js +0 -128
  418. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  419. package/lib/theme/EditThisPage/index.js +0 -31
  420. package/lib/theme/Footer/index.js +0 -108
  421. package/lib/theme/Footer/styles.module.css +0 -15
  422. package/lib/theme/Heading/index.js +0 -76
  423. package/lib/theme/Heading/styles.module.css +0 -15
  424. package/lib/theme/IconArrow/index.js +0 -28
  425. package/lib/theme/IconEdit/index.js +0 -34
  426. package/lib/theme/IconExternalLink/index.js +0 -30
  427. package/lib/theme/IconLanguage/index.js +0 -29
  428. package/lib/theme/IconMenu/index.js +0 -30
  429. package/lib/theme/LastUpdated/index.js +0 -61
  430. package/lib/theme/Layout/index.js +0 -64
  431. package/lib/theme/Layout/styles.css +0 -27
  432. package/lib/theme/LayoutHead/index.js +0 -144
  433. package/lib/theme/LayoutProviders/index.js +0 -36
  434. package/lib/theme/Logo/index.js +0 -60
  435. package/lib/theme/MDXComponents/index.js +0 -65
  436. package/lib/theme/MDXPage/index.js +0 -66
  437. package/lib/theme/Navbar/index.js +0 -147
  438. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
  439. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
  440. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
  441. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  442. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  443. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  444. package/lib/theme/NavbarItem/index.js +0 -54
  445. package/lib/theme/NotFound.js +0 -57
  446. package/lib/theme/SearchBar.js +0 -15
  447. package/lib/theme/SearchMetadatas/index.js +0 -33
  448. package/lib/theme/Seo/index.js +0 -49
  449. package/lib/theme/SkipToContent/index.js +0 -63
  450. package/lib/theme/SkipToContent/styles.module.css +0 -14
  451. package/lib/theme/TOC/index.js +0 -59
  452. package/lib/theme/TOC/styles.module.css +0 -23
  453. package/lib/theme/TOCInline/index.js +0 -53
  454. package/lib/theme/TabItem/index.js +0 -32
  455. package/lib/theme/Tabs/index.js +0 -150
  456. package/lib/theme/Tabs/styles.module.css +0 -23
  457. package/lib/theme/ThemeContext.js +0 -21
  458. package/lib/theme/ThemeProvider/index.js +0 -38
  459. package/lib/theme/ThemedImage/index.js +0 -49
  460. package/lib/theme/ThemedImage/styles.module.css +0 -18
  461. package/lib/theme/Toggle/index.js +0 -94
  462. package/lib/theme/Toggle/styles.css +0 -103
  463. package/lib/theme/UserPreferencesContext.js +0 -18
  464. package/lib/theme/UserPreferencesProvider/index.js +0 -36
  465. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  466. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  467. package/lib/theme/hooks/useDocs.js +0 -18
  468. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  469. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  470. package/lib/theme/hooks/useLocationHash.js +0 -28
  471. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  472. package/lib/theme/hooks/usePrismTheme.js +0 -36
  473. package/lib/theme/hooks/useScrollPosition.js +0 -49
  474. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  475. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  476. package/lib/theme/hooks/useTheme.js +0 -99
  477. package/lib/theme/hooks/useThemeContext.js +0 -31
  478. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  479. package/lib/theme/hooks/useWindowSize.js +0 -55
  480. package/lib/theme/prism-include-languages.js +0 -39
  481. package/lib/types.d.ts +0 -598
  482. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  483. package/lib-next/__tests__/translations.test.js +0 -128
  484. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  485. package/lib-next/index.js +0 -221
  486. package/lib-next/theme/DocPage/styles.module.css +0 -86
  487. package/lib-next/theme/DocSidebar/styles.module.css +0 -124
  488. package/lib-next/theme/DocVersionSuggestions/index.js +0 -126
  489. package/lib-next/theme/Heading/styles.css +0 -23
  490. package/lib-next/theme/Navbar/styles.module.css +0 -20
  491. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  492. package/lib-next/theme/Seo/index.js +0 -36
  493. package/lib-next/theme/ThemeProvider/index.js +0 -25
  494. package/lib-next/theme/Toggle/index.js +0 -80
  495. package/lib-next/theme/Toggle/styles.css +0 -103
  496. package/lib-next/theme/UserPreferencesContext.js +0 -9
  497. package/lib-next/theme/UserPreferencesProvider/index.js +0 -24
  498. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  499. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  500. package/lib-next/theme/hooks/useDocs.js +0 -10
  501. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  502. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  503. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  504. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  505. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  506. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  507. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  508. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
  509. package/lib-next/theme/hooks/useTheme.js +0 -82
  510. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  511. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  512. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  513. package/lib-next/translations.js +0 -145
  514. package/lib-next/types.d.ts +0 -598
  515. package/lib-next/validateThemeConfig.js +0 -317
  516. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  517. package/src/__tests__/translations.test.ts +0 -116
  518. package/src/__tests__/validateThemeConfig.test.js +0 -333
  519. package/src/theme/BlogSidebar/styles.module.css +0 -44
  520. package/src/theme/CodeBlock/styles.module.css +0 -68
  521. package/src/theme/DocPage/styles.module.css +0 -86
  522. package/src/theme/DocSidebar/styles.module.css +0 -124
  523. package/src/theme/SearchMetadatas/index.tsx +0 -28
  524. package/src/theme/Seo/index.tsx +0 -46
  525. package/src/theme/ThemeProvider/index.tsx +0 -24
  526. package/src/theme/Toggle/index.tsx +0 -100
  527. package/src/theme/Toggle/styles.css +0 -103
  528. package/src/theme/UserPreferencesContext.ts +0 -12
  529. package/src/theme/UserPreferencesProvider/index.tsx +0 -27
  530. package/src/theme/hooks/styles.css +0 -10
  531. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  532. package/src/theme/hooks/useDocs.ts +0 -11
  533. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  534. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  535. package/src/theme/hooks/useLocationHash.ts +0 -25
  536. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  537. package/src/theme/hooks/usePrismTheme.ts +0 -22
  538. package/src/theme/hooks/useScrollPosition.ts +0 -45
  539. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  540. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  541. package/src/theme/hooks/useTheme.ts +0 -92
  542. package/src/theme/hooks/useThemeContext.ts +0 -23
  543. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  544. package/src/theme/hooks/useWindowSize.ts +0 -51
  545. package/src/types.d.ts +0 -598
  546. package/src/validateThemeConfig.js +0 -317
  547. package/tsconfig.json +0 -12
  548. package/update-code-translations.js +0 -240
  549. package/update-code-translations.test.js +0 -33
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';
8
+ import type {LoadContext, Plugin} from '@docusaurus/types';
9
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`
25
+ // Make sure the key is the same as the one in `/theme/hooks/useTheme.js`
27
26
  const ThemeStorageKey = 'theme';
28
- const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
29
- return `(function() {
27
+ const noFlashColorMode = ({
28
+ defaultMode,
29
+ respectPrefersColorScheme,
30
+ }: ThemeConfig['colorMode']) => `(function() {
30
31
  var defaultMode = '${defaultMode}';
31
32
  var respectPrefersColorScheme = ${respectPrefersColorScheme};
32
33
 
@@ -61,17 +62,18 @@ const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
61
62
  }
62
63
  }
63
64
  })();`;
64
- };
65
65
 
66
- // Duplicated constant. Unfortunately we can't import it from theme-common, as we need to support older nodejs versions without ESM support
66
+ // Duplicated constant. Unfortunately we can't import it from theme-common, as
67
+ // we need to support older nodejs versions without ESM support
67
68
  // TODO: import from theme-common once we only support Node.js with ESM support
68
69
  // + move all those announcementBar stuff there too
69
70
  export const AnnouncementBarDismissStorageKey =
70
71
  'docusaurus.announcement.dismiss';
71
72
  const AnnouncementBarDismissDataAttribute =
72
73
  'data-announcement-bar-initially-dismissed';
73
- // We always render the announcement bar html on the server, to prevent layout shifts on React hydration
74
- // The theme can use CSS + the data attribute to hide the announcement bar asap (before React hydration)
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)
75
77
  const AnnouncementBarInlineJavaScript = `
76
78
  (function() {
77
79
  function isDismissed() {
@@ -83,68 +85,60 @@ const AnnouncementBarInlineJavaScript = `
83
85
  document.documentElement.setAttribute('${AnnouncementBarDismissDataAttribute}', isDismissed());
84
86
  })();`;
85
87
 
86
- function getInfimaCSSFile(direction) {
88
+ function getInfimaCSSFile(direction: string) {
87
89
  return `infima/dist/css/default/default${
88
90
  direction === 'rtl' ? '-rtl' : ''
89
91
  }.css`;
90
92
  }
91
93
 
92
- type PluginOptions = {
93
- customCss?: string;
94
- };
95
-
96
- export default function docusaurusThemeClassic(
97
- context: DocusaurusContext, // TODO: LoadContext is missing some of properties
98
- options: PluginOptions,
99
- ): Plugin<void> {
94
+ export default function themeClassic(
95
+ context: LoadContext,
96
+ options: Options,
97
+ ): Plugin<undefined> {
100
98
  const {
101
- siteConfig: {themeConfig: roughlyTypedThemeConfig},
102
99
  i18n: {currentLocale, localeConfigs},
103
100
  } = context;
104
- const themeConfig = (roughlyTypedThemeConfig || {}) as ThemeConfig;
101
+ const themeConfig = context.siteConfig.themeConfig as ThemeConfig;
105
102
  const {
106
103
  announcementBar,
107
104
  colorMode,
108
- prism: {additionalLanguages = []} = {},
105
+ prism: {additionalLanguages},
109
106
  } = themeConfig;
110
- const {customCss} = options || {};
111
- const {direction} = localeConfigs[currentLocale];
107
+ const {customCss} = options ?? {};
108
+ const {direction} = localeConfigs[currentLocale]!;
112
109
 
113
110
  return {
114
111
  name: 'docusaurus-theme-classic',
115
112
 
116
- /*
117
- Does not seem needed: webpack can already hot reload theme files
118
- getPathsToWatch() {
119
- return [
120
- path.join(__dirname, '..', 'lib'),
121
- path.join(__dirname, '..', 'lib-next'),
122
- ];
123
- },
124
- */
125
-
126
113
  getThemePath() {
127
- return path.join(__dirname, '..', 'lib-next', 'theme');
114
+ return '../lib-next/theme';
128
115
  },
129
116
 
130
117
  getTypeScriptThemePath() {
131
- return path.resolve(__dirname, '..', 'src', 'theme');
118
+ return '../src/theme';
132
119
  },
133
120
 
134
- getTranslationFiles: async () => getTranslationFiles({themeConfig}),
135
- translateThemeConfig,
121
+ getTranslationFiles: () => getTranslationFiles({themeConfig}),
136
122
 
137
- getDefaultCodeTranslationMessages: () => {
123
+ translateThemeConfig: (params) =>
124
+ translateThemeConfig({
125
+ themeConfig: params.themeConfig as ThemeConfig,
126
+ translationFiles: params.translationFiles,
127
+ }),
128
+
129
+ getDefaultCodeTranslationMessages() {
138
130
  return readDefaultCodeTranslationMessages({
139
- dirPath: path.resolve(__dirname, '..', 'codeTranslations'),
140
131
  locale: currentLocale,
132
+ name: 'theme-common',
141
133
  });
142
134
  },
143
135
 
144
136
  getClientModules() {
145
137
  const modules = [
146
138
  require.resolve(getInfimaCSSFile(direction)),
147
- path.resolve(__dirname, './prism-include-languages'),
139
+ './prism-include-languages',
140
+ './admonitions.css',
141
+ './nprogress',
148
142
  ];
149
143
 
150
144
  if (customCss) {
@@ -164,11 +158,10 @@ export default function docusaurusThemeClassic(
164
158
  .join('|');
165
159
 
166
160
  return {
167
- ignoreWarnings: [
168
- // See https://github.com/facebook/docusaurus/pull/3382
169
- (e) => e.message.includes("Can't resolve '@theme-init/hooks/useDocs"),
170
- ],
171
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.
172
165
  new ContextReplacementPlugin(
173
166
  /prismjs[\\/]components$/,
174
167
  new RegExp(`^./(${prismLanguages})$`),
@@ -177,18 +170,18 @@ export default function docusaurusThemeClassic(
177
170
  };
178
171
  },
179
172
 
180
- configurePostCss(postCssOptions: {plugins: AcceptedPlugin[]}) {
173
+ configurePostCss(postCssOptions) {
181
174
  if (direction === 'rtl') {
182
175
  const resolvedInfimaFile = require.resolve(getInfimaCSSFile(direction));
183
176
  const plugin: PostCssPlugin = {
184
177
  postcssPlugin: 'RtlCssPlugin',
185
- prepare: (result: Result) => {
178
+ prepare: (result) => {
186
179
  const file = result.root?.source?.input?.file;
187
180
  // Skip Infima as we are using the its RTL version.
188
181
  if (file === resolvedInfimaFile) {
189
182
  return {};
190
183
  }
191
- return rtlcss(result.root);
184
+ return rtlcss(result.root as unknown as rtlcss.ConfigOptions);
192
185
  },
193
186
  };
194
187
  postCssOptions.plugins.push(plugin);
@@ -213,21 +206,5 @@ ${announcementBar ? AnnouncementBarInlineJavaScript : ''}
213
206
  };
214
207
  }
215
208
 
216
- const swizzleAllowedComponents = [
217
- 'CodeBlock',
218
- 'DocSidebar',
219
- 'Footer',
220
- 'NotFound',
221
- 'SearchBar',
222
- 'IconArrow',
223
- 'IconEdit',
224
- 'IconMenu',
225
- 'hooks/useTheme',
226
- 'prism-include-languages',
227
- ];
228
-
229
- export function getSwizzleComponentList(): string[] {
230
- return swizzleAllowedComponents;
231
- }
232
-
209
+ export {default as getSwizzleConfig} from './getSwizzleConfig';
233
210
  export {validateThemeConfig} from './validateThemeConfig';
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ /**
9
+ * Styles for NProgress
10
+ * Copied over to remove unused styles for the spinner.
11
+ * https://github.com/rstacruz/nprogress/blob/master/nprogress.css
12
+ */
13
+
14
+ :root {
15
+ --docusaurus-progress-bar-color: var(--ifm-color-primary);
16
+ }
17
+
18
+ #nprogress {
19
+ pointer-events: none;
20
+ }
21
+
22
+ #nprogress .bar {
23
+ background: var(--docusaurus-progress-bar-color);
24
+ position: fixed;
25
+ z-index: 1031;
26
+ top: 0;
27
+ left: 0;
28
+ width: 100%;
29
+ height: 2px;
30
+ }
31
+
32
+ #nprogress .peg {
33
+ position: absolute;
34
+ right: 0;
35
+ width: 100px;
36
+ height: 100%;
37
+ box-shadow: 0 0 10px var(--docusaurus-progress-bar-color),
38
+ 0 0 5px var(--docusaurus-progress-bar-color);
39
+ opacity: 1;
40
+ transform: rotate(3deg) translate(0, -4px);
41
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import nprogress from 'nprogress';
9
+ import './nprogress.css';
10
+ import type {ClientModule} from '@docusaurus/types';
11
+
12
+ nprogress.configure({showSpinner: false});
13
+
14
+ const delay = 200;
15
+
16
+ const clientModule: ClientModule = {
17
+ onRouteUpdate({location, previousLocation}) {
18
+ if (previousLocation && location.pathname !== previousLocation.pathname) {
19
+ const progressBarTimeout = window.setTimeout(() => {
20
+ nprogress.start();
21
+ }, delay);
22
+ return () => window.clearTimeout(progressBarTimeout);
23
+ }
24
+ return undefined;
25
+ },
26
+ onRouteDidUpdate() {
27
+ nprogress.done();
28
+ },
29
+ };
30
+
31
+ export default clientModule;
@@ -0,0 +1,106 @@
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 React from 'react';
9
+ import clsx from 'clsx';
10
+ import type {Props} from '@theme/Admonition';
11
+
12
+ const icons = {
13
+ note: (
14
+ <svg
15
+ xmlns="http://www.w3.org/2000/svg"
16
+ width="14"
17
+ height="16"
18
+ viewBox="0 0 14 16">
19
+ <path
20
+ fillRule="evenodd"
21
+ d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"
22
+ />
23
+ </svg>
24
+ ),
25
+ tip: (
26
+ <svg
27
+ xmlns="http://www.w3.org/2000/svg"
28
+ width="12"
29
+ height="16"
30
+ viewBox="0 0 12 16">
31
+ <path
32
+ fillRule="evenodd"
33
+ d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"
34
+ />
35
+ </svg>
36
+ ),
37
+ danger: (
38
+ <svg
39
+ xmlns="http://www.w3.org/2000/svg"
40
+ width="12"
41
+ height="16"
42
+ viewBox="0 0 12 16">
43
+ <path
44
+ fillRule="evenodd"
45
+ d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"
46
+ />
47
+ </svg>
48
+ ),
49
+ info: (
50
+ <svg
51
+ xmlns="http://www.w3.org/2000/svg"
52
+ width="14"
53
+ height="16"
54
+ viewBox="0 0 14 16">
55
+ <path
56
+ fillRule="evenodd"
57
+ d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"
58
+ />
59
+ </svg>
60
+ ),
61
+ caution: (
62
+ <svg
63
+ xmlns="http://www.w3.org/2000/svg"
64
+ width="16"
65
+ height="16"
66
+ viewBox="0 0 16 16">
67
+ <path
68
+ fillRule="evenodd"
69
+ d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"
70
+ />
71
+ </svg>
72
+ ),
73
+ };
74
+
75
+ const ifmClassNames = {
76
+ note: 'secondary',
77
+ tip: 'success',
78
+ danger: 'danger',
79
+ info: 'info',
80
+ caution: 'warning',
81
+ };
82
+
83
+ export default function Admonition({
84
+ children,
85
+ type,
86
+ title = type,
87
+ icon = icons[type],
88
+ }: Props): JSX.Element {
89
+ return (
90
+ <div
91
+ className={clsx(
92
+ 'admonition',
93
+ `admonition-${type}`,
94
+ 'alert',
95
+ `alert--${ifmClassNames[type]}`,
96
+ )}>
97
+ <div className="admonition-heading">
98
+ <h5>
99
+ <span className="admonition-icon">{icon}</span>
100
+ {title}
101
+ </h5>
102
+ </div>
103
+ <div className="admonition-content">{children}</div>
104
+ </div>
105
+ );
106
+ }