@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
@@ -6,23 +6,6 @@
6
6
  */
7
7
 
8
8
  .toggle {
9
- align-items: center;
10
- display: flex;
11
- height: 10px;
12
- justify-content: center;
13
- width: 10px;
14
- }
15
- .toggle::before {
16
- position: absolute;
17
- }
18
-
19
- /**
20
- * styles for React Toggle
21
- * copied over because we want to allow user to swizzle it and modify the css
22
- * and also to make sure its compatible with our dark mode
23
- * https://github.com/aaronshaf/react-toggle/blob/master/style.css
24
- */
25
- :global(.react-toggle) {
26
9
  touch-action: pan-x;
27
10
  position: relative;
28
11
  cursor: pointer;
@@ -30,7 +13,7 @@
30
13
  -webkit-tap-highlight-color: transparent;
31
14
  }
32
15
 
33
- :global(.react-toggle-screenreader-only) {
16
+ .toggleScreenReader {
34
17
  border: 0;
35
18
  clip: rect(0 0 0 0);
36
19
  height: 1px;
@@ -40,11 +23,11 @@
40
23
  width: 1px;
41
24
  }
42
25
 
43
- :global(.react-toggle--disabled) {
26
+ .toggleDisabled {
44
27
  cursor: not-allowed;
45
28
  }
46
29
 
47
- :global(.react-toggle-track) {
30
+ .toggleTrack {
48
31
  width: 50px;
49
32
  height: 24px;
50
33
  border-radius: 30px;
@@ -52,42 +35,42 @@
52
35
  transition: all 0.2s ease;
53
36
  }
54
37
 
55
- :global(.react-toggle-track-check) {
38
+ .toggleTrackCheck {
56
39
  position: absolute;
57
40
  width: 14px;
58
41
  height: 10px;
59
- top: 0px;
60
- bottom: 0px;
42
+ top: 0;
43
+ bottom: 0;
61
44
  margin: auto 0;
62
45
  left: 8px;
63
46
  opacity: 0;
64
47
  transition: opacity 0.25s ease;
65
48
  }
66
49
 
67
- :global([data-theme='dark'] .react-toggle .react-toggle-track-check),
68
- :global(.react-toggle--checked .react-toggle-track-check) {
50
+ .toggleChecked .toggleTrackCheck,
51
+ [data-theme='dark'] .toggle .toggleTrackCheck {
69
52
  opacity: 1;
70
53
  transition: opacity 0.25s ease;
71
54
  }
72
55
 
73
- :global(.react-toggle-track-x) {
56
+ .toggleTrackX {
74
57
  position: absolute;
75
58
  width: 10px;
76
59
  height: 10px;
77
- top: 0px;
78
- bottom: 0px;
60
+ top: 0;
61
+ bottom: 0;
79
62
  margin: auto 0;
80
63
  right: 10px;
81
64
  opacity: 1;
82
65
  transition: opacity 0.25s ease;
83
66
  }
84
67
 
85
- :global([data-theme='dark'] .react-toggle .react-toggle-track-x),
86
- :global(.react-toggle--checked .react-toggle-track-x) {
68
+ .toggleChecked .toggleTrackX,
69
+ [data-theme='dark'] .toggle .toggleTrackX {
87
70
  opacity: 0;
88
71
  }
89
72
 
90
- :global(.react-toggle-thumb) {
73
+ .toggleTrackThumb {
91
74
  position: absolute;
92
75
  top: 1px;
93
76
  left: 1px;
@@ -99,16 +82,25 @@
99
82
  transition: all 0.25s ease;
100
83
  }
101
84
 
102
- :global([data-theme='dark'] .react-toggle .react-toggle-thumb),
103
- :global(.react-toggle--checked .react-toggle-thumb) {
85
+ .toggleFocused .toggleTrackThumb,
86
+ .toggle:hover .toggleTrackThumb {
87
+ box-shadow: 0 0 2px 3px var(--ifm-color-primary);
88
+ }
89
+
90
+ /* stylelint-disable-next-line no-descending-specificity */
91
+ .toggleChecked .toggleTrackThumb,
92
+ [data-theme='dark'] .toggle .toggleTrackThumb {
104
93
  left: 27px;
105
94
  }
106
95
 
107
- :global(.react-toggle--focus .react-toggle-thumb),
108
- :global(.react-toggle:hover .react-toggle-thumb) {
109
- box-shadow: 0px 0px 2px 3px var(--ifm-color-primary);
96
+ .toggle:active:not(.toggleDisabled) .toggleTrackThumb {
97
+ box-shadow: 0 0 5px 5px var(--ifm-color-primary);
110
98
  }
111
99
 
112
- :global(.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb) {
113
- box-shadow: 0px 0px 5px 5px var(--ifm-color-primary);
100
+ .toggleIcon {
101
+ align-items: center;
102
+ display: flex;
103
+ height: 10px;
104
+ justify-content: center;
105
+ width: 10px;
114
106
  }
@@ -4,20 +4,22 @@
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
- import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
8
7
  import siteConfig from '@generated/docusaurus.config';
8
+ export default function prismIncludeLanguages(PrismObject) {
9
+ const {
10
+ themeConfig: {prism},
11
+ } = siteConfig;
12
+ const {additionalLanguages} = prism; // Prism components work on the Prism instance on the window, while prism-
13
+ // react-renderer uses its own Prism instance. We temporarily mount the
14
+ // instance onto window, import components to enhance it, then remove it to
15
+ // avoid polluting global namespace.
16
+ // You can mutate PrismObject: registering plugins, deleting languages... As
17
+ // long as you don't re-assign it
9
18
 
10
- const prismIncludeLanguages = (PrismObject) => {
11
- if (ExecutionEnvironment.canUseDOM) {
12
- const {
13
- themeConfig: {prism: {additionalLanguages = []} = {}},
14
- } = siteConfig;
15
- window.Prism = PrismObject;
16
- additionalLanguages.forEach((lang) => {
17
- require(`prismjs/components/prism-${lang}`); // eslint-disable-line
18
- });
19
- delete window.Prism;
20
- }
21
- };
22
-
23
- export default prismIncludeLanguages;
19
+ globalThis.Prism = PrismObject;
20
+ additionalLanguages.forEach((lang) => {
21
+ // eslint-disable-next-line global-require, import/no-dynamic-require
22
+ require(`prismjs/components/prism-${lang}`);
23
+ });
24
+ delete globalThis.Prism;
25
+ }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-classic",
3
- "version": "2.0.0-beta.15d451942",
3
+ "version": "2.0.0-beta.16",
4
4
  "description": "Classic theme for Docusaurus",
5
5
  "main": "lib/index.js",
6
- "types": "src/types.d.ts",
6
+ "types": "src/theme-classic.d.ts",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -14,49 +14,50 @@
14
14
  },
15
15
  "license": "MIT",
16
16
  "scripts": {
17
- "build": "tsc --noEmit && yarn babel:lib && yarn babel:lib-next && yarn prettier:lib-next",
18
- "watch": "concurrently -n \"lib,lib-next\" --kill-others \"yarn babel:lib --watch\" \"yarn babel:lib-next --watch\"",
17
+ "build": "tsc --noEmit && yarn babel:lib && yarn babel:lib-next && yarn format:lib-next",
18
+ "watch": "concurrently --names \"lib,lib-next,tsc\" --kill-others \"yarn babel:lib --watch\" \"yarn babel:lib-next --watch\" \"yarn tsc --watch\"",
19
19
  "babel:lib": "cross-env BABEL_ENV=lib babel src -d lib --extensions \".tsx,.ts\" --ignore \"**/*.d.ts\" --copy-files",
20
20
  "babel:lib-next": "cross-env BABEL_ENV=lib-next babel src -d lib-next --extensions \".tsx,.ts\" --ignore \"**/*.d.ts\" --copy-files",
21
- "prettier": "prettier --config ../../.prettierrc --ignore-path ../../.prettierignore --write \"**/*.{js,ts,jsx,tsc}\"",
22
- "prettier:lib-next": "prettier --config ../../.prettierrc --write \"lib-next/**/*.{js,ts,jsx,tsc}\"",
23
- "update-code-translations": "node -e 'require(\"./update-code-translations.js\").run()'"
21
+ "format:lib-next": "prettier --config ../../.prettierrc --write \"lib-next/**/*.{js,ts,jsx,tsc}\""
24
22
  },
25
23
  "dependencies": {
26
- "@docusaurus/core": "2.0.0-beta.15d451942",
27
- "@docusaurus/plugin-content-blog": "2.0.0-beta.15d451942",
28
- "@docusaurus/plugin-content-docs": "2.0.0-beta.15d451942",
29
- "@docusaurus/plugin-content-pages": "2.0.0-beta.15d451942",
30
- "@docusaurus/theme-common": "2.0.0-beta.15d451942",
31
- "@docusaurus/types": "2.0.0-beta.15d451942",
32
- "@docusaurus/utils": "2.0.0-beta.15d451942",
33
- "@docusaurus/utils-validation": "2.0.0-beta.15d451942",
34
- "@mdx-js/mdx": "^1.6.21",
35
- "@mdx-js/react": "^1.6.21",
36
- "chalk": "^4.1.1",
24
+ "@docusaurus/core": "2.0.0-beta.16",
25
+ "@docusaurus/plugin-content-blog": "2.0.0-beta.16",
26
+ "@docusaurus/plugin-content-docs": "2.0.0-beta.16",
27
+ "@docusaurus/plugin-content-pages": "2.0.0-beta.16",
28
+ "@docusaurus/theme-common": "2.0.0-beta.16",
29
+ "@docusaurus/theme-translations": "2.0.0-beta.16",
30
+ "@docusaurus/utils": "2.0.0-beta.16",
31
+ "@docusaurus/utils-common": "2.0.0-beta.16",
32
+ "@docusaurus/utils-validation": "2.0.0-beta.16",
33
+ "@mdx-js/react": "^1.6.22",
37
34
  "clsx": "^1.1.1",
38
35
  "copy-text-to-clipboard": "^3.0.1",
39
- "fs-extra": "^10.0.0",
40
- "globby": "^11.0.2",
41
- "infima": "0.2.0-alpha.24",
42
- "lodash": "^4.17.20",
43
- "parse-numeric-range": "^1.2.0",
44
- "postcss": "^8.2.15",
36
+ "infima": "0.2.0-alpha.37",
37
+ "lodash": "^4.17.21",
38
+ "postcss": "^8.4.6",
45
39
  "prism-react-renderer": "^1.2.1",
46
- "prismjs": "^1.23.0",
47
- "prop-types": "^15.7.2",
40
+ "prismjs": "^1.27.0",
48
41
  "react-router-dom": "^5.2.0",
49
- "rtlcss": "^3.1.2"
42
+ "rtlcss": "^3.3.0"
50
43
  },
51
44
  "devDependencies": {
52
- "@docusaurus/module-type-aliases": "2.0.0-beta.15d451942"
45
+ "@docusaurus/module-type-aliases": "2.0.0-beta.16",
46
+ "@docusaurus/types": "2.0.0-beta.16",
47
+ "@types/mdx-js__react": "^1.5.5",
48
+ "@types/prismjs": "^1.26.0",
49
+ "@types/rtlcss": "^3.1.2",
50
+ "cross-env": "^7.0.3",
51
+ "fs-extra": "^10.0.1",
52
+ "react-test-renderer": "^17.0.2",
53
+ "utility-types": "^3.10.0"
53
54
  },
54
55
  "peerDependencies": {
55
56
  "react": "^16.8.4 || ^17.0.0",
56
57
  "react-dom": "^16.8.4 || ^17.0.0"
57
58
  },
58
59
  "engines": {
59
- "node": ">=12.13.0"
60
+ "node": ">=14"
60
61
  },
61
- "gitHead": "dfceae8bd3e8b42ba8fc14f1449d861046c26143"
62
+ "gitHead": "eb43c4d4f95a4fb97dc9bb9dc615413e0dc2e1e7"
62
63
  }
@@ -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
+ }
package/src/deps.d.ts ADDED
@@ -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
+ }
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import type {SwizzleConfig} from '@docusaurus/types';
9
+
10
+ export default function getSwizzleConfig(): SwizzleConfig {
11
+ return {
12
+ components: {
13
+ CodeBlock: {
14
+ actions: {
15
+ wrap: 'safe',
16
+ eject: 'safe',
17
+ },
18
+ description:
19
+ 'The component used to render multi-line code blocks, generally used in Markdown files.',
20
+ },
21
+ DocSidebar: {
22
+ actions: {
23
+ wrap: 'safe',
24
+ eject: 'unsafe', // too much technical code in sidebar, not very safe atm
25
+ },
26
+ description: 'The sidebar component on docs pages',
27
+ },
28
+ Footer: {
29
+ actions: {
30
+ wrap: 'safe',
31
+ eject: 'unsafe', // TODO split footer into smaller parts
32
+ },
33
+ description: "The footer component of you site's layout",
34
+ },
35
+ NotFound: {
36
+ actions: {
37
+ wrap: 'safe',
38
+ eject: 'safe',
39
+ },
40
+ description:
41
+ 'The global 404 page of your site, meant to be ejected and customized',
42
+ },
43
+ SearchBar: {
44
+ actions: {
45
+ wrap: 'safe',
46
+ eject: 'safe',
47
+ },
48
+ // TODO how to describe this one properly?
49
+ // By default it's an empty placeholder for the user to fill
50
+ description:
51
+ 'The search bar component of your site, appearing in the navbar.',
52
+ },
53
+ IconArrow: {
54
+ actions: {
55
+ wrap: 'safe',
56
+ eject: 'safe',
57
+ },
58
+ description: 'The arrow icon component',
59
+ },
60
+ IconEdit: {
61
+ actions: {
62
+ wrap: 'safe',
63
+ eject: 'safe',
64
+ },
65
+ description: 'The edit icon component',
66
+ },
67
+ IconMenu: {
68
+ actions: {
69
+ wrap: 'safe',
70
+ eject: 'safe',
71
+ },
72
+ description: 'The menu icon component',
73
+ },
74
+
75
+ 'prism-include-languages': {
76
+ actions: {
77
+ wrap: 'forbidden', // not a component!
78
+ eject: 'safe',
79
+ },
80
+ description:
81
+ 'The Prism languages to include for code block syntax highlighting. Meant to be ejected.',
82
+ },
83
+ MDXComponents: {
84
+ actions: {
85
+ wrap: 'forbidden', /// TODO allow wrapping objects???
86
+ eject: 'safe',
87
+ },
88
+ description:
89
+ 'The MDX components to use for rendering MDX files. Meant to be ejected.',
90
+ },
91
+
92
+ // TODO should probably not even appear here
93
+ 'NavbarItem/utils': {
94
+ actions: {
95
+ wrap: 'forbidden',
96
+ eject: 'forbidden',
97
+ },
98
+ },
99
+ },
100
+ };
101
+ }
package/src/index.ts CHANGED
@@ -5,28 +5,30 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import {DocusaurusContext, Plugin} from '@docusaurus/types';
9
- import {ThemeConfig} from '@docusaurus/theme-common';
8
+ import type {LoadContext, Plugin, PostCssOptions} from '@docusaurus/types';
9
+ import type {ThemeConfig} from '@docusaurus/theme-common';
10
10
  import {getTranslationFiles, translateThemeConfig} from './translations';
11
11
  import path from 'path';
12
- import Module from 'module';
13
- import type {AcceptedPlugin, Result, Plugin as PostCssPlugin} from 'postcss';
12
+ import {createRequire} from 'module';
13
+ import type {Plugin as PostCssPlugin} from 'postcss';
14
14
  import rtlcss from 'rtlcss';
15
- import {readDefaultCodeTranslationMessages} from '@docusaurus/utils';
15
+ import {readDefaultCodeTranslationMessages} from '@docusaurus/theme-translations';
16
+ import type {Options} from '@docusaurus/theme-classic';
17
+ import type webpack from 'webpack';
16
18
 
17
- const createRequire = Module.createRequire || Module.createRequireFromPath;
18
19
  const requireFromDocusaurusCore = createRequire(
19
20
  require.resolve('@docusaurus/core/package.json'),
20
21
  );
21
- const ContextReplacementPlugin = requireFromDocusaurusCore(
22
- 'webpack/lib/ContextReplacementPlugin',
23
- );
22
+ const ContextReplacementPlugin: typeof webpack.ContextReplacementPlugin =
23
+ requireFromDocusaurusCore('webpack/lib/ContextReplacementPlugin');
24
24
 
25
25
  // Need to be inlined to prevent dark mode FOUC
26
- // Make sure that the 'storageKey' is the same as the one in `/theme/hooks/useTheme.js`
27
- const storageKey = 'theme';
28
- const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
29
- return `(function() {
26
+ // Make sure the key is the same as the one in `/theme/hooks/useTheme.js`
27
+ const ThemeStorageKey = 'theme';
28
+ const noFlashColorMode = ({
29
+ defaultMode,
30
+ respectPrefersColorScheme,
31
+ }: ThemeConfig['colorMode']) => `(function() {
30
32
  var defaultMode = '${defaultMode}';
31
33
  var respectPrefersColorScheme = ${respectPrefersColorScheme};
32
34
 
@@ -37,7 +39,7 @@ const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
37
39
  function getStoredTheme() {
38
40
  var theme = null;
39
41
  try {
40
- theme = localStorage.getItem('${storageKey}');
42
+ theme = localStorage.getItem('${ThemeStorageKey}');
41
43
  } catch (err) {}
42
44
  return theme;
43
45
  }
@@ -61,59 +63,75 @@ const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
61
63
  }
62
64
  }
63
65
  })();`;
64
- };
65
66
 
66
- function getInfimaCSSFile(direction) {
67
+ // Duplicated constant. Unfortunately we can't import it from theme-common, as
68
+ // we need to support older nodejs versions without ESM support
69
+ // TODO: import from theme-common once we only support Node.js with ESM support
70
+ // + move all those announcementBar stuff there too
71
+ export const AnnouncementBarDismissStorageKey =
72
+ 'docusaurus.announcement.dismiss';
73
+ const AnnouncementBarDismissDataAttribute =
74
+ 'data-announcement-bar-initially-dismissed';
75
+ // We always render the announcement bar html on the server, to prevent layout
76
+ // shifts on React hydration. The theme can use CSS + the data attribute to hide
77
+ // the announcement bar asap (before React hydration)
78
+ const AnnouncementBarInlineJavaScript = `
79
+ (function() {
80
+ function isDismissed() {
81
+ try {
82
+ return localStorage.getItem('${AnnouncementBarDismissStorageKey}') === 'true';
83
+ } catch (err) {}
84
+ return false;
85
+ }
86
+ document.documentElement.setAttribute('${AnnouncementBarDismissDataAttribute}', isDismissed());
87
+ })();`;
88
+
89
+ function getInfimaCSSFile(direction: string) {
67
90
  return `infima/dist/css/default/default${
68
91
  direction === 'rtl' ? '-rtl' : ''
69
92
  }.css`;
70
93
  }
71
94
 
72
- type PluginOptions = {
73
- customCss?: string;
74
- };
75
-
76
95
  export default function docusaurusThemeClassic(
77
- context: DocusaurusContext, // TODO: LoadContext is missing some of properties
78
- options: PluginOptions,
96
+ context: LoadContext,
97
+ options: Options,
79
98
  ): Plugin<void> {
80
99
  const {
81
100
  siteConfig: {themeConfig: roughlyTypedThemeConfig},
82
101
  i18n: {currentLocale, localeConfigs},
83
102
  } = context;
84
103
  const themeConfig = (roughlyTypedThemeConfig || {}) as ThemeConfig;
85
- const {colorMode, prism: {additionalLanguages = []} = {}} = themeConfig;
104
+ const {
105
+ announcementBar,
106
+ colorMode,
107
+ prism: {additionalLanguages = []} = {},
108
+ } = themeConfig;
86
109
  const {customCss} = options || {};
87
110
  const {direction} = localeConfigs[currentLocale];
88
111
 
89
112
  return {
90
113
  name: 'docusaurus-theme-classic',
91
114
 
92
- /*
93
- Does not seem needed: webpack can already hot reload theme files
94
- getPathsToWatch() {
95
- return [
96
- path.join(__dirname, '..', 'lib'),
97
- path.join(__dirname, '..', 'lib-next'),
98
- ];
99
- },
100
- */
101
-
102
115
  getThemePath() {
103
- return path.join(__dirname, '..', 'lib-next', 'theme');
116
+ return path.join(__dirname, '../lib-next/theme');
104
117
  },
105
118
 
106
119
  getTypeScriptThemePath() {
107
- return path.resolve(__dirname, '..', 'src', 'theme');
120
+ return path.resolve(__dirname, '../src/theme');
108
121
  },
109
122
 
110
123
  getTranslationFiles: async () => getTranslationFiles({themeConfig}),
111
- translateThemeConfig,
112
124
 
113
- getDefaultCodeTranslationMessages: () => {
125
+ translateThemeConfig: (params) =>
126
+ translateThemeConfig({
127
+ themeConfig: params.themeConfig as ThemeConfig,
128
+ translationFiles: params.translationFiles,
129
+ }),
130
+
131
+ getDefaultCodeTranslationMessages() {
114
132
  return readDefaultCodeTranslationMessages({
115
- dirPath: path.resolve(__dirname, '..', 'codeTranslations'),
116
133
  locale: currentLocale,
134
+ name: 'theme-common',
117
135
  });
118
136
  },
119
137
 
@@ -121,6 +139,7 @@ export default function docusaurusThemeClassic(
121
139
  const modules = [
122
140
  require.resolve(getInfimaCSSFile(direction)),
123
141
  path.resolve(__dirname, './prism-include-languages'),
142
+ path.resolve(__dirname, './admonitions.css'),
124
143
  ];
125
144
 
126
145
  if (customCss) {
@@ -140,11 +159,10 @@ export default function docusaurusThemeClassic(
140
159
  .join('|');
141
160
 
142
161
  return {
143
- ignoreWarnings: [
144
- // See https://github.com/facebook/docusaurus/pull/3382
145
- (e) => e.message.includes("Can't resolve '@theme-init/hooks/useDocs"),
146
- ],
147
162
  plugins: [
163
+ // This allows better optimization by only bundling those components
164
+ // that the user actually needs, because the modules are dynamically
165
+ // required and can't be known during compile time.
148
166
  new ContextReplacementPlugin(
149
167
  /prismjs[\\/]components$/,
150
168
  new RegExp(`^./(${prismLanguages})$`),
@@ -153,18 +171,18 @@ export default function docusaurusThemeClassic(
153
171
  };
154
172
  },
155
173
 
156
- configurePostCss(postCssOptions: {plugins: AcceptedPlugin[]}) {
174
+ configurePostCss(postCssOptions: PostCssOptions) {
157
175
  if (direction === 'rtl') {
158
176
  const resolvedInfimaFile = require.resolve(getInfimaCSSFile(direction));
159
177
  const plugin: PostCssPlugin = {
160
178
  postcssPlugin: 'RtlCssPlugin',
161
- prepare: (result: Result) => {
179
+ prepare: (result) => {
162
180
  const file = result.root?.source?.input?.file;
163
181
  // Skip Infima as we are using the its RTL version.
164
182
  if (file === resolvedInfimaFile) {
165
183
  return {};
166
184
  }
167
- return rtlcss(result.root);
185
+ return rtlcss(result.root as unknown as rtlcss.ConfigOptions);
168
186
  },
169
187
  };
170
188
  postCssOptions.plugins.push(plugin);
@@ -178,10 +196,10 @@ export default function docusaurusThemeClassic(
178
196
  preBodyTags: [
179
197
  {
180
198
  tagName: 'script',
181
- attributes: {
182
- type: 'text/javascript',
183
- },
184
- innerHTML: noFlashColorMode(colorMode),
199
+ innerHTML: `
200
+ ${noFlashColorMode(colorMode)}
201
+ ${announcementBar ? AnnouncementBarInlineJavaScript : ''}
202
+ `,
185
203
  },
186
204
  ],
187
205
  };
@@ -189,21 +207,5 @@ export default function docusaurusThemeClassic(
189
207
  };
190
208
  }
191
209
 
192
- const swizzleAllowedComponents = [
193
- 'CodeBlock',
194
- 'DocSidebar',
195
- 'Footer',
196
- 'NotFound',
197
- 'SearchBar',
198
- 'IconArrow',
199
- 'IconEdit',
200
- 'IconMenu',
201
- 'hooks/useTheme',
202
- 'prism-include-languages',
203
- ];
204
-
205
- export function getSwizzleComponentList(): string[] {
206
- return swizzleAllowedComponents;
207
- }
208
-
210
+ export {default as getSwizzleConfig} from './getSwizzleConfig';
209
211
  export {validateThemeConfig} from './validateThemeConfig';