@docusaurus/theme-classic 2.0.0-beta.ff31de0ff → 2.0.0-rc.1

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 (745) hide show
  1. package/README.md +2 -2
  2. package/lib/getSwizzleConfig.d.ts +8 -0
  3. package/lib/getSwizzleConfig.js +228 -0
  4. package/lib/index.d.ts +12 -0
  5. package/lib/index.js +122 -164
  6. package/lib/nprogress.css +41 -0
  7. package/lib/nprogress.d.ts +10 -0
  8. package/lib/nprogress.js +25 -0
  9. package/lib/options.d.ts +14 -0
  10. package/lib/options.js +409 -0
  11. package/lib/prism-include-languages.d.ts +7 -0
  12. package/lib/prism-include-languages.js +0 -2
  13. package/lib/theme/Admonition/index.d.ts +9 -0
  14. package/lib/theme/Admonition/index.js +183 -0
  15. package/lib/theme/Admonition/styles.module.css +38 -0
  16. package/lib/theme/AnnouncementBar/index.d.ts +8 -0
  17. package/lib/theme/AnnouncementBar/index.js +39 -65
  18. package/lib/theme/AnnouncementBar/styles.module.css +26 -35
  19. package/lib/theme/BackToTopButton/index.d.ts +8 -0
  20. package/lib/theme/BackToTopButton/index.js +32 -0
  21. package/lib/theme/BackToTopButton/styles.module.css +44 -0
  22. package/lib/theme/BlogArchivePage/index.d.ts +10 -0
  23. package/lib/theme/BlogArchivePage/index.js +80 -0
  24. package/lib/theme/BlogLayout/index.d.ts +9 -0
  25. package/lib/theme/BlogLayout/index.js +33 -0
  26. package/lib/theme/BlogListPage/index.d.ts +10 -0
  27. package/lib/theme/BlogListPage/index.js +44 -61
  28. package/lib/theme/BlogListPaginator/index.d.ts +9 -0
  29. package/lib/theme/BlogListPaginator/index.js +41 -56
  30. package/lib/theme/BlogPostItem/Container/index.d.ts +9 -0
  31. package/lib/theme/BlogPostItem/Container/index.js +26 -0
  32. package/lib/theme/BlogPostItem/Content/index.d.ts +9 -0
  33. package/lib/theme/BlogPostItem/Content/index.js +23 -0
  34. package/lib/theme/BlogPostItem/Footer/ReadMoreLink/index.d.ts +9 -0
  35. package/lib/theme/BlogPostItem/Footer/ReadMoreLink/index.js +38 -0
  36. package/lib/theme/BlogPostItem/Footer/index.d.ts +8 -0
  37. package/lib/theme/BlogPostItem/Footer/index.js +52 -0
  38. package/lib/theme/BlogPostItem/Footer/styles.module.css +10 -0
  39. package/lib/theme/BlogPostItem/Header/Author/index.d.ts +9 -0
  40. package/lib/theme/BlogPostItem/Header/Author/index.js +47 -0
  41. package/lib/theme/BlogPostItem/Header/Authors/index.d.ts +9 -0
  42. package/lib/theme/BlogPostItem/Header/Authors/index.js +48 -0
  43. package/{src/theme/Layout/styles.css → lib/theme/BlogPostItem/Header/Authors/styles.module.css} +8 -8
  44. package/lib/theme/BlogPostItem/Header/Info/index.d.ts +9 -0
  45. package/lib/theme/BlogPostItem/Header/Info/index.js +60 -0
  46. package/{lib-next/theme/LastUpdated → lib/theme/BlogPostItem/Header/Info}/styles.module.css +2 -2
  47. package/lib/theme/BlogPostItem/Header/Title/index.d.ts +9 -0
  48. package/lib/theme/BlogPostItem/Header/Title/index.js +27 -0
  49. package/lib/theme/BlogPostItem/Header/Title/styles.module.css +19 -0
  50. package/lib/theme/BlogPostItem/Header/index.d.ts +8 -0
  51. package/lib/theme/BlogPostItem/Header/index.js +19 -0
  52. package/lib/theme/BlogPostItem/index.d.ts +9 -0
  53. package/lib/theme/BlogPostItem/index.js +20 -144
  54. package/lib/theme/BlogPostItems/index.d.ts +9 -0
  55. package/lib/theme/BlogPostItems/index.js +27 -0
  56. package/lib/theme/BlogPostPage/Metadata/index.d.ts +8 -0
  57. package/lib/theme/BlogPostPage/Metadata/index.js +41 -0
  58. package/lib/theme/BlogPostPage/index.d.ts +10 -0
  59. package/lib/theme/BlogPostPage/index.js +51 -66
  60. package/lib/theme/BlogPostPaginator/index.d.ts +9 -0
  61. package/lib/theme/BlogPostPaginator/index.js +40 -57
  62. package/lib/theme/BlogSidebar/Desktop/index.d.ts +9 -0
  63. package/lib/theme/BlogSidebar/Desktop/index.js +41 -0
  64. package/lib/theme/BlogSidebar/{styles.module.css → Desktop/styles.module.css} +8 -9
  65. package/lib/theme/BlogSidebar/Mobile/index.d.ts +9 -0
  66. package/lib/theme/BlogSidebar/Mobile/index.js +34 -0
  67. package/lib/theme/BlogSidebar/index.d.ts +9 -0
  68. package/lib/theme/BlogSidebar/index.js +13 -35
  69. package/lib/theme/BlogTagsListPage/index.d.ts +10 -0
  70. package/lib/theme/BlogTagsListPage/index.js +27 -74
  71. package/lib/theme/BlogTagsPostsPage/index.d.ts +10 -0
  72. package/lib/theme/BlogTagsPostsPage/index.js +76 -91
  73. package/lib/theme/CodeBlock/Container/index.d.ts +10 -0
  74. package/lib/theme/CodeBlock/Container/index.js +27 -0
  75. package/lib/theme/CodeBlock/Container/styles.module.css +14 -0
  76. package/{src/theme/Navbar/styles.module.css → lib/theme/CodeBlock/Content/Element.d.ts} +3 -14
  77. package/lib/theme/CodeBlock/Content/Element.js +23 -0
  78. package/lib/theme/CodeBlock/Content/String.d.ts +9 -0
  79. package/lib/theme/CodeBlock/Content/String.js +103 -0
  80. package/lib/theme/CodeBlock/{styles.module.css → Content/styles.module.css} +47 -32
  81. package/lib/theme/CodeBlock/CopyButton/index.d.ts +9 -0
  82. package/lib/theme/CodeBlock/CopyButton/index.js +62 -0
  83. package/lib/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  84. package/lib/theme/CodeBlock/Line/index.d.ts +9 -0
  85. package/lib/theme/CodeBlock/Line/index.js +42 -0
  86. package/lib/theme/CodeBlock/Line/styles.module.css +51 -0
  87. package/lib/theme/CodeBlock/WordWrapButton/index.d.ts +9 -0
  88. package/lib/theme/CodeBlock/WordWrapButton/index.js +40 -0
  89. package/lib/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  90. package/lib/theme/CodeBlock/index.d.ts +9 -0
  91. package/lib/theme/CodeBlock/index.js +31 -246
  92. package/lib/theme/ColorModeToggle/index.d.ts +11 -0
  93. package/lib/theme/ColorModeToggle/index.js +60 -0
  94. package/lib/theme/ColorModeToggle/styles.module.css +35 -0
  95. package/lib/theme/Details/index.d.ts +9 -0
  96. package/lib/theme/Details/index.js +21 -0
  97. package/lib/theme/Details/styles.module.css +13 -0
  98. package/lib/theme/DocBreadcrumbs/index.d.ts +8 -0
  99. package/lib/theme/DocBreadcrumbs/index.js +115 -0
  100. package/lib/theme/{Heading/styles.css → DocBreadcrumbs/styles.module.css} +9 -13
  101. package/lib/theme/DocCard/index.d.ts +9 -0
  102. package/lib/theme/DocCard/index.js +86 -0
  103. package/lib/theme/DocCard/styles.module.css +34 -0
  104. package/lib/theme/DocCardList/index.d.ts +9 -0
  105. package/lib/theme/DocCardList/index.js +30 -0
  106. package/lib/theme/DocCategoryGeneratedIndexPage/index.d.ts +10 -0
  107. package/lib/theme/DocCategoryGeneratedIndexPage/index.js +65 -0
  108. package/lib/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  109. package/lib/theme/DocItem/Content/index.d.ts +9 -0
  110. package/lib/theme/DocItem/Content/index.js +44 -0
  111. package/lib/theme/DocItem/Footer/index.d.ts +8 -0
  112. package/lib/theme/DocItem/Footer/index.js +74 -0
  113. package/lib/theme/DocItem/Footer/styles.module.css +18 -0
  114. package/lib/theme/DocItem/Layout/index.d.ts +9 -0
  115. package/lib/theme/DocItem/Layout/index.js +59 -0
  116. package/lib/theme/DocItem/Layout/styles.module.css +17 -0
  117. package/lib/theme/DocItem/Metadata/index.d.ts +8 -0
  118. package/lib/theme/DocItem/Metadata/index.js +20 -0
  119. package/lib/theme/DocItem/Paginator/index.d.ts +12 -0
  120. package/lib/theme/DocItem/Paginator/index.js +17 -0
  121. package/lib/theme/DocItem/TOC/Desktop/index.d.ts +8 -0
  122. package/lib/theme/DocItem/TOC/Desktop/index.js +21 -0
  123. package/lib/theme/DocItem/TOC/Mobile/index.d.ts +8 -0
  124. package/lib/theme/DocItem/TOC/Mobile/index.js +23 -0
  125. package/lib/theme/DocItem/TOC/Mobile/styles.module.css +19 -0
  126. package/lib/theme/DocItem/index.d.ts +10 -0
  127. package/lib/theme/DocItem/index.js +18 -113
  128. package/lib/theme/DocPage/Layout/Main/index.d.ts +9 -0
  129. package/lib/theme/DocPage/Layout/Main/index.js +29 -0
  130. package/lib/theme/DocPage/Layout/Main/styles.module.css +28 -0
  131. package/lib/theme/DocPage/Layout/Sidebar/ExpandButton/index.d.ts +9 -0
  132. package/lib/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +34 -0
  133. package/lib/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  134. package/lib/theme/DocPage/Layout/Sidebar/index.d.ts +9 -0
  135. package/lib/theme/DocPage/Layout/Sidebar/index.js +66 -0
  136. package/lib/theme/DocPage/Layout/Sidebar/styles.module.css +32 -0
  137. package/lib/theme/DocPage/Layout/index.d.ts +9 -0
  138. package/lib/theme/DocPage/Layout/index.js +34 -0
  139. package/lib/theme/{BlogPostItem → DocPage/Layout}/styles.module.css +5 -4
  140. package/lib/theme/DocPage/index.d.ts +10 -0
  141. package/lib/theme/DocPage/index.js +42 -133
  142. package/lib/theme/DocPaginator/index.d.ts +9 -0
  143. package/lib/theme/DocPaginator/index.js +40 -56
  144. package/lib/theme/DocSidebar/Desktop/CollapseButton/index.d.ts +9 -0
  145. package/lib/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  146. package/lib/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  147. package/lib/theme/DocSidebar/Desktop/Content/index.d.ts +9 -0
  148. package/lib/theme/DocSidebar/Desktop/Content/index.js +44 -0
  149. package/lib/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  150. package/lib/theme/DocSidebar/Desktop/index.d.ts +11 -0
  151. package/lib/theme/DocSidebar/Desktop/index.js +34 -0
  152. package/lib/theme/DocSidebar/Desktop/styles.module.css +50 -0
  153. package/lib/theme/DocSidebar/Mobile/index.d.ts +11 -0
  154. package/lib/theme/DocSidebar/Mobile/index.js +45 -0
  155. package/lib/theme/DocSidebar/index.d.ts +9 -0
  156. package/lib/theme/DocSidebar/index.js +17 -300
  157. package/lib/theme/DocSidebarItem/Category/index.d.ts +9 -0
  158. package/lib/theme/DocSidebarItem/Category/index.js +185 -0
  159. package/lib/theme/DocSidebarItem/Html/index.d.ts +9 -0
  160. package/lib/theme/DocSidebarItem/Html/index.js +26 -0
  161. package/lib/theme/DocSidebarItem/Html/styles.module.css +13 -0
  162. package/lib/theme/DocSidebarItem/Link/index.d.ts +9 -0
  163. package/lib/theme/DocSidebarItem/Link/index.js +54 -0
  164. package/lib/theme/DocSidebarItem/Link/styles.module.css +10 -0
  165. package/lib/theme/DocSidebarItem/index.d.ts +9 -0
  166. package/lib/theme/DocSidebarItem/index.js +21 -0
  167. package/lib/theme/DocSidebarItems/index.d.ts +11 -0
  168. package/lib/theme/DocSidebarItems/index.js +22 -0
  169. package/lib/theme/DocTagDocListPage/index.d.ts +10 -0
  170. package/lib/theme/DocTagDocListPage/index.js +89 -0
  171. package/lib/theme/DocTagsListPage/index.d.ts +10 -0
  172. package/lib/theme/DocTagsListPage/index.js +40 -0
  173. package/lib/theme/DocVersionBadge/index.d.ts +9 -0
  174. package/lib/theme/DocVersionBadge/index.js +31 -0
  175. package/lib/theme/DocVersionBanner/index.d.ts +9 -0
  176. package/{lib-next/theme/DocVersionSuggestions → lib/theme/DocVersionBanner}/index.js +51 -46
  177. package/lib/theme/EditThisPage/index.d.ts +9 -0
  178. package/lib/theme/EditThisPage/index.js +19 -24
  179. package/{src/theme/hooks/useLockBodyScroll.ts → lib/theme/ErrorPageContent.d.ts} +4 -14
  180. package/lib/theme/ErrorPageContent.js +35 -0
  181. package/lib/theme/Footer/Copyright/index.d.ts +9 -0
  182. package/lib/theme/Footer/Copyright/index.js +17 -0
  183. package/lib/theme/Footer/Layout/index.d.ts +9 -0
  184. package/lib/theme/Footer/Layout/index.js +26 -0
  185. package/lib/theme/Footer/LinkItem/index.d.ts +9 -0
  186. package/lib/theme/Footer/LinkItem/index.js +31 -0
  187. package/lib/theme/Footer/Links/MultiColumn/index.d.ts +9 -0
  188. package/lib/theme/Footer/Links/MultiColumn/index.js +43 -0
  189. package/lib/theme/Footer/Links/Simple/index.d.ts +9 -0
  190. package/lib/theme/Footer/Links/Simple/index.js +37 -0
  191. package/lib/theme/Footer/Links/index.d.ts +9 -0
  192. package/lib/theme/Footer/Links/index.js +17 -0
  193. package/lib/theme/Footer/Logo/index.d.ts +9 -0
  194. package/lib/theme/Footer/Logo/index.js +41 -0
  195. package/lib/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
  196. package/{lib-next/theme/Footer/styles.module.css → lib/theme/Footer/index.d.ts} +4 -9
  197. package/lib/theme/Footer/index.js +17 -97
  198. package/lib/theme/Heading/index.d.ts +9 -0
  199. package/lib/theme/Heading/index.js +35 -52
  200. package/lib/theme/Heading/styles.module.css +27 -2
  201. package/lib/theme/Icon/Arrow/index.d.ts +9 -0
  202. package/{lib-next/theme/IconArrow → lib/theme/Icon/Arrow}/index.js +3 -6
  203. package/lib/theme/Icon/Close/index.d.ts +9 -0
  204. package/lib/theme/Icon/Close/index.js +23 -0
  205. package/lib/theme/Icon/DarkMode/index.d.ts +9 -0
  206. package/lib/theme/Icon/DarkMode/index.js +17 -0
  207. package/lib/theme/Icon/Edit/index.d.ts +9 -0
  208. package/{src/theme/IconEdit/index.tsx → lib/theme/Icon/Edit/index.js} +5 -14
  209. package/{lib-next/theme/IconEdit → lib/theme/Icon/Edit}/styles.module.css +0 -0
  210. package/lib/theme/Icon/ExternalLink/index.d.ts +9 -0
  211. package/lib/theme/Icon/ExternalLink/index.js +23 -0
  212. package/lib/theme/Icon/ExternalLink/styles.module.css +10 -0
  213. package/lib/theme/Icon/Home/index.d.ts +9 -0
  214. package/lib/theme/Icon/Home/index.js +17 -0
  215. package/lib/theme/Icon/Language/index.d.ts +9 -0
  216. package/lib/theme/Icon/Language/index.js +22 -0
  217. package/lib/theme/Icon/LightMode/index.d.ts +9 -0
  218. package/lib/theme/Icon/LightMode/index.js +17 -0
  219. package/lib/theme/Icon/Menu/index.d.ts +9 -0
  220. package/{lib-next/theme/IconMenu → lib/theme/Icon/Menu}/index.js +8 -9
  221. package/lib/theme/LastUpdated/index.d.ts +9 -0
  222. package/lib/theme/LastUpdated/index.js +62 -51
  223. package/lib/theme/Layout/Provider/index.d.ts +9 -0
  224. package/lib/theme/Layout/Provider/index.js +29 -0
  225. package/lib/theme/Layout/index.d.ts +9 -0
  226. package/lib/theme/Layout/index.js +39 -50
  227. package/{lib-next/theme/Layout/styles.css → lib/theme/Layout/styles.module.css} +10 -5
  228. package/lib/theme/Logo/index.d.ts +9 -0
  229. package/lib/theme/Logo/index.js +58 -51
  230. package/lib/theme/MDXComponents/A.d.ts +9 -0
  231. package/{lib-next/theme/ThemeContext.js → lib/theme/MDXComponents/A.js} +4 -2
  232. package/lib/theme/MDXComponents/Code.d.ts +9 -0
  233. package/lib/theme/MDXComponents/Code.js +28 -0
  234. package/lib/theme/MDXComponents/Details.d.ts +9 -0
  235. package/lib/theme/MDXComponents/Details.js +22 -0
  236. package/lib/theme/MDXComponents/Head.d.ts +9 -0
  237. package/lib/theme/MDXComponents/Head.js +23 -0
  238. package/lib/theme/MDXComponents/Heading.d.ts +9 -0
  239. package/lib/theme/MDXComponents/Heading.js +11 -0
  240. package/lib/theme/MDXComponents/Img/index.d.ts +9 -0
  241. package/lib/theme/MDXComponents/Img/index.js +22 -0
  242. package/{src/theme/LastUpdated → lib/theme/MDXComponents/Img}/styles.module.css +2 -2
  243. package/lib/theme/MDXComponents/Pre.d.ts +9 -0
  244. package/lib/theme/MDXComponents/Pre.js +19 -0
  245. package/lib/theme/MDXComponents/Ul/index.d.ts +9 -0
  246. package/lib/theme/MDXComponents/Ul/index.js +21 -0
  247. package/lib/theme/MDXComponents/Ul/styles.module.css +14 -0
  248. package/lib/theme/MDXComponents/index.d.ts +9 -0
  249. package/lib/theme/MDXComponents/index.js +25 -57
  250. package/lib/theme/MDXContent/index.d.ts +9 -0
  251. package/lib/theme/MDXContent/index.js +12 -0
  252. package/lib/theme/MDXPage/index.d.ts +10 -0
  253. package/lib/theme/MDXPage/index.js +45 -57
  254. package/lib/theme/MDXPage/styles.module.css +10 -0
  255. package/lib/theme/Navbar/ColorModeToggle/index.d.ts +9 -0
  256. package/lib/theme/Navbar/ColorModeToggle/index.js +23 -0
  257. package/lib/theme/Navbar/Content/index.d.ts +8 -0
  258. package/lib/theme/Navbar/Content/index.js +71 -0
  259. package/{lib-next/theme/NavbarItem → lib/theme/Navbar/Content}/styles.module.css +5 -3
  260. package/lib/theme/Navbar/Layout/index.d.ts +9 -0
  261. package/lib/theme/Navbar/Layout/index.js +52 -0
  262. package/lib/theme/Navbar/{styles.module.css → Layout/styles.module.css} +1 -7
  263. package/lib/theme/Navbar/Logo/index.d.ts +8 -0
  264. package/{lib-next/theme/TabItem → lib/theme/Navbar/Logo}/index.js +7 -12
  265. package/lib/theme/Navbar/MobileSidebar/Header/index.d.ts +8 -0
  266. package/lib/theme/Navbar/MobileSidebar/Header/index.js +31 -0
  267. package/lib/theme/Navbar/MobileSidebar/Layout/index.d.ts +9 -0
  268. package/lib/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  269. package/lib/theme/Navbar/MobileSidebar/PrimaryMenu/index.d.ts +8 -0
  270. package/lib/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  271. package/lib/theme/Navbar/MobileSidebar/SecondaryMenu/index.d.ts +8 -0
  272. package/lib/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  273. package/lib/theme/Navbar/MobileSidebar/Toggle/index.d.ts +8 -0
  274. package/lib/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  275. package/lib/theme/Navbar/MobileSidebar/index.d.ts +8 -0
  276. package/lib/theme/Navbar/MobileSidebar/index.js +29 -0
  277. package/lib/theme/Navbar/Search/index.d.ts +9 -0
  278. package/{lib-next/theme/NavbarItem/SearchNavbarItem.js → lib/theme/Navbar/Search/index.js} +3 -11
  279. package/{src/theme/NavbarItem → lib/theme/Navbar/Search}/styles.module.css +8 -1
  280. package/{lib-next/theme/BlogPostItem/styles.module.css → lib/theme/Navbar/index.d.ts} +2 -8
  281. package/lib/theme/Navbar/index.js +9 -140
  282. package/lib/theme/NavbarItem/ComponentTypes.d.ts +9 -0
  283. package/lib/theme/NavbarItem/ComponentTypes.js +27 -0
  284. package/lib/theme/NavbarItem/DefaultNavbarItem.d.ts +10 -0
  285. package/lib/theme/NavbarItem/DefaultNavbarItem.js +36 -179
  286. package/lib/theme/NavbarItem/DocNavbarItem.d.ts +9 -0
  287. package/lib/theme/NavbarItem/DocNavbarItem.js +23 -43
  288. package/lib/theme/NavbarItem/DocSidebarNavbarItem.d.ts +9 -0
  289. package/lib/theme/NavbarItem/DocSidebarNavbarItem.js +33 -0
  290. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.d.ts +9 -0
  291. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +73 -61
  292. package/lib/theme/NavbarItem/DocsVersionNavbarItem.d.ts +9 -0
  293. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +11 -32
  294. package/lib/theme/NavbarItem/DropdownNavbarItem.d.ts +9 -0
  295. package/lib/theme/NavbarItem/DropdownNavbarItem.js +161 -0
  296. package/lib/theme/NavbarItem/HtmlNavbarItem.d.ts +9 -0
  297. package/lib/theme/NavbarItem/HtmlNavbarItem.js +28 -0
  298. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/index.d.ts +9 -0
  299. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/index.js +68 -0
  300. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  301. package/lib/theme/NavbarItem/NavbarNavLink.d.ts +9 -0
  302. package/lib/theme/NavbarItem/NavbarNavLink.js +68 -0
  303. package/lib/theme/NavbarItem/SearchNavbarItem.d.ts +9 -0
  304. package/lib/theme/NavbarItem/SearchNavbarItem.js +10 -23
  305. package/lib/theme/NavbarItem/index.d.ts +9 -0
  306. package/lib/theme/NavbarItem/index.js +16 -46
  307. package/{lib-next/theme/Heading/styles.module.css → lib/theme/NotFound.d.ts} +2 -4
  308. package/lib/theme/NotFound.js +44 -42
  309. package/lib/theme/PaginatorNavLink/index.d.ts +9 -0
  310. package/lib/theme/PaginatorNavLink/index.js +23 -0
  311. package/lib/theme/SearchBar.d.ts +7 -0
  312. package/lib/theme/SearchBar.js +11 -15
  313. package/lib/theme/SearchMetadata/index.d.ts +9 -0
  314. package/lib/theme/SearchMetadata/index.js +34 -0
  315. package/lib/theme/SiteMetadata/index.d.ts +8 -0
  316. package/lib/theme/SiteMetadata/index.js +116 -0
  317. package/lib/theme/SkipToContent/index.d.ts +8 -0
  318. package/lib/theme/SkipToContent/index.js +16 -52
  319. package/lib/theme/SkipToContent/styles.module.css +8 -3
  320. package/lib/theme/TOC/index.d.ts +9 -0
  321. package/lib/theme/TOC/index.js +18 -52
  322. package/lib/theme/TOC/styles.module.css +2 -2
  323. package/lib/theme/TOCCollapsible/CollapseButton/index.d.ts +9 -0
  324. package/lib/theme/TOCCollapsible/CollapseButton/index.js +29 -0
  325. package/lib/theme/TOCCollapsible/CollapseButton/styles.module.css +29 -0
  326. package/lib/theme/TOCCollapsible/index.d.ts +9 -0
  327. package/lib/theme/TOCCollapsible/index.js +42 -0
  328. package/lib/theme/TOCCollapsible/styles.module.css +31 -0
  329. package/lib/theme/TOCInline/index.d.ts +9 -0
  330. package/lib/theme/TOCInline/index.js +15 -46
  331. package/lib/theme/TOCItems/Tree.d.ts +11 -0
  332. package/lib/theme/TOCItems/Tree.js +37 -0
  333. package/lib/theme/TOCItems/index.d.ts +9 -0
  334. package/lib/theme/TOCItems/index.js +53 -0
  335. package/lib/theme/TabItem/index.d.ts +9 -0
  336. package/lib/theme/TabItem/index.js +11 -24
  337. package/lib/theme/TabItem/styles.module.css +10 -0
  338. package/lib/theme/Tabs/index.d.ts +9 -0
  339. package/lib/theme/Tabs/index.js +159 -123
  340. package/lib/theme/Tabs/styles.module.css +4 -13
  341. package/lib/theme/Tag/index.d.ts +9 -0
  342. package/lib/theme/Tag/index.js +23 -0
  343. package/lib/theme/Tag/styles.module.css +70 -0
  344. package/lib/theme/TagsListByLetter/index.d.ts +9 -0
  345. package/lib/theme/TagsListByLetter/index.js +38 -0
  346. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  347. package/lib/theme/TagsListInline/index.d.ts +9 -0
  348. package/lib/theme/TagsListInline/index.js +31 -0
  349. package/lib/theme/TagsListInline/styles.module.css +15 -0
  350. package/lib/theme/ThemedImage/index.d.ts +9 -0
  351. package/lib/theme/ThemedImage/index.js +33 -42
  352. package/lib/theme/ThemedImage/styles.module.css +9 -2
  353. package/lib/theme/prism-include-languages.d.ts +8 -0
  354. package/lib/theme/prism-include-languages.js +19 -33
  355. package/lib/translations.d.ts +15 -0
  356. package/lib/translations.js +122 -122
  357. package/package.json +41 -35
  358. package/src/deps.d.ts +13 -0
  359. package/src/getSwizzleConfig.ts +245 -0
  360. package/src/index.ts +80 -81
  361. package/src/nprogress.css +41 -0
  362. package/src/nprogress.ts +31 -0
  363. package/src/options.ts +469 -0
  364. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  365. package/src/theme/Admonition/index.tsx +209 -0
  366. package/src/theme/Admonition/styles.module.css +38 -0
  367. package/src/theme/AnnouncementBar/index.tsx +11 -19
  368. package/src/theme/AnnouncementBar/styles.module.css +26 -35
  369. package/src/theme/BackToTopButton/index.tsx +35 -0
  370. package/src/theme/BackToTopButton/styles.module.css +44 -0
  371. package/src/theme/BlogArchivePage/index.tsx +92 -0
  372. package/src/theme/BlogLayout/index.tsx +38 -0
  373. package/src/theme/BlogListPage/index.tsx +37 -36
  374. package/src/theme/BlogListPaginator/index.tsx +27 -32
  375. package/src/theme/BlogPostItem/Container/index.tsx +32 -0
  376. package/src/theme/BlogPostItem/Content/index.tsx +29 -0
  377. package/src/theme/BlogPostItem/Footer/ReadMoreLink/index.tsx +44 -0
  378. package/src/theme/BlogPostItem/Footer/index.tsx +60 -0
  379. package/src/theme/BlogPostItem/Footer/styles.module.css +10 -0
  380. package/src/theme/BlogPostItem/Header/Author/index.tsx +55 -0
  381. package/src/theme/BlogPostItem/Header/Authors/index.tsx +53 -0
  382. package/src/theme/BlogPostItem/Header/Authors/styles.module.css +21 -0
  383. package/src/theme/BlogPostItem/Header/Info/index.tsx +71 -0
  384. package/{lib/theme/LastUpdated → src/theme/BlogPostItem/Header/Info}/styles.module.css +2 -2
  385. package/src/theme/BlogPostItem/Header/Title/index.tsx +33 -0
  386. package/src/theme/BlogPostItem/Header/Title/styles.module.css +19 -0
  387. package/src/theme/BlogPostItem/Header/index.tsx +21 -0
  388. package/src/theme/BlogPostItem/index.tsx +19 -135
  389. package/src/theme/BlogPostItems/index.tsx +30 -0
  390. package/src/theme/BlogPostPage/Metadata/index.tsx +44 -0
  391. package/src/theme/BlogPostPage/index.tsx +55 -46
  392. package/src/theme/BlogPostPaginator/index.tsx +28 -37
  393. package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
  394. package/{lib-next/theme/BlogSidebar → src/theme/BlogSidebar/Desktop}/styles.module.css +8 -9
  395. package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
  396. package/src/theme/BlogSidebar/index.tsx +10 -24
  397. package/src/theme/BlogTagsListPage/index.tsx +24 -72
  398. package/src/theme/BlogTagsPostsPage/index.tsx +62 -64
  399. package/src/theme/CodeBlock/Container/index.tsx +32 -0
  400. package/src/theme/CodeBlock/Container/styles.module.css +14 -0
  401. package/src/theme/CodeBlock/Content/Element.tsx +30 -0
  402. package/src/theme/CodeBlock/Content/String.tsx +110 -0
  403. package/src/theme/CodeBlock/{styles.module.css → Content/styles.module.css} +47 -32
  404. package/src/theme/CodeBlock/CopyButton/index.tsx +68 -0
  405. package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  406. package/src/theme/CodeBlock/Line/index.tsx +49 -0
  407. package/src/theme/CodeBlock/Line/styles.module.css +51 -0
  408. package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
  409. package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  410. package/src/theme/CodeBlock/index.tsx +29 -252
  411. package/src/theme/ColorModeToggle/index.tsx +67 -0
  412. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  413. package/src/theme/Details/index.tsx +26 -0
  414. package/src/theme/Details/styles.module.css +13 -0
  415. package/src/theme/DocBreadcrumbs/index.tsx +141 -0
  416. package/src/theme/{Heading/styles.css → DocBreadcrumbs/styles.module.css} +9 -13
  417. package/src/theme/DocCard/index.tsx +120 -0
  418. package/src/theme/DocCard/styles.module.css +34 -0
  419. package/src/theme/DocCardList/index.tsx +35 -0
  420. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +77 -0
  421. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  422. package/src/theme/DocItem/Content/index.tsx +48 -0
  423. package/src/theme/DocItem/Footer/index.tsx +89 -0
  424. package/src/theme/DocItem/Footer/styles.module.css +18 -0
  425. package/src/theme/DocItem/Layout/index.tsx +68 -0
  426. package/src/theme/DocItem/Layout/styles.module.css +17 -0
  427. package/src/theme/DocItem/Metadata/index.tsx +22 -0
  428. package/src/theme/DocItem/Paginator/index.tsx +19 -0
  429. package/src/theme/DocItem/TOC/Desktop/index.tsx +24 -0
  430. package/src/theme/DocItem/TOC/Mobile/index.tsx +27 -0
  431. package/src/theme/DocItem/TOC/Mobile/styles.module.css +19 -0
  432. package/src/theme/DocItem/index.tsx +15 -102
  433. package/src/theme/DocPage/Layout/Main/index.tsx +36 -0
  434. package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
  435. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
  436. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  437. package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
  438. package/src/theme/DocPage/Layout/Sidebar/styles.module.css +32 -0
  439. package/src/theme/DocPage/Layout/index.tsx +38 -0
  440. package/src/theme/{BlogPostItem → DocPage/Layout}/styles.module.css +5 -4
  441. package/src/theme/DocPage/index.tsx +39 -148
  442. package/src/theme/DocPaginator/index.tsx +29 -41
  443. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  444. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  445. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  446. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  447. package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
  448. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  449. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  450. package/src/theme/DocSidebar/index.tsx +14 -343
  451. package/src/theme/DocSidebarItem/Category/index.tsx +211 -0
  452. package/src/theme/DocSidebarItem/Html/index.tsx +34 -0
  453. package/src/theme/DocSidebarItem/Html/styles.module.css +13 -0
  454. package/src/theme/DocSidebarItem/Link/index.tsx +58 -0
  455. package/src/theme/DocSidebarItem/Link/styles.module.css +10 -0
  456. package/src/theme/DocSidebarItem/index.tsx +27 -0
  457. package/src/theme/DocSidebarItems/index.tsx +27 -0
  458. package/src/theme/DocTagDocListPage/index.tsx +95 -0
  459. package/src/theme/DocTagsListPage/index.tsx +43 -0
  460. package/src/theme/DocVersionBadge/index.tsx +36 -0
  461. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +77 -49
  462. package/src/theme/EditThisPage/index.tsx +7 -3
  463. package/src/theme/ErrorPageContent.tsx +41 -0
  464. package/src/theme/Footer/Copyright/index.tsx +20 -0
  465. package/src/theme/Footer/Layout/index.tsx +34 -0
  466. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  467. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  468. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  469. package/src/theme/Footer/Links/index.tsx +21 -0
  470. package/src/theme/Footer/Logo/index.tsx +46 -0
  471. package/src/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
  472. package/src/theme/Footer/index.tsx +13 -113
  473. package/src/theme/Heading/index.tsx +33 -39
  474. package/src/theme/Heading/styles.module.css +27 -2
  475. package/src/theme/{IconArrow → Icon/Arrow}/index.tsx +4 -6
  476. package/src/theme/Icon/Close/index.tsx +26 -0
  477. package/src/theme/Icon/DarkMode/index.tsx +20 -0
  478. package/{lib-next/theme/IconEdit/index.js → src/theme/Icon/Edit/index.tsx} +11 -9
  479. package/{lib/theme/IconEdit → src/theme/Icon/Edit}/styles.module.css +0 -0
  480. package/src/theme/Icon/ExternalLink/index.tsx +30 -0
  481. package/src/theme/Icon/ExternalLink/styles.module.css +10 -0
  482. package/src/theme/Icon/Home/index.tsx +20 -0
  483. package/src/theme/Icon/Language/index.tsx +29 -0
  484. package/src/theme/Icon/LightMode/index.tsx +20 -0
  485. package/src/theme/{IconMenu → Icon/Menu}/index.tsx +5 -10
  486. package/src/theme/LastUpdated/index.tsx +36 -39
  487. package/src/theme/Layout/Provider/index.tsx +33 -0
  488. package/src/theme/Layout/index.tsx +23 -15
  489. package/{lib/theme/Layout/styles.css → src/theme/Layout/styles.module.css} +10 -5
  490. package/src/theme/Logo/index.tsx +58 -23
  491. package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
  492. package/src/theme/MDXComponents/Code.tsx +40 -0
  493. package/src/theme/MDXComponents/Details.tsx +28 -0
  494. package/src/theme/MDXComponents/Head.tsx +29 -0
  495. package/src/theme/MDXComponents/Heading.tsx +14 -0
  496. package/src/theme/MDXComponents/Img/index.tsx +27 -0
  497. package/src/theme/MDXComponents/Img/styles.module.css +10 -0
  498. package/src/theme/MDXComponents/Pre.tsx +23 -0
  499. package/src/theme/MDXComponents/Ul/index.tsx +26 -0
  500. package/src/theme/MDXComponents/Ul/styles.module.css +14 -0
  501. package/src/theme/MDXComponents/index.tsx +25 -42
  502. package/src/theme/MDXContent/index.tsx +15 -0
  503. package/src/theme/MDXPage/index.tsx +42 -40
  504. package/src/theme/MDXPage/styles.module.css +10 -0
  505. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  506. package/src/theme/Navbar/Content/index.tsx +86 -0
  507. package/{lib/theme/NavbarItem → src/theme/Navbar/Content}/styles.module.css +5 -3
  508. package/src/theme/Navbar/Layout/index.tsx +57 -0
  509. package/{lib-next/theme/Navbar → src/theme/Navbar/Layout}/styles.module.css +1 -7
  510. package/src/theme/Navbar/Logo/index.tsx +19 -0
  511. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  512. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  513. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  514. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +39 -0
  515. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  516. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  517. package/src/theme/Navbar/Search/index.tsx +19 -0
  518. package/src/theme/Navbar/Search/styles.module.css +20 -0
  519. package/src/theme/Navbar/index.tsx +7 -147
  520. package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
  521. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +36 -195
  522. package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -21
  523. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +36 -0
  524. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +58 -52
  525. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +5 -8
  526. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +190 -0
  527. package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
  528. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx +77 -0
  529. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  530. package/src/theme/NavbarItem/NavbarNavLink.tsx +74 -0
  531. package/src/theme/NavbarItem/SearchNavbarItem.tsx +8 -5
  532. package/src/theme/NavbarItem/index.tsx +15 -32
  533. package/src/theme/NotFound.tsx +40 -33
  534. package/src/theme/PaginatorNavLink/index.tsx +26 -0
  535. package/src/theme/SearchBar.tsx +2 -1
  536. package/src/theme/SearchMetadata/index.tsx +43 -0
  537. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +31 -41
  538. package/src/theme/SkipToContent/index.tsx +7 -32
  539. package/src/theme/SkipToContent/styles.module.css +8 -3
  540. package/src/theme/TOC/index.tsx +14 -44
  541. package/src/theme/TOC/styles.module.css +2 -2
  542. package/src/theme/TOCCollapsible/CollapseButton/index.tsx +36 -0
  543. package/src/theme/TOCCollapsible/CollapseButton/styles.module.css +29 -0
  544. package/src/theme/TOCCollapsible/index.tsx +46 -0
  545. package/src/theme/TOCCollapsible/styles.module.css +31 -0
  546. package/src/theme/TOCInline/index.tsx +15 -35
  547. package/src/theme/TOCItems/Tree.tsx +46 -0
  548. package/src/theme/TOCItems/index.tsx +61 -0
  549. package/src/theme/TabItem/index.tsx +12 -4
  550. package/src/theme/TabItem/styles.module.css +10 -0
  551. package/src/theme/Tabs/index.tsx +121 -62
  552. package/src/theme/Tabs/styles.module.css +4 -13
  553. package/src/theme/Tag/index.tsx +27 -0
  554. package/src/theme/Tag/styles.module.css +70 -0
  555. package/src/theme/TagsListByLetter/index.tsx +43 -0
  556. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  557. package/src/theme/TagsListInline/index.tsx +35 -0
  558. package/src/theme/TagsListInline/styles.module.css +15 -0
  559. package/src/theme/ThemedImage/index.tsx +12 -14
  560. package/src/theme/ThemedImage/styles.module.css +9 -2
  561. package/src/theme/prism-include-languages.ts +20 -15
  562. package/src/theme-classic.d.ts +1368 -0
  563. package/src/translations.ts +85 -60
  564. package/babel.config.js +0 -35
  565. package/codeTranslations/README.md +0 -20
  566. package/codeTranslations/ar.json +0 -55
  567. package/codeTranslations/base.json +0 -108
  568. package/codeTranslations/da.json +0 -55
  569. package/codeTranslations/de.json +0 -55
  570. package/codeTranslations/es.json +0 -55
  571. package/codeTranslations/fa.json +0 -55
  572. package/codeTranslations/fil.json +0 -55
  573. package/codeTranslations/fr.json +0 -55
  574. package/codeTranslations/he.json +0 -55
  575. package/codeTranslations/hi.json +0 -55
  576. package/codeTranslations/ja.json +0 -55
  577. package/codeTranslations/ko.json +0 -55
  578. package/codeTranslations/pl.json +0 -55
  579. package/codeTranslations/pt-BR.json +0 -55
  580. package/codeTranslations/pt-PT.json +0 -55
  581. package/codeTranslations/ru.json +0 -55
  582. package/codeTranslations/tr.json +0 -55
  583. package/codeTranslations/vi.json +0 -55
  584. package/codeTranslations/zh-Hans.json +0 -55
  585. package/codeTranslations/zh-Hant.json +0 -55
  586. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  587. package/lib/__tests__/translations.test.js +0 -112
  588. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  589. package/lib/theme/DocItem/styles.module.css +0 -28
  590. package/lib/theme/DocPage/styles.module.css +0 -98
  591. package/lib/theme/DocSidebar/styles.module.css +0 -138
  592. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  593. package/lib/theme/IconArrow/index.js +0 -28
  594. package/lib/theme/IconEdit/index.js +0 -34
  595. package/lib/theme/IconLanguage/index.js +0 -29
  596. package/lib/theme/IconMenu/index.js +0 -31
  597. package/lib/theme/LayoutHead/index.js +0 -142
  598. package/lib/theme/LayoutProviders/index.js +0 -34
  599. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  600. package/lib/theme/SearchMetadatas/index.js +0 -33
  601. package/lib/theme/Seo/index.js +0 -50
  602. package/lib/theme/ThemeContext.js +0 -21
  603. package/lib/theme/ThemeProvider/index.js +0 -38
  604. package/lib/theme/Toggle/index.js +0 -106
  605. package/lib/theme/Toggle/styles.module.css +0 -114
  606. package/lib/theme/UserPreferencesContext.js +0 -18
  607. package/lib/theme/UserPreferencesProvider/index.js +0 -44
  608. package/lib/theme/hooks/styles.css +0 -10
  609. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  610. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  611. package/lib/theme/hooks/useDocs.js +0 -18
  612. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  613. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  614. package/lib/theme/hooks/useLocationHash.js +0 -28
  615. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  616. package/lib/theme/hooks/usePrismTheme.js +0 -36
  617. package/lib/theme/hooks/useScrollPosition.js +0 -49
  618. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  619. package/lib/theme/hooks/useTabGroupChoice.js +0 -53
  620. package/lib/theme/hooks/useTheme.js +0 -99
  621. package/lib/theme/hooks/useThemeContext.js +0 -31
  622. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  623. package/lib/theme/hooks/useWindowSize.js +0 -55
  624. package/lib/types.d.ts +0 -600
  625. package/lib/validateThemeConfig.js +0 -317
  626. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  627. package/lib-next/__tests__/translations.test.js +0 -128
  628. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  629. package/lib-next/index.js +0 -198
  630. package/lib-next/theme/AnnouncementBar/index.js +0 -65
  631. package/lib-next/theme/AnnouncementBar/styles.module.css +0 -72
  632. package/lib-next/theme/BlogListPage/index.js +0 -56
  633. package/lib-next/theme/BlogListPaginator/index.js +0 -54
  634. package/lib-next/theme/BlogPostItem/index.js +0 -151
  635. package/lib-next/theme/BlogPostPage/index.js +0 -59
  636. package/lib-next/theme/BlogPostPaginator/index.js +0 -57
  637. package/lib-next/theme/BlogSidebar/index.js +0 -36
  638. package/lib-next/theme/BlogTagsListPage/index.js +0 -81
  639. package/lib-next/theme/BlogTagsPostsPage/index.js +0 -96
  640. package/lib-next/theme/CodeBlock/index.js +0 -267
  641. package/lib-next/theme/CodeBlock/styles.module.css +0 -71
  642. package/lib-next/theme/DocItem/index.js +0 -117
  643. package/lib-next/theme/DocItem/styles.module.css +0 -28
  644. package/lib-next/theme/DocPage/index.js +0 -146
  645. package/lib-next/theme/DocPage/styles.module.css +0 -98
  646. package/lib-next/theme/DocPaginator/index.js +0 -59
  647. package/lib-next/theme/DocSidebar/index.js +0 -344
  648. package/lib-next/theme/DocSidebar/styles.module.css +0 -138
  649. package/lib-next/theme/EditThisPage/index.js +0 -21
  650. package/lib-next/theme/Footer/index.js +0 -120
  651. package/lib-next/theme/Heading/index.js +0 -51
  652. package/lib-next/theme/Heading/styles.css +0 -23
  653. package/lib-next/theme/IconLanguage/index.js +0 -25
  654. package/lib-next/theme/LastUpdated/index.js +0 -82
  655. package/lib-next/theme/Layout/index.js +0 -46
  656. package/lib-next/theme/LayoutHead/index.js +0 -133
  657. package/lib-next/theme/LayoutProviders/index.js +0 -21
  658. package/lib-next/theme/Logo/index.js +0 -50
  659. package/lib-next/theme/MDXComponents/index.js +0 -51
  660. package/lib-next/theme/MDXPage/index.js +0 -55
  661. package/lib-next/theme/Navbar/index.js +0 -146
  662. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +0 -210
  663. package/lib-next/theme/NavbarItem/DocNavbarItem.js +0 -43
  664. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -83
  665. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +0 -28
  666. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -66
  667. package/lib-next/theme/NavbarItem/index.js +0 -41
  668. package/lib-next/theme/NotFound.js +0 -46
  669. package/lib-next/theme/SearchBar.js +0 -11
  670. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  671. package/lib-next/theme/Seo/index.js +0 -37
  672. package/lib-next/theme/SkipToContent/index.js +0 -50
  673. package/lib-next/theme/SkipToContent/styles.module.css +0 -16
  674. package/lib-next/theme/TOC/index.js +0 -52
  675. package/lib-next/theme/TOC/styles.module.css +0 -23
  676. package/lib-next/theme/TOCInline/index.js +0 -43
  677. package/lib-next/theme/TOCInline/styles.module.css +0 -12
  678. package/lib-next/theme/Tabs/index.js +0 -144
  679. package/lib-next/theme/Tabs/styles.module.css +0 -23
  680. package/lib-next/theme/ThemeProvider/index.js +0 -25
  681. package/lib-next/theme/ThemedImage/index.js +0 -42
  682. package/lib-next/theme/ThemedImage/styles.module.css +0 -11
  683. package/lib-next/theme/Toggle/index.js +0 -95
  684. package/lib-next/theme/Toggle/styles.module.css +0 -114
  685. package/lib-next/theme/UserPreferencesContext.js +0 -9
  686. package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
  687. package/lib-next/theme/hooks/styles.css +0 -10
  688. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  689. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  690. package/lib-next/theme/hooks/useDocs.js +0 -10
  691. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  692. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  693. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  694. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  695. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  696. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  697. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  698. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
  699. package/lib-next/theme/hooks/useTheme.js +0 -82
  700. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  701. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  702. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  703. package/lib-next/theme/prism-include-languages.js +0 -23
  704. package/lib-next/translations.js +0 -145
  705. package/lib-next/types.d.ts +0 -600
  706. package/lib-next/validateThemeConfig.js +0 -317
  707. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  708. package/src/__tests__/translations.test.ts +0 -116
  709. package/src/__tests__/validateThemeConfig.test.js +0 -333
  710. package/src/prism-include-languages.js +0 -11
  711. package/src/theme/BlogSidebar/styles.module.css +0 -46
  712. package/src/theme/DocItem/styles.module.css +0 -28
  713. package/src/theme/DocPage/styles.module.css +0 -98
  714. package/src/theme/DocSidebar/styles.module.css +0 -138
  715. package/src/theme/IconEdit/styles.module.css +0 -11
  716. package/src/theme/IconLanguage/index.tsx +0 -31
  717. package/src/theme/LayoutProviders/index.tsx +0 -24
  718. package/src/theme/NavbarItem/LocaleDropdownNavbarItem.tsx +0 -67
  719. package/src/theme/SearchMetadatas/index.tsx +0 -28
  720. package/src/theme/Seo/index.tsx +0 -47
  721. package/src/theme/ThemeProvider/index.tsx +0 -24
  722. package/src/theme/Toggle/index.tsx +0 -113
  723. package/src/theme/Toggle/styles.module.css +0 -114
  724. package/src/theme/UserPreferencesContext.ts +0 -12
  725. package/src/theme/UserPreferencesProvider/index.tsx +0 -32
  726. package/src/theme/hooks/styles.css +0 -10
  727. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  728. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  729. package/src/theme/hooks/useDocs.ts +0 -11
  730. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  731. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  732. package/src/theme/hooks/useLocationHash.ts +0 -25
  733. package/src/theme/hooks/usePrismTheme.ts +0 -22
  734. package/src/theme/hooks/useScrollPosition.ts +0 -45
  735. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  736. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  737. package/src/theme/hooks/useTheme.ts +0 -92
  738. package/src/theme/hooks/useThemeContext.ts +0 -23
  739. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  740. package/src/theme/hooks/useWindowSize.ts +0 -51
  741. package/src/types.d.ts +0 -600
  742. package/src/validateThemeConfig.js +0 -317
  743. package/tsconfig.json +0 -12
  744. package/update-code-translations.js +0 -239
  745. package/update-code-translations.test.js +0 -33
