@docusaurus/theme-classic 2.0.0-beta.15d451942 → 2.0.0-beta.16

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 (407) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +35 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +102 -0
  5. package/lib/index.js +59 -43
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +755 -0
  8. package/lib/translations.js +40 -34
  9. package/lib/types.d.ts +0 -589
  10. package/lib/validateThemeConfig.js +247 -246
  11. package/lib-next/theme/Admonition/index.js +101 -0
  12. package/lib-next/theme/AnnouncementBar/index.js +10 -22
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +26 -35
  14. package/lib-next/theme/BackToTopButton/index.js +131 -0
  15. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  16. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  17. package/lib-next/theme/BlogLayout/index.js +37 -0
  18. package/lib-next/theme/BlogListPage/index.js +18 -29
  19. package/lib-next/theme/BlogListPaginator/index.js +13 -16
  20. package/lib-next/theme/BlogPostAuthor/index.js +40 -0
  21. package/{lib/theme/IconEdit → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -3
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/lib-next/theme/BlogPostAuthors/styles.module.css +21 -0
  24. package/lib-next/theme/BlogPostItem/index.js +110 -95
  25. package/lib-next/theme/BlogPostItem/styles.module.css +5 -1
  26. package/lib-next/theme/BlogPostPage/index.js +75 -43
  27. package/lib-next/theme/BlogPostPaginator/index.js +13 -20
  28. package/lib-next/theme/BlogSidebar/index.js +23 -16
  29. package/lib-next/theme/BlogSidebar/styles.module.css +8 -8
  30. package/lib-next/theme/BlogTagsListPage/index.js +16 -66
  31. package/lib-next/theme/BlogTagsPostsPage/index.js +47 -59
  32. package/lib-next/theme/CodeBlock/index.js +73 -162
  33. package/lib-next/theme/CodeBlock/styles.module.css +18 -13
  34. package/lib-next/theme/Details/index.js +21 -0
  35. package/lib-next/theme/Details/styles.module.css +13 -0
  36. package/lib-next/theme/DocBreadcrumbs/index.js +76 -0
  37. package/lib-next/theme/DocBreadcrumbs/styles.module.css +26 -0
  38. package/lib-next/theme/DocCard/index.js +91 -0
  39. package/lib-next/theme/DocCard/styles.module.css +43 -0
  40. package/lib-next/theme/DocCardList/index.js +19 -0
  41. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +54 -0
  42. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  43. package/lib-next/theme/DocItem/index.js +64 -69
  44. package/lib-next/theme/DocItem/styles.module.css +7 -13
  45. package/lib-next/theme/DocItemFooter/index.js +79 -0
  46. package/{lib/theme/Layout/styles.css → lib-next/theme/DocItemFooter/styles.module.css} +8 -11
  47. package/lib-next/theme/DocPage/index.js +59 -33
  48. package/lib-next/theme/DocPage/styles.module.css +14 -26
  49. package/lib-next/theme/DocPaginator/index.js +16 -25
  50. package/lib-next/theme/DocSidebar/index.js +72 -285
  51. package/lib-next/theme/DocSidebar/styles.module.css +5 -36
  52. package/lib-next/theme/DocSidebarItem/index.js +264 -0
  53. package/lib-next/theme/DocSidebarItem/styles.module.css +13 -0
  54. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  55. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  56. package/lib-next/theme/DocTagsListPage/index.js +35 -0
  57. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  58. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +54 -36
  59. package/lib-next/theme/EditThisPage/index.js +6 -1
  60. package/lib-next/theme/ErrorPageContent.js +35 -0
  61. package/lib-next/theme/Footer/index.js +105 -41
  62. package/lib-next/theme/Footer/styles.module.css +2 -1
  63. package/lib-next/theme/Heading/index.js +40 -33
  64. package/lib-next/theme/Heading/styles.module.css +27 -2
  65. package/lib-next/theme/IconArrow/index.js +3 -6
  66. package/lib-next/theme/IconClose/index.js +23 -0
  67. package/lib-next/theme/IconEdit/index.js +5 -10
  68. package/lib-next/theme/IconExternalLink/index.js +23 -0
  69. package/{lib/theme/BlogPostItem → lib-next/theme/IconExternalLink}/styles.module.css +4 -6
  70. package/lib-next/theme/IconLanguage/index.js +3 -6
  71. package/lib-next/theme/IconMenu/index.js +8 -9
  72. package/lib-next/theme/LastUpdated/index.js +35 -39
  73. package/lib-next/theme/Layout/index.js +5 -7
  74. package/lib-next/theme/Layout/styles.css +6 -0
  75. package/lib-next/theme/LayoutHead/index.js +27 -32
  76. package/lib-next/theme/LayoutProviders/index.js +21 -10
  77. package/lib-next/theme/Logo/index.js +21 -16
  78. package/lib-next/theme/MDXComponents/index.js +45 -30
  79. package/lib-next/theme/{hooks → MDXComponents}/styles.css +7 -2
  80. package/lib-next/theme/MDXPage/index.js +22 -28
  81. package/{lib/theme/LastUpdated → lib-next/theme/MDXPage}/styles.module.css +2 -2
  82. package/lib-next/theme/Navbar/index.js +199 -64
  83. package/lib-next/theme/Navbar/styles.module.css +11 -4
  84. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +36 -185
  85. package/lib-next/theme/NavbarItem/DocNavbarItem.js +31 -14
  86. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  87. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +38 -24
  88. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  89. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +156 -0
  90. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
  91. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  92. package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
  93. package/lib-next/theme/NavbarItem/index.js +27 -15
  94. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  95. package/lib-next/theme/NotFound.js +7 -6
  96. package/lib-next/theme/PaginatorNavLink/index.js +17 -0
  97. package/lib-next/theme/SearchBar.js +1 -1
  98. package/lib-next/theme/SearchMetadata/index.js +25 -0
  99. package/lib-next/theme/Seo/index.js +11 -7
  100. package/lib-next/theme/SkipToContent/index.js +9 -8
  101. package/lib-next/theme/SkipToContent/styles.module.css +8 -3
  102. package/lib-next/theme/TOC/index.js +12 -39
  103. package/lib-next/theme/TOC/styles.module.css +2 -2
  104. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  105. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  106. package/lib-next/theme/TOCInline/index.js +10 -31
  107. package/lib-next/theme/TOCItems/index.js +85 -0
  108. package/lib-next/theme/TabItem/index.js +1 -4
  109. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  110. package/lib-next/theme/Tabs/index.js +108 -50
  111. package/lib-next/theme/Tabs/styles.module.css +0 -13
  112. package/lib-next/theme/Tag/index.js +24 -0
  113. package/lib-next/theme/Tag/styles.module.css +70 -0
  114. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  115. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  116. package/lib-next/theme/TagsListInline/index.js +31 -0
  117. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  118. package/lib-next/theme/ThemedImage/index.js +9 -13
  119. package/lib-next/theme/ThemedImage/styles.module.css +9 -2
  120. package/lib-next/theme/Toggle/index.js +65 -60
  121. package/lib-next/theme/Toggle/styles.module.css +30 -38
  122. package/lib-next/theme/prism-include-languages.js +17 -15
  123. package/package.json +31 -30
  124. package/src/admonitions.css +35 -0
  125. package/src/deps.d.ts +13 -0
  126. package/src/getSwizzleConfig.ts +101 -0
  127. package/src/index.ts +68 -66
  128. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  129. package/src/theme/Admonition/index.tsx +106 -0
  130. package/src/theme/AnnouncementBar/index.tsx +11 -20
  131. package/src/theme/AnnouncementBar/styles.module.css +26 -35
  132. package/src/theme/BackToTopButton/index.tsx +143 -0
  133. package/src/theme/BackToTopButton/styles.module.css +44 -0
  134. package/src/theme/BlogArchivePage/index.tsx +91 -0
  135. package/src/theme/BlogLayout/index.tsx +42 -0
  136. package/src/theme/BlogListPage/index.tsx +19 -28
  137. package/src/theme/BlogListPaginator/index.tsx +13 -15
  138. package/src/theme/BlogPostAuthor/index.tsx +44 -0
  139. package/src/theme/{LastUpdated → BlogPostAuthor}/styles.module.css +4 -2
  140. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  141. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  142. package/src/theme/BlogPostItem/index.tsx +101 -91
  143. package/src/theme/BlogPostItem/styles.module.css +5 -1
  144. package/src/theme/BlogPostPage/index.tsx +77 -42
  145. package/src/theme/BlogPostPaginator/index.tsx +13 -19
  146. package/src/theme/BlogSidebar/index.tsx +23 -16
  147. package/src/theme/BlogSidebar/styles.module.css +8 -8
  148. package/src/theme/BlogTagsListPage/index.tsx +16 -66
  149. package/src/theme/BlogTagsPostsPage/index.tsx +43 -61
  150. package/src/theme/CodeBlock/index.tsx +77 -164
  151. package/src/theme/CodeBlock/styles.module.css +18 -13
  152. package/src/theme/Details/index.tsx +25 -0
  153. package/src/theme/Details/styles.module.css +13 -0
  154. package/src/theme/DocBreadcrumbs/index.tsx +91 -0
  155. package/src/theme/DocBreadcrumbs/styles.module.css +26 -0
  156. package/src/theme/DocCard/index.tsx +109 -0
  157. package/src/theme/DocCard/styles.module.css +43 -0
  158. package/src/theme/DocCardList/index.tsx +27 -0
  159. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +59 -0
  160. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  161. package/src/theme/DocItem/index.tsx +66 -68
  162. package/src/theme/DocItem/styles.module.css +7 -13
  163. package/src/theme/DocItemFooter/index.tsx +91 -0
  164. package/src/theme/DocItemFooter/styles.module.css +18 -0
  165. package/src/theme/DocPage/index.tsx +58 -34
  166. package/src/theme/DocPage/styles.module.css +14 -26
  167. package/src/theme/DocPaginator/index.tsx +16 -24
  168. package/src/theme/DocSidebar/index.tsx +83 -297
  169. package/src/theme/DocSidebar/styles.module.css +5 -36
  170. package/src/theme/DocSidebarItem/index.tsx +283 -0
  171. package/src/theme/DocSidebarItem/styles.module.css +13 -0
  172. package/src/theme/DocSidebarItems/index.tsx +32 -0
  173. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  174. package/src/theme/DocTagsListPage/index.tsx +39 -0
  175. package/src/theme/DocVersionBadge/index.tsx +35 -0
  176. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +77 -47
  177. package/src/theme/EditThisPage/index.tsx +6 -1
  178. package/src/theme/ErrorPageContent.tsx +41 -0
  179. package/src/theme/Footer/index.tsx +119 -45
  180. package/src/theme/Footer/styles.module.css +2 -1
  181. package/src/theme/Heading/index.tsx +41 -35
  182. package/src/theme/Heading/styles.module.css +27 -2
  183. package/src/theme/IconArrow/index.tsx +3 -5
  184. package/src/theme/IconClose/index.tsx +26 -0
  185. package/src/theme/IconEdit/index.tsx +8 -9
  186. package/src/theme/IconExternalLink/index.tsx +30 -0
  187. package/{lib/theme/Heading → src/theme/IconExternalLink}/styles.module.css +4 -2
  188. package/src/theme/IconLanguage/index.tsx +4 -6
  189. package/src/theme/IconMenu/index.tsx +4 -9
  190. package/src/theme/LastUpdated/index.tsx +35 -39
  191. package/src/theme/Layout/index.tsx +5 -6
  192. package/src/theme/Layout/styles.css +6 -0
  193. package/src/theme/LayoutHead/index.tsx +26 -25
  194. package/src/theme/LayoutProviders/index.tsx +21 -10
  195. package/src/theme/Logo/index.tsx +21 -15
  196. package/src/theme/MDXComponents/index.tsx +56 -32
  197. package/{lib/theme/hooks → src/theme/MDXComponents}/styles.css +7 -2
  198. package/src/theme/MDXPage/index.tsx +23 -28
  199. package/{lib-next/theme/LastUpdated → src/theme/MDXPage}/styles.module.css +2 -2
  200. package/src/theme/Navbar/index.tsx +208 -68
  201. package/src/theme/Navbar/styles.module.css +11 -4
  202. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
  203. package/src/theme/NavbarItem/DocNavbarItem.tsx +33 -15
  204. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  205. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +44 -28
  206. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  207. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  208. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +16 -10
  209. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  210. package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
  211. package/src/theme/NavbarItem/index.tsx +42 -19
  212. package/src/theme/NavbarItem/utils.ts +10 -0
  213. package/src/theme/NotFound.tsx +7 -5
  214. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  215. package/src/theme/SearchBar.tsx +2 -1
  216. package/src/theme/SearchMetadata/index.tsx +34 -0
  217. package/src/theme/Seo/index.tsx +7 -4
  218. package/src/theme/SkipToContent/index.tsx +9 -8
  219. package/src/theme/SkipToContent/styles.module.css +8 -3
  220. package/src/theme/TOC/index.tsx +13 -44
  221. package/src/theme/TOC/styles.module.css +2 -2
  222. package/src/theme/TOCCollapsible/index.tsx +58 -0
  223. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  224. package/src/theme/TOCInline/index.tsx +14 -35
  225. package/src/theme/TOCItems/index.tsx +100 -0
  226. package/src/theme/TabItem/index.tsx +5 -3
  227. package/src/theme/Tabs/index.tsx +115 -56
  228. package/src/theme/Tabs/styles.module.css +0 -13
  229. package/src/theme/Tag/index.tsx +29 -0
  230. package/src/theme/Tag/styles.module.css +70 -0
  231. package/src/theme/TagsListByLetter/index.tsx +43 -0
  232. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  233. package/src/theme/TagsListInline/index.tsx +35 -0
  234. package/src/theme/TagsListInline/styles.module.css +15 -0
  235. package/src/theme/ThemedImage/index.tsx +10 -12
  236. package/src/theme/ThemedImage/styles.module.css +9 -2
  237. package/src/theme/Toggle/index.tsx +66 -62
  238. package/src/theme/Toggle/styles.module.css +30 -38
  239. package/src/theme/prism-include-languages.ts +20 -15
  240. package/src/theme-classic.d.ts +755 -0
  241. package/src/translations.ts +74 -54
  242. package/src/types.d.ts +0 -589
  243. package/{lib-next/validateThemeConfig.js → src/validateThemeConfig.ts} +184 -104
  244. package/babel.config.js +0 -35
  245. package/codeTranslations/README.md +0 -20
  246. package/codeTranslations/ar.json +0 -55
  247. package/codeTranslations/base.json +0 -108
  248. package/codeTranslations/da.json +0 -55
  249. package/codeTranslations/de.json +0 -55
  250. package/codeTranslations/es.json +0 -55
  251. package/codeTranslations/fa.json +0 -55
  252. package/codeTranslations/fil.json +0 -55
  253. package/codeTranslations/fr.json +0 -55
  254. package/codeTranslations/he.json +0 -55
  255. package/codeTranslations/hi.json +0 -55
  256. package/codeTranslations/ja.json +0 -55
  257. package/codeTranslations/ko.json +0 -55
  258. package/codeTranslations/pl.json +0 -55
  259. package/codeTranslations/pt-BR.json +0 -55
  260. package/codeTranslations/pt-PT.json +0 -55
  261. package/codeTranslations/ru.json +0 -55
  262. package/codeTranslations/tr.json +0 -55
  263. package/codeTranslations/vi.json +0 -55
  264. package/codeTranslations/zh-Hans.json +0 -55
  265. package/codeTranslations/zh-Hant.json +0 -55
  266. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  267. package/lib/__tests__/translations.test.js +0 -112
  268. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  269. package/lib/theme/AnnouncementBar/index.js +0 -74
  270. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  271. package/lib/theme/BlogListPage/index.js +0 -71
  272. package/lib/theme/BlogListPaginator/index.js +0 -63
  273. package/lib/theme/BlogPostItem/index.js +0 -152
  274. package/lib/theme/BlogPostPage/index.js +0 -75
  275. package/lib/theme/BlogPostPaginator/index.js +0 -64
  276. package/lib/theme/BlogSidebar/index.js +0 -43
  277. package/lib/theme/BlogSidebar/styles.module.css +0 -46
  278. package/lib/theme/BlogTagsListPage/index.js +0 -81
  279. package/lib/theme/BlogTagsPostsPage/index.js +0 -104
  280. package/lib/theme/CodeBlock/index.js +0 -253
  281. package/lib/theme/CodeBlock/styles.module.css +0 -71
  282. package/lib/theme/DocItem/index.js +0 -120
  283. package/lib/theme/DocItem/styles.module.css +0 -28
  284. package/lib/theme/DocPage/index.js +0 -141
  285. package/lib/theme/DocPage/styles.module.css +0 -98
  286. package/lib/theme/DocPaginator/index.js +0 -63
  287. package/lib/theme/DocSidebar/index.js +0 -307
  288. package/lib/theme/DocSidebar/styles.module.css +0 -138
  289. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  290. package/lib/theme/EditThisPage/index.js +0 -31
  291. package/lib/theme/Footer/index.js +0 -108
  292. package/lib/theme/Footer/styles.module.css +0 -15
  293. package/lib/theme/Heading/index.js +0 -60
  294. package/lib/theme/Heading/styles.css +0 -23
  295. package/lib/theme/IconArrow/index.js +0 -28
  296. package/lib/theme/IconEdit/index.js +0 -34
  297. package/lib/theme/IconLanguage/index.js +0 -29
  298. package/lib/theme/IconMenu/index.js +0 -31
  299. package/lib/theme/LastUpdated/index.js +0 -65
  300. package/lib/theme/Layout/index.js +0 -64
  301. package/lib/theme/LayoutHead/index.js +0 -144
  302. package/lib/theme/LayoutProviders/index.js +0 -34
  303. package/lib/theme/Logo/index.js +0 -59
  304. package/lib/theme/MDXComponents/index.js +0 -65
  305. package/lib/theme/MDXPage/index.js +0 -68
  306. package/lib/theme/Navbar/index.js +0 -147
  307. package/lib/theme/Navbar/styles.module.css +0 -20
  308. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
  309. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
  310. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
  311. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  312. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  313. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  314. package/lib/theme/NavbarItem/index.js +0 -54
  315. package/lib/theme/NotFound.js +0 -50
  316. package/lib/theme/SearchBar.js +0 -15
  317. package/lib/theme/SearchMetadatas/index.js +0 -33
  318. package/lib/theme/Seo/index.js +0 -49
  319. package/lib/theme/SkipToContent/index.js +0 -61
  320. package/lib/theme/SkipToContent/styles.module.css +0 -16
  321. package/lib/theme/TOC/index.js +0 -59
  322. package/lib/theme/TOC/styles.module.css +0 -23
  323. package/lib/theme/TOCInline/index.js +0 -53
  324. package/lib/theme/TOCInline/styles.module.css +0 -12
  325. package/lib/theme/TabItem/index.js +0 -32
  326. package/lib/theme/Tabs/index.js +0 -150
  327. package/lib/theme/Tabs/styles.module.css +0 -23
  328. package/lib/theme/ThemeContext.js +0 -21
  329. package/lib/theme/ThemeProvider/index.js +0 -38
  330. package/lib/theme/ThemedImage/index.js +0 -48
  331. package/lib/theme/ThemedImage/styles.module.css +0 -11
  332. package/lib/theme/Toggle/index.js +0 -106
  333. package/lib/theme/Toggle/styles.module.css +0 -114
  334. package/lib/theme/UserPreferencesContext.js +0 -18
  335. package/lib/theme/UserPreferencesProvider/index.js +0 -44
  336. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  337. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  338. package/lib/theme/hooks/useDocs.js +0 -18
  339. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  340. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  341. package/lib/theme/hooks/useLocationHash.js +0 -28
  342. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  343. package/lib/theme/hooks/usePrismTheme.js +0 -36
  344. package/lib/theme/hooks/useScrollPosition.js +0 -49
  345. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  346. package/lib/theme/hooks/useTabGroupChoice.js +0 -53
  347. package/lib/theme/hooks/useTheme.js +0 -99
  348. package/lib/theme/hooks/useThemeContext.js +0 -31
  349. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  350. package/lib/theme/hooks/useWindowSize.js +0 -55
  351. package/lib/theme/prism-include-languages.js +0 -39
  352. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  353. package/lib-next/__tests__/translations.test.js +0 -128
  354. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  355. package/lib-next/index.js +0 -198
  356. package/lib-next/theme/Heading/styles.css +0 -23
  357. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  358. package/lib-next/theme/ThemeContext.js +0 -9
  359. package/lib-next/theme/ThemeProvider/index.js +0 -25
  360. package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
  361. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  362. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  363. package/lib-next/theme/hooks/useDocs.js +0 -10
  364. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  365. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  366. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  367. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  368. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  369. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  370. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  371. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
  372. package/lib-next/theme/hooks/useTheme.js +0 -82
  373. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  374. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  375. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  376. package/lib-next/translations.js +0 -145
  377. package/lib-next/types.d.ts +0 -600
  378. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  379. package/src/__tests__/translations.test.ts +0 -116
  380. package/src/__tests__/validateThemeConfig.test.js +0 -333
  381. package/src/prism-include-languages.js +0 -11
  382. package/src/theme/Heading/styles.css +0 -23
  383. package/src/theme/SearchMetadatas/index.tsx +0 -28
  384. package/src/theme/ThemeContext.ts +0 -15
  385. package/src/theme/ThemeProvider/index.tsx +0 -24
  386. package/src/theme/UserPreferencesContext.ts +0 -12
  387. package/src/theme/UserPreferencesProvider/index.tsx +0 -32
  388. package/src/theme/hooks/styles.css +0 -10
  389. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  390. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  391. package/src/theme/hooks/useDocs.ts +0 -11
  392. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  393. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  394. package/src/theme/hooks/useLocationHash.ts +0 -25
  395. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  396. package/src/theme/hooks/usePrismTheme.ts +0 -22
  397. package/src/theme/hooks/useScrollPosition.ts +0 -45
  398. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  399. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  400. package/src/theme/hooks/useTheme.ts +0 -92
  401. package/src/theme/hooks/useThemeContext.ts +0 -23
  402. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  403. package/src/theme/hooks/useWindowSize.ts +0 -51
  404. package/src/validateThemeConfig.js +0 -317
  405. package/tsconfig.json +0 -12
  406. package/update-code-translations.js +0 -239
  407. package/update-code-translations.test.js +0 -33
@@ -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,88 @@ 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
+ <React.Fragment key={key}>
92
+ {item.html ? (
93
+ <span
94
+ className="footer__link-item" // Developer provided the HTML, so assume it's safe.
95
+ // eslint-disable-next-line react/no-danger
96
+ dangerouslySetInnerHTML={{
97
+ __html: item.html,
98
+ }}
99
+ />
100
+ ) : (
101
+ <FooterLink {...item} />
102
+ )}
103
+ {links.length !== key + 1 && (
104
+ <span className="footer__link-separator">·</span>
105
+ )}
106
+ </React.Fragment>
107
+ ))}
108
+ </div>
109
+ );
110
+ }
111
+
112
+ function isMultiColumnFooterLinks(links) {
113
+ return 'title' in links[0];
114
+ }
39
115
 
