@docusaurus/theme-classic 2.0.0-beta.1 → 2.0.0-beta.10

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 (367) hide show
  1. package/README.md +1 -1
  2. package/lib/__tests__/validateThemeConfig.test.js +277 -3
  3. package/lib/admonitions.css +35 -0
  4. package/lib/deps.d.ts +13 -0
  5. package/lib/index.js +41 -16
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme/AnnouncementBar/index.js +10 -16
  8. package/lib/theme/AnnouncementBar/styles.module.css +25 -30
  9. package/lib/theme/BackToTopButton/index.js +140 -0
  10. package/lib/theme/BackToTopButton/styles.module.css +42 -0
  11. package/lib/theme/BlogArchivePage/index.js +89 -0
  12. package/lib/theme/BlogLayout/index.js +51 -0
  13. package/lib/theme/BlogListPage/index.js +10 -21
  14. package/lib/theme/BlogPostAuthor/index.js +51 -0
  15. package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
  16. package/lib/theme/BlogPostAuthors/index.js +47 -0
  17. package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
  18. package/lib/theme/BlogPostItem/index.js +58 -67
  19. package/lib/theme/BlogPostPage/index.js +37 -24
  20. package/lib/theme/BlogSidebar/index.js +5 -7
  21. package/lib/theme/BlogSidebar/styles.module.css +2 -2
  22. package/lib/theme/BlogTagsListPage/index.js +8 -44
  23. package/lib/theme/BlogTagsPostsPage/index.js +24 -38
  24. package/lib/theme/CodeBlock/index.js +18 -138
  25. package/lib/theme/CodeBlock/styles.module.css +6 -9
  26. package/lib/theme/Details/index.js +30 -0
  27. package/lib/theme/Details/styles.module.css +13 -0
  28. package/lib/theme/DocCard/index.js +84 -0
  29. package/lib/theme/DocCard/styles.module.css +43 -0
  30. package/lib/theme/DocCardList/index.js +28 -0
  31. package/lib/theme/DocCategoryGeneratedIndexPage/index.js +57 -0
  32. package/lib/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  33. package/lib/theme/DocItem/index.js +29 -46
  34. package/lib/theme/DocItem/styles.module.css +5 -9
  35. package/lib/theme/DocItemFooter/index.js +79 -0
  36. package/lib/theme/DocItemFooter/styles.module.css +18 -0
  37. package/lib/theme/DocPage/index.js +35 -52
  38. package/lib/theme/DocPage/styles.module.css +8 -23
  39. package/lib/theme/DocPaginator/index.js +6 -7
  40. package/lib/theme/DocSidebar/index.js +53 -235
  41. package/lib/theme/DocSidebar/styles.module.css +0 -18
  42. package/lib/theme/DocSidebarItem/index.js +209 -0
  43. package/lib/theme/DocSidebarItem/styles.module.css +19 -0
  44. package/lib/theme/DocTagDocListPage/index.js +89 -0
  45. package/lib/theme/DocTagsListPage/index.js +44 -0
  46. package/lib/theme/DocVersionBadge/index.js +34 -0
  47. package/lib/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +39 -20
  48. package/lib/theme/EditThisPage/index.js +3 -1
  49. package/lib/theme/ErrorPageContent.js +43 -0
  50. package/lib/theme/Footer/index.js +16 -5
  51. package/lib/theme/Heading/index.js +17 -22
  52. package/lib/theme/Heading/styles.css +5 -6
  53. package/lib/theme/Heading/styles.module.css +9 -5
  54. package/lib/theme/IconArrow/index.js +2 -2
  55. package/lib/theme/IconClose/index.js +31 -0
  56. package/lib/theme/IconEdit/index.js +3 -3
  57. package/lib/theme/IconExternalLink/index.js +3 -3
  58. package/lib/theme/IconLanguage/index.js +3 -3
  59. package/lib/theme/IconMenu/index.js +3 -3
  60. package/lib/theme/LastUpdated/index.js +4 -2
  61. package/lib/theme/Layout/index.js +5 -1
  62. package/lib/theme/LayoutHead/index.js +22 -17
  63. package/lib/theme/LayoutProviders/index.js +11 -5
  64. package/lib/theme/Logo/index.js +16 -14
  65. package/lib/theme/MDXComponents/index.js +45 -4
  66. package/lib/theme/MDXComponents/styles.css +11 -0
  67. package/lib/theme/MDXPage/index.js +2 -1
  68. package/lib/theme/Navbar/index.js +162 -42
  69. package/lib/theme/Navbar/styles.module.css +10 -3
  70. package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -123
  71. package/lib/theme/NavbarItem/DocNavbarItem.js +7 -8
  72. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
  73. package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
  74. package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +6 -10
  75. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  76. package/lib/theme/NavbarItem/index.js +31 -11
  77. package/lib/theme/{SearchMetadatas → SearchMetadata}/index.js +2 -2
  78. package/lib/theme/Seo/index.js +10 -7
  79. package/lib/theme/SkipToContent/index.js +12 -4
  80. package/lib/theme/SkipToContent/styles.module.css +1 -0
  81. package/lib/theme/TOC/index.js +9 -29
  82. package/lib/theme/TOC/styles.module.css +1 -1
  83. package/lib/theme/TOCCollapsible/index.js +53 -0
  84. package/lib/theme/TOCCollapsible/styles.module.css +50 -0
  85. package/lib/theme/TOCInline/index.js +7 -27
  86. package/lib/theme/TOCItems/index.js +78 -0
  87. package/lib/theme/Tabs/__tests__/index.test.js +123 -0
  88. package/lib/theme/Tabs/index.js +73 -50
  89. package/lib/theme/Tabs/styles.module.css +0 -13
  90. package/lib/theme/Tag/index.js +40 -0
  91. package/lib/theme/Tag/styles.module.css +70 -0
  92. package/lib/theme/TagsListByLetter/index.js +48 -0
  93. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  94. package/lib/theme/TagsListInline/index.js +44 -0
  95. package/lib/theme/TagsListInline/styles.module.css +15 -0
  96. package/lib/theme/ThemeProvider/index.js +8 -3
  97. package/lib/theme/ThemedImage/index.js +6 -7
  98. package/lib/theme/Toggle/index.js +41 -44
  99. package/lib/theme/Toggle/styles.module.css +91 -3
  100. package/lib/theme/UserPreferencesProvider/index.js +9 -12
  101. package/lib/theme/hooks/useHideableNavbar.js +14 -32
  102. package/lib/theme/hooks/useTabGroupChoice.js +2 -4
  103. package/lib/theme/hooks/useTheme.js +3 -5
  104. package/lib/theme/hooks/useWindowSize.js +33 -20
  105. package/lib/theme/prism-include-languages.js +4 -3
  106. package/lib/theme-classic.d.ts +806 -0
  107. package/lib/translations.js +4 -4
  108. package/lib/types.d.ts +0 -599
  109. package/lib/validateThemeConfig.js +230 -246
  110. package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
  111. package/lib-next/admonitions.css +35 -0
  112. package/lib-next/deps.d.ts +13 -0
  113. package/lib-next/index.js +45 -13
  114. package/lib-next/prism-include-languages.js +0 -2
  115. package/lib-next/theme/AnnouncementBar/index.js +9 -18
  116. package/lib-next/theme/AnnouncementBar/styles.module.css +25 -30
  117. package/lib-next/theme/BackToTopButton/index.js +131 -0
  118. package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
  119. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  120. package/lib-next/theme/BlogLayout/index.js +40 -0
  121. package/lib-next/theme/BlogListPage/index.js +17 -25
  122. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  123. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  124. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  125. package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
  126. package/lib-next/theme/BlogPostItem/index.js +79 -86
  127. package/lib-next/theme/BlogPostPage/index.js +70 -35
  128. package/lib-next/theme/BlogSidebar/index.js +11 -13
  129. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  130. package/lib-next/theme/BlogTagsListPage/index.js +14 -55
  131. package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
  132. package/lib-next/theme/CodeBlock/index.js +17 -149
  133. package/lib-next/theme/CodeBlock/styles.module.css +6 -9
  134. package/lib-next/theme/Details/index.js +20 -0
  135. package/lib-next/theme/Details/styles.module.css +13 -0
  136. package/lib-next/theme/DocCard/index.js +80 -0
  137. package/lib-next/theme/DocCard/styles.module.css +43 -0
  138. package/lib-next/theme/DocCardList/index.js +19 -0
  139. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
  140. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  141. package/lib-next/theme/DocItem/index.js +40 -56
  142. package/lib-next/theme/DocItem/styles.module.css +5 -9
  143. package/lib-next/theme/DocItemFooter/index.js +79 -0
  144. package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
  145. package/lib-next/theme/DocPage/index.js +46 -47
  146. package/lib-next/theme/DocPage/styles.module.css +8 -23
  147. package/lib-next/theme/DocPaginator/index.js +7 -11
  148. package/lib-next/theme/DocSidebar/index.js +69 -295
  149. package/lib-next/theme/DocSidebar/styles.module.css +0 -18
  150. package/lib-next/theme/DocSidebarItem/index.js +217 -0
  151. package/lib-next/theme/DocSidebarItem/styles.module.css +19 -0
  152. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  153. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  154. package/lib-next/theme/DocVersionBadge/index.js +27 -0
  155. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +51 -36
  156. package/lib-next/theme/EditThisPage/index.js +6 -1
  157. package/lib-next/theme/ErrorPageContent.js +35 -0
  158. package/lib-next/theme/Footer/index.js +27 -5
  159. package/lib-next/theme/Heading/index.js +25 -29
  160. package/lib-next/theme/Heading/styles.css +5 -6
  161. package/lib-next/theme/Heading/styles.module.css +9 -5
  162. package/lib-next/theme/IconArrow/index.js +2 -2
  163. package/lib-next/theme/IconClose/index.js +23 -0
  164. package/lib-next/theme/IconEdit/index.js +2 -2
  165. package/lib-next/theme/IconExternalLink/index.js +2 -2
  166. package/lib-next/theme/IconLanguage/index.js +2 -2
  167. package/lib-next/theme/IconMenu/index.js +2 -2
  168. package/lib-next/theme/LastUpdated/index.js +3 -2
  169. package/lib-next/theme/Layout/index.js +3 -1
  170. package/lib-next/theme/LayoutHead/index.js +18 -23
  171. package/lib-next/theme/LayoutProviders/index.js +17 -6
  172. package/lib-next/theme/Logo/index.js +25 -21
  173. package/lib-next/theme/MDXComponents/index.js +34 -7
  174. package/lib-next/theme/MDXComponents/styles.css +11 -0
  175. package/lib-next/theme/MDXPage/index.js +10 -2
  176. package/lib-next/theme/Navbar/index.js +193 -56
  177. package/lib-next/theme/Navbar/styles.module.css +10 -3
  178. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
  179. package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
  180. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
  181. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +159 -0
  182. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
  183. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  184. package/lib-next/theme/NavbarItem/index.js +25 -12
  185. package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
  186. package/lib-next/theme/Seo/index.js +11 -7
  187. package/lib-next/theme/SkipToContent/index.js +7 -8
  188. package/lib-next/theme/SkipToContent/styles.module.css +1 -0
  189. package/lib-next/theme/TOC/index.js +12 -36
  190. package/lib-next/theme/TOC/styles.module.css +1 -1
  191. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  192. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  193. package/lib-next/theme/TOCInline/index.js +10 -28
  194. package/lib-next/theme/TOCItems/index.js +85 -0
  195. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  196. package/lib-next/theme/Tabs/index.js +91 -43
  197. package/lib-next/theme/Tabs/styles.module.css +0 -13
  198. package/lib-next/theme/Tag/index.js +27 -0
  199. package/lib-next/theme/Tag/styles.module.css +70 -0
  200. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  201. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  202. package/lib-next/theme/TagsListInline/index.js +31 -0
  203. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  204. package/lib-next/theme/ThemeProvider/index.js +10 -7
  205. package/lib-next/theme/ThemedImage/index.js +7 -8
  206. package/lib-next/theme/Toggle/index.js +34 -37
  207. package/lib-next/theme/Toggle/styles.module.css +91 -3
  208. package/lib-next/theme/UserPreferencesProvider/index.js +9 -10
  209. package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
  210. package/lib-next/theme/hooks/useTabGroupChoice.js +2 -4
  211. package/lib-next/theme/hooks/useTheme.js +4 -5
  212. package/lib-next/theme/hooks/useWindowSize.js +34 -20
  213. package/lib-next/theme/prism-include-languages.js +2 -1
  214. package/lib-next/theme-classic.d.ts +806 -0
  215. package/lib-next/translations.js +6 -10
  216. package/lib-next/types.d.ts +0 -599
  217. package/lib-next/validateThemeConfig.js +141 -114
  218. package/package.json +28 -25
  219. package/src/__tests__/validateThemeConfig.test.js +277 -3
  220. package/src/admonitions.css +35 -0
  221. package/src/deps.d.ts +13 -0
  222. package/src/index.ts +55 -22
  223. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  224. package/src/theme/AnnouncementBar/index.tsx +10 -17
  225. package/src/theme/AnnouncementBar/styles.module.css +25 -30
  226. package/src/theme/BackToTopButton/index.tsx +142 -0
  227. package/src/theme/BackToTopButton/styles.module.css +42 -0
  228. package/src/theme/BlogArchivePage/index.tsx +91 -0
  229. package/src/theme/BlogLayout/index.tsx +44 -0
  230. package/src/theme/BlogListPage/index.tsx +18 -25
  231. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  232. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  233. package/src/theme/BlogPostAuthors/index.tsx +39 -0
  234. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  235. package/src/theme/BlogPostItem/index.tsx +70 -80
  236. package/src/theme/BlogPostPage/index.tsx +72 -35
  237. package/src/theme/BlogSidebar/index.tsx +11 -13
  238. package/src/theme/BlogSidebar/styles.module.css +2 -2
  239. package/src/theme/BlogTagsListPage/index.tsx +14 -57
  240. package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
  241. package/src/theme/CodeBlock/index.tsx +21 -151
  242. package/src/theme/CodeBlock/styles.module.css +6 -9
  243. package/src/theme/Details/index.tsx +24 -0
  244. package/src/theme/Details/styles.module.css +13 -0
  245. package/src/theme/DocCard/index.tsx +100 -0
  246. package/src/theme/DocCard/styles.module.css +43 -0
  247. package/src/theme/DocCardList/index.tsx +27 -0
  248. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
  249. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  250. package/src/theme/DocItem/index.tsx +43 -56
  251. package/src/theme/DocItem/styles.module.css +5 -9
  252. package/src/theme/DocItemFooter/index.tsx +91 -0
  253. package/src/theme/DocItemFooter/styles.module.css +18 -0
  254. package/src/theme/DocPage/index.tsx +44 -42
  255. package/src/theme/DocPage/styles.module.css +8 -23
  256. package/src/theme/DocPaginator/index.tsx +9 -13
  257. package/src/theme/DocSidebar/index.tsx +80 -307
  258. package/src/theme/DocSidebar/styles.module.css +0 -18
  259. package/src/theme/DocSidebarItem/index.tsx +242 -0
  260. package/src/theme/DocSidebarItem/styles.module.css +19 -0
  261. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  262. package/src/theme/DocTagsListPage/index.tsx +41 -0
  263. package/src/theme/DocVersionBadge/index.tsx +30 -0
  264. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +74 -44
  265. package/src/theme/EditThisPage/index.tsx +6 -1
  266. package/src/theme/ErrorPageContent.tsx +41 -0
  267. package/src/theme/Footer/index.tsx +30 -6
  268. package/src/theme/Heading/index.tsx +25 -31
  269. package/src/theme/Heading/styles.css +5 -6
  270. package/src/theme/Heading/styles.module.css +9 -5
  271. package/src/theme/IconArrow/index.tsx +2 -2
  272. package/src/theme/IconClose/index.tsx +26 -0
  273. package/src/theme/IconEdit/index.tsx +2 -2
  274. package/src/theme/IconExternalLink/index.tsx +2 -5
  275. package/src/theme/IconLanguage/index.tsx +2 -6
  276. package/src/theme/IconMenu/index.tsx +3 -3
  277. package/src/theme/LastUpdated/index.tsx +3 -2
  278. package/src/theme/Layout/index.tsx +3 -1
  279. package/src/theme/LayoutHead/index.tsx +18 -17
  280. package/src/theme/LayoutProviders/index.tsx +17 -6
  281. package/src/theme/Logo/index.tsx +21 -17
  282. package/src/theme/MDXComponents/index.tsx +39 -5
  283. package/src/theme/MDXComponents/styles.css +11 -0
  284. package/src/theme/MDXPage/index.tsx +10 -2
  285. package/src/theme/Navbar/index.tsx +203 -61
  286. package/src/theme/Navbar/styles.module.css +10 -3
  287. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
  288. package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
  289. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
  290. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  291. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  292. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
  293. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  294. package/src/theme/NavbarItem/index.tsx +41 -16
  295. package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
  296. package/src/theme/Seo/index.tsx +7 -4
  297. package/src/theme/SkipToContent/index.tsx +7 -8
  298. package/src/theme/SkipToContent/styles.module.css +1 -0
  299. package/src/theme/TOC/index.tsx +12 -41
  300. package/src/theme/TOC/styles.module.css +1 -1
  301. package/src/theme/TOCCollapsible/index.tsx +58 -0
  302. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  303. package/src/theme/TOCInline/index.tsx +13 -32
  304. package/src/theme/TOCItems/index.tsx +96 -0
  305. package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
  306. package/src/theme/Tabs/index.tsx +93 -49
  307. package/src/theme/Tabs/styles.module.css +0 -13
  308. package/src/theme/Tag/index.tsx +31 -0
  309. package/src/theme/Tag/styles.module.css +70 -0
  310. package/src/theme/TagsListByLetter/index.tsx +45 -0
  311. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  312. package/src/theme/TagsListInline/index.tsx +35 -0
  313. package/src/theme/TagsListInline/styles.module.css +15 -0
  314. package/src/theme/ThemeProvider/index.tsx +6 -2
  315. package/src/theme/ThemedImage/index.tsx +8 -8
  316. package/src/theme/Toggle/index.tsx +36 -43
  317. package/src/theme/Toggle/styles.module.css +91 -3
  318. package/src/theme/UserPreferencesProvider/index.tsx +9 -11
  319. package/src/theme/hooks/useHideableNavbar.ts +32 -45
  320. package/src/theme/hooks/useTabGroupChoice.ts +4 -4
  321. package/src/theme/hooks/useTheme.ts +4 -5
  322. package/src/theme/hooks/useWindowSize.ts +38 -20
  323. package/src/theme/prism-include-languages.ts +3 -2
  324. package/src/theme-classic.d.ts +806 -0
  325. package/src/translations.ts +8 -10
  326. package/src/types.d.ts +0 -599
  327. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +151 -94
  328. package/tsconfig.json +1 -2
  329. package/codeTranslations/README.md +0 -20
  330. package/codeTranslations/ar.json +0 -57
  331. package/codeTranslations/base.json +0 -112
  332. package/codeTranslations/bn.json +0 -56
  333. package/codeTranslations/da.json +0 -57
  334. package/codeTranslations/de.json +0 -57
  335. package/codeTranslations/es.json +0 -57
  336. package/codeTranslations/fa.json +0 -57
  337. package/codeTranslations/fil.json +0 -57
  338. package/codeTranslations/fr.json +0 -57
  339. package/codeTranslations/he.json +0 -57
  340. package/codeTranslations/hi.json +0 -57
  341. package/codeTranslations/ja.json +0 -57
  342. package/codeTranslations/ko.json +0 -57
  343. package/codeTranslations/pl.json +0 -57
  344. package/codeTranslations/pt-BR.json +0 -57
  345. package/codeTranslations/pt-PT.json +0 -57
  346. package/codeTranslations/ru.json +0 -57
  347. package/codeTranslations/tr.json +0 -57
  348. package/codeTranslations/vi.json +0 -57
  349. package/codeTranslations/zh-Hans.json +0 -57
  350. package/codeTranslations/zh-Hant.json +0 -57
  351. package/lib/theme/Toggle/styles.css +0 -103
  352. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  353. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  354. package/lib/theme/hooks/useScrollPosition.js +0 -49
  355. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  356. package/lib-next/theme/Toggle/styles.css +0 -103
  357. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  358. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  359. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  360. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  361. package/src/theme/Toggle/styles.css +0 -103
  362. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  363. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  364. package/src/theme/hooks/useScrollPosition.ts +0 -45
  365. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  366. package/update-code-translations.js +0 -239
  367. package/update-code-translations.test.js +0 -33
