@docusaurus/theme-classic 2.0.0-beta.138b4c997 → 2.0.0-beta.14

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 (349) hide show
  1. package/README.md +1 -1
  2. package/lib/admonitions.css +35 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/index.js +16 -15
  5. package/lib/prism-include-languages.js +9 -5
  6. package/{lib-next/types.d.ts → lib/theme-classic.d.ts} +374 -150
  7. package/lib/translations.js +16 -7
  8. package/lib/types.d.ts +0 -587
  9. package/lib/validateThemeConfig.js +232 -246
  10. package/lib-next/theme/Admonition/index.js +101 -0
  11. package/lib-next/theme/AnnouncementBar/index.js +7 -12
  12. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  13. package/lib-next/theme/BackToTopButton/index.js +131 -0
  14. package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
  15. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  16. package/lib-next/theme/BlogLayout/index.js +40 -0
  17. package/lib-next/theme/BlogListPage/index.js +17 -25
  18. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  19. package/{lib/theme/MDXPage → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -2
  20. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  21. package/{lib/theme/IconExternalLink → lib-next/theme/BlogPostAuthors}/styles.module.css +3 -4
  22. package/lib-next/theme/BlogPostItem/index.js +79 -86
  23. package/lib-next/theme/BlogPostPage/index.js +70 -35
  24. package/lib-next/theme/BlogSidebar/index.js +11 -13
  25. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  26. package/lib-next/theme/BlogTagsListPage/index.js +14 -55
  27. package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
  28. package/lib-next/theme/CodeBlock/index.js +23 -149
  29. package/lib-next/theme/CodeBlock/styles.module.css +12 -9
  30. package/lib-next/theme/Details/index.js +20 -0
  31. package/lib-next/theme/Details/styles.module.css +13 -0
  32. package/lib-next/theme/DocCard/index.js +80 -0
  33. package/lib-next/theme/DocCard/styles.module.css +43 -0
  34. package/lib-next/theme/DocCardList/index.js +19 -0
  35. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
  36. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  37. package/lib-next/theme/DocItem/index.js +40 -51
  38. package/lib-next/theme/DocItem/styles.module.css +5 -9
  39. package/lib-next/theme/DocItemFooter/index.js +79 -0
  40. package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
  41. package/lib-next/theme/DocPage/index.js +46 -49
  42. package/lib-next/theme/DocPage/styles.module.css +5 -6
  43. package/lib-next/theme/DocPaginator/index.js +5 -33
  44. package/lib-next/theme/DocPaginatorNavLink/index.js +36 -0
  45. package/lib-next/theme/DocSidebar/index.js +65 -285
  46. package/lib-next/theme/DocSidebar/styles.module.css +0 -18
  47. package/lib-next/theme/DocSidebarItem/index.js +217 -0
  48. package/{lib/theme/ThemedImage → lib-next/theme/DocSidebarItem}/styles.module.css +10 -9
  49. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  50. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  51. package/lib-next/theme/DocVersionBadge/index.js +27 -0
  52. package/lib-next/theme/DocVersionBanner/index.js +28 -14
  53. package/lib-next/theme/EditThisPage/index.js +6 -1
  54. package/lib-next/theme/ErrorPageContent.js +35 -0
  55. package/lib-next/theme/Footer/index.js +100 -40
  56. package/lib-next/theme/Heading/index.js +24 -29
  57. package/lib-next/theme/Heading/styles.css +5 -6
  58. package/lib-next/theme/Heading/styles.module.css +9 -5
  59. package/lib-next/theme/IconArrow/index.js +2 -2
  60. package/lib-next/theme/IconClose/index.js +23 -0
  61. package/lib-next/theme/IconEdit/index.js +2 -2
  62. package/lib-next/theme/IconExternalLink/index.js +2 -2
  63. package/lib-next/theme/IconLanguage/index.js +2 -2
  64. package/lib-next/theme/IconMenu/index.js +2 -2
  65. package/lib-next/theme/LastUpdated/index.js +3 -2
  66. package/lib-next/theme/Layout/index.js +3 -1
  67. package/lib-next/theme/LayoutHead/index.js +18 -23
  68. package/lib-next/theme/LayoutProviders/index.js +9 -3
  69. package/lib-next/theme/Logo/index.js +25 -21
  70. package/lib-next/theme/MDXComponents/index.js +34 -7
  71. package/{lib/theme/hooks → lib-next/theme/MDXComponents}/styles.css +3 -2
  72. package/lib-next/theme/MDXPage/index.js +10 -2
  73. package/lib-next/theme/Navbar/index.js +193 -56
  74. package/lib-next/theme/Navbar/styles.module.css +10 -3
  75. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
  76. package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
  77. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
  78. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +158 -0
  79. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
  80. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  81. package/lib-next/theme/NavbarItem/index.js +25 -12
  82. package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
  83. package/lib-next/theme/Seo/index.js +11 -7
  84. package/lib-next/theme/SkipToContent/index.js +5 -2
  85. package/lib-next/theme/TOC/index.js +12 -36
  86. package/lib-next/theme/TOC/styles.module.css +1 -1
  87. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  88. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  89. package/lib-next/theme/TOCInline/index.js +10 -28
  90. package/lib-next/theme/TOCItems/index.js +85 -0
  91. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  92. package/lib-next/theme/Tabs/index.js +103 -48
  93. package/lib-next/theme/Tabs/styles.module.css +0 -13
  94. package/lib-next/theme/Tag/index.js +27 -0
  95. package/lib-next/theme/Tag/styles.module.css +70 -0
  96. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  97. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  98. package/lib-next/theme/TagsListInline/index.js +31 -0
  99. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  100. package/lib-next/theme/ThemeProvider/index.js +10 -7
  101. package/lib-next/theme/ThemedImage/index.js +5 -5
  102. package/lib-next/theme/Toggle/index.js +34 -37
  103. package/lib-next/theme/Toggle/styles.module.css +91 -3
  104. package/lib-next/theme/UserPreferencesProvider/index.js +9 -6
  105. package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
  106. package/lib-next/theme/hooks/useTheme.js +4 -5
  107. package/lib-next/theme/hooks/useWindowSize.js +34 -20
  108. package/lib-next/theme/prism-include-languages.js +2 -1
  109. package/package.json +27 -25
  110. package/src/admonitions.css +35 -0
  111. package/src/deps.d.ts +13 -0
  112. package/src/index.ts +23 -20
  113. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  114. package/src/theme/Admonition/index.tsx +106 -0
  115. package/src/theme/AnnouncementBar/index.tsx +8 -12
  116. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  117. package/src/theme/BackToTopButton/index.tsx +142 -0
  118. package/src/theme/BackToTopButton/styles.module.css +42 -0
  119. package/src/theme/BlogArchivePage/index.tsx +91 -0
  120. package/src/theme/BlogLayout/index.tsx +44 -0
  121. package/src/theme/BlogListPage/index.tsx +18 -25
  122. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  123. package/{lib/theme/IconEdit → src/theme/BlogPostAuthor}/styles.module.css +4 -3
  124. package/src/theme/BlogPostAuthors/index.tsx +39 -0
  125. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  126. package/src/theme/BlogPostItem/index.tsx +70 -80
  127. package/src/theme/BlogPostPage/index.tsx +72 -35
  128. package/src/theme/BlogSidebar/index.tsx +11 -13
  129. package/src/theme/BlogSidebar/styles.module.css +2 -2
  130. package/src/theme/BlogTagsListPage/index.tsx +14 -57
  131. package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
  132. package/src/theme/CodeBlock/index.tsx +27 -151
  133. package/src/theme/CodeBlock/styles.module.css +12 -9
  134. package/src/theme/Details/index.tsx +24 -0
  135. package/src/theme/Details/styles.module.css +13 -0
  136. package/src/theme/DocCard/index.tsx +100 -0
  137. package/src/theme/DocCard/styles.module.css +43 -0
  138. package/src/theme/DocCardList/index.tsx +27 -0
  139. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
  140. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  141. package/src/theme/DocItem/index.tsx +43 -51
  142. package/src/theme/DocItem/styles.module.css +5 -9
  143. package/src/theme/DocItemFooter/index.tsx +91 -0
  144. package/{lib/theme/BlogPostItem → src/theme/DocItemFooter}/styles.module.css +8 -8
  145. package/src/theme/DocPage/index.tsx +44 -42
  146. package/src/theme/DocPage/styles.module.css +5 -6
  147. package/src/theme/DocPaginator/index.tsx +5 -33
  148. package/src/theme/DocPaginatorNavLink/index.tsx +38 -0
  149. package/src/theme/DocSidebar/index.tsx +76 -297
  150. package/src/theme/DocSidebar/styles.module.css +0 -18
  151. package/src/theme/DocSidebarItem/index.tsx +242 -0
  152. package/{lib/theme/Footer → src/theme/DocSidebarItem}/styles.module.css +10 -6
  153. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  154. package/src/theme/DocTagsListPage/index.tsx +41 -0
  155. package/src/theme/DocVersionBadge/index.tsx +30 -0
  156. package/src/theme/DocVersionBanner/index.tsx +48 -21
  157. package/src/theme/EditThisPage/index.tsx +6 -1
  158. package/src/theme/ErrorPageContent.tsx +41 -0
  159. package/src/theme/Footer/index.tsx +113 -43
  160. package/src/theme/Heading/index.tsx +24 -31
  161. package/src/theme/Heading/styles.css +5 -6
  162. package/src/theme/Heading/styles.module.css +9 -5
  163. package/src/theme/IconArrow/index.tsx +2 -2
  164. package/src/theme/IconClose/index.tsx +26 -0
  165. package/src/theme/IconEdit/index.tsx +2 -2
  166. package/src/theme/IconExternalLink/index.tsx +2 -5
  167. package/src/theme/IconLanguage/index.tsx +2 -6
  168. package/src/theme/IconMenu/index.tsx +3 -3
  169. package/src/theme/LastUpdated/index.tsx +3 -2
  170. package/src/theme/Layout/index.tsx +3 -1
  171. package/src/theme/LayoutHead/index.tsx +18 -17
  172. package/src/theme/LayoutProviders/index.tsx +9 -3
  173. package/src/theme/Logo/index.tsx +21 -17
  174. package/src/theme/MDXComponents/index.tsx +39 -5
  175. package/src/theme/MDXComponents/styles.css +11 -0
  176. package/src/theme/MDXPage/index.tsx +10 -2
  177. package/src/theme/Navbar/index.tsx +203 -61
  178. package/src/theme/Navbar/styles.module.css +10 -3
  179. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
  180. package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
  181. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
  182. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  183. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +180 -0
  184. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
  185. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  186. package/src/theme/NavbarItem/index.tsx +41 -16
  187. package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
  188. package/src/theme/Seo/index.tsx +7 -4
  189. package/src/theme/SkipToContent/index.tsx +5 -2
  190. package/src/theme/TOC/index.tsx +12 -41
  191. package/src/theme/TOC/styles.module.css +1 -1
  192. package/src/theme/TOCCollapsible/index.tsx +58 -0
  193. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  194. package/src/theme/TOCInline/index.tsx +13 -32
  195. package/src/theme/TOCItems/index.tsx +96 -0
  196. package/src/theme/Tabs/index.tsx +110 -54
  197. package/src/theme/Tabs/styles.module.css +0 -13
  198. package/src/theme/Tag/index.tsx +31 -0
  199. package/src/theme/Tag/styles.module.css +70 -0
  200. package/src/theme/TagsListByLetter/index.tsx +45 -0
  201. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  202. package/src/theme/TagsListInline/index.tsx +35 -0
  203. package/src/theme/TagsListInline/styles.module.css +15 -0
  204. package/src/theme/ThemeProvider/index.tsx +6 -2
  205. package/src/theme/ThemedImage/index.tsx +5 -5
  206. package/src/theme/Toggle/index.tsx +36 -43
  207. package/src/theme/Toggle/styles.module.css +91 -3
  208. package/src/theme/UserPreferencesProvider/index.tsx +9 -6
  209. package/src/theme/hooks/useHideableNavbar.ts +32 -45
  210. package/src/theme/hooks/useTabGroupChoice.ts +2 -2
  211. package/src/theme/hooks/useTheme.ts +4 -5
  212. package/src/theme/hooks/useWindowSize.ts +38 -20
  213. package/src/theme/prism-include-languages.ts +3 -2
  214. package/src/theme-classic.d.ts +822 -0
  215. package/src/translations.ts +41 -23
  216. package/src/types.d.ts +0 -587
  217. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +160 -98
  218. package/babel.config.js +0 -35
  219. package/codeTranslations/README.md +0 -20
  220. package/codeTranslations/ar.json +0 -57
  221. package/codeTranslations/base.json +0 -112
  222. package/codeTranslations/bn.json +0 -56
  223. package/codeTranslations/da.json +0 -57
  224. package/codeTranslations/de.json +0 -57
  225. package/codeTranslations/es.json +0 -57
  226. package/codeTranslations/fa.json +0 -57
  227. package/codeTranslations/fil.json +0 -57
  228. package/codeTranslations/fr.json +0 -57
  229. package/codeTranslations/he.json +0 -57
  230. package/codeTranslations/hi.json +0 -57
  231. package/codeTranslations/ja.json +0 -57
  232. package/codeTranslations/ko.json +0 -57
  233. package/codeTranslations/pl.json +0 -57
  234. package/codeTranslations/pt-BR.json +0 -57
  235. package/codeTranslations/pt-PT.json +0 -57
  236. package/codeTranslations/ru.json +0 -57
  237. package/codeTranslations/tr.json +0 -57
  238. package/codeTranslations/vi.json +0 -57
  239. package/codeTranslations/zh-Hans.json +0 -57
  240. package/codeTranslations/zh-Hant.json +0 -57
  241. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  242. package/lib/__tests__/translations.test.js +0 -112
  243. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  244. package/lib/theme/AnnouncementBar/index.js +0 -72
  245. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  246. package/lib/theme/BlogListPage/index.js +0 -71
  247. package/lib/theme/BlogListPaginator/index.js +0 -63
  248. package/lib/theme/BlogPostItem/index.js +0 -161
  249. package/lib/theme/BlogPostPage/index.js +0 -69
  250. package/lib/theme/BlogPostPaginator/index.js +0 -64
  251. package/lib/theme/BlogSidebar/index.js +0 -51
  252. package/lib/theme/BlogSidebar/styles.module.css +0 -44
  253. package/lib/theme/BlogTagsListPage/index.js +0 -76
  254. package/lib/theme/BlogTagsPostsPage/index.js +0 -100
  255. package/lib/theme/CodeBlock/index.js +0 -253
  256. package/lib/theme/CodeBlock/styles.module.css +0 -68
  257. package/lib/theme/DocItem/index.js +0 -129
  258. package/lib/theme/DocPage/index.js +0 -173
  259. package/lib/theme/DocPage/styles.module.css +0 -86
  260. package/lib/theme/DocPaginator/index.js +0 -63
  261. package/lib/theme/DocSidebar/index.js +0 -306
  262. package/lib/theme/DocSidebar/styles.module.css +0 -124
  263. package/lib/theme/DocVersionBanner/index.js +0 -128
  264. package/lib/theme/EditThisPage/index.js +0 -31
  265. package/lib/theme/Footer/index.js +0 -108
  266. package/lib/theme/Heading/index.js +0 -76
  267. package/lib/theme/Heading/styles.css +0 -23
  268. package/lib/theme/Heading/styles.module.css +0 -15
  269. package/lib/theme/IconArrow/index.js +0 -28
  270. package/lib/theme/IconEdit/index.js +0 -34
  271. package/lib/theme/IconExternalLink/index.js +0 -30
  272. package/lib/theme/IconLanguage/index.js +0 -29
  273. package/lib/theme/IconMenu/index.js +0 -30
  274. package/lib/theme/LastUpdated/index.js +0 -61
  275. package/lib/theme/Layout/index.js +0 -64
  276. package/lib/theme/Layout/styles.css +0 -27
  277. package/lib/theme/LayoutHead/index.js +0 -144
  278. package/lib/theme/LayoutProviders/index.js +0 -36
  279. package/lib/theme/Logo/index.js +0 -60
  280. package/lib/theme/MDXComponents/index.js +0 -65
  281. package/lib/theme/MDXPage/index.js +0 -66
  282. package/lib/theme/Navbar/index.js +0 -147
  283. package/lib/theme/Navbar/styles.module.css +0 -20
  284. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
  285. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
  286. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
  287. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  288. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  289. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  290. package/lib/theme/NavbarItem/index.js +0 -54
  291. package/lib/theme/NotFound.js +0 -57
  292. package/lib/theme/SearchBar.js +0 -15
  293. package/lib/theme/SearchMetadatas/index.js +0 -33
  294. package/lib/theme/Seo/index.js +0 -49
  295. package/lib/theme/SkipToContent/index.js +0 -63
  296. package/lib/theme/SkipToContent/styles.module.css +0 -14
  297. package/lib/theme/TOC/index.js +0 -59
  298. package/lib/theme/TOC/styles.module.css +0 -23
  299. package/lib/theme/TOCInline/index.js +0 -53
  300. package/lib/theme/TOCInline/styles.module.css +0 -12
  301. package/lib/theme/TabItem/index.js +0 -32
  302. package/lib/theme/Tabs/index.js +0 -150
  303. package/lib/theme/Tabs/styles.module.css +0 -23
  304. package/lib/theme/ThemeContext.js +0 -21
  305. package/lib/theme/ThemeProvider/index.js +0 -38
  306. package/lib/theme/ThemedImage/index.js +0 -49
  307. package/lib/theme/Toggle/index.js +0 -94
  308. package/lib/theme/Toggle/styles.css +0 -103
  309. package/lib/theme/Toggle/styles.module.css +0 -17
  310. package/lib/theme/UserPreferencesContext.js +0 -18
  311. package/lib/theme/UserPreferencesProvider/index.js +0 -36
  312. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  313. package/lib/theme/hooks/useDocs.js +0 -18
  314. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  315. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  316. package/lib/theme/hooks/useLocationHash.js +0 -28
  317. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  318. package/lib/theme/hooks/usePrismTheme.js +0 -36
  319. package/lib/theme/hooks/useScrollPosition.js +0 -49
  320. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  321. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  322. package/lib/theme/hooks/useTheme.js +0 -99
  323. package/lib/theme/hooks/useThemeContext.js +0 -31
  324. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  325. package/lib/theme/hooks/useWindowSize.js +0 -55
  326. package/lib/theme/prism-include-languages.js +0 -39
  327. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  328. package/lib-next/__tests__/translations.test.js +0 -128
  329. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  330. package/lib-next/index.js +0 -221
  331. package/lib-next/theme/Toggle/styles.css +0 -103
  332. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  333. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  334. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  335. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  336. package/lib-next/translations.js +0 -145
  337. package/lib-next/validateThemeConfig.js +0 -317
  338. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  339. package/src/__tests__/translations.test.ts +0 -116
  340. package/src/__tests__/validateThemeConfig.test.js +0 -333
  341. package/src/prism-include-languages.js +0 -11
  342. package/src/theme/Toggle/styles.css +0 -103
  343. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  344. package/src/theme/hooks/useLocationHash.ts +0 -25
  345. package/src/theme/hooks/useScrollPosition.ts +0 -45
  346. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  347. package/tsconfig.json +0 -12
  348. package/update-code-translations.js +0 -240
  349. package/update-code-translations.test.js +0 -33
@@ -0,0 +1,89 @@
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
+ import React from 'react';
8
+ import Layout from '@theme/Layout';
9
+ import Link from '@docusaurus/Link';
10
+ import {ThemeClassNames, usePluralForm} from '@docusaurus/theme-common';
11
+ import Translate, {translate} from '@docusaurus/Translate';
12
+
13
+ // Very simple pluralization: probably good enough for now
14
+ function useNDocsTaggedPlural() {
15
+ const {selectMessage} = usePluralForm();
16
+ return (count) =>
17
+ selectMessage(
18
+ count,
19
+ translate(
20
+ {
21
+ id: 'theme.docs.tagDocListPageTitle.nDocsTagged',
22
+ description:
23
+ 'Pluralized label for "{count} docs tagged". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',
24
+ message: 'One doc tagged|{count} docs tagged',
25
+ },
26
+ {
27
+ count,
28
+ },
29
+ ),
30
+ );
31
+ }
32
+
33
+ function DocItem({doc}) {
34
+ return (
35
+ <article className="margin-vert--lg">
36
+ <Link to={doc.permalink}>
37
+ <h2>{doc.title}</h2>
38
+ </Link>
39
+ {doc.description && <p>{doc.description}</p>}
40
+ </article>
41
+ );
42
+ }
43
+
44
+ export default function DocTagDocListPage({tag}) {
45
+ const nDocsTaggedPlural = useNDocsTaggedPlural();
46
+ const title = translate(
47
+ {
48
+ id: 'theme.docs.tagDocListPageTitle',
49
+ description: 'The title of the page for a docs tag',
50
+ message: '{nDocsTagged} with "{tagName}"',
51
+ },
52
+ {
53
+ nDocsTagged: nDocsTaggedPlural(tag.docs.length),
54
+ tagName: tag.name,
55
+ },
56
+ );
57
+ return (
58
+ <Layout
59
+ title={title}
60
+ wrapperClassName={ThemeClassNames.wrapper.docsPages}
61
+ pageClassName={ThemeClassNames.page.docsTagDocListPage}
62
+ searchMetadata={{
63
+ // assign unique search tag to exclude this page from search results!
64
+ tag: 'doc_tag_doc_list',
65
+ }}>
66
+ <div className="container margin-vert--lg">
67
+ <div className="row">
68
+ <main className="col col--8 col--offset-2">
69
+ <header className="margin-bottom--xl">
70
+ <h1>{title}</h1>
71
+ <Link href={tag.allTagsPath}>
72
+ <Translate
73
+ id="theme.tags.tagsPageLink"
74
+ description="The label of the link targeting the tag list page">
75
+ View All Tags
76
+ </Translate>
77
+ </Link>
78
+ </header>
79
+ <section className="margin-vert--lg">
80
+ {tag.docs.map((doc) => (
81
+ <DocItem key={doc.id} doc={doc} />
82
+ ))}
83
+ </section>
84
+ </main>
85
+ </div>
86
+ </div>
87
+ </Layout>
88
+ );
89
+ }
@@ -0,0 +1,38 @@
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
+ import React from 'react';
8
+ import Layout from '@theme/Layout';
9
+ import {
10
+ ThemeClassNames,
11
+ translateTagsPageTitle,
12
+ } from '@docusaurus/theme-common';
13
+ import TagsListByLetter from '@theme/TagsListByLetter';
14
+
15
+ function DocTagsListPage({tags}) {
16
+ const title = translateTagsPageTitle();
17
+ return (
18
+ <Layout
19
+ title={title}
20
+ wrapperClassName={ThemeClassNames.wrapper.docsPages}
21
+ pageClassName={ThemeClassNames.page.docsTagsListPage}
22
+ searchMetadata={{
23
+ // assign unique search tag to exclude this page from search results!
24
+ tag: 'doc_tags_list',
25
+ }}>
26
+ <div className="container margin-vert--lg">
27
+ <div className="row">
28
+ <main className="col col--8 col--offset-2">
29
+ <h1>{title}</h1>
30
+ <TagsListByLetter tags={tags} />
31
+ </main>
32
+ </div>
33
+ </div>
34
+ </Layout>
35
+ );
36
+ }
37
+
38
+ export default DocTagsListPage;
@@ -0,0 +1,27 @@
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
+ import React from 'react';
8
+ import {ThemeClassNames, useDocsVersion} from '@docusaurus/theme-common';
9
+ import clsx from 'clsx';
10
+ export default function DocVersionBadge({className}) {
11
+ const versionMetadata = useDocsVersion();
12
+
13
+ if (versionMetadata.badge) {
14
+ return (
15
+ <span
16
+ className={clsx(
17
+ className,
18
+ ThemeClassNames.docs.docVersionBadge,
19
+ 'badge badge--secondary',
20
+ )}>
21
+ Version: {versionMetadata.label}
22
+ </span>
23
+ );
24
+ }
25
+
26
+ return null;
27
+ }
@@ -9,7 +9,12 @@ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
9
9
  import Link from '@docusaurus/Link';
10
10
  import Translate from '@docusaurus/Translate';
11
11
  import {useActivePlugin, useDocVersionSuggestions} from '@theme/hooks/useDocs';
12
- import {useDocsPreferredVersion} from '@docusaurus/theme-common';
12
+ import {
13
+ ThemeClassNames,
14
+ useDocsPreferredVersion,
15
+ useDocsVersion,
16
+ } from '@docusaurus/theme-common';
17
+ import clsx from 'clsx';
13
18
 
14
19
  function UnreleasedVersionLabel({siteTitle, versionMetadata}) {
15
20
  return (
@@ -80,7 +85,7 @@ function LatestVersionSuggestionLabel({versionLabel, to, onClick}) {
80
85
  );
81
86
  }
82
87
 
83
- function DocVersionBannerEnabled({versionMetadata}) {
88
+ function DocVersionBannerEnabled({className, versionMetadata}) {
84
89
  const {
85
90
  siteConfig: {title: siteTitle},
86
91
  } = useDocusaurusContext();
@@ -92,16 +97,20 @@ function DocVersionBannerEnabled({versionMetadata}) {
92
97
  version.docs.find((doc) => doc.id === version.mainDocId);
93
98
 
94
99
  const {savePreferredVersionName} = useDocsPreferredVersion(pluginId);
95
- const {
96
- latestDocSuggestion,
97
- latestVersionSuggestion,
98
- } = useDocVersionSuggestions(pluginId); // try to link to same doc in latest version (not always possible)
100
+ const {latestDocSuggestion, latestVersionSuggestion} =
101
+ useDocVersionSuggestions(pluginId); // try to link to same doc in latest version (not always possible)
99
102
  // fallback to main doc of latest version
100
103
 
101
104
  const latestVersionSuggestedDoc =
102
105
  latestDocSuggestion ?? getVersionMainDoc(latestVersionSuggestion);
103
106
  return (
104
- <div className="alert alert--warning margin-bottom--md" role="alert">
107
+ <div
108
+ className={clsx(
109
+ className,
110
+ ThemeClassNames.docs.docVersionBanner,
111
+ 'alert alert--warning margin-bottom--md',
112
+ )}
113
+ role="alert">
105
114
  <div>
106
115
  <BannerLabel siteTitle={siteTitle} versionMetadata={versionMetadata} />
107
116
  </div>
@@ -116,12 +125,17 @@ function DocVersionBannerEnabled({versionMetadata}) {
116
125
  );
117
126
  }
118
127
 
119
- function DocVersionBanner({versionMetadata}) {
120
- if (versionMetadata.banner === 'none') {
121
- return <></>;
122
- } else {
123
- return <DocVersionBannerEnabled versionMetadata={versionMetadata} />;
128
+ export default function DocVersionBanner({className}) {
129
+ const versionMetadata = useDocsVersion();
130
+
131
+ if (versionMetadata.banner) {
132
+ return (
133
+ <DocVersionBannerEnabled
134
+ className={className}
135
+ versionMetadata={versionMetadata}
136
+ />
137
+ );
124
138
  }
125
- }
126
139
 
127
- export default DocVersionBanner;
140
+ return null;
141
+ }
@@ -7,9 +7,14 @@
7
7
  import React from 'react';
8
8
  import Translate from '@docusaurus/Translate';
9
9
  import IconEdit from '@theme/IconEdit';
10
+ import {ThemeClassNames} from '@docusaurus/theme-common';
10
11
  export default function EditThisPage({editUrl}) {
11
12
  return (
12
- <a href={editUrl} target="_blank" rel="noreferrer noopener">
13
+ <a
14
+ href={editUrl}
15
+ target="_blank"
16
+ rel="noreferrer noopener"
17
+ className={ThemeClassNames.common.editThisPage}>
13
18
  <IconEdit />
14
19
  <Translate
15
20
  id="theme.common.editThisPage"
@@ -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
+ import React from 'react';
8
+ import Translate from '@docusaurus/Translate';
9
+ export default function ErrorPageContent({error, tryAgain}) {
10
+ return (
11
+ <main className="container margin-vert--xl">
12
+ <div className="row">
13
+ <div className="col col--6 col--offset-3">
14
+ <h1 className="hero__title">
15
+ <Translate
16
+ id="theme.ErrorPageContent.title"
17
+ description="The title of the fallback page when the page crashed">
18
+ This page crashed.
19
+ </Translate>
20
+ </h1>
21
+ <p>{error.message}</p>
22
+ <div>
23
+ <button type="button" onClick={tryAgain}>
24
+ <Translate
25
+ id="theme.ErrorPageContent.tryAgain"
26
+ description="The label of the button to try again when the page crashed">
27
+ Try again
28
+ </Translate>
29
+ </button>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </main>
34
+ );
35
+ }
@@ -9,8 +9,10 @@ import clsx from 'clsx';
9
9
  import Link from '@docusaurus/Link';
10
10
  import {useThemeConfig} from '@docusaurus/theme-common';
11
11
  import useBaseUrl from '@docusaurus/useBaseUrl';
12
+ import isInternalUrl from '@docusaurus/isInternalUrl';
12
13
  import styles from './styles.module.css';
13
14
  import ThemedImage from '@theme/ThemedImage';
15
+ import IconExternalLink from '@theme/IconExternalLink';
14
16
 
15
17
  function FooterLink({to, href, label, prependBaseUrlToHref, ...props}) {
16
18
  const toUrl = useBaseUrl(to);
@@ -28,14 +30,89 @@ function FooterLink({to, href, label, prependBaseUrlToHref, ...props}) {
28
30
  to: toUrl,
29
31
  })}
30
32
  {...props}>
31
- {label}
33
+ {href && !isInternalUrl(href) ? (
34
+ <span>
35
+ {label}
36
+ <IconExternalLink />
37
+ </span>
38
+ ) : (
39
+ label
40
+ )}
32
41
  </Link>
33
42
  );
34
43
  }
35
44
 
36
- const FooterLogo = ({sources, alt}) => (
37
- <ThemedImage className="footer__logo" alt={alt} sources={sources} />
38
- );
45
+ function FooterLogo({sources, alt, width, height}) {
46
+ return (
47
+ <ThemedImage
48
+ className="footer__logo"
49
+ alt={alt}
50
+ sources={sources}
51
+ width={width}
52
+ height={height}
53
+ />
54
+ );
55
+ }
56
+
57
+ function MultiColumnLinks({links}) {
58
+ return (
59
+ <>
60
+ {links.map((linkItem, i) => (
61
+ <div key={i} className="col footer__col">
62
+ <div className="footer__title">{linkItem.title}</div>
63
+ <ul className="footer__items">
64
+ {linkItem.items.map((item, key) =>
65
+ item.html ? (
66
+ <li
67
+ key={key}
68
+ className="footer__item" // Developer provided the HTML, so assume it's safe.
69
+ // eslint-disable-next-line react/no-danger
70
+ dangerouslySetInnerHTML={{
71
+ __html: item.html,
72
+ }}
73
+ />
74
+ ) : (
75
+ <li key={item.href || item.to} className="footer__item">
76
+ <FooterLink {...item} />
77
+ </li>
78
+ ),
79
+ )}
80
+ </ul>
81
+ </div>
82
+ ))}
83
+ </>
84
+ );
85
+ }
86
+
87
+ function SimpleLinks({links}) {
88
+ return (
89
+ <div className="footer__links">
90
+ {links.map((item, key) => (
91
+ <>
92
+ {item.html ? (
93
+ <span
94
+ key={key}
95
+ className="footer__link-item" // Developer provided the HTML, so assume it's safe.
96
+ // eslint-disable-next-line react/no-danger
97
+ dangerouslySetInnerHTML={{
98
+ __html: item.html,
99
+ }}
100
+ />
101
+ ) : (
102
+ <FooterLink {...item} />
103
+ )}
104
+ {links.length !== key + 1 && (
105
+ <span className="footer__link-separator">·</span>
106
+ )}
107
+ </>
108
+ ))}
109
+ </div>
110
+ );
111
+ }
112
+
113
+ function isMultiColumnFooterLinks(links) {
114
+ return 'title' in links[0];
115
+ }
39
116
 
40
117
  function Footer() {
41
118
  const {footer} = useThemeConfig();
@@ -54,47 +131,30 @@ function Footer() {
54
131
  className={clsx('footer', {
55
132
  'footer--dark': footer.style === 'dark',
56
133
  })}>
57
- <div className="container">
58
- {links && links.length > 0 && (
59
- <div className="row footer__links">
60
- {links.map((linkItem, i) => (
61
- <div key={i} className="col footer__col">
62
- {linkItem.title != null ? (
63
- <div className="footer__title">{linkItem.title}</div>
64
- ) : null}
65
- {linkItem.items != null &&
66
- Array.isArray(linkItem.items) &&
67
- linkItem.items.length > 0 ? (
68
- <ul className="footer__items">
69
- {linkItem.items.map((item, key) =>
70
- item.html ? (
71
- <li
72
- key={key}
73
- className="footer__item" // Developer provided the HTML, so assume it's safe.
74
- // eslint-disable-next-line react/no-danger
75
- dangerouslySetInnerHTML={{
76
- __html: item.html,
77
- }}
78
- />
79
- ) : (
80
- <li key={item.href || item.to} className="footer__item">
81
- <FooterLink {...item} />
82
- </li>
83
- ),
84
- )}
85
- </ul>
86
- ) : null}
87
- </div>
88
- ))}
89
- </div>
90
- )}
134
+ <div className="container container-fluid">
135
+ {links &&
136
+ links.length > 0 &&
137
+ (isMultiColumnFooterLinks(links) ? (
138
+ <div className="row footer__links">
139
+ <MultiColumnLinks links={links} />
140
+ </div>
141
+ ) : (
142
+ <div className="footer__links text--center">
143
+ <SimpleLinks links={links} />
144
+ </div>
145
+ ))}
91
146
  {(logo || copyright) && (
92
147
  <div className="footer__bottom text--center">
93
148
  {logo && (logo.src || logo.srcDark) && (
94
149
  <div className="margin-bottom--sm">
95
150
  {logo.href ? (
96
151
  <Link href={logo.href} className={styles.footerLogoLink}>
97
- <FooterLogo alt={logo.alt} sources={sources} />
152
+ <FooterLogo
153
+ alt={logo.alt}
154
+ sources={sources}
155
+ width={logo.width}
156
+ height={logo.height}
157
+ />
98
158
  </Link>
99
159
  ) : (
100
160
  <FooterLogo alt={logo.alt} sources={sources} />
@@ -117,4 +177,4 @@ function Footer() {
117
177
  );
118
178
  }
119
179
 
120
- export default Footer;
180
+ export default React.memo(Footer);
@@ -4,29 +4,27 @@
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
- /* eslint-disable jsx-a11y/anchor-has-content, jsx-a11y/anchor-is-valid */
9
7
  import React from 'react';
10
8
  import clsx from 'clsx';
11
9
  import {translate} from '@docusaurus/Translate';
12
10
  import {useThemeConfig} from '@docusaurus/theme-common';
13
11
  import './styles.css';
14
12
  import styles from './styles.module.css';
15
- export const MainHeading = function MainHeading({...props}) {
16
- return (
17
- <header>
18
- <h1
19
- {...props}
20
- id={undefined} // h1 headings do not need an id because they don't appear in the TOC
21
- className={styles.h1Heading}>
22
- {props.children}
23
- </h1>
24
- </header>
25
- );
26
- };
13
+ // eslint-disable-next-line react/function-component-definition
14
+ export const MainHeading = ({...props}) => (
15
+ <header>
16
+ <h1
17
+ {...props}
18
+ id={undefined} // h1 headings do not need an id because they don't appear in the TOC
19
+ >
20
+ {props.children}
21
+ </h1>
22
+ </header>
23
+ );
27
24
 
28
- const createAnchorHeading = (Tag) =>
29
- function TargetComponent({id, ...props}) {
25
+ const createAnchorHeading =
26
+ (Tag) =>
27
+ ({id, ...props}) => {
30
28
  const {
31
29
  navbar: {hideOnScroll},
32
30
  } = useThemeConfig();
@@ -36,15 +34,13 @@ const createAnchorHeading = (Tag) =>
36
34
  }
37
35
 
38
36
  return (
39
- <Tag {...props}>
40
- <a
41
- aria-hidden="true"
42
- tabIndex={-1}
43
- className={clsx('anchor', {
44
- [styles.enhancedAnchor]: !hideOnScroll,
45
- })}
46
- id={id}
47
- />
37
+ <Tag
38
+ {...props}
39
+ className={clsx('anchor', {
40
+ [styles.anchorWithHideOnScrollNavbar]: hideOnScroll,
41
+ [styles.anchorWithStickyNavbar]: !hideOnScroll,
42
+ })}
43
+ id={id}>
48
44
  {props.children}
49
45
  <a
50
46
  className="hash-link"
@@ -54,14 +50,13 @@ const createAnchorHeading = (Tag) =>
54
50
  message: 'Direct link to heading',
55
51
  description: 'Title for link to heading',
56
52
  })}>
57
- #
53
+ &#8203;
58
54
  </a>
59
55
  </Tag>
60
56
  );
61
57
  };
62
58
 
63
- const Heading = (headingType) => {
64
- return headingType === 'h1' ? MainHeading : createAnchorHeading(headingType);
65
- };
59
+ const Heading = (headingType) =>
60
+ headingType === 'h1' ? MainHeading : createAnchorHeading(headingType);
66
61
 
67
62
  export default Heading;
@@ -5,16 +5,15 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .anchor {
9
- display: block;
10
- position: relative;
11
- top: -0.5rem;
12
- }
13
-
14
8
  .hash-link {
15
9
  opacity: 0;
16
10
  padding-left: 0.5rem;
17
11
  transition: opacity var(--ifm-transition-fast);
12
+ user-select: none;
13
+ }
14
+
15
+ .hash-link:before {
16
+ content: '#';
18
17
  }
19
18
 
20
19
  .hash-link:focus,
@@ -5,11 +5,15 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .enhancedAnchor {
9
- top: calc(var(--ifm-navbar-height) * -1 - 0.5rem);
8
+ /*
9
+ When the navbar is sticky, ensure that on anchor click,
10
+ the browser does not scroll that anchor behind the navbar
11
+ See https://twitter.com/JoshWComeau/status/1332015868725891076
12
+ */
13
+ .anchorWithStickyNavbar {
14
+ scroll-margin-top: calc(var(--ifm-navbar-height) + 0.5rem);
10
15
  }
11
16
 
12
- .h1Heading {
13
- font-size: 3rem;
14
- margin-bottom: calc(var(--ifm-leading-desktop) * var(--ifm-leading));
17
+ .anchorWithHideOnScrollNavbar {
18
+ scroll-margin-top: 0.5rem;
15
19
  }
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import React from 'react';
8
8
 
9
- const IconArrow = (props) => {
9
+ function IconArrow(props) {
10
10
  return (
11
11
  <svg width="20" height="20" aria-hidden="true" {...props}>
12
12
  <g fill="#7a7a7a">
@@ -15,6 +15,6 @@ const IconArrow = (props) => {
15
15
  </g>
16
16
  </svg>
17
17
  );
18
- };
18
+ }
19
19
 
20
20
  export default IconArrow;
@@ -0,0 +1,23 @@
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
+ import React from 'react';
8
+ export default function IconClose({
9
+ width = 21,
10
+ height = 21,
11
+ color = 'currentColor',
12
+ strokeWidth = 1.2,
13
+ className,
14
+ ...restProps
15
+ }) {
16
+ return (
17
+ <svg viewBox="0 0 15 15" width={width} height={height} {...restProps}>
18
+ <g stroke={color} strokeWidth={strokeWidth}>
19
+ <path d="M.75.75l13.5 13.5M14.25.75L.75 14.25" />
20
+ </g>
21
+ </svg>
22
+ );
23
+ }
@@ -8,7 +8,7 @@ import React from 'react';
8
8
  import clsx from 'clsx';
9
9
  import styles from './styles.module.css';
10
10
 
11
- const IconEdit = ({className, ...restProps}) => {
11
+ function IconEdit({className, ...restProps}) {
12
12
  return (
13
13
  <svg
14
14
  fill="currentColor"
@@ -23,6 +23,6 @@ const IconEdit = ({className, ...restProps}) => {
23
23
  </g>
24
24
  </svg>
25
25
  );
26
- };
26
+ }
27
27
 
28
28
  export default IconEdit;
@@ -7,7 +7,7 @@
7
7
  import React from 'react';
8
8
  import styles from './styles.module.css';
9
9
 
10
- const IconExternalLink = ({width = 13.5, height = 13.5}) => {
10
+ function IconExternalLink({width = 13.5, height = 13.5}) {
11
11
  return (
12
12
  <svg
13
13
  width={width}
@@ -21,6 +21,6 @@ const IconExternalLink = ({width = 13.5, height = 13.5}) => {
21
21
  />
22
22
  </svg>
23
23
  );
24
- };
24
+ }
25
25
 
26
26
  export default IconExternalLink;
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import React from 'react';
8
8
 
9
- const IconLanguage = ({width = 20, height = 20, ...props}) => {
9
+ function IconLanguage({width = 20, height = 20, ...props}) {
10
10
  return (
11
11
  <svg
12
12
  viewBox="0 0 20 20"
@@ -20,6 +20,6 @@ const IconLanguage = ({width = 20, height = 20, ...props}) => {
20
20
  />
21
21
  </svg>
22
22
  );
23
- };
23
+ }
24
24
 
25
25
  export default IconLanguage;