@docusaurus/theme-classic 2.0.0-beta.0f144213d → 2.0.0-beta.11

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 (359) 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 +16 -15
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme/AnnouncementBar/index.js +8 -12
  8. package/lib/theme/AnnouncementBar/styles.module.css +23 -32
  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 -54
  38. package/lib/theme/DocPage/styles.module.css +5 -0
  39. package/lib/theme/DocPaginator/index.js +6 -7
  40. package/lib/theme/DocSidebar/index.js +52 -224
  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/DocVersionBanner/index.js +12 -10
  48. package/lib/theme/EditThisPage/index.js +3 -1
  49. package/lib/theme/ErrorPageContent.js +43 -0
  50. package/lib/theme/Footer/index.js +8 -4
  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 +7 -3
  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 +5 -2
  80. package/lib/theme/TOC/index.js +9 -29
  81. package/lib/theme/TOC/styles.module.css +1 -1
  82. package/lib/theme/TOCCollapsible/index.js +53 -0
  83. package/lib/theme/TOCCollapsible/styles.module.css +50 -0
  84. package/lib/theme/TOCInline/index.js +7 -27
  85. package/lib/theme/TOCItems/index.js +78 -0
  86. package/lib/theme/Tabs/__tests__/index.test.js +123 -0
  87. package/lib/theme/Tabs/index.js +73 -50
  88. package/lib/theme/Tabs/styles.module.css +0 -13
  89. package/lib/theme/Tag/index.js +40 -0
  90. package/lib/theme/Tag/styles.module.css +70 -0
  91. package/lib/theme/TagsListByLetter/index.js +48 -0
  92. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  93. package/lib/theme/TagsListInline/index.js +44 -0
  94. package/lib/theme/TagsListInline/styles.module.css +15 -0
  95. package/lib/theme/ThemeProvider/index.js +8 -3
  96. package/lib/theme/ThemedImage/index.js +5 -7
  97. package/lib/theme/Toggle/index.js +41 -44
  98. package/lib/theme/Toggle/styles.module.css +91 -3
  99. package/lib/theme/UserPreferencesProvider/index.js +8 -3
  100. package/lib/theme/hooks/useHideableNavbar.js +14 -32
  101. package/lib/theme/hooks/useTheme.js +3 -5
  102. package/lib/theme/hooks/useWindowSize.js +33 -20
  103. package/lib/theme/prism-include-languages.js +4 -3
  104. package/lib/theme-classic.d.ts +806 -0
  105. package/lib/translations.js +4 -4
  106. package/lib/types.d.ts +0 -587
  107. package/lib/validateThemeConfig.js +230 -246
  108. package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
  109. package/lib-next/admonitions.css +35 -0
  110. package/lib-next/deps.d.ts +13 -0
  111. package/lib-next/index.js +16 -10
  112. package/lib-next/prism-include-languages.js +0 -2
  113. package/lib-next/theme/AnnouncementBar/index.js +7 -12
  114. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  115. package/lib-next/theme/BackToTopButton/index.js +131 -0
  116. package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
  117. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  118. package/lib-next/theme/BlogLayout/index.js +40 -0
  119. package/lib-next/theme/BlogListPage/index.js +17 -25
  120. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  121. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  122. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  123. package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
  124. package/lib-next/theme/BlogPostItem/index.js +79 -86
  125. package/lib-next/theme/BlogPostPage/index.js +70 -35
  126. package/lib-next/theme/BlogSidebar/index.js +11 -13
  127. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  128. package/lib-next/theme/BlogTagsListPage/index.js +14 -55
  129. package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
  130. package/lib-next/theme/CodeBlock/index.js +17 -149
  131. package/lib-next/theme/CodeBlock/styles.module.css +6 -9
  132. package/lib-next/theme/Details/index.js +20 -0
  133. package/lib-next/theme/Details/styles.module.css +13 -0
  134. package/lib-next/theme/DocCard/index.js +80 -0
  135. package/lib-next/theme/DocCard/styles.module.css +43 -0
  136. package/lib-next/theme/DocCardList/index.js +19 -0
  137. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
  138. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  139. package/lib-next/theme/DocItem/index.js +40 -51
  140. package/lib-next/theme/DocItem/styles.module.css +5 -9
  141. package/lib-next/theme/DocItemFooter/index.js +79 -0
  142. package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
  143. package/lib-next/theme/DocPage/index.js +46 -49
  144. package/lib-next/theme/DocPage/styles.module.css +5 -0
  145. package/lib-next/theme/DocPaginator/index.js +7 -11
  146. package/lib-next/theme/DocSidebar/index.js +65 -285
  147. package/lib-next/theme/DocSidebar/styles.module.css +0 -18
  148. package/lib-next/theme/DocSidebarItem/index.js +217 -0
  149. package/lib-next/theme/DocSidebarItem/styles.module.css +19 -0
  150. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  151. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  152. package/lib-next/theme/DocVersionBadge/index.js +27 -0
  153. package/lib-next/theme/DocVersionBanner/index.js +28 -14
  154. package/lib-next/theme/EditThisPage/index.js +6 -1
  155. package/lib-next/theme/ErrorPageContent.js +35 -0
  156. package/lib-next/theme/Footer/index.js +17 -4
  157. package/lib-next/theme/Heading/index.js +25 -29
  158. package/lib-next/theme/Heading/styles.css +5 -6
  159. package/lib-next/theme/Heading/styles.module.css +9 -5
  160. package/lib-next/theme/IconArrow/index.js +2 -2
  161. package/lib-next/theme/IconClose/index.js +23 -0
  162. package/lib-next/theme/IconEdit/index.js +2 -2
  163. package/lib-next/theme/IconExternalLink/index.js +2 -2
  164. package/lib-next/theme/IconLanguage/index.js +2 -2
  165. package/lib-next/theme/IconMenu/index.js +2 -2
  166. package/lib-next/theme/LastUpdated/index.js +3 -2
  167. package/lib-next/theme/Layout/index.js +3 -1
  168. package/lib-next/theme/LayoutHead/index.js +18 -23
  169. package/lib-next/theme/LayoutProviders/index.js +9 -3
  170. package/lib-next/theme/Logo/index.js +25 -21
  171. package/lib-next/theme/MDXComponents/index.js +34 -7
  172. package/lib-next/theme/MDXComponents/styles.css +11 -0
  173. package/lib-next/theme/MDXPage/index.js +10 -2
  174. package/lib-next/theme/Navbar/index.js +193 -56
  175. package/lib-next/theme/Navbar/styles.module.css +10 -3
  176. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
  177. package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
  178. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
  179. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +159 -0
  180. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
  181. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  182. package/lib-next/theme/NavbarItem/index.js +25 -12
  183. package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
  184. package/lib-next/theme/Seo/index.js +11 -7
  185. package/lib-next/theme/SkipToContent/index.js +3 -2
  186. package/lib-next/theme/TOC/index.js +12 -36
  187. package/lib-next/theme/TOC/styles.module.css +1 -1
  188. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  189. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  190. package/lib-next/theme/TOCInline/index.js +10 -28
  191. package/lib-next/theme/TOCItems/index.js +85 -0
  192. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  193. package/lib-next/theme/Tabs/index.js +91 -43
  194. package/lib-next/theme/Tabs/styles.module.css +0 -13
  195. package/lib-next/theme/Tag/index.js +27 -0
  196. package/lib-next/theme/Tag/styles.module.css +70 -0
  197. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  198. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  199. package/lib-next/theme/TagsListInline/index.js +31 -0
  200. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  201. package/lib-next/theme/ThemeProvider/index.js +10 -7
  202. package/lib-next/theme/ThemedImage/index.js +5 -5
  203. package/lib-next/theme/Toggle/index.js +34 -37
  204. package/lib-next/theme/Toggle/styles.module.css +91 -3
  205. package/lib-next/theme/UserPreferencesProvider/index.js +9 -6
  206. package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
  207. package/lib-next/theme/hooks/useTheme.js +4 -5
  208. package/lib-next/theme/hooks/useWindowSize.js +34 -20
  209. package/lib-next/theme/prism-include-languages.js +2 -1
  210. package/lib-next/theme-classic.d.ts +806 -0
  211. package/lib-next/translations.js +6 -10
  212. package/lib-next/types.d.ts +0 -587
  213. package/lib-next/validateThemeConfig.js +141 -114
  214. package/package.json +28 -25
  215. package/src/__tests__/validateThemeConfig.test.js +277 -3
  216. package/src/admonitions.css +35 -0
  217. package/src/deps.d.ts +13 -0
  218. package/src/index.ts +23 -17
  219. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  220. package/src/theme/AnnouncementBar/index.tsx +8 -12
  221. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  222. package/src/theme/BackToTopButton/index.tsx +142 -0
  223. package/src/theme/BackToTopButton/styles.module.css +42 -0
  224. package/src/theme/BlogArchivePage/index.tsx +91 -0
  225. package/src/theme/BlogLayout/index.tsx +44 -0
  226. package/src/theme/BlogListPage/index.tsx +18 -25
  227. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  228. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  229. package/src/theme/BlogPostAuthors/index.tsx +39 -0
  230. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  231. package/src/theme/BlogPostItem/index.tsx +70 -80
  232. package/src/theme/BlogPostPage/index.tsx +72 -35
  233. package/src/theme/BlogSidebar/index.tsx +11 -13
  234. package/src/theme/BlogSidebar/styles.module.css +2 -2
  235. package/src/theme/BlogTagsListPage/index.tsx +14 -57
  236. package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
  237. package/src/theme/CodeBlock/index.tsx +21 -151
  238. package/src/theme/CodeBlock/styles.module.css +6 -9
  239. package/src/theme/Details/index.tsx +24 -0
  240. package/src/theme/Details/styles.module.css +13 -0
  241. package/src/theme/DocCard/index.tsx +100 -0
  242. package/src/theme/DocCard/styles.module.css +43 -0
  243. package/src/theme/DocCardList/index.tsx +27 -0
  244. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
  245. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  246. package/src/theme/DocItem/index.tsx +43 -51
  247. package/src/theme/DocItem/styles.module.css +5 -9
  248. package/src/theme/DocItemFooter/index.tsx +91 -0
  249. package/src/theme/DocItemFooter/styles.module.css +18 -0
  250. package/src/theme/DocPage/index.tsx +44 -42
  251. package/src/theme/DocPage/styles.module.css +5 -0
  252. package/src/theme/DocPaginator/index.tsx +9 -13
  253. package/src/theme/DocSidebar/index.tsx +76 -297
  254. package/src/theme/DocSidebar/styles.module.css +0 -18
  255. package/src/theme/DocSidebarItem/index.tsx +242 -0
  256. package/src/theme/DocSidebarItem/styles.module.css +19 -0
  257. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  258. package/src/theme/DocTagsListPage/index.tsx +41 -0
  259. package/src/theme/DocVersionBadge/index.tsx +30 -0
  260. package/src/theme/DocVersionBanner/index.tsx +48 -21
  261. package/src/theme/EditThisPage/index.tsx +6 -1
  262. package/src/theme/ErrorPageContent.tsx +41 -0
  263. package/src/theme/Footer/index.tsx +20 -5
  264. package/src/theme/Heading/index.tsx +25 -31
  265. package/src/theme/Heading/styles.css +5 -6
  266. package/src/theme/Heading/styles.module.css +9 -5
  267. package/src/theme/IconArrow/index.tsx +2 -2
  268. package/src/theme/IconClose/index.tsx +26 -0
  269. package/src/theme/IconEdit/index.tsx +2 -2
  270. package/src/theme/IconExternalLink/index.tsx +2 -5
  271. package/src/theme/IconLanguage/index.tsx +2 -6
  272. package/src/theme/IconMenu/index.tsx +3 -3
  273. package/src/theme/LastUpdated/index.tsx +3 -2
  274. package/src/theme/Layout/index.tsx +3 -1
  275. package/src/theme/LayoutHead/index.tsx +18 -17
  276. package/src/theme/LayoutProviders/index.tsx +9 -3
  277. package/src/theme/Logo/index.tsx +21 -17
  278. package/src/theme/MDXComponents/index.tsx +39 -5
  279. package/src/theme/MDXComponents/styles.css +11 -0
  280. package/src/theme/MDXPage/index.tsx +10 -2
  281. package/src/theme/Navbar/index.tsx +203 -61
  282. package/src/theme/Navbar/styles.module.css +10 -3
  283. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
  284. package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
  285. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
  286. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  287. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  288. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
  289. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  290. package/src/theme/NavbarItem/index.tsx +41 -16
  291. package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
  292. package/src/theme/Seo/index.tsx +7 -4
  293. package/src/theme/SkipToContent/index.tsx +3 -2
  294. package/src/theme/TOC/index.tsx +12 -41
  295. package/src/theme/TOC/styles.module.css +1 -1
  296. package/src/theme/TOCCollapsible/index.tsx +58 -0
  297. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  298. package/src/theme/TOCInline/index.tsx +13 -32
  299. package/src/theme/TOCItems/index.tsx +96 -0
  300. package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
  301. package/src/theme/Tabs/index.tsx +93 -49
  302. package/src/theme/Tabs/styles.module.css +0 -13
  303. package/src/theme/Tag/index.tsx +31 -0
  304. package/src/theme/Tag/styles.module.css +70 -0
  305. package/src/theme/TagsListByLetter/index.tsx +45 -0
  306. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  307. package/src/theme/TagsListInline/index.tsx +35 -0
  308. package/src/theme/TagsListInline/styles.module.css +15 -0
  309. package/src/theme/ThemeProvider/index.tsx +6 -2
  310. package/src/theme/ThemedImage/index.tsx +5 -5
  311. package/src/theme/Toggle/index.tsx +36 -43
  312. package/src/theme/Toggle/styles.module.css +91 -3
  313. package/src/theme/UserPreferencesProvider/index.tsx +9 -6
  314. package/src/theme/hooks/useHideableNavbar.ts +32 -45
  315. package/src/theme/hooks/useTabGroupChoice.ts +2 -2
  316. package/src/theme/hooks/useTheme.ts +4 -5
  317. package/src/theme/hooks/useWindowSize.ts +38 -20
  318. package/src/theme/prism-include-languages.ts +3 -2
  319. package/src/theme-classic.d.ts +806 -0
  320. package/src/translations.ts +8 -10
  321. package/src/types.d.ts +0 -587
  322. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +151 -94
  323. package/tsconfig.json +1 -2
  324. package/codeTranslations/README.md +0 -20
  325. package/codeTranslations/ar.json +0 -57
  326. package/codeTranslations/base.json +0 -112
  327. package/codeTranslations/bn.json +0 -56
  328. package/codeTranslations/da.json +0 -57
  329. package/codeTranslations/de.json +0 -57
  330. package/codeTranslations/es.json +0 -57
  331. package/codeTranslations/fa.json +0 -57
  332. package/codeTranslations/fil.json +0 -57
  333. package/codeTranslations/fr.json +0 -57
  334. package/codeTranslations/he.json +0 -57
  335. package/codeTranslations/hi.json +0 -57
  336. package/codeTranslations/ja.json +0 -57
  337. package/codeTranslations/ko.json +0 -57
  338. package/codeTranslations/pl.json +0 -57
  339. package/codeTranslations/pt-BR.json +0 -57
  340. package/codeTranslations/pt-PT.json +0 -57
  341. package/codeTranslations/ru.json +0 -57
  342. package/codeTranslations/tr.json +0 -57
  343. package/codeTranslations/vi.json +0 -57
  344. package/codeTranslations/zh-Hans.json +0 -57
  345. package/codeTranslations/zh-Hant.json +0 -57
  346. package/lib/theme/Toggle/styles.css +0 -103
  347. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  348. package/lib/theme/hooks/useScrollPosition.js +0 -49
  349. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  350. package/lib-next/theme/Toggle/styles.css +0 -103
  351. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  352. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  353. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  354. package/src/theme/Toggle/styles.css +0 -103
  355. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  356. package/src/theme/hooks/useScrollPosition.ts +0 -45
  357. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  358. package/update-code-translations.js +0 -240
  359. package/update-code-translations.test.js +0 -33