40
116
  function Footer() {
41
117
  const {footer} = useThemeConfig();
@@ -54,50 +130,38 @@ function Footer() {
54
130
  className={clsx('footer', {
55
131
  'footer--dark': footer.style === 'dark',
56
132
  })}>
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
- )}
133
+ <div className="container container-fluid">
134
+ {links &&
135
+ links.length > 0 &&
136
+ (isMultiColumnFooterLinks(links) ? (
137
+ <div className="row footer__links">
138
+ <MultiColumnLinks links={links} />
139
+ </div>
140
+ ) : (
141
+ <div className="footer__links text--center">
142
+ <SimpleLinks links={links} />
143
+ </div>
144
+ ))}
91
145
  {(logo || copyright) && (
92
146
  <div className="footer__bottom text--center">
93
147
  {logo && (logo.src || logo.srcDark) && (
94
148
  <div className="margin-bottom--sm">
95
149
  {logo.href ? (
96
150
  <Link href={logo.href} className={styles.footerLogoLink}>
97
- <FooterLogo alt={logo.alt} sources={sources} />
151
+ <FooterLogo
152
+ alt={logo.alt}
153
+ sources={sources}
154
+ width={logo.width}
155
+ height={logo.height}
156
+ />
98
157
  </Link>
99
158
  ) : (
100
- <FooterLogo alt={logo.alt} sources={sources} />
159
+ <FooterLogo
160
+ alt={logo.alt}
161
+ sources={sources}
162
+ width={logo.width}
163
+ height={logo.height}
164
+ />
101
165
  )}
102
166
  </div>
103
167
  )}
@@ -117,4 +181,4 @@ function Footer() {
117
181
  );
118
182
  }
119
183
 
120
- export default Footer;
184
+ export default React.memo(Footer);
@@ -7,7 +7,8 @@
7
7
 
8
8
  .footerLogoLink {
9
9
  opacity: 0.5;
10
- transition: opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default);
10
+ transition: opacity var(--ifm-transition-fast)
11
+ var(--ifm-transition-timing-default);
11
12
  }
