@docusaurus/theme-classic 2.0.0-beta.fbdeefcac → 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 (740) 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 +107 -170
  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 -63
  18. package/lib/theme/AnnouncementBar/styles.module.css +23 -32
  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-next/theme/Heading/styles.module.css → lib/theme/BlogPostItem/Content/index.d.ts} +3 -9
  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/{src/theme/IconEdit → lib/theme/BlogPostItem/Footer}/styles.module.css +2 -3
  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/{lib-next/theme/Toggle → lib/theme/BlogPostItem/Header/Authors}/styles.module.css +11 -7
  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/MDXPage → 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/{src/theme/BlogPostItem → lib/theme/BlogPostItem/Header/Title}/styles.module.css +8 -7
  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 -153
  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 -60
  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-next/theme/BlogSidebar → lib/theme/BlogSidebar/Desktop}/index.js +19 -23
  64. package/{lib-next/theme/BlogSidebar → lib/theme/BlogSidebar/Desktop}/styles.module.css +5 -4
  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 -43
  69. package/lib/theme/BlogTagsListPage/index.d.ts +10 -0
  70. package/lib/theme/BlogTagsListPage/index.js +27 -69
  71. package/lib/theme/BlogTagsPostsPage/index.d.ts +10 -0
  72. package/lib/theme/BlogTagsPostsPage/index.js +78 -89
  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/lib/theme/CodeBlock/Content/Element.d.ts +9 -0
  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-next/theme/CodeBlock → lib/theme/CodeBlock/Content}/styles.module.css +45 -27
  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/{BlogPostItem → CodeBlock/WordWrapButton}/styles.module.css +5 -8
  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-next/theme/Heading/styles.css → lib/theme/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/{styles.module.css → Footer/styles.module.css} +1 -9
  114. package/lib/theme/DocItem/Layout/index.d.ts +9 -0
  115. package/lib/theme/DocItem/Layout/index.js +59 -0
  116. package/{src/theme/DocItem → lib/theme/DocItem/Layout}/styles.module.css +3 -12
  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 -122
  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-next/theme/IconExternalLink → lib/theme/DocPage/Layout}/styles.module.css +7 -4
  140. package/lib/theme/DocPage/index.d.ts +10 -0
  141. package/lib/theme/DocPage/index.js +42 -165
  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 -302
  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/theme/DocVersionBanner/index.js +105 -102
  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/{src/theme/Footer → lib/theme/Footer/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 -104
  198. package/lib/theme/Heading/index.d.ts +9 -0
  199. package/lib/theme/Heading/index.js +35 -68
  200. package/lib/theme/Heading/styles.module.css +25 -5
  201. package/lib/theme/Icon/Arrow/index.d.ts +9 -0
  202. package/{lib-next/theme/IconArrow → lib/theme/Icon/Arrow}/index.js +2 -5
  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/{lib-next/theme/IconEdit → lib/theme/Icon/Edit}/index.js +2 -5
  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-next/theme/IconExternalLink → lib/theme/Icon/ExternalLink}/index.js +2 -5
  212. package/lib/theme/{IconExternalLink → Icon/ExternalLink}/styles.module.css +0 -2
  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 +7 -5
  221. package/lib/theme/LastUpdated/index.d.ts +9 -0
  222. package/lib/theme/LastUpdated/index.js +57 -42
  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} +9 -10
  228. package/lib/theme/Logo/index.d.ts +9 -0
  229. package/lib/theme/Logo/index.js +57 -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-next/theme/NavbarItem/SearchNavbarItem.js → lib/theme/MDXComponents/Heading.js} +3 -7
  240. package/lib/theme/MDXComponents/Img/index.d.ts +9 -0
  241. package/lib/theme/MDXComponents/Img/index.js +22 -0
  242. package/lib/theme/MDXComponents/Img/styles.module.css +10 -0
  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 +46 -56
  254. package/lib/theme/Navbar/ColorModeToggle/index.d.ts +9 -0
  255. package/lib/theme/Navbar/ColorModeToggle/index.js +23 -0
  256. package/lib/theme/Navbar/Content/index.d.ts +8 -0
  257. package/lib/theme/Navbar/Content/index.js +71 -0
  258. package/lib/theme/Navbar/Content/styles.module.css +15 -0
  259. package/lib/theme/Navbar/Layout/index.d.ts +9 -0
  260. package/lib/theme/Navbar/Layout/index.js +52 -0
  261. package/{lib-next/theme/Navbar → lib/theme/Navbar/Layout}/styles.module.css +0 -6
  262. package/lib/theme/Navbar/Logo/index.d.ts +8 -0
  263. package/{lib-next/theme/TabItem → lib/theme/Navbar/Logo}/index.js +7 -12
  264. package/lib/theme/Navbar/MobileSidebar/Header/index.d.ts +8 -0
  265. package/lib/theme/Navbar/MobileSidebar/Header/index.js +31 -0
  266. package/lib/theme/Navbar/MobileSidebar/Layout/index.d.ts +9 -0
  267. package/lib/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  268. package/{lib-next/theme/TOCInline/styles.module.css → lib/theme/Navbar/MobileSidebar/PrimaryMenu/index.d.ts} +2 -6
  269. package/lib/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  270. package/lib/theme/Navbar/MobileSidebar/SecondaryMenu/index.d.ts +8 -0
  271. package/lib/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  272. package/lib/theme/Navbar/MobileSidebar/Toggle/index.d.ts +8 -0
  273. package/lib/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  274. package/lib/theme/Navbar/MobileSidebar/index.d.ts +8 -0
  275. package/lib/theme/Navbar/MobileSidebar/index.js +29 -0
  276. package/lib/theme/Navbar/Search/index.d.ts +9 -0
  277. package/lib/theme/Navbar/Search/index.js +12 -0
  278. package/lib/theme/Navbar/Search/styles.module.css +20 -0
  279. package/{lib-next/theme/hooks/styles.css → lib/theme/Navbar/index.d.ts} +2 -4
  280. package/lib/theme/Navbar/index.js +9 -140
  281. package/lib/theme/NavbarItem/ComponentTypes.d.ts +9 -0
  282. package/lib/theme/NavbarItem/ComponentTypes.js +27 -0
  283. package/lib/theme/NavbarItem/DefaultNavbarItem.d.ts +10 -0
  284. package/lib/theme/NavbarItem/DefaultNavbarItem.js +36 -193
  285. package/lib/theme/NavbarItem/DocNavbarItem.d.ts +9 -0
  286. package/lib/theme/NavbarItem/DocNavbarItem.js +24 -52
  287. package/lib/theme/NavbarItem/DocSidebarNavbarItem.d.ts +9 -0
  288. package/lib/theme/NavbarItem/DocSidebarNavbarItem.js +33 -0
  289. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.d.ts +9 -0
  290. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +73 -62
  291. package/lib/theme/NavbarItem/DocsVersionNavbarItem.d.ts +9 -0
  292. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +11 -32
  293. package/lib/theme/NavbarItem/DropdownNavbarItem.d.ts +9 -0
  294. package/lib/theme/NavbarItem/DropdownNavbarItem.js +161 -0
  295. package/lib/theme/NavbarItem/HtmlNavbarItem.d.ts +9 -0
  296. package/lib/theme/NavbarItem/HtmlNavbarItem.js +28 -0
  297. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/index.d.ts +9 -0
  298. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/index.js +68 -0
  299. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  300. package/lib/theme/NavbarItem/NavbarNavLink.d.ts +9 -0
  301. package/lib/theme/NavbarItem/NavbarNavLink.js +68 -0
  302. package/lib/theme/NavbarItem/SearchNavbarItem.d.ts +9 -0
  303. package/lib/theme/NavbarItem/SearchNavbarItem.js +10 -19
  304. package/lib/theme/NavbarItem/index.d.ts +9 -0
  305. package/lib/theme/NavbarItem/index.js +15 -45
  306. package/lib/theme/NotFound.d.ts +8 -0
  307. package/lib/theme/NotFound.js +44 -49
  308. package/lib/theme/PaginatorNavLink/index.d.ts +9 -0
  309. package/lib/theme/PaginatorNavLink/index.js +23 -0
  310. package/lib/theme/SearchBar.d.ts +7 -0
  311. package/lib/theme/SearchBar.js +11 -15
  312. package/lib/theme/SearchMetadata/index.d.ts +9 -0
  313. package/lib/theme/SearchMetadata/index.js +34 -0
  314. package/lib/theme/SiteMetadata/index.d.ts +8 -0
  315. package/lib/theme/SiteMetadata/index.js +116 -0
  316. package/lib/theme/SkipToContent/index.d.ts +8 -0
  317. package/lib/theme/SkipToContent/index.js +16 -62
  318. package/lib/theme/SkipToContent/styles.module.css +7 -0
  319. package/lib/theme/TOC/index.d.ts +9 -0
  320. package/lib/theme/TOC/index.js +18 -52
  321. package/lib/theme/TOC/styles.module.css +1 -1
  322. package/lib/theme/TOCCollapsible/CollapseButton/index.d.ts +9 -0
  323. package/lib/theme/TOCCollapsible/CollapseButton/index.js +29 -0
  324. package/lib/theme/TOCCollapsible/CollapseButton/styles.module.css +29 -0
  325. package/lib/theme/TOCCollapsible/index.d.ts +9 -0
  326. package/lib/theme/TOCCollapsible/index.js +42 -0
  327. package/lib/theme/TOCCollapsible/styles.module.css +31 -0
  328. package/lib/theme/TOCInline/index.d.ts +9 -0
  329. package/lib/theme/TOCInline/index.js +15 -46
  330. package/lib/theme/TOCItems/Tree.d.ts +11 -0
  331. package/lib/theme/TOCItems/Tree.js +37 -0
  332. package/lib/theme/TOCItems/index.d.ts +9 -0
  333. package/lib/theme/TOCItems/index.js +53 -0
  334. package/lib/theme/TabItem/index.d.ts +9 -0
  335. package/lib/theme/TabItem/index.js +11 -24
  336. package/lib/theme/TabItem/styles.module.css +10 -0
  337. package/lib/theme/Tabs/index.d.ts +9 -0
  338. package/lib/theme/Tabs/index.js +159 -123
  339. package/lib/theme/Tabs/styles.module.css +4 -13
  340. package/lib/theme/Tag/index.d.ts +9 -0
  341. package/lib/theme/Tag/index.js +23 -0
  342. package/lib/theme/Tag/styles.module.css +70 -0
  343. package/lib/theme/TagsListByLetter/index.d.ts +9 -0
  344. package/lib/theme/TagsListByLetter/index.js +38 -0
  345. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  346. package/lib/theme/TagsListInline/index.d.ts +9 -0
  347. package/lib/theme/TagsListInline/index.js +31 -0
  348. package/lib/theme/TagsListInline/styles.module.css +15 -0
  349. package/lib/theme/ThemedImage/index.d.ts +9 -0
  350. package/lib/theme/ThemedImage/index.js +33 -43
  351. package/lib/theme/ThemedImage/styles.module.css +2 -2
  352. package/lib/theme/prism-include-languages.d.ts +8 -0
  353. package/lib/theme/prism-include-languages.js +19 -33
  354. package/lib/translations.d.ts +15 -0
  355. package/lib/translations.js +122 -122
  356. package/package.json +41 -36
  357. package/src/deps.d.ts +13 -0
  358. package/src/getSwizzleConfig.ts +245 -0
  359. package/src/index.ts +53 -78
  360. package/src/nprogress.css +41 -0
  361. package/src/nprogress.ts +31 -0
  362. package/src/options.ts +469 -0
  363. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  364. package/src/theme/Admonition/index.tsx +209 -0
  365. package/src/theme/Admonition/styles.module.css +38 -0
  366. package/src/theme/AnnouncementBar/index.tsx +11 -16
  367. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  368. package/src/theme/BackToTopButton/index.tsx +35 -0
  369. package/src/theme/BackToTopButton/styles.module.css +44 -0
  370. package/src/theme/BlogArchivePage/index.tsx +92 -0
  371. package/src/theme/BlogLayout/index.tsx +38 -0
  372. package/src/theme/BlogListPage/index.tsx +37 -36
  373. package/src/theme/BlogListPaginator/index.tsx +27 -32
  374. package/src/theme/BlogPostItem/Container/index.tsx +32 -0
  375. package/src/theme/BlogPostItem/Content/index.tsx +29 -0
  376. package/src/theme/BlogPostItem/Footer/ReadMoreLink/index.tsx +44 -0
  377. package/src/theme/BlogPostItem/Footer/index.tsx +60 -0
  378. package/src/theme/BlogPostItem/Footer/styles.module.css +10 -0
  379. package/src/theme/BlogPostItem/Header/Author/index.tsx +55 -0
  380. package/src/theme/BlogPostItem/Header/Authors/index.tsx +53 -0
  381. package/src/theme/BlogPostItem/Header/Authors/styles.module.css +21 -0
  382. package/src/theme/BlogPostItem/Header/Info/index.tsx +71 -0
  383. package/src/theme/BlogPostItem/Header/Info/styles.module.css +10 -0
  384. package/src/theme/BlogPostItem/Header/Title/index.tsx +33 -0
  385. package/{lib-next/theme/BlogPostItem → src/theme/BlogPostItem/Header/Title}/styles.module.css +8 -7
  386. package/src/theme/BlogPostItem/Header/index.tsx +21 -0
  387. package/src/theme/BlogPostItem/index.tsx +19 -151
  388. package/src/theme/BlogPostItems/index.tsx +30 -0
  389. package/src/theme/BlogPostPage/Metadata/index.tsx +44 -0
  390. package/src/theme/BlogPostPage/index.tsx +55 -42
  391. package/src/theme/BlogPostPaginator/index.tsx +27 -36
  392. package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
  393. package/src/theme/BlogSidebar/{styles.module.css → Desktop/styles.module.css} +5 -4
  394. package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
  395. package/src/theme/BlogSidebar/index.tsx +10 -33
  396. package/src/theme/BlogTagsListPage/index.tsx +24 -67
  397. package/src/theme/BlogTagsPostsPage/index.tsx +58 -50
  398. package/src/theme/CodeBlock/Container/index.tsx +32 -0
  399. package/src/theme/CodeBlock/Container/styles.module.css +14 -0
  400. package/src/theme/CodeBlock/Content/Element.tsx +30 -0
  401. package/src/theme/CodeBlock/Content/String.tsx +110 -0
  402. package/src/theme/CodeBlock/{styles.module.css → Content/styles.module.css} +45 -27
  403. package/src/theme/CodeBlock/CopyButton/index.tsx +68 -0
  404. package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
  405. package/src/theme/CodeBlock/Line/index.tsx +49 -0
  406. package/src/theme/CodeBlock/Line/styles.module.css +51 -0
  407. package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
  408. package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
  409. package/src/theme/CodeBlock/index.tsx +29 -253
  410. package/src/theme/ColorModeToggle/index.tsx +67 -0
  411. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  412. package/src/theme/Details/index.tsx +26 -0
  413. package/src/theme/Details/styles.module.css +13 -0
  414. package/src/theme/DocBreadcrumbs/index.tsx +141 -0
  415. package/src/theme/DocBreadcrumbs/styles.module.css +19 -0
  416. package/src/theme/DocCard/index.tsx +120 -0
  417. package/src/theme/DocCard/styles.module.css +34 -0
  418. package/src/theme/DocCardList/index.tsx +35 -0
  419. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +77 -0
  420. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
  421. package/src/theme/DocItem/Content/index.tsx +48 -0
  422. package/src/theme/DocItem/Footer/index.tsx +89 -0
  423. package/{lib-next/theme/DocItem → src/theme/DocItem/Footer}/styles.module.css +1 -9
  424. package/src/theme/DocItem/Layout/index.tsx +68 -0
  425. package/src/theme/DocItem/Layout/styles.module.css +17 -0
  426. package/src/theme/DocItem/Metadata/index.tsx +22 -0
  427. package/src/theme/DocItem/Paginator/index.tsx +19 -0
  428. package/src/theme/DocItem/TOC/Desktop/index.tsx +24 -0
  429. package/src/theme/DocItem/TOC/Mobile/index.tsx +27 -0
  430. package/src/theme/DocItem/TOC/Mobile/styles.module.css +19 -0
  431. package/src/theme/DocItem/index.tsx +15 -102
  432. package/src/theme/DocPage/Layout/Main/index.tsx +36 -0
  433. package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
  434. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
  435. package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
  436. package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
  437. package/src/theme/DocPage/Layout/Sidebar/styles.module.css +32 -0
  438. package/src/theme/DocPage/Layout/index.tsx +38 -0
  439. package/src/theme/DocPage/Layout/styles.module.css +15 -0
  440. package/src/theme/DocPage/index.tsx +38 -167
  441. package/src/theme/DocPaginator/index.tsx +28 -40
  442. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  443. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
  444. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  445. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
  446. package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
  447. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  448. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  449. package/src/theme/DocSidebar/index.tsx +14 -351
  450. package/src/theme/DocSidebarItem/Category/index.tsx +211 -0
  451. package/src/theme/DocSidebarItem/Html/index.tsx +34 -0
  452. package/src/theme/DocSidebarItem/Html/styles.module.css +13 -0
  453. package/src/theme/DocSidebarItem/Link/index.tsx +58 -0
  454. package/src/theme/DocSidebarItem/Link/styles.module.css +10 -0
  455. package/src/theme/DocSidebarItem/index.tsx +27 -0
  456. package/src/theme/DocSidebarItems/index.tsx +27 -0
  457. package/src/theme/DocTagDocListPage/index.tsx +95 -0
  458. package/src/theme/DocTagsListPage/index.tsx +43 -0
  459. package/src/theme/DocVersionBadge/index.tsx +36 -0
  460. package/src/theme/DocVersionBanner/index.tsx +53 -28
  461. package/src/theme/EditThisPage/index.tsx +7 -3
  462. package/src/theme/ErrorPageContent.tsx +41 -0
  463. package/src/theme/Footer/Copyright/index.tsx +20 -0
  464. package/src/theme/Footer/Layout/index.tsx +34 -0
  465. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  466. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  467. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  468. package/src/theme/Footer/Links/index.tsx +21 -0
  469. package/src/theme/Footer/Logo/index.tsx +46 -0
  470. package/{lib/theme/Footer → src/theme/Footer/Logo}/styles.module.css +2 -1
  471. package/src/theme/Footer/index.tsx +13 -122
  472. package/src/theme/Heading/index.tsx +31 -58
  473. package/src/theme/Heading/styles.module.css +25 -5
  474. package/src/theme/{IconArrow → Icon/Arrow}/index.tsx +3 -5
  475. package/src/theme/Icon/Close/index.tsx +26 -0
  476. package/src/theme/Icon/DarkMode/index.tsx +20 -0
  477. package/src/theme/{IconEdit → Icon/Edit}/index.tsx +6 -6
  478. package/{lib/theme/IconEdit → src/theme/Icon/Edit}/styles.module.css +0 -0
  479. package/src/theme/{IconExternalLink → Icon/ExternalLink}/index.tsx +4 -6
  480. package/src/theme/{IconExternalLink → Icon/ExternalLink}/styles.module.css +0 -2
  481. package/src/theme/Icon/Home/index.tsx +20 -0
  482. package/src/theme/Icon/Language/index.tsx +29 -0
  483. package/src/theme/Icon/LightMode/index.tsx +20 -0
  484. package/src/theme/{IconMenu → Icon/Menu}/index.tsx +4 -6
  485. package/src/theme/LastUpdated/index.tsx +4 -2
  486. package/src/theme/Layout/Provider/index.tsx +33 -0
  487. package/src/theme/Layout/index.tsx +23 -15
  488. package/{lib/theme/Layout/styles.css → src/theme/Layout/styles.module.css} +9 -10
  489. package/src/theme/Logo/index.tsx +57 -26
  490. package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
  491. package/src/theme/MDXComponents/Code.tsx +40 -0
  492. package/src/theme/MDXComponents/Details.tsx +28 -0
  493. package/src/theme/MDXComponents/Head.tsx +29 -0
  494. package/src/theme/MDXComponents/Heading.tsx +14 -0
  495. package/src/theme/MDXComponents/Img/index.tsx +27 -0
  496. package/src/theme/MDXComponents/Img/styles.module.css +10 -0
  497. package/src/theme/MDXComponents/Pre.tsx +23 -0
  498. package/src/theme/MDXComponents/Ul/index.tsx +26 -0
  499. package/src/theme/MDXComponents/Ul/styles.module.css +14 -0
  500. package/src/theme/MDXComponents/index.tsx +25 -42
  501. package/src/theme/MDXContent/index.tsx +15 -0
  502. package/src/theme/MDXPage/index.tsx +40 -35
  503. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  504. package/src/theme/Navbar/Content/index.tsx +86 -0
  505. package/src/theme/Navbar/Content/styles.module.css +15 -0
  506. package/src/theme/Navbar/Layout/index.tsx +57 -0
  507. package/src/theme/Navbar/{styles.module.css → Layout/styles.module.css} +0 -6
  508. package/src/theme/Navbar/Logo/index.tsx +19 -0
  509. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  510. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  511. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  512. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +39 -0
  513. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  514. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  515. package/src/theme/Navbar/Search/index.tsx +19 -0
  516. package/src/theme/Navbar/Search/styles.module.css +20 -0
  517. package/src/theme/Navbar/index.tsx +7 -147
  518. package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
  519. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +36 -208
  520. package/src/theme/NavbarItem/DocNavbarItem.tsx +13 -41
  521. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +36 -0
  522. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +57 -52
  523. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +5 -8
  524. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +190 -0
  525. package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
  526. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx +77 -0
  527. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  528. package/src/theme/NavbarItem/NavbarNavLink.tsx +74 -0
  529. package/src/theme/NavbarItem/SearchNavbarItem.tsx +11 -3
  530. package/src/theme/NavbarItem/index.tsx +15 -32
  531. package/src/theme/NotFound.tsx +40 -37
  532. package/src/theme/PaginatorNavLink/index.tsx +26 -0
  533. package/src/theme/SearchBar.tsx +2 -1
  534. package/src/theme/SearchMetadata/index.tsx +43 -0
  535. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +31 -45
  536. package/src/theme/SkipToContent/index.tsx +5 -33
  537. package/src/theme/SkipToContent/styles.module.css +7 -0
  538. package/src/theme/TOC/index.tsx +14 -44
  539. package/src/theme/TOC/styles.module.css +1 -1
  540. package/src/theme/TOCCollapsible/CollapseButton/index.tsx +36 -0
  541. package/src/theme/TOCCollapsible/CollapseButton/styles.module.css +29 -0
  542. package/src/theme/TOCCollapsible/index.tsx +46 -0
  543. package/src/theme/TOCCollapsible/styles.module.css +31 -0
  544. package/src/theme/TOCInline/index.tsx +15 -35
  545. package/src/theme/TOCItems/Tree.tsx +46 -0
  546. package/src/theme/TOCItems/index.tsx +61 -0
  547. package/src/theme/TabItem/index.tsx +12 -4
  548. package/src/theme/TabItem/styles.module.css +10 -0
  549. package/src/theme/Tabs/index.tsx +121 -62
  550. package/src/theme/Tabs/styles.module.css +4 -13
  551. package/src/theme/Tag/index.tsx +27 -0
  552. package/src/theme/Tag/styles.module.css +70 -0
  553. package/src/theme/TagsListByLetter/index.tsx +43 -0
  554. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  555. package/src/theme/TagsListInline/index.tsx +35 -0
  556. package/src/theme/TagsListInline/styles.module.css +15 -0
  557. package/src/theme/ThemedImage/index.tsx +10 -12
  558. package/src/theme/ThemedImage/styles.module.css +2 -2
  559. package/src/theme/prism-include-languages.ts +20 -15
  560. package/src/theme-classic.d.ts +1368 -0
  561. package/src/translations.ts +85 -60
  562. package/babel.config.js +0 -35
  563. package/codeTranslations/README.md +0 -20
  564. package/codeTranslations/ar.json +0 -57
  565. package/codeTranslations/base.json +0 -112
  566. package/codeTranslations/bn.json +0 -56
  567. package/codeTranslations/da.json +0 -57
  568. package/codeTranslations/de.json +0 -57
  569. package/codeTranslations/es.json +0 -57
  570. package/codeTranslations/fa.json +0 -57
  571. package/codeTranslations/fil.json +0 -57
  572. package/codeTranslations/fr.json +0 -57
  573. package/codeTranslations/he.json +0 -57
  574. package/codeTranslations/hi.json +0 -57
  575. package/codeTranslations/ja.json +0 -57
  576. package/codeTranslations/ko.json +0 -57
  577. package/codeTranslations/pl.json +0 -57
  578. package/codeTranslations/pt-BR.json +0 -57
  579. package/codeTranslations/pt-PT.json +0 -57
  580. package/codeTranslations/ru.json +0 -57
  581. package/codeTranslations/tr.json +0 -57
  582. package/codeTranslations/vi.json +0 -57
  583. package/codeTranslations/zh-Hans.json +0 -57
  584. package/codeTranslations/zh-Hant.json +0 -57
  585. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  586. package/lib/__tests__/translations.test.js +0 -112
  587. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  588. package/lib/theme/BlogSidebar/styles.module.css +0 -44
  589. package/lib/theme/CodeBlock/styles.module.css +0 -68
  590. package/lib/theme/DocPage/styles.module.css +0 -80
  591. package/lib/theme/DocSidebar/styles.module.css +0 -124
  592. package/lib/theme/Heading/styles.css +0 -23
  593. package/lib/theme/IconArrow/index.js +0 -28
  594. package/lib/theme/IconEdit/index.js +0 -34
  595. package/lib/theme/IconExternalLink/index.js +0 -30
  596. package/lib/theme/IconLanguage/index.js +0 -29
  597. package/lib/theme/IconMenu/index.js +0 -30
  598. package/lib/theme/LayoutHead/index.js +0 -144
  599. package/lib/theme/LayoutProviders/index.js +0 -36
  600. package/lib/theme/Navbar/styles.module.css +0 -20
  601. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  602. package/lib/theme/SearchMetadatas/index.js +0 -33
  603. package/lib/theme/Seo/index.js +0 -49
  604. package/lib/theme/ThemeContext.js +0 -21
  605. package/lib/theme/ThemeProvider/index.js +0 -38
  606. package/lib/theme/Toggle/index.js +0 -94
  607. package/lib/theme/Toggle/styles.css +0 -103
  608. package/lib/theme/Toggle/styles.module.css +0 -17
  609. package/lib/theme/UserPreferencesContext.js +0 -18
  610. package/lib/theme/UserPreferencesProvider/index.js +0 -36
  611. package/lib/theme/hooks/styles.css +0 -10
  612. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  613. package/lib/theme/hooks/useDocs.js +0 -18
  614. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  615. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  616. package/lib/theme/hooks/useLocationHash.js +0 -28
  617. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  618. package/lib/theme/hooks/usePrismTheme.js +0 -36
  619. package/lib/theme/hooks/useScrollPosition.js +0 -49
  620. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  621. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  622. package/lib/theme/hooks/useTheme.js +0 -99
  623. package/lib/theme/hooks/useThemeContext.js +0 -31
  624. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  625. package/lib/theme/hooks/useWindowSize.js +0 -55
  626. package/lib/types.d.ts +0 -598
  627. package/lib/validateThemeConfig.js +0 -317
  628. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  629. package/lib-next/__tests__/translations.test.js +0 -128
  630. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  631. package/lib-next/index.js +0 -221
  632. package/lib-next/theme/AnnouncementBar/index.js +0 -61
  633. package/lib-next/theme/AnnouncementBar/styles.module.css +0 -72
  634. package/lib-next/theme/BlogListPage/index.js +0 -56
  635. package/lib-next/theme/BlogListPaginator/index.js +0 -54
  636. package/lib-next/theme/BlogPostItem/index.js +0 -168
  637. package/lib-next/theme/BlogPostPage/index.js +0 -55
  638. package/lib-next/theme/BlogPostPaginator/index.js +0 -57
  639. package/lib-next/theme/BlogTagsListPage/index.js +0 -75
  640. package/lib-next/theme/BlogTagsPostsPage/index.js +0 -92
  641. package/lib-next/theme/CodeBlock/index.js +0 -268
  642. package/lib-next/theme/DocItem/index.js +0 -117
  643. package/lib-next/theme/DocPage/index.js +0 -173
  644. package/lib-next/theme/DocPage/styles.module.css +0 -80
  645. package/lib-next/theme/DocPaginator/index.js +0 -59
  646. package/lib-next/theme/DocSidebar/index.js +0 -352
  647. package/lib-next/theme/DocSidebar/styles.module.css +0 -124
  648. package/lib-next/theme/DocVersionBanner/index.js +0 -127
  649. package/lib-next/theme/EditThisPage/index.js +0 -21
  650. package/lib-next/theme/Footer/index.js +0 -129
  651. package/lib-next/theme/Heading/index.js +0 -67
  652. package/lib-next/theme/IconLanguage/index.js +0 -25
  653. package/lib-next/theme/LastUpdated/index.js +0 -77
  654. package/lib-next/theme/Layout/index.js +0 -46
  655. package/lib-next/theme/LayoutHead/index.js +0 -137
  656. package/lib-next/theme/LayoutProviders/index.js +0 -26
  657. package/lib-next/theme/Logo/index.js +0 -54
  658. package/lib-next/theme/MDXComponents/index.js +0 -51
  659. package/lib-next/theme/MDXPage/index.js +0 -51
  660. package/lib-next/theme/Navbar/index.js +0 -146
  661. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +0 -227
  662. package/lib-next/theme/NavbarItem/DocNavbarItem.js +0 -57
  663. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -83
  664. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +0 -28
  665. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -66
  666. package/lib-next/theme/NavbarItem/index.js +0 -41
  667. package/lib-next/theme/NotFound.js +0 -50
  668. package/lib-next/theme/SearchBar.js +0 -11
  669. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  670. package/lib-next/theme/Seo/index.js +0 -36
  671. package/lib-next/theme/SkipToContent/index.js +0 -53
  672. package/lib-next/theme/SkipToContent/styles.module.css +0 -14
  673. package/lib-next/theme/TOC/index.js +0 -52
  674. package/lib-next/theme/TOC/styles.module.css +0 -23
  675. package/lib-next/theme/TOCInline/index.js +0 -43
  676. package/lib-next/theme/Tabs/index.js +0 -144
  677. package/lib-next/theme/Tabs/styles.module.css +0 -23
  678. package/lib-next/theme/ThemeProvider/index.js +0 -25
  679. package/lib-next/theme/ThemedImage/index.js +0 -41
  680. package/lib-next/theme/ThemedImage/styles.module.css +0 -18
  681. package/lib-next/theme/Toggle/index.js +0 -80
  682. package/lib-next/theme/Toggle/styles.css +0 -103
  683. package/lib-next/theme/UserPreferencesContext.js +0 -9
  684. package/lib-next/theme/UserPreferencesProvider/index.js +0 -24
  685. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  686. package/lib-next/theme/hooks/useDocs.js +0 -10
  687. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  688. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  689. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  690. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  691. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  692. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  693. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  694. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
  695. package/lib-next/theme/hooks/useTheme.js +0 -82
  696. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  697. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  698. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  699. package/lib-next/theme/prism-include-languages.js +0 -23
  700. package/lib-next/translations.js +0 -145
  701. package/lib-next/types.d.ts +0 -598
  702. package/lib-next/validateThemeConfig.js +0 -317
  703. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  704. package/src/__tests__/translations.test.ts +0 -116
  705. package/src/__tests__/validateThemeConfig.test.js +0 -333
  706. package/src/prism-include-languages.js +0 -11
  707. package/src/theme/DocPage/styles.module.css +0 -80
  708. package/src/theme/DocSidebar/styles.module.css +0 -124
  709. package/src/theme/Heading/styles.css +0 -23
  710. package/src/theme/IconLanguage/index.tsx +0 -31
  711. package/src/theme/Layout/styles.css +0 -27
  712. package/src/theme/LayoutProviders/index.tsx +0 -29
  713. package/src/theme/NavbarItem/LocaleDropdownNavbarItem.tsx +0 -67
  714. package/src/theme/SearchMetadatas/index.tsx +0 -28
  715. package/src/theme/Seo/index.tsx +0 -46
  716. package/src/theme/ThemeProvider/index.tsx +0 -24
  717. package/src/theme/Toggle/index.tsx +0 -100
  718. package/src/theme/Toggle/styles.css +0 -103
  719. package/src/theme/Toggle/styles.module.css +0 -17
  720. package/src/theme/UserPreferencesContext.ts +0 -12
  721. package/src/theme/UserPreferencesProvider/index.tsx +0 -27
  722. package/src/theme/hooks/styles.css +0 -10
  723. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  724. package/src/theme/hooks/useDocs.ts +0 -11
  725. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  726. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  727. package/src/theme/hooks/useLocationHash.ts +0 -25
  728. package/src/theme/hooks/usePrismTheme.ts +0 -22
  729. package/src/theme/hooks/useScrollPosition.ts +0 -45
  730. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  731. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  732. package/src/theme/hooks/useTheme.ts +0 -92
  733. package/src/theme/hooks/useThemeContext.ts +0 -23
  734. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  735. package/src/theme/hooks/useWindowSize.ts +0 -51
  736. package/src/types.d.ts +0 -598
  737. package/src/validateThemeConfig.js +0 -317
  738. package/tsconfig.json +0 -12
  739. package/update-code-translations.js +0 -240
  740. package/update-code-translations.test.js +0 -33