package/src/options.ts ADDED
@@ -0,0 +1,469 @@
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 defaultPrismTheme from 'prism-react-renderer/themes/palenight';
9
+ import {Joi, URISchema} from '@docusaurus/utils-validation';
10
+ import type {Options, PluginOptions} from '@docusaurus/theme-classic';
11
+ import type {ThemeConfig} from '@docusaurus/theme-common';
12
+ import type {
13
+ ThemeConfigValidationContext,
14
+ OptionValidationContext,
15
+ } from '@docusaurus/types';
16
+
17
+ const DEFAULT_DOCS_CONFIG: ThemeConfig['docs'] = {
18
+ versionPersistence: 'localStorage',
19
+ sidebar: {
20
+ hideable: false,
21
+ autoCollapseCategories: false,
22
+ },
23
+ };
24
+ const DocsSchema = Joi.object({
25
+ versionPersistence: Joi.string()
26
+ .equal('localStorage', 'none')
27
+ .default(DEFAULT_DOCS_CONFIG.versionPersistence),
28
+ sidebar: Joi.object({
29
+ hideable: Joi.bool().default(DEFAULT_DOCS_CONFIG.sidebar.hideable),
30
+ autoCollapseCategories: Joi.bool().default(
31
+ DEFAULT_DOCS_CONFIG.sidebar.autoCollapseCategories,
32
+ ),
33
+ }).default(DEFAULT_DOCS_CONFIG.sidebar),
34
+ }).default(DEFAULT_DOCS_CONFIG);
35
+
36
+ const DEFAULT_COLOR_MODE_CONFIG: ThemeConfig['colorMode'] = {
37
+ defaultMode: 'light',
38
+ disableSwitch: false,
39
+ respectPrefersColorScheme: false,
40
+ };
41
+
42
+ export const DEFAULT_CONFIG: ThemeConfig = {
43
+ colorMode: DEFAULT_COLOR_MODE_CONFIG,
44
+ docs: DEFAULT_DOCS_CONFIG,
45
+ metadata: [],
46
+ prism: {
47
+ additionalLanguages: [],
48
+ theme: defaultPrismTheme,
49
+ magicComments: [
50
+ {
51
+ className: 'theme-code-block-highlighted-line',
52
+ line: 'highlight-next-line',
53
+ block: {start: 'highlight-start', end: 'highlight-end'},
54
+ },
55
+ ],
56
+ },
57
+ navbar: {
58
+ hideOnScroll: false,
59
+ items: [],
60
+ },
61
+ tableOfContents: {
62
+ minHeadingLevel: 2,
63
+ maxHeadingLevel: 3,
64
+ },
65
+ };
66
+
67
+ const NavbarItemPosition = Joi.string().equal('left', 'right').default('left');
68
+
69
+ const NavbarItemBaseSchema = Joi.object({
70
+ label: Joi.string(),
71
+ html: Joi.string(),
72
+ className: Joi.string(),
73
+ })
74
+ .nand('html', 'label')
75
+ // We allow any unknown attributes on the links (users may need additional
76
+ // attributes like target, aria-role, data-customAttribute...)
77
+ .unknown();
78
+
79
+ const DefaultNavbarItemSchema = NavbarItemBaseSchema.append({
80
+ to: Joi.string(),
81
+ href: URISchema,
82
+ activeBasePath: Joi.string(),
83
+ activeBaseRegex: Joi.string(),
84
+ prependBaseUrlToHref: Joi.bool(),
85
+ // This is only triggered in case of a nested dropdown
86
+ items: Joi.forbidden().messages({
87
+ 'any.unknown': 'Nested dropdowns are not allowed',
88
+ }),
89
+ })
90
+ .xor('href', 'to')
91
+ .messages({
92
+ 'object.xor': 'One and only one between "to" and "href" should be provided',
93
+ });
94
+
95
+ const DocsVersionNavbarItemSchema = NavbarItemBaseSchema.append({
96
+ type: Joi.string().equal('docsVersion').required(),
97
+ to: Joi.string(),
98
+ docsPluginId: Joi.string(),
99
+ });
100
+
101
+ const DocItemSchema = NavbarItemBaseSchema.append({
102
+ type: Joi.string().equal('doc').required(),
103
+ docId: Joi.string().required(),
104
+ docsPluginId: Joi.string(),
105
+ });
106
+
107
+ const DocSidebarItemSchema = NavbarItemBaseSchema.append({
108
+ type: Joi.string().equal('docSidebar').required(),
109
+ sidebarId: Joi.string().required(),
110
+ docsPluginId: Joi.string(),
111
+ });
112
+
113
+ const HtmlNavbarItemSchema = Joi.object({
114
+ className: Joi.string(),
115
+ type: Joi.string().equal('html').required(),
116
+ value: Joi.string().required(),
117
+ });
118
+
119
+ // A temporary workaround to allow users to add custom navbar items
120
+ // See https://github.com/facebook/docusaurus/issues/7227
121
+ const CustomNavbarItemRegexp = /custom-.*/;
122
+ const CustomNavbarItemSchema = Joi.object({
123
+ type: Joi.string().regex(CustomNavbarItemRegexp).required(),
124
+ }).unknown();
125
+
126
+ const itemWithType = (type: string | RegExp | undefined) => {
127
+ // Because equal(undefined) is not supported :/
128
+ const typeSchema =
129
+ // eslint-disable-next-line no-nested-ternary
130
+ type instanceof RegExp
131
+ ? Joi.string().required().regex(type)
132
+ : type
133
+ ? Joi.string().required().equal(type)
134
+ : Joi.string().forbidden();
135
+ return Joi.object({
136
+ type: typeSchema,
137
+ })
138
+ .unknown()
139
+ .required();
140
+ };
141
+
142
+ const DropdownSubitemSchema = Joi.object({
143
+ position: Joi.forbidden(),
144
+ }).when('.', {
145
+ switch: [
146
+ {
147
+ is: itemWithType('docsVersion'),
148
+ then: DocsVersionNavbarItemSchema,
149
+ },
150
+ {
151
+ is: itemWithType('doc'),
152
+ then: DocItemSchema,
153
+ },
154
+ {
155
+ is: itemWithType('docSidebar'),
156
+ then: DocSidebarItemSchema,
157
+ },
158
+ {
159
+ is: itemWithType(undefined),
160
+ then: DefaultNavbarItemSchema,
161
+ },
162
+ {
163
+ is: itemWithType('html'),
164
+ then: HtmlNavbarItemSchema,
165
+ },
166
+ {
167
+ is: itemWithType(CustomNavbarItemRegexp),
168
+ then: CustomNavbarItemSchema,
169
+ },
170
+ {
171
+ is: Joi.alternatives().try(
172
+ itemWithType('dropdown'),
173
+ itemWithType('docsVersionDropdown'),
174
+ itemWithType('localeDropdown'),
175
+ itemWithType('search'),
176
+ ),
177
+ then: Joi.forbidden().messages({
178
+ 'any.unknown': 'Nested dropdowns are not allowed',
179
+ }),
180
+ },
181
+ ],
182
+ otherwise: Joi.forbidden().messages({
183
+ 'any.unknown': 'Bad navbar item type {.type}',
184
+ }),
185
+ });
186
+
187
+ const DropdownNavbarItemSchema = NavbarItemBaseSchema.append({
188
+ items: Joi.array().items(DropdownSubitemSchema).required(),
189
+ });
190
+
191
+ const DocsVersionDropdownNavbarItemSchema = NavbarItemBaseSchema.append({
192
+ type: Joi.string().equal('docsVersionDropdown').required(),
193
+ docsPluginId: Joi.string(),
194
+ dropdownActiveClassDisabled: Joi.boolean(),
195
+ dropdownItemsBefore: Joi.array().items(DropdownSubitemSchema).default([]),
196
+ dropdownItemsAfter: Joi.array().items(DropdownSubitemSchema).default([]),
197
+ });
198
+
199
+ const LocaleDropdownNavbarItemSchema = NavbarItemBaseSchema.append({
200
+ type: Joi.string().equal('localeDropdown').required(),
201
+ dropdownItemsBefore: Joi.array().items(DropdownSubitemSchema).default([]),
202
+ dropdownItemsAfter: Joi.array().items(DropdownSubitemSchema).default([]),
203
+ });
204
+
205
+ const SearchItemSchema = Joi.object({
206
+ type: Joi.string().equal('search').required(),
207
+ className: Joi.string(),
208
+ });
209
+
210
+ const NavbarItemSchema = Joi.object({
211
+ position: NavbarItemPosition,
212
+ }).when('.', {
213
+ switch: [
214
+ {
215
+ is: itemWithType('docsVersion'),
216
+ then: DocsVersionNavbarItemSchema,
217
+ },
218
+ {
219
+ is: itemWithType('dropdown'),
220
+ then: DropdownNavbarItemSchema,
221
+ },
222
+ {
223
+ is: itemWithType('docsVersionDropdown'),
224
+ then: DocsVersionDropdownNavbarItemSchema,
225
+ },
226
+ {
227
+ is: itemWithType('doc'),
228
+ then: DocItemSchema,
229
+ },
230
+ {
231
+ is: itemWithType('docSidebar'),
232
+ then: DocSidebarItemSchema,
233
+ },
234
+ {
235
+ is: itemWithType('localeDropdown'),
236
+ then: LocaleDropdownNavbarItemSchema,
237
+ },
238
+ {
239
+ is: itemWithType('search'),
240
+ then: SearchItemSchema,
241
+ },
242
+ {
243
+ is: itemWithType('html'),
244
+ then: HtmlNavbarItemSchema,
245
+ },
246
+ {
247
+ is: itemWithType(CustomNavbarItemRegexp),
248
+ then: CustomNavbarItemSchema,
249
+ },
250
+ {
251
+ is: itemWithType(undefined),
252
+ then: Joi.object().when('.', {
253
+ // Dropdown item can be specified without type field
254
+ is: Joi.object({
255
+ items: Joi.array().required(),
256
+ }).unknown(),
257
+ then: DropdownNavbarItemSchema,
258
+ otherwise: DefaultNavbarItemSchema,
259
+ }),
260
+ },
261
+ ],
262
+ otherwise: Joi.forbidden().messages({
263
+ 'any.unknown': 'Bad navbar item type {.type}',
264
+ }),
265
+ });
266
+
267
+ const ColorModeSchema = Joi.object({
268
+ defaultMode: Joi.string()
269
+ .equal('dark', 'light')
270
+ .default(DEFAULT_COLOR_MODE_CONFIG.defaultMode),
271
+ disableSwitch: Joi.bool().default(DEFAULT_COLOR_MODE_CONFIG.disableSwitch),
272
+ respectPrefersColorScheme: Joi.bool().default(
273
+ DEFAULT_COLOR_MODE_CONFIG.respectPrefersColorScheme,
274
+ ),
275
+ switchConfig: Joi.any().forbidden().messages({
276
+ 'any.unknown':
277
+ 'colorMode.switchConfig is deprecated. If you want to customize the icons for light and dark mode, swizzle IconLightMode, IconDarkMode, or ColorModeToggle instead.',
278
+ }),
279
+ }).default(DEFAULT_COLOR_MODE_CONFIG);
280
+
281
+ const HtmlMetadataSchema = Joi.object({
282
+ id: Joi.string(),
283
+ name: Joi.string(),
284
+ property: Joi.string(),
285
+ content: Joi.string(),
286
+ itemprop: Joi.string(),
287
+ }).unknown();
288
+
289
+ const FooterLinkItemSchema = Joi.object({
290
+ to: Joi.string(),
291
+ href: URISchema,
292
+ html: Joi.string(),
293
+ label: Joi.string(),
294
+ })
295
+ .xor('to', 'href', 'html')
296
+ .with('to', 'label')
297
+ .with('href', 'label')
298
+ .nand('html', 'label')
299
+ // We allow any unknown attributes on the links (users may need additional
300
+ // attributes like target, aria-role, data-customAttribute...)
301
+ .unknown();
302
+
303
+ const LogoSchema = Joi.object({
304
+ alt: Joi.string().allow(''),
305
+ src: Joi.string().required(),
306
+ srcDark: Joi.string(),
307
+ width: Joi.alternatives().try(Joi.string(), Joi.number()),
308
+ height: Joi.alternatives().try(Joi.string(), Joi.number()),
309
+ href: Joi.string(),
310
+ target: Joi.string(),
311
+ style: Joi.object(),
312
+ className: Joi.string(),
313
+ });
314
+
315
+ export const ThemeConfigSchema = Joi.object<ThemeConfig>({
316
+ // TODO temporary (@alpha-58)
317
+ // @ts-expect-error: forbidden
318
+ disableDarkMode: Joi.any().forbidden().messages({
319
+ 'any.unknown':
320
+ 'disableDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.disableSwitch = true',
321
+ }),
322
+ // TODO temporary (@alpha-58)
323
+ defaultDarkMode: Joi.any().forbidden().messages({
324
+ 'any.unknown':
325
+ 'defaultDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.defaultMode = "dark"',
326
+ }),
327
+ colorMode: ColorModeSchema,
328
+ image: Joi.string(),
329
+ docs: DocsSchema,
330
+ metadata: Joi.array()
331
+ .items(HtmlMetadataSchema)
332
+ .default(DEFAULT_CONFIG.metadata),
333
+ // cSpell:ignore metadatas
334
+ metadatas: Joi.any().forbidden().messages({
335
+ 'any.unknown':
336
+ // cSpell:ignore metadatas
337
+ 'themeConfig.metadatas has been renamed as themeConfig.metadata. See https://github.com/facebook/docusaurus/pull/5871',
338
+ }),
339
+ announcementBar: Joi.object({
340
+ id: Joi.string().default('announcement-bar'),
341
+ content: Joi.string().required(),
342
+ backgroundColor: Joi.string(),
343
+ textColor: Joi.string(),
344
+ isCloseable: Joi.bool().default(true),
345
+ }).optional(),
346
+ navbar: Joi.object({
347
+ style: Joi.string().equal('dark', 'primary'),
348
+ hideOnScroll: Joi.bool().default(DEFAULT_CONFIG.navbar.hideOnScroll),
349
+ // TODO temporary (@alpha-58)
350
+ links: Joi.any().forbidden().messages({
351
+ 'any.unknown':
352
+ 'themeConfig.navbar.links has been renamed as themeConfig.navbar.items',
353
+ }),
354
+ items: Joi.array()
355
+ .items(NavbarItemSchema)
356
+ .default(DEFAULT_CONFIG.navbar.items),
357
+ title: Joi.string().allow('', null),
358
+ logo: LogoSchema,
359
+ }).default(DEFAULT_CONFIG.navbar),
360
+ footer: Joi.object({
361
+ style: Joi.string().equal('dark', 'light').default('light'),
362
+ logo: LogoSchema,
363
+ copyright: Joi.string(),
364
+ links: Joi.alternatives(
365
+ Joi.array().items(
366
+ Joi.object({
367
+ title: Joi.string().allow(null).default(null),
368
+ items: Joi.array().items(FooterLinkItemSchema).default([]),
369
+ }),
370
+ ),
371
+ Joi.array().items(FooterLinkItemSchema),
372
+ )
373
+ .messages({
374
+ 'alternatives.match': `The footer must be either simple or multi-column, and not a mix of the two. See: https://docusaurus.io/docs/api/themes/configuration#footer-links`,
375
+ })
376
+ .default([]),
377
+ }).optional(),
378
+ prism: Joi.object({
379
+ theme: Joi.object({
380
+ plain: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
381
+ styles: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
382
+ }).default(DEFAULT_CONFIG.prism.theme),
383
+ darkTheme: Joi.object({
384
+ plain: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
385
+ styles: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
386
+ }),
387
+ defaultLanguage: Joi.string(),
388
+ additionalLanguages: Joi.array()
389
+ .items(Joi.string())
390
+ .default(DEFAULT_CONFIG.prism.additionalLanguages),
391
+ magicComments: Joi.array()
392
+ .items(
393
+ Joi.object({
394
+ className: Joi.string().required(),
395
+ line: Joi.string(),
396
+ block: Joi.object({
397
+ start: Joi.string().required(),
398
+ end: Joi.string().required(),
399
+ }),
400
+ }).or('line', 'block'),
401
+ )
402
+ .default(DEFAULT_CONFIG.prism.magicComments),
403
+ })
404
+ .default(DEFAULT_CONFIG.prism)
405
+ .unknown(),
406
+ hideableSidebar: Joi.forbidden().messages({
407
+ 'any.unknown':
408
+ 'themeConfig.hideableSidebar has been moved to themeConfig.docs.sidebar.hideable.',
409
+ }),
410
+ autoCollapseSidebarCategories: Joi.forbidden().messages({
411
+ 'any.unknown':
412
+ 'themeConfig.autoCollapseSidebarCategories has been moved to themeConfig.docs.sidebar.autoCollapseCategories.',
413
+ }),
414
+ sidebarCollapsible: Joi.forbidden().messages({
415
+ 'any.unknown':
416
+ 'The themeConfig.sidebarCollapsible has been moved to docs plugin options. See: https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs',
417
+ }),
418
+ tableOfContents: Joi.object({
419
+ minHeadingLevel: Joi.number()
420
+ .default(DEFAULT_CONFIG.tableOfContents.minHeadingLevel)
421
+ .when('maxHeadingLevel', {
422
+ is: Joi.exist(),
423
+ then: Joi.number()
424
+ .integer()
425
+ .min(2)
426
+ .max(6)
427
+ .max(Joi.ref('maxHeadingLevel')),
428
+ otherwise: Joi.number().integer().min(2).max(6),
429
+ }),
430
+ maxHeadingLevel: Joi.number()
431
+ .integer()
432
+ .min(2)
433
+ .max(6)
434
+ .default(DEFAULT_CONFIG.tableOfContents.maxHeadingLevel),
435
+ }).default(DEFAULT_CONFIG.tableOfContents),
436
+ });
437
+
438
+ export function validateThemeConfig({
439
+ validate,
440
+ themeConfig,
441
+ }: ThemeConfigValidationContext<ThemeConfig>): ThemeConfig {
442
+ return validate(ThemeConfigSchema, themeConfig);
443
+ }
444
+
445
+ const DEFAULT_OPTIONS = {
446
+ customCss: [],
447
+ };
448
+
449
+ const PluginOptionSchema = Joi.object<PluginOptions>({
450
+ customCss: Joi.alternatives()
451
+ .try(
452
+ Joi.array().items(Joi.string().required()),
453
+ Joi.alternatives().conditional(Joi.string().required(), {
454
+ then: Joi.custom((val: string) => [val]),
455
+ otherwise: Joi.forbidden().messages({
456
+ 'any.unknown': '"customCss" must be a string or an array of strings',
457
+ }),
458
+ }),
459
+ )
460
+ .default(DEFAULT_OPTIONS.customCss),
461
+ });
462
+
463
+ export function validateOptions({
464
+ validate,
465
+ options,
466
+ }: OptionValidationContext<Options, PluginOptions>): PluginOptions {
467
+ const validatedOptions = validate(PluginOptionSchema, options);
468
+ return validatedOptions;
469
+ }
@@ -0,0 +1,209 @@
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, {type ReactNode} from 'react';
9
+ import clsx from 'clsx';
10
+ import {ThemeClassNames} from '@docusaurus/theme-common';
11
+ import Translate from '@docusaurus/Translate';
12
+ import type {Props} from '@theme/Admonition';
13
+
14
+ import styles from './styles.module.css';
15
+
16
+ function NoteIcon() {
17
+ return (
18
+ <svg 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
+ }
26
+
27
+ function TipIcon() {
28
+ return (
29
+ <svg viewBox="0 0 12 16">
30
+ <path
31
+ fillRule="evenodd"
32
+ 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"
33
+ />
34
+ </svg>
35
+ );
36
+ }
37
+
38
+ function DangerIcon() {
39
+ return (
40
+ <svg viewBox="0 0 12 16">
41
+ <path
42
+ fillRule="evenodd"
43
+ 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"
44
+ />
45
+ </svg>
46
+ );
47
+ }
48
+
49
+ function InfoIcon() {
50
+ return (
51
+ <svg viewBox="0 0 14 16">
52
+ <path
53
+ fillRule="evenodd"
54
+ 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"
55
+ />
56
+ </svg>
57
+ );
58
+ }
59
+
60
+ function CautionIcon() {
61
+ return (
62
+ <svg viewBox="0 0 16 16">
63
+ <path
64
+ fillRule="evenodd"
65
+ 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"
66
+ />
67
+ </svg>
68
+ );
69
+ }
70
+
71
+ type AdmonitionConfig = {
72
+ iconComponent: React.ComponentType;
73
+ infimaClassName: string;
74
+ label: ReactNode;
75
+ };
76
+
77
+ // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
78
+ const AdmonitionConfigs: Record<Props['type'], AdmonitionConfig> = {
79
+ note: {
80
+ infimaClassName: 'secondary',
81
+ iconComponent: NoteIcon,
82
+ label: (
83
+ <Translate
84
+ id="theme.admonition.note"
85
+ description="The default label used for the Note admonition (:::note)">
86
+ note
87
+ </Translate>
88
+ ),
89
+ },
90
+ tip: {
91
+ infimaClassName: 'success',
92
+ iconComponent: TipIcon,
93
+ label: (
94
+ <Translate
95
+ id="theme.admonition.tip"
96
+ description="The default label used for the Tip admonition (:::tip)">
97
+ tip
98
+ </Translate>
99
+ ),
100
+ },
101
+ danger: {
102
+ infimaClassName: 'danger',
103
+ iconComponent: DangerIcon,
104
+ label: (
105
+ <Translate
106
+ id="theme.admonition.danger"
107
+ description="The default label used for the Danger admonition (:::danger)">
108
+ danger
109
+ </Translate>
110
+ ),
111
+ },
112
+ info: {
113
+ infimaClassName: 'info',
114
+ iconComponent: InfoIcon,
115
+ label: (
116
+ <Translate
117
+ id="theme.admonition.info"
118
+ description="The default label used for the Info admonition (:::info)">
119
+ info
120
+ </Translate>
121
+ ),
122
+ },
123
+ caution: {
124
+ infimaClassName: 'warning',
125
+ iconComponent: CautionIcon,
126
+ label: (
127
+ <Translate
128
+ id="theme.admonition.caution"
129
+ description="The default label used for the Caution admonition (:::caution)">
130
+ caution
131
+ </Translate>
132
+ ),
133
+ },
134
+ };
135
+
136
+ // Legacy aliases, undocumented but kept for retro-compatibility
137
+ const aliases = {
138
+ secondary: 'note',
139
+ important: 'info',
140
+ success: 'tip',
141
+ warning: 'danger',
142
+ } as const;
143
+
144
+ function getAdmonitionConfig(unsafeType: string): AdmonitionConfig {
145
+ const type =
146
+ (aliases as {[key: string]: Props['type']})[unsafeType] ?? unsafeType;
147
+ const config = (AdmonitionConfigs as {[key: string]: AdmonitionConfig})[type];
148
+ if (config) {
149
+ return config;
150
+ }
151
+ console.warn(
152
+ `No admonition config found for admonition type "${type}". Using Info as fallback.`,
153
+ );
154
+ return AdmonitionConfigs.info;
155
+ }
156
+
157
+ // Workaround because it's difficult in MDX v1 to provide a MDX title as props
158
+ // See https://github.com/facebook/docusaurus/pull/7152#issuecomment-1145779682
159
+ function extractMDXAdmonitionTitle(children: ReactNode): {
160
+ mdxAdmonitionTitle: ReactNode | undefined;
161
+ rest: ReactNode;
162
+ } {
163
+ const items = React.Children.toArray(children);
164
+ const mdxAdmonitionTitle = items.find(
165
+ (item) =>
166
+ React.isValidElement(item) &&
167
+ (item.props as {mdxType: string} | null)?.mdxType ===
168
+ 'mdxAdmonitionTitle',
169
+ );
170
+ const rest = <>{items.filter((item) => item !== mdxAdmonitionTitle)}</>;
171
+ return {
172
+ mdxAdmonitionTitle,
173
+ rest,
174
+ };
175
+ }
176
+
177
+ function processAdmonitionProps(props: Props): Props {
178
+ const {mdxAdmonitionTitle, rest} = extractMDXAdmonitionTitle(props.children);
179
+ return {
180
+ ...props,
181
+ title: props.title ?? mdxAdmonitionTitle,
182
+ children: rest,
183
+ };
184
+ }
185
+
186
+ export default function Admonition(props: Props): JSX.Element {
187
+ const {children, type, title, icon: iconProp} = processAdmonitionProps(props);
188
+
189
+ const typeConfig = getAdmonitionConfig(type);
190
+ const titleLabel = title ?? typeConfig.label;
191
+ const {iconComponent: IconComponent} = typeConfig;
192
+ const icon = iconProp ?? <IconComponent />;
193
+ return (
194
+ <div
195
+ className={clsx(
196
+ ThemeClassNames.common.admonition,
197
+ ThemeClassNames.common.admonitionType(props.type),
198
+ 'alert',
199
+ `alert--${typeConfig.infimaClassName}`,
200
+ styles.admonition,
201
+ )}>
202
+ <div className={styles.admonitionHeading}>
203
+ <span className={styles.admonitionIcon}>{icon}</span>
204
+ {titleLabel}
205
+ </div>
206
+ <div className={styles.admonitionContent}>{children}</div>
207
+ </div>
208
+ );
209
+ }