12
13
 
13
14
  .footerLogoLink:hover {
@@ -4,48 +4,55 @@
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
- import './styles.css';
14
11
  import styles from './styles.module.css';
15
12
 
16
- const Heading = (Tag) =>
17
- function TargetComponent({id, ...props}) {
18
- const {
19
- navbar: {hideOnScroll},
20
- } = useThemeConfig();
13
+ function AnchorHeading({as: As, id, ...props}) {
14
+ const {
15
+ navbar: {hideOnScroll},
16
+ } = useThemeConfig();
17
+
18
+ if (!id) {
19
+ return <As {...props} />;
20
+ }
21
21
 
22
- if (!id) {
23
- return <Tag {...props} />;
24
- }
22
+ return (
23
+ <As
24
+ {...props}
25
+ className={clsx('anchor', {
26
+ [styles.anchorWithHideOnScrollNavbar]: hideOnScroll,
27
+ [styles.anchorWithStickyNavbar]: !hideOnScroll,
28
+ })}
29
+ id={id}>
30
+ {props.children}
31
+ <a
32
+ className="hash-link"
33
+ href={`#${id}`}
34
+ title={translate({
35
+ id: 'theme.common.headingLinkTitle',
36
+ message: 'Direct link to heading',
37
+ description: 'Title for link to heading',
38
+ })}>
39
+ &#8203;
40
+ </a>
41
+ </As>
42
+ );
43
+ }
25
44
 
45
+ export default function Heading({as, ...props}) {
46
+ if (as === 'h1') {
26
47
  return (
27
- <Tag {...props}>
28
- <a
29
- aria-hidden="true"
30
- tabIndex={-1}
31
- className={clsx('anchor', {
32
- [styles.enhancedAnchor]: !hideOnScroll,
33
- })}
34
- id={id}
35
- />
48
+ <h1
49
+ {...props}
50
+ id={undefined} // h1 headings do not need an id because they don't appear in the TOC
51
+ >
36
52
  {props.children}
37
- <a
38
- className="hash-link"
39
- href={`#${id}`}
40
- title={translate({
41
- id: 'theme.common.headingLinkTitle',
42
- message: 'Direct link to heading',
43
- description: 'Title for link to heading',
44
- })}>
45
- #
46
- </a>
47
- </Tag>
53
+ </h1>
48
54
  );
49
- };
55
+ }
50
56
 
51
- export default Heading;
57
+ return <AnchorHeading as={as} {...props} />;
58
+ }
@@ -5,6 +5,31 @@
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);
15
+ }
16
+
17
+ .anchorWithHideOnScrollNavbar {
18
+ scroll-margin-top: 0.5rem;
19
+ }
20
+
21
+ :global(.hash-link) {
22
+ opacity: 0;
23
+ padding-left: 0.5rem;
24
+ transition: opacity var(--ifm-transition-fast);
25
+ user-select: none;
26
+ }
27
+
28
+ :global(.hash-link::before) {
29
+ content: '#';
30
+ }
31
+
32
+ :global(.hash-link:focus),
33
+ :global(*:hover > .hash-link) {
34
+ opacity: 1;
10
35
  }