@@ -5,265 +5,41 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import React, {useEffect, useState, useRef} from 'react';
9
- import clsx from 'clsx';
10
- import Highlight, {defaultProps, Language} from 'prism-react-renderer';
11
- import copy from 'copy-text-to-clipboard';
12
- import rangeParser from 'parse-numeric-range';
13
- import usePrismTheme from '@theme/hooks/usePrismTheme';
8
+ import React, {isValidElement, type ReactNode} from 'react';
9
+ import useIsBrowser from '@docusaurus/useIsBrowser';
10
+ import ElementContent from '@theme/CodeBlock/Content/Element';
11
+ import StringContent from '@theme/CodeBlock/Content/String';
14
12
  import type {Props} from '@theme/CodeBlock';
15
- import Translate, {translate} from '@docusaurus/Translate';
16
13
 
17
- import styles from './styles.module.css';
18
-
19
- import {useThemeConfig, parseCodeBlockTitle} from '@docusaurus/theme-common';
20
-
21
- const highlightLinesRangeRegex = /{([\d,-]+)}/;
22
- const getHighlightDirectiveRegex = (
23
- languages = ['js', 'jsBlock', 'jsx', 'python', 'html'],
24
- ) => {
25
- // supported types of comments
26
- const comments = {
27
- js: {
28
- start: '\\/\\/',
29
- end: '',
30
- },
31
- jsBlock: {
32
- start: '\\/\\*',
33
- end: '\\*\\/',
34
- },
35
- jsx: {
36
- start: '\\{\\s*\\/\\*',
37
- end: '\\*\\/\\s*\\}',
38
- },
39
- python: {
40
- start: '#',
41
- end: '',
42
- },
43
- html: {
44
- start: '<!--',
45
- end: '-->',
46
- },
47
- };
48
- // supported directives
49
- const directives = [
50
- 'highlight-next-line',
51
- 'highlight-start',
52
- 'highlight-end',
53
- ].join('|');
54
- // to be more reliable, the opening and closing comment must match
55
- const commentPattern = languages
56
- .map(
57
- (lang) =>
58
- `(?:${comments[lang].start}\\s*(${directives})\\s*${comments[lang].end})`,
59
- )
60
- .join('|');
61
- // white space is allowed, but otherwise it should be on it's own line
62
- return new RegExp(`^\\s*(?:${commentPattern})\\s*$`);
63
- };
64
- // select comment styles based on language
65
- const highlightDirectiveRegex = (lang) => {
66
- switch (lang) {
67
- case 'js':
68
- case 'javascript':
69
- case 'ts':
70
- case 'typescript':
71
- return getHighlightDirectiveRegex(['js', 'jsBlock']);
72
-
73
- case 'jsx':
74
- case 'tsx':
75
- return getHighlightDirectiveRegex(['js', 'jsBlock', 'jsx']);
76
-
77
- case 'html':
78
- return getHighlightDirectiveRegex(['js', 'jsBlock', 'html']);
79
-
80
- case 'python':
81
- case 'py':
82
- return getHighlightDirectiveRegex(['python']);
83
-
84
- default:
85
- // all comment types
86
- return getHighlightDirectiveRegex();
14
+ /**
15
+ * Best attempt to make the children a plain string so it is copyable. If there
16
+ * are react elements, we will not be able to copy the content, and it will
17
+ * return `children` as-is; otherwise, it concatenates the string children
18
+ * together.
19
+ */
20
+ function maybeStringifyChildren(children: ReactNode): ReactNode {
21
+ if (React.Children.toArray(children).some((el) => isValidElement(el))) {
22
+ return children;
87
23
  }
88
- };
24
+ // The children is now guaranteed to be one/more plain strings
25
+ return Array.isArray(children) ? children.join('') : (children as string);
26
+ }
89
27
 
90
28
  export default function CodeBlock({
91
- children,
92
- className: languageClassName,
93
- metastring,
94
- title,
29
+ children: rawChildren,
30
+ ...props
95
31
  }: Props): JSX.Element {
96
- const {prism} = useThemeConfig();
97
-
98
- const [showCopied, setShowCopied] = useState(false);
99
- const [mounted, setMounted] = useState(false);
100
- // The Prism theme on SSR is always the default theme but the site theme
101
- // can be in a different mode. React hydration doesn't update DOM styles
102
- // that come from SSR. Hence force a re-render after mounting to apply the
103
- // current relevant styles. There will be a flash seen of the original
104
- // styles seen using this current approach but that's probably ok. Fixing
105
- // the flash will require changing the theming approach and is not worth it
106
- // at this point.
107
- useEffect(() => {
108
- setMounted(true);
109
- }, []);
110
-
111
- // TODO: the title is provided by MDX as props automatically
112
- // so we probably don't need to parse the metastring
113
- // (note: title="xyz" => title prop still has the quotes)
114
- const codeBlockTitle = parseCodeBlockTitle(metastring) || title;
115
-
116
- const button = useRef(null);
117
- let highlightLines: number[] = [];
118
-
119
- const prismTheme = usePrismTheme();
120
-
121
- // In case interleaved Markdown (e.g. when using CodeBlock as standalone component).
122
- const content = Array.isArray(children) ? children.join('') : children;
123
-
124
- if (metastring && highlightLinesRangeRegex.test(metastring)) {
125
- // Tested above
126
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
127
- const highlightLinesRange = metastring.match(highlightLinesRangeRegex)![1];
128
- highlightLines = rangeParser(highlightLinesRange).filter((n) => n > 0);
129
- }
130
-
131
- let language =
132
- languageClassName &&
133
- // Force Prism's language union type to `any` because it does not contain all available languages
134
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
135
- ((languageClassName.replace(/language-/, '') as Language) as any);
136
-
137
- if (!language && prism.defaultLanguage) {
138
- language = prism.defaultLanguage;
139
- }
140
-
141
- // only declaration OR directive highlight can be used for a block
142
- let code = content.replace(/\n$/, '');
143
- if (highlightLines.length === 0 && language !== undefined) {
144
- let range = '';
145
- const directiveRegex = highlightDirectiveRegex(language);
146
- // go through line by line
147
- const lines = content.replace(/\n$/, '').split('\n');
148
- let blockStart;
149
- // loop through lines
150
- for (let index = 0; index < lines.length; ) {
151
- const line = lines[index];
152
- // adjust for 0-index
153
- const lineNumber = index + 1;
154
- const match = line.match(directiveRegex);
155
- if (match !== null) {
156
- const directive = match
157
- .slice(1)
158
- .reduce(
159
- (final: string | undefined, item) => final || item,
160
- undefined,
161
- );
162
- switch (directive) {
163
- case 'highlight-next-line':
164
- range += `${lineNumber},`;
165
- break;
166
-
167
- case 'highlight-start':
168
- blockStart = lineNumber;
169
- break;
170
-
171
- case 'highlight-end':
172
- range += `${blockStart}-${lineNumber - 1},`;
173
- break;
174
-
175
- default:
176
- break;
177
- }
178
- lines.splice(index, 1);
179
- } else {
180
- // lines without directives are unchanged
181
- index += 1;
182
- }
183
- }
184
- highlightLines = rangeParser(range);
185
- code = lines.join('\n');
186
- }
187
-
188
- const handleCopyCode = () => {
189
- copy(code);
190
- setShowCopied(true);
191
-
192
- setTimeout(() => setShowCopied(false), 2000);
193
- };
194
-
32
+ // The Prism theme on SSR is always the default theme but the site theme can
33
+ // be in a different mode. React hydration doesn't update DOM styles that come
34
+ // from SSR. Hence force a re-render after mounting to apply the current
35
+ // relevant styles.
36
+ const isBrowser = useIsBrowser();
37
+ const children = maybeStringifyChildren(rawChildren);
38
+ const CodeBlockComp =
39
+ typeof children === 'string' ? StringContent : ElementContent;
195
40
  return (
196
- <Highlight
197
- {...defaultProps}
198
- key={String(mounted)}
199
- theme={prismTheme}
200
- code={code}
201
- language={language}>
202
- {({className, style, tokens, getLineProps, getTokenProps}) => (
203
- <div className={styles.codeBlockContainer}>
204
- {codeBlockTitle && (
205
- <div style={style} className={styles.codeBlockTitle}>
206
- {codeBlockTitle}
207
- </div>
208
- )}
209
- <div className={clsx(styles.codeBlockContent, language)}>
210
- <pre
211
- /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
212
- tabIndex={0}
213
- className={clsx(className, styles.codeBlock, 'thin-scrollbar', {
214
- [styles.codeBlockWithTitle]: codeBlockTitle,
215
- })}
216
- style={style}>
217
- <code className={styles.codeBlockLines}>
218
- {tokens.map((line, i) => {
219
- if (line.length === 1 && line[0].content === '') {
220
- line[0].content = '\n'; // eslint-disable-line no-param-reassign
221
- }
222
-
223
- const lineProps = getLineProps({line, key: i});
224
-
225
- if (highlightLines.includes(i + 1)) {
226
- lineProps.className += ' docusaurus-highlight-code-line';
227
- }
228
-
229
- return (
230
- <span key={i} {...lineProps}>
231
- {line.map((token, key) => (
232
- <span key={key} {...getTokenProps({token, key})} />
233
- ))}
234
- </span>
235
- );
236
- })}
237
- </code>
238
- </pre>
239
-
240
- <button
241
- ref={button}
242
- type="button"
243
- aria-label={translate({
244
- id: 'theme.CodeBlock.copyButtonAriaLabel',
245
- message: 'Copy code to clipboard',
246
- description: 'The ARIA label for copy code blocks button',
247
- })}
248
- className={clsx(styles.copyButton, 'clean-btn')}
249
- onClick={handleCopyCode}>
250
- {showCopied ? (
251
- <Translate
252
- id="theme.CodeBlock.copied"
253
- description="The copied button label on code blocks">
254
- Copied
255
- </Translate>
256
- ) : (
257
- <Translate
258
- id="theme.CodeBlock.copy"
259
- description="The copy button label on code blocks">
260
- Copy
261
- </Translate>
262
- )}
263
- </button>
264
- </div>
265
- </div>
266
- )}
267
- </Highlight>
41
+ <CodeBlockComp key={String(isBrowser)} {...props}>
42
+ {children as string}
43
+ </CodeBlockComp>
268
44
  );
269
45
  }
@@ -0,0 +1,67 @@
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 useIsBrowser from '@docusaurus/useIsBrowser';
11
+ import {translate} from '@docusaurus/Translate';
12
+ import IconLightMode from '@theme/Icon/LightMode';
13
+ import IconDarkMode from '@theme/Icon/DarkMode';
14
+ import type {Props} from '@theme/ColorModeToggle';
15
+
16
+ import styles from './styles.module.css';
17
+
18
+ function ColorModeToggle({className, value, onChange}: Props): JSX.Element {
19
+ const isBrowser = useIsBrowser();
20
+
21
+ const title = translate(
22
+ {
23
+ message: 'Switch between dark and light mode (currently {mode})',
24
+ id: 'theme.colorToggle.ariaLabel',
25
+ description: 'The ARIA label for the navbar color mode toggle',
26
+ },
27
+ {
28
+ mode:
29
+ value === 'dark'
30
+ ? translate({
31
+ message: 'dark mode',
32
+ id: 'theme.colorToggle.ariaLabel.mode.dark',
33
+ description: 'The name for the dark color mode',
34
+ })
35
+ : translate({
36
+ message: 'light mode',
37
+ id: 'theme.colorToggle.ariaLabel.mode.light',
38
+ description: 'The name for the light color mode',
39
+ }),
40
+ },
41
+ );
42
+
43
+ return (
44
+ <div className={clsx(styles.toggle, className)}>
45
+ <button
46
+ className={clsx(
47
+ 'clean-btn',
48
+ styles.toggleButton,
49
+ !isBrowser && styles.toggleButtonDisabled,
50
+ )}
51
+ type="button"
52
+ onClick={() => onChange(value === 'dark' ? 'light' : 'dark')}
53
+ disabled={!isBrowser}
54
+ title={title}
55
+ aria-label={title}>
56
+ <IconLightMode
57
+ className={clsx(styles.toggleIcon, styles.lightToggleIcon)}
58
+ />
59
+ <IconDarkMode
60
+ className={clsx(styles.toggleIcon, styles.darkToggleIcon)}
61
+ />
62
+ </button>
63
+ </div>
64
+ );
65
+ }
66
+
67
+ export default React.memo(ColorModeToggle);
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .toggle {
9
+ width: 2rem;
10
+ height: 2rem;
11
+ }
12
+
13
+ .toggleButton {
14
+ -webkit-tap-highlight-color: transparent;
15
+ align-items: center;
16
+ display: flex;
17
+ justify-content: center;
18
+ width: 100%;
19
+ height: 100%;
20
+ border-radius: 50%;
21
+ transition: background var(--ifm-transition-fast);
22
+ }
23
+
24
+ .toggleButton:hover {
25
+ background: var(--ifm-color-emphasis-200);
26
+ }
27
+
28
+ [data-theme='light'] .darkToggleIcon,
29
+ [data-theme='dark'] .lightToggleIcon {
30
+ display: none;
31
+ }
32
+
33
+ .toggleButtonDisabled {
34
+ cursor: not-allowed;
35
+ }
@@ -0,0 +1,26 @@
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 {Details as DetailsGeneric} from '@docusaurus/theme-common/Details';
11
+ import type {Props} from '@theme/Details';
12
+
13
+ import styles from './styles.module.css';
14
+
15
+ // Should we have a custom details/summary comp in Infima instead of reusing
16
+ // alert classes?
17
+ const InfimaClasses = 'alert alert--info';
18
+
19
+ export default function Details({...props}: Props): JSX.Element {
20
+ return (
21
+ <DetailsGeneric
22
+ {...props}
23
+ className={clsx(InfimaClasses, styles.details, props.className)}
24
+ />
25
+ );
26
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .details {
9
+ --docusaurus-details-decoration-color: var(--ifm-alert-border-color);
10
+ --docusaurus-details-transition: transform var(--ifm-transition-fast) ease;
11
+ margin: 0 0 var(--ifm-spacing-vertical);
12
+ border: 1px solid var(--ifm-alert-border-color);
13
+ }
@@ -0,0 +1,141 @@
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 {
12
+ useSidebarBreadcrumbs,
13
+ useHomePageRoute,
14
+ } from '@docusaurus/theme-common/internal';
15
+ import Link from '@docusaurus/Link';
16
+ import useBaseUrl from '@docusaurus/useBaseUrl';
17
+ import {translate} from '@docusaurus/Translate';
18
+ import IconHome from '@theme/Icon/Home';
19
+
20
+ import styles from './styles.module.css';
21
+
22
+ // TODO move to design system folder
23
+ function BreadcrumbsItemLink({
24
+ children,
25
+ href,
26
+ isLast,
27
+ }: {
28
+ children: ReactNode;
29
+ href: string | undefined;
30
+ isLast: boolean;
31
+ }): JSX.Element {
32
+ const className = 'breadcrumbs__link';
33
+ if (isLast) {
34
+ return (
35
+ <span className={className} itemProp="name">
36
+ {children}
37
+ </span>
38
+ );
39
+ }
40
+ return href ? (
41
+ <Link className={className} href={href} itemProp="item">
42
+ <span itemProp="name">{children}</span>
43
+ </Link>
44
+ ) : (
45
+ // TODO Google search console doesn't like breadcrumb items without href.
46
+ // The schema doesn't seem to require `id` for each `item`, although Google
47
+ // insist to infer one, even if it's invalid. Removing `itemProp="item
48
+ // name"` for now, since I don't know how to properly fix it.
49
+ // See https://github.com/facebook/docusaurus/issues/7241
50
+ <span className={className}>{children}</span>
51
+ );
52
+ }
53
+
54
+ // TODO move to design system folder
55
+ function BreadcrumbsItem({
56
+ children,
57
+ active,
58
+ index,
59
+ addMicrodata,
60
+ }: {
61
+ children: ReactNode;
62
+ active?: boolean;
63
+ index: number;
64
+ addMicrodata: boolean;
65
+ }): JSX.Element {
66
+ return (
67
+ <li
68
+ {...(addMicrodata && {
69
+ itemScope: true,
70
+ itemProp: 'itemListElement',
71
+ itemType: 'https://schema.org/ListItem',
72
+ })}
73
+ className={clsx('breadcrumbs__item', {
74
+ 'breadcrumbs__item--active': active,
75
+ })}>
76
+ {children}
77
+ <meta itemProp="position" content={String(index + 1)} />
78
+ </li>
79
+ );
80
+ }
81
+
82
+ function HomeBreadcrumbItem() {
83
+ const homeHref = useBaseUrl('/');
84
+ return (
85
+ <li className="breadcrumbs__item">
86
+ <Link
87
+ aria-label={translate({
88
+ id: 'theme.docs.breadcrumbs.home',
89
+ message: 'Home page',
90
+ description: 'The ARIA label for the home page in the breadcrumbs',
91
+ })}
92
+ className={clsx('breadcrumbs__link', styles.breadcrumbsItemLink)}
93
+ href={homeHref}>
94
+ <IconHome className={styles.breadcrumbHomeIcon} />
95
+ </Link>
96
+ </li>
97
+ );
98
+ }
99
+
100
+ export default function DocBreadcrumbs(): JSX.Element | null {
101
+ const breadcrumbs = useSidebarBreadcrumbs();
102
+ const homePageRoute = useHomePageRoute();
103
+
104
+ if (!breadcrumbs) {
105
+ return null;
106
+ }
107
+
108
+ return (
109
+ <nav
110
+ className={clsx(
111
+ ThemeClassNames.docs.docBreadcrumbs,
112
+ styles.breadcrumbsContainer,
113
+ )}
114
+ aria-label={translate({
115
+ id: 'theme.docs.breadcrumbs.navAriaLabel',
116
+ message: 'Breadcrumbs',
117
+ description: 'The ARIA label for the breadcrumbs',
118
+ })}>
119
+ <ul
120
+ className="breadcrumbs"
121
+ itemScope
122
+ itemType="https://schema.org/BreadcrumbList">
123
+ {homePageRoute && <HomeBreadcrumbItem />}
124
+ {breadcrumbs.map((item, idx) => {
125
+ const isLast = idx === breadcrumbs.length - 1;
126
+ return (
127
+ <BreadcrumbsItem
128
+ key={idx}
129
+ active={isLast}
130
+ index={idx}
131
+ addMicrodata={!!item.href}>
132
+ <BreadcrumbsItemLink href={item.href} isLast={isLast}>
133
+ {item.label}
134
+ </BreadcrumbsItemLink>
135
+ </BreadcrumbsItem>
136
+ );
137
+ })}
138
+ </ul>
139
+ </nav>
140
+ );
141
+ }
@@ -0,0 +1,19 @@
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
+ .breadcrumbsContainer {
9
+ --ifm-breadcrumb-size-multiplier: 0.8;
10
+ margin-bottom: 0.8rem;
11
+ }
12
+
13
+ .breadcrumbHomeIcon {
14
+ position: relative;
15
+ top: 1px;
16
+ vertical-align: top;
17
+ height: 1.1rem;
18
+ width: 1.1rem;
19
+ }