@@ -91,6 +91,10 @@ describe('themeConfig', () => {
91
91
  },
92
92
  copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc. Built with Docusaurus.`,
93
93
  },
94
+ tableOfContents: {
95
+ minHeadingLevel: 2,
96
+ maxHeadingLevel: 5,
97
+ },
94
98
  };
95
99
  expect(testValidateThemeConfig(userConfig)).toEqual({
96
100
  ...DEFAULT_CONFIG,
@@ -108,7 +112,6 @@ describe('themeConfig', () => {
108
112
  position: 'left',
109
113
  docId: 'intro',
110
114
  label: 'Introduction',
111
- activeSidebarClassName: 'custom-class',
112
115
  },
113
116
  // Regular link
114
117
  {
@@ -134,6 +137,23 @@ describe('themeConfig', () => {
134
137
  },
135
138
  ],
136
139
  },
140
+ // Dropdown with name
141
+ {
142
+ type: 'dropdown',
143
+ label: 'Tools',
144
+ position: 'left',
145
+ items: [
146
+ {
147
+ type: 'doc',
148
+ docId: 'npm',
149
+ label: 'NPM',
150
+ },
151
+ {
152
+ to: '/yarn',
153
+ label: 'Yarn',
154
+ },
155
+ ],
156
+ },
137
157
  // Doc version dropdown
138
158
  {
139
159
  type: 'docsVersionDropdown',
@@ -141,8 +161,7 @@ describe('themeConfig', () => {
141
161
  dropdownActiveClassDisabled: true,
142
162
  dropdownItemsBefore: [
143
163
  {
144
- href:
145
- 'https://www.npmjs.com/package/docusaurus?activeTab=versions',
164
+ href: 'https://www.npmjs.com/package/docusaurus?activeTab=versions',
146
165
  label: 'Versions on npm',
147
166
  className: 'npm-styled',
148
167
  target: '_self',
@@ -181,6 +200,112 @@ describe('themeConfig', () => {
181
200
  });
182
201
  });
183
202
 
203
+ test('should reject unknown navbar item type', () => {
204
+ const config = {
205
+ navbar: {
206
+ items: [
207
+ {
208
+ type: 'joke',
209
+ position: 'left',
210
+ label: 'haha',
211
+ },
212
+ ],
213
+ },
214
+ };
215
+ expect(() =>
216
+ testValidateThemeConfig(config),
217
+ ).toThrowErrorMatchingInlineSnapshot(`"Bad navbar item type joke"`);
218
+ });
219
+
220
+ test('should reject nested dropdowns', () => {
221
+ const config = {
222
+ navbar: {
223
+ items: [
224
+ {
225
+ position: 'left',
226
+ label: 'Nested',
227
+ items: [
228
+ {
229
+ label: 'Still a dropdown',
230
+ items: [
231
+ {
232
+ label: 'Should reject this',
233
+ to: '/rejected',
234
+ },
235
+ ],
236
+ },
237
+ ],
238
+ },
239
+ ],
240
+ },
241
+ };
242
+ expect(() =>
243
+ testValidateThemeConfig(config),
244
+ ).toThrowErrorMatchingInlineSnapshot(`"Nested dropdowns are not allowed"`);
245
+ });
246
+
247
+ test('should reject nested dropdowns', () => {
248
+ const config = {
249
+ navbar: {
250
+ items: [
251
+ {
252
+ position: 'left',
253
+ label: 'Nested',
254
+ items: [{type: 'docsVersionDropdown'}],
255
+ },
256
+ ],
257
+ },
258
+ };
259
+ expect(() =>
260
+ testValidateThemeConfig(config),
261
+ ).toThrowErrorMatchingInlineSnapshot(`"Nested dropdowns are not allowed"`);
262
+ });
263
+
264
+ test('should reject position attribute within dropdown', () => {
265
+ const config = {
266
+ navbar: {
267
+ items: [
268
+ {
269
+ position: 'left',
270
+ label: 'Dropdown',
271
+ items: [
272
+ {
273
+ label: 'Hi',
274
+ position: 'left',
275
+ to: '/link',
276
+ },
277
+ ],
278
+ },
279
+ ],
280
+ },
281
+ };
282
+ expect(() =>
283
+ testValidateThemeConfig(config),
284
+ ).toThrowErrorMatchingInlineSnapshot(
285
+ `"\\"navbar.items[0].items[0].position\\" is not allowed"`,
286
+ );
287
+ });
288
+
289
+ test('should give friendly error when href and to coexist', () => {
290
+ const config = {
291
+ navbar: {
292
+ items: [
293
+ {
294
+ position: 'left',
295
+ label: 'Nested',
296
+ to: '/link',
297
+ href: 'http://example.com/link',
298
+ },
299
+ ],
300
+ },
301
+ };
302
+ expect(() =>
303
+ testValidateThemeConfig(config),
304
+ ).toThrowErrorMatchingInlineSnapshot(
305
+ `"One and only one between \\"to\\" and \\"href\\" should be provided"`,
306
+ );
307
+ });
308
+
184
309
  test('should allow empty alt tags for the logo image in the header', () => {
185
310
  const altTagConfig = {
186
311
  navbar: {
@@ -220,6 +345,27 @@ describe('themeConfig', () => {
220
345
  });
221
346
  });
222
347
 
348
+ test('should allow width and height specification for logo ', () => {
349
+ const altTagConfig = {
350
+ navbar: {
351
+ logo: {
352
+ alt: '',
353
+ src: '/arbitrary-logo.png',
354
+ srcDark: '/arbitrary-dark-logo.png',
355
+ width: '20px',
356
+ height: '20%',
357
+ },
358
+ },
359
+ };
360
+ expect(testValidateThemeConfig(altTagConfig)).toEqual({
361
+ ...DEFAULT_CONFIG,
362
+ navbar: {
363
+ ...DEFAULT_CONFIG.navbar,
364
+ ...altTagConfig.navbar,
365
+ },
366
+ });
367
+ });
368
+
223
369
  test('should accept valid prism config', () => {
224
370
  const prismConfig = {
225
371
  prism: {
@@ -331,3 +477,131 @@ describe('themeConfig', () => {
331
477
  });
332
478
  });
333
479
  });
480
+
481
+ describe('themeConfig tableOfContents', () => {
482
+ test('toc undefined', () => {
483
+ const tableOfContents = undefined;
484
+ expect(testValidateThemeConfig({tableOfContents})).toEqual({
485
+ ...DEFAULT_CONFIG,
486
+ tableOfContents: {
487
+ minHeadingLevel: DEFAULT_CONFIG.tableOfContents.minHeadingLevel,
488
+ maxHeadingLevel: DEFAULT_CONFIG.tableOfContents.maxHeadingLevel,
489
+ },
490
+ });
491
+ });
492
+
493
+ test('toc empty', () => {
494
+ const tableOfContents = {};
495
+ expect(testValidateThemeConfig({tableOfContents})).toEqual({
496
+ ...DEFAULT_CONFIG,
497
+ tableOfContents: {
498
+ minHeadingLevel: DEFAULT_CONFIG.tableOfContents.minHeadingLevel,
499
+ maxHeadingLevel: DEFAULT_CONFIG.tableOfContents.maxHeadingLevel,
500
+ },
501
+ });
502
+ });
503
+
504
+ test('toc with min', () => {
505
+ const tableOfContents = {
506
+ minHeadingLevel: 3,
507
+ };
508
+ expect(testValidateThemeConfig({tableOfContents})).toEqual({
509
+ ...DEFAULT_CONFIG,
510
+ tableOfContents: {
511
+ minHeadingLevel: 3,
512
+ maxHeadingLevel: DEFAULT_CONFIG.tableOfContents.maxHeadingLevel,
513
+ },
514
+ });
515
+ });
516
+
517
+ test('toc with max', () => {
518
+ const tableOfContents = {
519
+ maxHeadingLevel: 5,
520
+ };
521
+ expect(testValidateThemeConfig({tableOfContents})).toEqual({
522
+ ...DEFAULT_CONFIG,
523
+ tableOfContents: {
524
+ minHeadingLevel: DEFAULT_CONFIG.tableOfContents.minHeadingLevel,
525
+ maxHeadingLevel: 5,
526
+ },
527
+ });
528
+ });
529
+
530
+ test('toc with min 2.5', () => {
531
+ const tableOfContents = {
532
+ minHeadingLevel: 2.5,
533
+ };
534
+ expect(() =>
535
+ testValidateThemeConfig({tableOfContents}),
536
+ ).toThrowErrorMatchingInlineSnapshot(
537
+ `"\\"tableOfContents.minHeadingLevel\\" must be an integer"`,
538
+ );
539
+ });
540
+
541
+ test('toc with max 2.5', () => {
542
+ const tableOfContents = {
543
+ maxHeadingLevel: 2.5,
544
+ };
545
+ expect(() =>
546
+ testValidateThemeConfig({tableOfContents}),
547
+ ).toThrowErrorMatchingInlineSnapshot(
548
+ `"\\"tableOfContents.maxHeadingLevel\\" must be an integer"`,
549
+ );
550
+ });
551
+
552
+ test('toc with min 1', () => {
553
+ const tableOfContents = {
554
+ minHeadingLevel: 1,
555
+ };
556
+ expect(() =>
557
+ testValidateThemeConfig({tableOfContents}),
558
+ ).toThrowErrorMatchingInlineSnapshot(
559
+ `"\\"tableOfContents.minHeadingLevel\\" must be greater than or equal to 2"`,
560
+ );
561
+ });
562
+
563
+ test('toc with min 7', () => {
564
+ const tableOfContents = {
565
+ minHeadingLevel: 7,
566
+ };
567
+ expect(() =>
568
+ testValidateThemeConfig({tableOfContents}),
569
+ ).toThrowErrorMatchingInlineSnapshot(
570
+ `"\\"tableOfContents.minHeadingLevel\\" must be less than or equal to ref:maxHeadingLevel"`,
571
+ );
572
+ });
573
+
574
+ test('toc with max 1', () => {
575
+ const tableOfContents = {
576
+ maxHeadingLevel: 1,
577
+ };
578
+ expect(() =>
579
+ testValidateThemeConfig({tableOfContents}),
580
+ ).toThrowErrorMatchingInlineSnapshot(
581
+ `"\\"tableOfContents.maxHeadingLevel\\" must be greater than or equal to 2"`,
582
+ );
583
+ });
584
+
585
+ test('toc with max 7', () => {
586
+ const tableOfContents = {
587
+ maxHeadingLevel: 7,
588
+ };
589
+ expect(() =>
590
+ testValidateThemeConfig({tableOfContents}),
591
+ ).toThrowErrorMatchingInlineSnapshot(
592
+ `"\\"tableOfContents.maxHeadingLevel\\" must be less than or equal to 6"`,
593
+ );
594
+ });
595
+
596
+ test('toc with bad min 5 + max 3', () => {
597
+ const tableOfContents = {
598
+ minHeadingLevel: 5,
599
+ maxHeadingLevel: 3,
600
+ };
601
+ expect(() =>
602
+ testValidateThemeConfig({tableOfContents}),
603
+ ).toThrowErrorMatchingInlineSnapshot(
604
+ `"\\"tableOfContents.minHeadingLevel\\" must be less than or equal to ref:maxHeadingLevel"`,
605
+ );
606
+ });
607
+ });
@@ -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
+ .admonition h5 {
9
+ margin-top: 0;
10
+ margin-bottom: 8px;
11
+ text-transform: uppercase;
12
+ }
13
+
14
+ .admonition-icon {
15
+ display: inline-block;
16
+ vertical-align: middle;
17
+ margin-right: 0.4em;
18
+ }
19
+
20
+ .admonition-icon svg {
21
+ display: inline-block;
22
+ width: 22px;
23
+ height: 22px;
24
+ stroke-width: 0;
25
+ fill: var(--ifm-alert-foreground-color);
26
+ stroke: var(--ifm-alert-foreground-color);
27
+ }
28
+
29
+ .admonition-content > :last-child {
30
+ margin-bottom: 0;
31
+ }
32
+
33
+ .admonition {
34
+ margin-bottom: 1em;
35
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ declare module 'prism-react-renderer/prism' {
9
+ import type * as PrismNamespace from 'prismjs';
10
+
11
+ const Prism: typeof PrismNamespace;
12
+ export default Prism;
13
+ }
package/lib-next/index.js CHANGED
@@ -6,10 +6,9 @@
6
6
  */
7
7
  import {getTranslationFiles, translateThemeConfig} from './translations';
8
8
  import path from 'path';
9
- import Module from 'module';
9
+ import {createRequire} from 'module';
10
10
  import rtlcss from 'rtlcss';
11
- import {readDefaultCodeTranslationMessages} from '@docusaurus/utils';
12
- const createRequire = Module.createRequire || Module.createRequireFromPath;
11
+ import {readDefaultCodeTranslationMessages} from '@docusaurus/theme-translations';
13
12
  const requireFromDocusaurusCore = createRequire(
14
13
  require.resolve('@docusaurus/core/package.json'),
15
14
  );
@@ -20,8 +19,10 @@ const ContextReplacementPlugin = requireFromDocusaurusCore(
20
19
 
21
20
  const ThemeStorageKey = 'theme';
22
21
 
23
- const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
24
- return `(function() {
22
+ const noFlashColorMode = ({
23
+ defaultMode,
24
+ respectPrefersColorScheme,
25
+ }) => `(function() {
25
26
  var defaultMode = '${defaultMode}';
26
27
  var respectPrefersColorScheme = ${respectPrefersColorScheme};
27
28
 
@@ -55,8 +56,7 @@ const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
55
56
  setDataThemeAttribute(defaultMode === 'dark' ? 'dark' : 'light');
56
57
  }
57
58
  }
58
- })();`;
59
- }; // Duplicated constant. Unfortunately we can't import it from theme-common, as we need to support older nodejs versions without ESM support
59
+ })();`; // Duplicated constant. Unfortunately we can't import it from theme-common, as we need to support older nodejs versions without ESM support
60
60
  // TODO: import from theme-common once we only support Node.js with ESM support
61
61
  // + move all those announcementBar stuff there too
62
62
 
@@ -123,11 +123,16 @@ export default function docusaurusThemeClassic(
123
123
  getTranslationFiles({
124
124
  themeConfig,
125
125
  }),
126
- translateThemeConfig,
127
- getDefaultCodeTranslationMessages: () => {
126
+ translateThemeConfig: (params) =>
127
+ translateThemeConfig({
128
+ themeConfig: params.themeConfig,
129
+ translationFiles: params.translationFiles,
130
+ }),
131
+
132
+ getDefaultCodeTranslationMessages() {
128
133
  return readDefaultCodeTranslationMessages({
129
- dirPath: path.resolve(__dirname, '..', 'codeTranslations'),
130
134
  locale: currentLocale,
135
+ name: 'theme-common',
131
136
  });
132
137
  },
133
138
 
@@ -135,6 +140,7 @@ export default function docusaurusThemeClassic(
135
140
  const modules = [
136
141
  require.resolve(getInfimaCSSFile(direction)),
137
142
  path.resolve(__dirname, './prism-include-languages'),
143
+ path.resolve(__dirname, './admonitions.css'),
138
144
  ];
139
145
 
140
146
  if (customCss) {
@@ -4,8 +4,6 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
-
8
7
  import Prism from 'prism-react-renderer/prism';
9
8
  import prismIncludeLanguages from '@theme/prism-include-languages';
10
-
11
9
  prismIncludeLanguages(Prism);
@@ -8,22 +8,18 @@ import React from 'react';
8
8
  import clsx from 'clsx';
9
9
  import {useThemeConfig, useAnnouncementBar} from '@docusaurus/theme-common';
10
10
  import {translate} from '@docusaurus/Translate';
11
+ import IconClose from '@theme/IconClose';
11
12
  import styles from './styles.module.css';
12
13
 
13
14
  function AnnouncementBar() {
14
- const {isClosed, close} = useAnnouncementBar();
15
+ const {isActive, close} = useAnnouncementBar();
15
16
  const {announcementBar} = useThemeConfig();
16
17
 
17
- if (!announcementBar) {
18
+ if (!isActive) {
18
19
  return null;
19
20
  }
20
21
 
21
22
  const {content, backgroundColor, textColor, isCloseable} = announcementBar;
22
-
23
- if (!content || (isCloseable && isClosed)) {
24
- return null;
25
- }
26
-
27
23
  return (
28
24
  <div
29
25
  className={styles.announcementBar}
@@ -32,10 +28,9 @@ function AnnouncementBar() {
32
28
  color: textColor,
33
29
  }}
34
30
  role="banner">
31
+ {isCloseable && <div className={styles.announcementBarPlaceholder} />}
35
32
  <div
36
- className={clsx(styles.announcementBarContent, {
37
- [styles.announcementBarCloseable]: isCloseable,
38
- })} // Developer provided the HTML, so assume it's safe.
33
+ className={styles.announcementBarContent} // Developer provided the HTML, so assume it's safe.
39
34
  // eslint-disable-next-line react/no-danger
40
35
  dangerouslySetInnerHTML={{
41
36
  __html: content,
@@ -44,14 +39,14 @@ function AnnouncementBar() {
44
39
  {isCloseable ? (
45
40
  <button
46
41
  type="button"
47
- className={clsx(styles.announcementBarClose, 'clean-btn')}
42
+ className={clsx('clean-btn close', styles.announcementBarClose)}
48
43
  onClick={close}
49
44
  aria-label={translate({
50
45
  id: 'theme.AnnouncementBar.closeButtonAriaLabel',
51
46
  message: 'Close',
52
47
  description: 'The ARIA label for close button of announcement bar',
53
48
  })}>
54
- <span aria-hidden="true">×</span>
49
+ <IconClose width={14} height={14} strokeWidth={3.1} />
55
50
  </button>
56
51
  ) : null}
57
52
  </div>
@@ -10,8 +10,8 @@
10
10
  }
11
11
 
12
12
  .announcementBar {
13
- position: relative;
14
- width: 100%;
13
+ display: flex;
14
+ align-items: center;
15
15
  height: var(--docusaurus-announcement-bar-height);
16
16
  background-color: var(--ifm-color-white);
17
17
  color: var(--ifm-color-black);
@@ -22,47 +22,27 @@ html[data-announcement-bar-initially-dismissed='true'] .announcementBar {
22
22
  display: none;
23
23
  }
24
24
 
25
- @media print {
26
- .announcementBar {
27
- display: none;
28
- }
29
- }
30
-
31
- @media screen and (min-width: 1024px) {
32
- :root {
33
- --docusaurus-announcement-bar-height: 30px;
34
- }
25
+ .announcementBarPlaceholder {
26
+ flex: 0 0 10px;
35
27
  }
36
28
 
37
29
  .announcementBarClose {
38
- position: absolute;
39
- right: 0;
40
- top: 0;
41
- width: 55px;
42
- font-size: 1.25rem;
43
- height: 100%;
30
+ flex: 0 0 30px;
31
+ align-self: stretch;
32
+ padding: 0;
33
+ line-height: 0;
44
34
  }
45
35
 
46
36
  .announcementBarContent {
37
+ flex: 1 1 auto;
47
38
  font-size: 85%;
48
- width: 100%;
49
39
  text-align: center;
50
40
  padding: 5px 0;
51
41
  }
52
42
 
53
- .announcementBarCloseable {
54
- margin-right: 55px;
55
- }
56
-
57
- @media screen and (max-width: 576px) {
58
- .announcementBarClose {
59
- width: 35px;
60
- }
61
- .announcementBarContent {
62
- width: auto;
63
- }
64
- .announcementBarCloseable {
65
- margin-right: 35px;
43
+ @media print {
44
+ .announcementBar {
45
+ display: none;
66
46
  }
67
47
  }
68
48
 
@@ -70,3 +50,14 @@ html[data-announcement-bar-initially-dismissed='true'] .announcementBar {
70
50
  color: inherit;
71
51
  text-decoration: underline;
72
52
  }
53
+
54
+ @media (min-width: 997px) {
55
+ :root {
56
+ --docusaurus-announcement-bar-height: 30px;
57
+ }
58
+
59
+ .announcementBarPlaceholder,
60
+ .announcementBarClose {
61
+ flex-basis: 50px;
62
+ }
63
+ }