@@ -6,24 +6,21 @@
6
6
  */
7
7
 
8
8
  import React from 'react';
9
+ import clsx from 'clsx';
10
+ import useWindowSize from '@theme/hooks/useWindowSize';
9
11
  import DocPaginator from '@theme/DocPaginator';
10
- import DocVersionSuggestions from '@theme/DocVersionSuggestions';
12
+ import DocVersionBanner from '@theme/DocVersionBanner';
13
+ import DocVersionBadge from '@theme/DocVersionBadge';
11
14
  import Seo from '@theme/Seo';
12
- import LastUpdated from '@theme/LastUpdated';
13
15
  import type {Props} from '@theme/DocItem';
16
+ import DocItemFooter from '@theme/DocItemFooter';
14
17
  import TOC from '@theme/TOC';
15
- import EditThisPage from '@theme/EditThisPage';
18
+ import TOCCollapsible from '@theme/TOCCollapsible';
16
19
  import {MainHeading} from '@theme/Heading';
17
-
18
- import clsx from 'clsx';
19
20
  import styles from './styles.module.css';
20
- import {
21
- useActivePlugin,
22
- useVersions,
23
- useActiveVersion,
24
- } from '@theme/hooks/useDocs';
21
+ import {ThemeClassNames} from '@docusaurus/theme-common';
25
22
 