@@ -5,16 +5,13 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
-
9
- const IconArrow = (props) => {
8
+ export default function IconArrow(props) {
10
9
  return (
11
- <svg width="20" height="20" role="img" {...props}>
10
+ <svg width="20" height="20" aria-hidden="true" {...props}>
12
11
  <g fill="#7a7a7a">
13
12
  <path d="M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0" />
14
13
  <path d="M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0" />
15
14
  </g>
16
15
  </svg>
17
16
  );
18
- };
19
-
20
- export default IconArrow;
17
+ }
@@ -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
+ }
@@ -7,24 +7,19 @@
7
7
  import React from 'react';
8
8
  import clsx from 'clsx';
9
9
  import styles from './styles.module.css';
10
-
11
- const IconEdit = ({className, ...restProps}) => {
10
+ export default function IconEdit({className, ...restProps}) {
12
11
  return (
13
12
  <svg
14
13
  fill="currentColor"
15
- height="1.2em"
16
- width="1.2em"
17
- preserveAspectRatio="xMidYMid meet"
18
- role="img"
14
+ height="20"
15
+ width="20"
19
16
  viewBox="0 0 40 40"
20
17
  className={clsx(styles.iconEdit, className)}
21
- aria-label="Edit page"
18
+ aria-hidden="true"
22
19
  {...restProps}>
23
20
  <g>
24
21
  <path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z" />
25
22
  </g>
26
23
  </svg>
27
24
  );
28
- };
29
-
30
- export default IconEdit;
25
+ }
@@ -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
+ import styles from './styles.module.css';
9
+ export default function IconExternalLink({width = 13.5, height = 13.5}) {
10
+ return (
11
+ <svg
12
+ width={width}
13
+ height={height}
14
+ aria-hidden="true"
15
+ viewBox="0 0 24 24"
16
+ className={styles.iconExternalLink}>
17
+ <path
18
+ fill="currentColor"
19
+ d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"
20
+ />
21
+ </svg>
22
+ );
23
+ }
@@ -5,10 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- .blogPostTitle {
9
- font-size: 3rem;
10
- }
11
-
12
- .blogPostDate {
13
- font-size: 0.9rem;
8
+ .iconExternalLink {
9
+ margin-left: 0.3rem;
10
+ position: relative;
11
+ top: 1px;
14
12
  }
@@ -5,14 +5,13 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
-
9
- const IconLanguage = ({width = 20, height = 20, ...props}) => {
8
+ export default function IconLanguage({width = 20, height = 20, ...props}) {
10
9
  return (
11
10
  <svg
12
- xmlns="http://www.w3.org/2000/svg"
13
11
  viewBox="0 0 20 20"
14
12
  width={width}
15
13
  height={height}
14
+ aria-hidden="true"
16
15
  {...props}>
17
16
  <path
18
17
  fill="currentColor"
@@ -20,6 +19,4 @@ const IconLanguage = ({width = 20, height = 20, ...props}) => {
20
19
  />
21
20
  </svg>
22
21
  );
23
- };
24
-
25
- export default IconLanguage;
22
+ }
@@ -5,19 +5,20 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
-
9
- const IconMenu = ({width = 30, height = 30, className, ...restProps}) => {
8
+ export default function IconMenu({
9
+ width = 30,
10
+ height = 30,
11
+ className,
12
+ ...restProps
13
+ }) {
10
14
  return (
11
15
  <svg
12
- aria-label="Menu"
13
16
  className={className}
14
17
  width={width}
15
18
  height={height}
16
19
  viewBox="0 0 30 30"
17
- role="img"
18
- focusable="false"
20
+ aria-hidden="true"
19
21
  {...restProps}>
20
- <title>Menu</title>
21
22
  <path
22
23
  stroke="currentColor"
23
24
  strokeLinecap="round"
@@ -27,6 +28,4 @@ const IconMenu = ({width = 30, height = 30, className, ...restProps}) => {
27
28
  />
28
29
  </svg>
29
30
  );
30
- };
31
-
32
- export default IconMenu;
31
+ }
@@ -5,8 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
- import styles from './styles.module.css';
9
8
  import Translate from '@docusaurus/Translate';
9
+ import {ThemeClassNames} from '@docusaurus/theme-common';
10
10
 
11
11
  function LastUpdatedAtDate({lastUpdatedAt, formattedLastUpdatedAt}) {
12
12
  return (
@@ -15,11 +15,11 @@ function LastUpdatedAtDate({lastUpdatedAt, formattedLastUpdatedAt}) {
15
15
  description="The words used to describe on which date a page has been last updated"
16
16
  values={{
17
17
  date: (
18
- <time
19
- dateTime={new Date(lastUpdatedAt * 1000).toISOString()}
20
- className={styles.lastUpdatedDate}>
21
- {formattedLastUpdatedAt}
22
- </time>
18
+ <b>
19
+ <time dateTime={new Date(lastUpdatedAt * 1000).toISOString()}>
20
+ {formattedLastUpdatedAt}
21
+ </time>
22
+ </b>
23
23
  ),
24
24
  }}>
25
25
  {' on {date}'}
@@ -33,7 +33,7 @@ function LastUpdatedByUser({lastUpdatedBy}) {
33
33
  id="theme.lastUpdated.byUser"
34
34
  description="The words used to describe by who the page has been last updated"
35
35
  values={{
36
- user: <strong>{lastUpdatedBy}</strong>,
36
+ user: <b>{lastUpdatedBy}</b>,
37
37
  }}>
38
38
  {' by {user}'}
39
39
  </Translate>
@@ -46,37 +46,33 @@ export default function LastUpdated({
46
46
  lastUpdatedBy,
47
47
  }) {
48
48
  return (
49
- <div className="col text--right">
50
- <em>
51
- <small>
52
- <Translate
53
- id="theme.lastUpdated.lastUpdatedAtBy"
54
- description="The sentence used to display when a page has been last updated, and by who"
55
- values={{
56
- atDate:
57
- lastUpdatedAt && formattedLastUpdatedAt ? (
58
- <LastUpdatedAtDate
59
- lastUpdatedAt={lastUpdatedAt}
60
- formattedLastUpdatedAt={formattedLastUpdatedAt}
61
- />
62
- ) : (
63
- ''
64
- ),
65
- byUser: lastUpdatedBy ? (
66
- <LastUpdatedByUser lastUpdatedBy={lastUpdatedBy} />
67
- ) : (
68
- ''
69
- ),
70
- }}>
71
- {'Last updated{atDate}{byUser}'}
72
- </Translate>
73
- {process.env.NODE_ENV === 'development' && (
74
- <div>
75
- <small> (Simulated during dev for better perf)</small>
76
- </div>
77
- )}
78
- </small>
79
- </em>
80
- </div>
49
+ <span className={ThemeClassNames.common.lastUpdated}>
50
+ <Translate
51
+ id="theme.lastUpdated.lastUpdatedAtBy"
52
+ description="The sentence used to display when a page has been last updated, and by who"
53
+ values={{
54
+ atDate:
55
+ lastUpdatedAt && formattedLastUpdatedAt ? (
56
+ <LastUpdatedAtDate
57
+ lastUpdatedAt={lastUpdatedAt}
58
+ formattedLastUpdatedAt={formattedLastUpdatedAt}
59
+ />
60
+ ) : (
61
+ ''
62
+ ),
63
+ byUser: lastUpdatedBy ? (
64
+ <LastUpdatedByUser lastUpdatedBy={lastUpdatedBy} />
65
+ ) : (
66
+ ''
67
+ ),
68
+ }}>
69
+ {'Last updated{atDate}{byUser}'}
70
+ </Translate>
71
+ {process.env.NODE_ENV === 'development' && (
72
+ <div>
73
+ <small> (Simulated during dev for better perf)</small>
74
+ </div>
75
+ )}
76
+ </span>
81
77
  );
82
78
  }
@@ -6,17 +6,17 @@
6
6
  */
7
7
  import React from 'react';
8
8
  import clsx from 'clsx';
9
+ import ErrorBoundary from '@docusaurus/ErrorBoundary';
9
10
  import SkipToContent from '@theme/SkipToContent';
10
11
  import AnnouncementBar from '@theme/AnnouncementBar';
11
12
  import Navbar from '@theme/Navbar';
12
13
  import Footer from '@theme/Footer';
13
14
  import LayoutProviders from '@theme/LayoutProviders';
14
15
  import LayoutHead from '@theme/LayoutHead';
15
- import useKeyboardNavigation from '@theme/hooks/useKeyboardNavigation';
16
- import {ThemeClassNames} from '@docusaurus/theme-common';
16
+ import {ThemeClassNames, useKeyboardNavigation} from '@docusaurus/theme-common';
17
+ import ErrorPageContent from '@theme/ErrorPageContent';
17
18
  import './styles.css';
18
-
19
- function Layout(props) {
19
+ export default function Layout(props) {
20
20
  const {children, noFooter, wrapperClassName, pageClassName} = props;
21
21
  useKeyboardNavigation();
22
22
  return (
@@ -35,12 +35,10 @@ function Layout(props) {
35
35
  wrapperClassName,
36
36
  pageClassName,
37
37
  )}>
38
- {children}
38
+ <ErrorBoundary fallback={ErrorPageContent}>{children}</ErrorBoundary>
39
39
  </div>
40
40
 
41
41
  {!noFooter && <Footer />}
42
42
  </LayoutProviders>
43
43
  );
44
44
  }
45
-
46
- export default Layout;
@@ -19,3 +19,9 @@ body {
19
19
  .main-wrapper {
20
20
  flex: 1 0 auto;
21
21
  }
22
+
23
+ /* Docusaurus-specific utility classes */
24
+
25
+ .docusaurus-mt-lg {
26
+ margin-top: 3rem;
27
+ }