26
- function DocItem(props: Props): JSX.Element {
23
+ export default function DocItem(props: Props): JSX.Element {
27
24
  const {content: DocContent} = props;
28
25
  const {metadata, frontMatter} = DocContent;
29
26
  const {
@@ -31,24 +28,10 @@ function DocItem(props: Props): JSX.Element {
31
28
  keywords,
32
29
  hide_title: hideTitle,
33
30
  hide_table_of_contents: hideTableOfContents,
31
+ toc_min_heading_level: tocMinHeadingLevel,
32
+ toc_max_heading_level: tocMaxHeadingLevel,
34
33
  } = frontMatter;
35
- const {
36
- description,
37
- title,
38
- editUrl,
39
- lastUpdatedAt,
40
- formattedLastUpdatedAt,
41
- lastUpdatedBy,
42
- } = metadata;
43
-
44
- const {pluginId} = useActivePlugin({failfast: true});
45
- const versions = useVersions(pluginId);
46
- const version = useActiveVersion(pluginId);
47
-
48
- // If site is not versioned or only one version is included
49
- // we don't show the version badge
50
- // See https://github.com/facebook/docusaurus/issues/3362
51
- const showVersionBadge = versions.length > 1;
34
+ const {description, title} = metadata;
52
35
 
53
36
  // We only add a title if:
54
37
  // - user asks to hide it with frontmatter
@@ -56,6 +39,14 @@ function DocItem(props: Props): JSX.Element {
56
39
  const shouldAddTitle =
57
40
  !hideTitle && typeof DocContent.contentTitle === 'undefined';
58
41
 
42
+ const windowSize = useWindowSize();
43
+
44
+ const canRenderTOC =
45
+ !hideTableOfContents && DocContent.toc && DocContent.toc.length > 0;
46
+
47
+ const renderTocDesktop =
48
+ canRenderTOC && (windowSize === 'desktop' || windowSize === 'ssr');
49
+
59
50
  return (
60
51
  <>
61
52
  <Seo {...{title, description, keywords, image}} />
@@ -65,16 +56,25 @@ function DocItem(props: Props): JSX.Element {
65
56
  className={clsx('col', {
66
57
  [styles.docItemCol]: !hideTableOfContents,
67
58
  })}>
68
- <DocVersionSuggestions />
59
+ <DocVersionBanner />
69
60
  <div className={styles.docItemContainer}>
70
61
  <article>
71
- {showVersionBadge && (
72
- <span className="badge badge--secondary">
73
- Version: {version.label}
74
- </span>
62
+ <DocVersionBadge />
63
+
64
+ {canRenderTOC && (
65
+ <TOCCollapsible
66
+ toc={DocContent.toc}
67
+ minHeadingLevel={tocMinHeadingLevel}
68
+ maxHeadingLevel={tocMaxHeadingLevel}
69
+ className={clsx(
70
+ ThemeClassNames.docs.docTocMobile,
71
+ styles.tocMobile,
72
+ )}
73
+ />
75
74
  )}
76
75
 
77
- <div className="markdown">
76
+ <div
77
+ className={clsx(ThemeClassNames.docs.docMarkdown, 'markdown')}>
78
78
  {/*
79
79
  Title can be declared inside md content or declared through frontmatter and added manually
80
80
  To make both cases consistent, the added title is added under the same div.markdown block
@@ -85,36 +85,23 @@ function DocItem(props: Props): JSX.Element {
85
85
  <DocContent />
86
86
  </div>
87
87
 
88
- {(editUrl || lastUpdatedAt || lastUpdatedBy) && (
89
- <footer className="row docusaurus-mt-lg">
90
- <div className="col">
91
- {editUrl && <EditThisPage editUrl={editUrl} />}
92
- </div>
93
-
94
- <div className={clsx('col', styles.lastUpdated)}>
95
- {(lastUpdatedAt || lastUpdatedBy) && (
96
- <LastUpdated
97
- lastUpdatedAt={lastUpdatedAt}
98
- formattedLastUpdatedAt={formattedLastUpdatedAt}
99
- lastUpdatedBy={lastUpdatedBy}
100
- />
101
- )}
102
- </div>
103
- </footer>
104
- )}
88
+ <DocItemFooter {...props} />
105
89
  </article>
106
90
 
107
- <DocPaginator metadata={metadata} />
91
+ <DocPaginator previous={metadata.previous} next={metadata.next} />
108
92
  </div>
109
93
  </div>
110
- {!hideTableOfContents && DocContent.toc && (
94
+ {renderTocDesktop && (
111
95
  <div className="col col--3">
112
- <TOC toc={DocContent.toc} />
96
+ <TOC
97
+ toc={DocContent.toc}
98
+ minHeadingLevel={tocMinHeadingLevel}
99
+ maxHeadingLevel={tocMaxHeadingLevel}
100
+ className={ThemeClassNames.docs.docTocDesktop}
101
+ />
113
102
  </div>
114
103
  )}
115
104
  </div>
116
105
  </>
117
106
  );
118
107
  }
119
-
120
- export default DocItem;
@@ -5,22 +5,18 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ .docItemContainer article > *:first-child,
8
9
  .docItemContainer header + * {
9
10
  margin-top: 0;
10
11
  }
11
12
 
12
- .lastUpdated {
13
- margin-top: 0.2rem;
14
- font-style: italic;
15
- font-size: smaller;
16
- }
17
-
18
- @media only screen and (min-width: 997px) {
13
+ @media (min-width: 997px) {
19
14
  .docItemCol {
20
15
  max-width: 75% !important;
21
16
  }
22
17
 
23
- .lastUpdated {
24
- text-align: right;
18
+ /* Prevent hydration FOUC, as the mobile TOC needs to be server-rendered */
19
+ .tocMobile {
20
+ display: none;
25
21
  }
26
22
  }
@@ -0,0 +1,91 @@
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
+
11
+ import LastUpdated from '@theme/LastUpdated';
12
+ import type {Props} from '@theme/DocItem';
13
+ import EditThisPage from '@theme/EditThisPage';
14
+ import TagsListInline, {
15
+ Props as TagsListInlineProps,
16
+ } from '@theme/TagsListInline';
17
+
18
+ import styles from './styles.module.css';
19
+ import {ThemeClassNames} from '@docusaurus/theme-common';
20
+
21
+ function TagsRow(props: TagsListInlineProps) {
22
+ return (
23
+ <div
24
+ className={clsx(
25
+ ThemeClassNames.docs.docFooterTagsRow,
26
+ 'row margin-bottom--sm',
27
+ )}>
28
+ <div className="col">
29
+ <TagsListInline {...props} />
30
+ </div>
31
+ </div>
32
+ );
33
+ }
34
+
35
+ type EditMetaRowProps = Pick<
36
+ Props['content']['metadata'],
37
+ 'editUrl' | 'lastUpdatedAt' | 'lastUpdatedBy' | 'formattedLastUpdatedAt'
38
+ >;
39
+ function EditMetaRow({
40
+ editUrl,
41
+ lastUpdatedAt,
42
+ lastUpdatedBy,
43
+ formattedLastUpdatedAt,
44
+ }: EditMetaRowProps) {
45
+ return (
46
+ <div className={clsx(ThemeClassNames.docs.docFooterEditMetaRow, 'row')}>
47
+ <div className="col">{editUrl && <EditThisPage editUrl={editUrl} />}</div>
48
+
49
+ <div className={clsx('col', styles.lastUpdated)}>
50
+ {(lastUpdatedAt || lastUpdatedBy) && (
51
+ <LastUpdated
52
+ lastUpdatedAt={lastUpdatedAt}
53
+ formattedLastUpdatedAt={formattedLastUpdatedAt}
54
+ lastUpdatedBy={lastUpdatedBy}
55
+ />
56
+ )}
57
+ </div>
58
+ </div>
59
+ );
60
+ }
61
+
62
+ export default function DocItemFooter(props: Props): JSX.Element | null {
63
+ const {content: DocContent} = props;
64
+ const {metadata} = DocContent;
65
+ const {editUrl, lastUpdatedAt, formattedLastUpdatedAt, lastUpdatedBy, tags} =
66
+ metadata;
67
+
68
+ const canDisplayTagsRow = tags.length > 0;
69
+ const canDisplayEditMetaRow = !!(editUrl || lastUpdatedAt || lastUpdatedBy);
70
+
71
+ const canDisplayFooter = canDisplayTagsRow || canDisplayEditMetaRow;
72
+
73
+ if (!canDisplayFooter) {
74
+ return null;
75
+ }
76
+
77
+ return (
78
+ <footer
79
+ className={clsx(ThemeClassNames.docs.docFooter, 'docusaurus-mt-lg')}>
80
+ {canDisplayTagsRow && <TagsRow tags={tags} />}
81
+ {canDisplayEditMetaRow && (
82
+ <EditMetaRow
83
+ editUrl={editUrl}
84
+ lastUpdatedAt={lastUpdatedAt}
85
+ lastUpdatedBy={lastUpdatedBy}
86
+ formattedLastUpdatedAt={formattedLastUpdatedAt}
87
+ />
88
+ )}
89
+ </footer>
90
+ );
91
+ }
@@ -0,0 +1,18 @@
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
+ .lastUpdated {
9
+ margin-top: 0.2rem;
10
+ font-style: italic;
11
+ font-size: smaller;
12
+ }
13
+
14
+ @media (min-width: 997px) {
15
+ .lastUpdated {
16
+ text-align: right;
17
+ }
18
+ }
@@ -8,9 +8,8 @@
8
8
  import React, {ReactNode, useState, useCallback} from 'react';
9
9
  import {MDXProvider} from '@mdx-js/react';
10
10
 
11
- import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
12
11
  import renderRoutes from '@docusaurus/renderRoutes';
13
- import type {PropVersionMetadata} from '@docusaurus/plugin-content-docs-types';
12
+ import type {PropVersionMetadata} from '@docusaurus/plugin-content-docs';
14
13
  import Layout from '@theme/Layout';
15
14
  import DocSidebar from '@theme/DocSidebar';
16
15
  import MDXComponents from '@theme/MDXComponents';
@@ -18,50 +17,36 @@ import NotFound from '@theme/NotFound';
18
17
  import type {DocumentRoute} from '@theme/DocItem';
19
18
  import type {Props} from '@theme/DocPage';
20
19
  import IconArrow from '@theme/IconArrow';
20
+ import BackToTopButton from '@theme/BackToTopButton';
21
21
  import {matchPath} from '@docusaurus/router';
22
22
  import {translate} from '@docusaurus/Translate';
23
23
 
24
24
  import clsx from 'clsx';
25
25
  import styles from './styles.module.css';
26
- import {ThemeClassNames, docVersionSearchTag} from '@docusaurus/theme-common';
26
+ import {
27
+ ThemeClassNames,
28
+ docVersionSearchTag,
29
+ DocsSidebarProvider,
30
+ useDocsSidebar,
31
+ DocsVersionProvider,
32
+ } from '@docusaurus/theme-common';
33
+ import Head from '@docusaurus/Head';
27
34
 
28
35
  type DocPageContentProps = {
29
36
  readonly currentDocRoute: DocumentRoute;
30
37
  readonly versionMetadata: PropVersionMetadata;
31
38
  readonly children: ReactNode;
39
+ readonly sidebarName: string | undefined;
32
40
  };
33
41
 
34
- function getSidebar({versionMetadata, currentDocRoute}) {
35
- function addTrailingSlash(str: string): string {
36
- return str.endsWith('/') ? str : `${str}/`;
37
- }
38
- function removeTrailingSlash(str: string): string {
39
- return str.endsWith('/') ? str.slice(0, -1) : str;
40
- }
41
-
42
- const {permalinkToSidebar, docsSidebars} = versionMetadata;
43
-
44
- // With/without trailingSlash, we should always be able to get the appropriate sidebar
45
- // note: docs plugin permalinks currently never have trailing slashes
46
- // trailingSlash is handled globally at the framework level, not plugin level
47
- const sidebarName =
48
- permalinkToSidebar[currentDocRoute.path] ||
49
- permalinkToSidebar[addTrailingSlash(currentDocRoute.path)] ||
50
- permalinkToSidebar[removeTrailingSlash(currentDocRoute.path)];
51
-
52
- const sidebar = docsSidebars[sidebarName];
53
- return {sidebar, sidebarName};
54
- }
55
-
56
42
  function DocPageContent({
57
43
  currentDocRoute,
58
44
  versionMetadata,
59
45
  children,
46
+ sidebarName,
60
47
  }: DocPageContentProps): JSX.Element {
61
- const {siteConfig, isClient} = useDocusaurusContext();
48
+ const sidebar = useDocsSidebar();
62
49
  const {pluginId, version} = versionMetadata;
63
- const {sidebarName, sidebar} = getSidebar({versionMetadata, currentDocRoute});
64
-
65
50
  const [hiddenSidebarContainer, setHiddenSidebarContainer] = useState(false);
66
51
  const [hiddenSidebar, setHiddenSidebar] = useState(false);
67
52
  const toggleSidebar = useCallback(() => {
@@ -69,19 +54,20 @@ function DocPageContent({
69
54
  setHiddenSidebar(false);
70
55
  }
71
56
 
72
- setHiddenSidebarContainer(!hiddenSidebarContainer);
57
+ setHiddenSidebarContainer((value) => !value);
73
58
  }, [hiddenSidebar]);
74
59
 
75
60
  return (
76
61
  <Layout
77
- key={isClient}
78
- wrapperClassName={ThemeClassNames.wrapper.docPages}
79
- pageClassName={ThemeClassNames.page.docPage}
80
- searchMetadatas={{
62
+ wrapperClassName={ThemeClassNames.wrapper.docsPages}
63
+ pageClassName={ThemeClassNames.page.docsDocPage}
64
+ searchMetadata={{
81
65
  version,
82
66
  tag: docVersionSearchTag(pluginId, version),
83
67
  }}>
84
68
  <div className={styles.docPage}>
69
+ <BackToTopButton />
70
+
85
71
  {sidebar && (
86
72
  <aside
87
73
  className={clsx(styles.docSidebarContainer, {
@@ -106,9 +92,6 @@ function DocPageContent({
106
92
  }
107
93
  sidebar={sidebar}
108
94
  path={currentDocRoute.path}
109
- sidebarCollapsible={
110
- siteConfig.themeConfig?.sidebarCollapsible ?? true
111
- }
112
95
  onCollapse={toggleSidebar}
113
96
  isHidden={hiddenSidebar}
114
97
  />
@@ -168,14 +151,33 @@ function DocPage(props: Props): JSX.Element {
168
151
  matchPath(location.pathname, docRoute),
169
152
  );
170
153
  if (!currentDocRoute) {
171
- return <NotFound {...props} />;
154
+ return <NotFound />;
172
155
  }
156
+
157
+ // For now, the sidebarName is added as route config: not ideal!
158
+ const sidebarName = currentDocRoute.sidebar;
159
+
160
+ const sidebar = sidebarName
161
+ ? versionMetadata.docsSidebars[sidebarName]
162
+ : null;
163
+
173
164
  return (
174
- <DocPageContent
175
- currentDocRoute={currentDocRoute}
176
- versionMetadata={versionMetadata}>
177
- {renderRoutes(docRoutes)}
178
- </DocPageContent>
165
+ <>
166
+ <Head>
167
+ {/* TODO we should add a core addRoute({htmlClassName}) generic plugin option */}
168
+ <html className={versionMetadata.className} />
169
+ </Head>
170
+ <DocsVersionProvider version={versionMetadata}>
171
+ <DocsSidebarProvider sidebar={sidebar}>
172
+ <DocPageContent
173
+ currentDocRoute={currentDocRoute}
174
+ versionMetadata={versionMetadata}
175
+ sidebarName={sidebarName}>
176
+ {renderRoutes(docRoutes, {versionMetadata})}
177
+ </DocPageContent>
178
+ </DocsSidebarProvider>
179
+ </DocsVersionProvider>
180
+ </>
179
181
  );
180
182
  }
181
183
 
@@ -7,6 +7,7 @@
7
7
 
8
8
  :root {
9
9
  --doc-sidebar-width: 300px;
10
+ --doc-sidebar-hidden-width: 30px;
10
11
  }
11
12
 
12
13
  :global(.docs-wrapper) {
@@ -19,6 +20,10 @@
19
20
  width: 100%;
20
21
  }
21
22
 
23
+ .docSidebarContainer {
24
+ display: none;
25
+ }
26
+
22
27
  @media (min-width: 997px) {
23
28
  .docMainContainer {
24
29
  flex-grow: 1;
@@ -26,10 +31,11 @@
26
31
  }
27
32
 
28
33
  .docMainContainerEnhanced {
29
- max-width: none;
34
+ max-width: calc(100% - var(--doc-sidebar-hidden-width));
30
35
  }
31
36
 
32
37
  .docSidebarContainer {
38
+ display: block;
33
39
  width: var(--doc-sidebar-width);
34
40
  margin-top: calc(-1 * var(--ifm-navbar-height));
35
41
  border-right: 1px solid var(--ifm-toc-border-color);
@@ -39,7 +45,7 @@
39
45
  }
40
46
 
41
47
  .docSidebarContainerHidden {
42
- width: 30px;
48
+ width: var(--doc-sidebar-hidden-width);
43
49
  cursor: pointer;
44
50
  }
45
51
 
@@ -77,24 +83,3 @@
77
83
  ) !important;
78
84
  }
79
85
  }
80
-
81
- @media (max-width: 996px) {
82
- .docSidebarContainer {
83
- margin-top: 0;
84
- }
85
- }
86
-
87
- @media (min-width: 997px) and (max-width: 1320px) {
88
- .docItemWrapper {
89
- max-width: calc(
90
- var(--ifm-container-width) - var(--doc-sidebar-width) -
91
- var(--ifm-spacing-horizontal) * 2
92
- );
93
- }
94
-
95
- .docItemWrapperEnhanced {
96
- max-width: calc(
97
- var(--ifm-container-width) - var(--ifm-spacing-horizontal) * 2
98
- );
99
- }
100
- }
@@ -8,10 +8,10 @@
8
8
  import React from 'react';
9
9
  import Link from '@docusaurus/Link';
10
10
  import Translate, {translate} from '@docusaurus/Translate';
11
- import type {Props} from '@theme/DocPaginator';
11
+ import type {PropNavigation} from '@docusaurus/plugin-content-docs';
12
12
 
13
- function DocPaginator(props: Props): JSX.Element {
14
- const {metadata} = props;
13
+ function DocPaginator(props: PropNavigation): JSX.Element {
14
+ const {previous, next} = props;
15
15
 
16
16
  return (
17
17
  <nav
@@ -22,10 +22,8 @@ function DocPaginator(props: Props): JSX.Element {
22
22
  description: 'The ARIA label for the docs pagination',
23
23
  })}>
24
24
  <div className="pagination-nav__item">
25
- {metadata.previous && (
26
- <Link
27
- className="pagination-nav__link"
28
- to={metadata.previous.permalink}>
25
+ {previous && (
26
+ <Link className="pagination-nav__link" to={previous.permalink}>
29
27
  <div className="pagination-nav__sublabel">
30
28
  <Translate
31
29
  id="theme.docs.paginator.previous"
@@ -34,14 +32,14 @@ function DocPaginator(props: Props): JSX.Element {
34
32
  </Translate>
35
33
  </div>
36
34
  <div className="pagination-nav__label">
37
- &laquo; {metadata.previous.title}
35
+ &laquo; {previous.title}
38
36
  </div>
39
37
  </Link>
40
38
  )}
41
39
  </div>
42
40
  <div className="pagination-nav__item pagination-nav__item--next">
43
- {metadata.next && (
44
- <Link className="pagination-nav__link" to={metadata.next.permalink}>
41
+ {next && (
42
+ <Link className="pagination-nav__link" to={next.permalink}>
45
43
  <div className="pagination-nav__sublabel">
46
44
  <Translate
47
45
  id="theme.docs.paginator.next"
@@ -49,9 +47,7 @@ function DocPaginator(props: Props): JSX.Element {
49
47
  Next
50
48
  </Translate>
51
49
  </div>
52
- <div className="pagination-nav__label">
53
- {metadata.next.title} &raquo;
54
- </div>
50
+ <div className="pagination-nav__label">{next.title} &raquo;</div>
55
51
  </Link>
56
52
  )}
57
53
  </div>