@docusaurus/theme-classic 2.0.0-beta.15a2b59f9 → 2.0.0-beta.17

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-next/theme/Toggle/styles.module.css → lib/deps.d.ts} +5 -9
  4. package/lib/getSwizzleConfig.js +125 -0
  5. package/lib/index.js +36 -41
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +771 -0
  8. package/lib/translations.js +40 -34
  9. package/lib/types.d.ts +0 -587
  10. package/lib/validateThemeConfig.js +242 -250
  11. package/lib-next/theme/Admonition/index.js +101 -0
  12. package/lib-next/theme/AnnouncementBar/index.js +8 -16
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  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 +52 -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/{src/theme/Toggle → lib-next/theme/BlogPostAuthors}/styles.module.css +11 -7
  24. package/lib-next/theme/BlogPostItem/index.js +94 -96
  25. package/lib-next/theme/BlogPostPage/index.js +75 -39
  26. package/lib-next/theme/BlogPostPaginator/index.js +12 -19
  27. package/lib-next/theme/BlogSidebar/index.js +11 -13
  28. package/lib-next/theme/BlogSidebar/styles.module.css +4 -2
  29. package/lib-next/theme/BlogTagsListPage/index.js +15 -59
  30. package/lib-next/theme/BlogTagsPostsPage/index.js +33 -41
  31. package/lib-next/theme/CodeBlock/index.js +64 -154
  32. package/lib-next/theme/CodeBlock/styles.module.css +17 -9
  33. package/lib-next/theme/ColorModeToggle/index.js +83 -0
  34. package/lib-next/theme/ColorModeToggle/styles.module.css +51 -0
  35. package/lib-next/theme/Details/index.js +21 -0
  36. package/lib-next/theme/Details/styles.module.css +13 -0
  37. package/lib-next/theme/DocBreadcrumbs/index.js +76 -0
  38. package/lib-next/theme/DocBreadcrumbs/styles.module.css +26 -0
  39. package/lib-next/theme/DocCard/index.js +91 -0
  40. package/lib-next/theme/DocCard/styles.module.css +43 -0
  41. package/lib-next/theme/DocCardList/index.js +19 -0
  42. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +54 -0
  43. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  44. package/lib-next/theme/DocItem/index.js +53 -58
  45. package/lib-next/theme/DocItem/styles.module.css +6 -10
  46. package/lib-next/theme/DocItemFooter/index.js +79 -0
  47. package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
  48. package/lib-next/theme/DocPage/index.js +54 -55
  49. package/lib-next/theme/DocPage/styles.module.css +9 -3
  50. package/lib-next/theme/DocPaginator/index.js +15 -24
  51. package/lib-next/theme/DocSidebar/index.js +65 -286
  52. package/lib-next/theme/DocSidebar/styles.module.css +5 -22
  53. package/lib-next/theme/DocSidebarItem/index.js +264 -0
  54. package/{lib/theme/BlogPostItem → lib-next/theme/DocSidebarItem}/styles.module.css +5 -10
  55. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  56. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  57. package/lib-next/theme/DocTagsListPage/index.js +35 -0
  58. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  59. package/lib-next/theme/DocVersionBanner/index.js +32 -15
  60. package/lib-next/theme/EditThisPage/index.js +6 -1
  61. package/lib-next/theme/ErrorPageContent.js +35 -0
  62. package/lib-next/theme/Footer/index.js +95 -40
  63. package/lib-next/theme/Footer/styles.module.css +2 -1
  64. package/lib-next/theme/Heading/index.js +39 -48
  65. package/lib-next/theme/Heading/styles.module.css +25 -5
  66. package/lib-next/theme/IconArrow/index.js +2 -5
  67. package/lib-next/theme/IconClose/index.js +23 -0
  68. package/lib-next/theme/IconDarkMode/index.js +17 -0
  69. package/lib-next/theme/IconEdit/index.js +2 -5
  70. package/lib-next/theme/IconExternalLink/index.js +2 -5
  71. package/lib-next/theme/IconLanguage/index.js +5 -8
  72. package/lib-next/theme/IconLightMode/index.js +17 -0
  73. package/lib-next/theme/IconMenu/index.js +7 -5
  74. package/lib-next/theme/LastUpdated/index.js +3 -2
  75. package/lib-next/theme/Layout/index.js +5 -7
  76. package/lib-next/theme/LayoutHead/index.js +27 -32
  77. package/lib-next/theme/LayoutProviders/index.js +15 -9
  78. package/lib-next/theme/Logo/index.js +25 -24
  79. package/lib-next/theme/MDXComponents/index.js +59 -30
  80. package/{src/theme/hooks → lib-next/theme/MDXComponents}/styles.css +7 -2
  81. package/lib-next/theme/MDXPage/index.js +10 -12
  82. package/lib-next/theme/Navbar/index.js +199 -64
  83. package/lib-next/theme/Navbar/styles.module.css +10 -3
  84. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +35 -201
  85. package/lib-next/theme/NavbarItem/DocNavbarItem.js +11 -8
  86. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  87. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +34 -20
  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/theme/hooks/styles.css → lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css} +3 -2
  92. package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
  93. package/lib-next/theme/NavbarItem/index.js +26 -14
  94. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  95. package/lib-next/theme/NotFound.js +1 -4
  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 +34 -0
  99. package/lib-next/theme/Seo/index.js +11 -7
  100. package/lib-next/theme/SkipToContent/index.js +3 -5
  101. package/lib-next/theme/SkipToContent/styles.module.css +7 -0
  102. package/lib-next/theme/TOC/index.js +12 -39
  103. package/lib-next/theme/TOC/styles.module.css +1 -1
  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/{hooks/styles.css → TagsListByLetter/styles.module.css} +3 -2
  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 +7 -10
  119. package/lib-next/theme/ThemedImage/styles.module.css +2 -2
  120. package/lib-next/theme/prism-include-languages.js +17 -15
  121. package/package.json +31 -31
  122. package/src/admonitions.css +35 -0
  123. package/src/deps.d.ts +13 -0
  124. package/src/getSwizzleConfig.ts +123 -0
  125. package/src/index.ts +39 -61
  126. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  127. package/src/theme/Admonition/index.tsx +106 -0
  128. package/src/theme/AnnouncementBar/index.tsx +9 -15
  129. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  130. package/src/theme/BackToTopButton/index.tsx +143 -0
  131. package/src/theme/BackToTopButton/styles.module.css +44 -0
  132. package/src/theme/BlogArchivePage/index.tsx +91 -0
  133. package/src/theme/BlogLayout/index.tsx +42 -0
  134. package/src/theme/BlogListPage/index.tsx +19 -28
  135. package/src/theme/BlogListPaginator/index.tsx +13 -15
  136. package/src/theme/BlogPostAuthor/index.tsx +54 -0
  137. package/{lib/theme/MDXPage → src/theme/BlogPostAuthor}/styles.module.css +4 -2
  138. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  139. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  140. package/src/theme/BlogPostItem/index.tsx +84 -90
  141. package/src/theme/BlogPostPage/index.tsx +77 -38
  142. package/src/theme/BlogPostPaginator/index.tsx +12 -18
  143. package/src/theme/BlogSidebar/index.tsx +11 -13
  144. package/src/theme/BlogSidebar/styles.module.css +4 -2
  145. package/src/theme/BlogTagsListPage/index.tsx +15 -60
  146. package/src/theme/BlogTagsPostsPage/index.tsx +32 -40
  147. package/src/theme/CodeBlock/index.tsx +68 -156
  148. package/src/theme/CodeBlock/styles.module.css +17 -9
  149. package/src/theme/ColorModeToggle/index.tsx +92 -0
  150. package/src/theme/ColorModeToggle/styles.module.css +51 -0
  151. package/src/theme/Details/index.tsx +25 -0
  152. package/src/theme/Details/styles.module.css +13 -0
  153. package/src/theme/DocBreadcrumbs/index.tsx +91 -0
  154. package/src/theme/DocBreadcrumbs/styles.module.css +26 -0
  155. package/src/theme/DocCard/index.tsx +109 -0
  156. package/src/theme/DocCard/styles.module.css +43 -0
  157. package/src/theme/DocCardList/index.tsx +27 -0
  158. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +59 -0
  159. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  160. package/src/theme/DocItem/index.tsx +56 -58
  161. package/src/theme/DocItem/styles.module.css +6 -10
  162. package/src/theme/DocItemFooter/index.tsx +91 -0
  163. package/{lib/theme/Toggle → src/theme/DocItemFooter}/styles.module.css +9 -8
  164. package/src/theme/DocPage/index.tsx +53 -49
  165. package/src/theme/DocPage/styles.module.css +9 -3
  166. package/src/theme/DocPaginator/index.tsx +15 -23
  167. package/src/theme/DocSidebar/index.tsx +76 -298
  168. package/src/theme/DocSidebar/styles.module.css +5 -22
  169. package/src/theme/DocSidebarItem/index.tsx +283 -0
  170. package/src/theme/DocSidebarItem/styles.module.css +13 -0
  171. package/src/theme/DocSidebarItems/index.tsx +32 -0
  172. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  173. package/src/theme/DocTagsListPage/index.tsx +39 -0
  174. package/src/theme/DocVersionBadge/index.tsx +35 -0
  175. package/src/theme/DocVersionBanner/index.tsx +49 -22
  176. package/src/theme/EditThisPage/index.tsx +6 -1
  177. package/src/theme/ErrorPageContent.tsx +41 -0
  178. package/src/theme/Footer/index.tsx +109 -44
  179. package/src/theme/Footer/styles.module.css +2 -1
  180. package/src/theme/Heading/index.tsx +38 -53
  181. package/src/theme/Heading/styles.module.css +25 -5
  182. package/src/theme/IconArrow/index.tsx +2 -4
  183. package/src/theme/IconClose/index.tsx +26 -0
  184. package/src/theme/IconDarkMode/index.tsx +20 -0
  185. package/src/theme/IconEdit/index.tsx +5 -4
  186. package/src/theme/IconExternalLink/index.tsx +3 -5
  187. package/src/theme/IconLanguage/index.tsx +6 -8
  188. package/src/theme/IconLightMode/index.tsx +20 -0
  189. package/src/theme/IconMenu/index.tsx +3 -5
  190. package/src/theme/LastUpdated/index.tsx +3 -2
  191. package/src/theme/Layout/index.tsx +5 -6
  192. package/src/theme/LayoutHead/index.tsx +26 -25
  193. package/src/theme/LayoutProviders/index.tsx +15 -9
  194. package/src/theme/Logo/index.tsx +21 -19
  195. package/src/theme/MDXComponents/index.tsx +70 -32
  196. package/{lib/theme/IconExternalLink/styles.module.css → src/theme/MDXComponents/styles.css} +7 -4
  197. package/src/theme/MDXPage/index.tsx +10 -12
  198. package/src/theme/Navbar/index.tsx +208 -68
  199. package/src/theme/Navbar/styles.module.css +10 -3
  200. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -207
  201. package/src/theme/NavbarItem/DocNavbarItem.tsx +17 -18
  202. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  203. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +39 -24
  204. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  205. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  206. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +16 -10
  207. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  208. package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
  209. package/src/theme/NavbarItem/index.tsx +41 -18
  210. package/src/theme/NavbarItem/utils.ts +10 -0
  211. package/src/theme/NotFound.tsx +1 -3
  212. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  213. package/src/theme/SearchBar.tsx +2 -1
  214. package/src/theme/SearchMetadata/index.tsx +43 -0
  215. package/src/theme/Seo/index.tsx +7 -4
  216. package/src/theme/SkipToContent/index.tsx +3 -5
  217. package/src/theme/SkipToContent/styles.module.css +7 -0
  218. package/src/theme/TOC/index.tsx +13 -44
  219. package/src/theme/TOC/styles.module.css +1 -1
  220. package/src/theme/TOCCollapsible/index.tsx +58 -0
  221. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  222. package/src/theme/TOCInline/index.tsx +14 -35
  223. package/src/theme/TOCItems/index.tsx +100 -0
  224. package/src/theme/TabItem/index.tsx +5 -3
  225. package/src/theme/Tabs/index.tsx +115 -56
  226. package/src/theme/Tabs/styles.module.css +0 -13
  227. package/src/theme/Tag/index.tsx +29 -0
  228. package/src/theme/Tag/styles.module.css +70 -0
  229. package/src/theme/TagsListByLetter/index.tsx +43 -0
  230. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  231. package/src/theme/TagsListInline/index.tsx +35 -0
  232. package/src/theme/TagsListInline/styles.module.css +15 -0
  233. package/src/theme/ThemedImage/index.tsx +7 -9
  234. package/src/theme/ThemedImage/styles.module.css +2 -2
  235. package/src/theme/prism-include-languages.ts +20 -15
  236. package/src/theme-classic.d.ts +771 -0
  237. package/src/translations.ts +74 -54
  238. package/src/types.d.ts +0 -587
  239. package/src/validateThemeConfig.ts +381 -0
  240. package/babel.config.js +0 -35
  241. package/codeTranslations/README.md +0 -20
  242. package/codeTranslations/ar.json +0 -57
  243. package/codeTranslations/base.json +0 -112
  244. package/codeTranslations/bn.json +0 -56
  245. package/codeTranslations/da.json +0 -57
  246. package/codeTranslations/de.json +0 -57
  247. package/codeTranslations/es.json +0 -57
  248. package/codeTranslations/fa.json +0 -57
  249. package/codeTranslations/fil.json +0 -57
  250. package/codeTranslations/fr.json +0 -57
  251. package/codeTranslations/he.json +0 -57
  252. package/codeTranslations/hi.json +0 -57
  253. package/codeTranslations/ja.json +0 -57
  254. package/codeTranslations/ko.json +0 -57
  255. package/codeTranslations/pl.json +0 -57
  256. package/codeTranslations/pt-BR.json +0 -57
  257. package/codeTranslations/pt-PT.json +0 -57
  258. package/codeTranslations/ru.json +0 -57
  259. package/codeTranslations/tr.json +0 -57
  260. package/codeTranslations/vi.json +0 -57
  261. package/codeTranslations/zh-Hans.json +0 -57
  262. package/codeTranslations/zh-Hant.json +0 -57
  263. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  264. package/lib/__tests__/translations.test.js +0 -112
  265. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  266. package/lib/theme/AnnouncementBar/index.js +0 -72
  267. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  268. package/lib/theme/BlogListPage/index.js +0 -71
  269. package/lib/theme/BlogListPaginator/index.js +0 -63
  270. package/lib/theme/BlogPostItem/index.js +0 -161
  271. package/lib/theme/BlogPostPage/index.js +0 -69
  272. package/lib/theme/BlogPostPaginator/index.js +0 -64
  273. package/lib/theme/BlogSidebar/index.js +0 -51
  274. package/lib/theme/BlogSidebar/styles.module.css +0 -44
  275. package/lib/theme/BlogTagsListPage/index.js +0 -76
  276. package/lib/theme/BlogTagsPostsPage/index.js +0 -100
  277. package/lib/theme/CodeBlock/index.js +0 -253
  278. package/lib/theme/CodeBlock/styles.module.css +0 -68
  279. package/lib/theme/DocItem/index.js +0 -129
  280. package/lib/theme/DocPage/index.js +0 -173
  281. package/lib/theme/DocPage/styles.module.css +0 -80
  282. package/lib/theme/DocPaginator/index.js +0 -63
  283. package/lib/theme/DocSidebar/index.js +0 -309
  284. package/lib/theme/DocSidebar/styles.module.css +0 -124
  285. package/lib/theme/DocVersionBanner/index.js +0 -128
  286. package/lib/theme/EditThisPage/index.js +0 -31
  287. package/lib/theme/Footer/index.js +0 -115
  288. package/lib/theme/Footer/styles.module.css +0 -15
  289. package/lib/theme/Heading/index.js +0 -76
  290. package/lib/theme/Heading/styles.css +0 -23
  291. package/lib/theme/Heading/styles.module.css +0 -15
  292. package/lib/theme/IconArrow/index.js +0 -28
  293. package/lib/theme/IconEdit/index.js +0 -34
  294. package/lib/theme/IconExternalLink/index.js +0 -30
  295. package/lib/theme/IconLanguage/index.js +0 -29
  296. package/lib/theme/IconMenu/index.js +0 -30
  297. package/lib/theme/LastUpdated/index.js +0 -61
  298. package/lib/theme/Layout/index.js +0 -64
  299. package/lib/theme/Layout/styles.css +0 -27
  300. package/lib/theme/LayoutHead/index.js +0 -144
  301. package/lib/theme/LayoutProviders/index.js +0 -36
  302. package/lib/theme/Logo/index.js +0 -60
  303. package/lib/theme/MDXComponents/index.js +0 -65
  304. package/lib/theme/MDXPage/index.js +0 -66
  305. package/lib/theme/Navbar/index.js +0 -147
  306. package/lib/theme/Navbar/styles.module.css +0 -20
  307. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
  308. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
  309. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
  310. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  311. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  312. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  313. package/lib/theme/NavbarItem/index.js +0 -54
  314. package/lib/theme/NotFound.js +0 -57
  315. package/lib/theme/SearchBar.js +0 -15
  316. package/lib/theme/SearchMetadatas/index.js +0 -33
  317. package/lib/theme/Seo/index.js +0 -49
  318. package/lib/theme/SkipToContent/index.js +0 -71
  319. package/lib/theme/SkipToContent/styles.module.css +0 -14
  320. package/lib/theme/TOC/index.js +0 -59
  321. package/lib/theme/TOC/styles.module.css +0 -23
  322. package/lib/theme/TOCInline/index.js +0 -53
  323. package/lib/theme/TOCInline/styles.module.css +0 -12
  324. package/lib/theme/TabItem/index.js +0 -32
  325. package/lib/theme/Tabs/index.js +0 -150
  326. package/lib/theme/Tabs/styles.module.css +0 -23
  327. package/lib/theme/ThemeContext.js +0 -21
  328. package/lib/theme/ThemeProvider/index.js +0 -38
  329. package/lib/theme/ThemedImage/index.js +0 -49
  330. package/lib/theme/ThemedImage/styles.module.css +0 -18
  331. package/lib/theme/Toggle/index.js +0 -94
  332. package/lib/theme/Toggle/styles.css +0 -103
  333. package/lib/theme/UserPreferencesContext.js +0 -18
  334. package/lib/theme/UserPreferencesProvider/index.js +0 -36
  335. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  336. package/lib/theme/hooks/useDocs.js +0 -18
  337. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  338. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  339. package/lib/theme/hooks/useLocationHash.js +0 -28
  340. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  341. package/lib/theme/hooks/usePrismTheme.js +0 -36
  342. package/lib/theme/hooks/useScrollPosition.js +0 -49
  343. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  344. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  345. package/lib/theme/hooks/useTheme.js +0 -99
  346. package/lib/theme/hooks/useThemeContext.js +0 -31
  347. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  348. package/lib/theme/hooks/useWindowSize.js +0 -55
  349. package/lib/theme/prism-include-languages.js +0 -39
  350. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  351. package/lib-next/__tests__/translations.test.js +0 -128
  352. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  353. package/lib-next/index.js +0 -221
  354. package/lib-next/theme/Heading/styles.css +0 -23
  355. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  356. package/lib-next/theme/ThemeContext.js +0 -9
  357. package/lib-next/theme/ThemeProvider/index.js +0 -25
  358. package/lib-next/theme/Toggle/index.js +0 -80
  359. package/lib-next/theme/Toggle/styles.css +0 -103
  360. package/lib-next/theme/UserPreferencesProvider/index.js +0 -24
  361. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  362. package/lib-next/theme/hooks/useDocs.js +0 -10
  363. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  364. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  365. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  366. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  367. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  368. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  369. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  370. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
  371. package/lib-next/theme/hooks/useTheme.js +0 -82
  372. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  373. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  374. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  375. package/lib-next/translations.js +0 -145
  376. package/lib-next/types.d.ts +0 -598
  377. package/lib-next/validateThemeConfig.js +0 -317
  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/Toggle/index.tsx +0 -100
  387. package/src/theme/Toggle/styles.css +0 -103
  388. package/src/theme/UserPreferencesContext.ts +0 -12
  389. package/src/theme/UserPreferencesProvider/index.tsx +0 -27
  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 -240
  407. package/update-code-translations.test.js +0 -33
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-classic",
3
- "version": "2.0.0-beta.15a2b59f9",
3
+ "version": "2.0.0-beta.17",
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,50 +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.15a2b59f9",
27
- "@docusaurus/plugin-content-blog": "2.0.0-beta.15a2b59f9",
28
- "@docusaurus/plugin-content-docs": "2.0.0-beta.15a2b59f9",
29
- "@docusaurus/plugin-content-pages": "2.0.0-beta.15a2b59f9",
30
- "@docusaurus/theme-common": "2.0.0-beta.15a2b59f9",
31
- "@docusaurus/types": "2.0.0-beta.15a2b59f9",
32
- "@docusaurus/utils": "2.0.0-beta.15a2b59f9",
33
- "@docusaurus/utils-common": "2.0.0-beta.15a2b59f9",
34
- "@docusaurus/utils-validation": "2.0.0-beta.15a2b59f9",
35
- "@mdx-js/mdx": "^1.6.21",
36
- "@mdx-js/react": "^1.6.21",
37
- "chalk": "^4.1.1",
24
+ "@docusaurus/core": "2.0.0-beta.17",
25
+ "@docusaurus/plugin-content-blog": "2.0.0-beta.17",
26
+ "@docusaurus/plugin-content-docs": "2.0.0-beta.17",
27
+ "@docusaurus/plugin-content-pages": "2.0.0-beta.17",
28
+ "@docusaurus/theme-common": "2.0.0-beta.17",
29
+ "@docusaurus/theme-translations": "2.0.0-beta.17",
30
+ "@docusaurus/utils": "2.0.0-beta.17",
31
+ "@docusaurus/utils-common": "2.0.0-beta.17",
32
+ "@docusaurus/utils-validation": "2.0.0-beta.17",
33
+ "@mdx-js/react": "^1.6.22",
38
34
  "clsx": "^1.1.1",
39
35
  "copy-text-to-clipboard": "^3.0.1",
40
- "fs-extra": "^10.0.0",
41
- "globby": "^11.0.2",
42
- "infima": "0.2.0-alpha.26",
43
- "lodash": "^4.17.20",
44
- "parse-numeric-range": "^1.2.0",
45
- "postcss": "^8.2.15",
36
+ "infima": "0.2.0-alpha.37",
37
+ "lodash": "^4.17.21",
38
+ "postcss": "^8.4.7",
46
39
  "prism-react-renderer": "^1.2.1",
47
- "prismjs": "^1.23.0",
48
- "prop-types": "^15.7.2",
40
+ "prismjs": "^1.27.0",
49
41
  "react-router-dom": "^5.2.0",
50
- "rtlcss": "^3.1.2"
42
+ "rtlcss": "^3.3.0"
51
43
  },
52
44
  "devDependencies": {
53
- "@docusaurus/module-type-aliases": "2.0.0-beta.15a2b59f9"
45
+ "@docusaurus/module-type-aliases": "2.0.0-beta.17",
46
+ "@docusaurus/types": "2.0.0-beta.17",
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"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "react": "^16.8.4 || ^17.0.0",
57
57
  "react-dom": "^16.8.4 || ^17.0.0"
58
58
  },
59
59
  "engines": {
60
- "node": ">=12.13.0"
60
+ "node": ">=14"
61
61
  },
62
- "gitHead": "34881586224092fb9b5b2f455a46e19b3eee7f08"
62
+ "gitHead": "0032c0b0480083227af2e1b4da2d3ee6ce992403"
63
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,123 @@
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
+ /* eslint sort-keys: "error" */
11
+
12
+ export default function getSwizzleConfig(): SwizzleConfig {
13
+ return {
14
+ components: {
15
+ CodeBlock: {
16
+ actions: {
17
+ eject: 'safe',
18
+ wrap: 'safe',
19
+ },
20
+ description:
21
+ 'The component used to render multi-line code blocks, generally used in Markdown files.',
22
+ },
23
+ ColorModeToggle: {
24
+ actions: {
25
+ eject: 'safe',
26
+ wrap: 'safe',
27
+ },
28
+ description:
29
+ 'The color mode toggle to switch between light and dark mode.',
30
+ },
31
+ DocSidebar: {
32
+ actions: {
33
+ eject: 'unsafe', // too much technical code in sidebar, not very safe atm
34
+ wrap: 'safe',
35
+ },
36
+ description: 'The sidebar component on docs pages',
37
+ },
38
+ Footer: {
39
+ actions: {
40
+ eject: 'unsafe', // TODO split footer into smaller parts
41
+ wrap: 'safe',
42
+ },
43
+ description: "The footer component of you site's layout",
44
+ },
45
+ IconArrow: {
46
+ actions: {
47
+ eject: 'safe',
48
+ wrap: 'safe',
49
+ },
50
+ description: 'The arrow icon component',
51
+ },
52
+ IconDarkMode: {
53
+ actions: {
54
+ eject: 'safe',
55
+ wrap: 'safe',
56
+ },
57
+ description: 'The dark mode icon component.',
58
+ },
59
+ IconEdit: {
60
+ actions: {
61
+ eject: 'safe',
62
+ wrap: 'safe',
63
+ },
64
+ description: 'The edit icon component',
65
+ },
66
+ IconLightMode: {
67
+ actions: {
68
+ eject: 'safe',
69
+ wrap: 'safe',
70
+ },
71
+ description: 'The light mode icon component.',
72
+ },
73
+ IconMenu: {
74
+ actions: {
75
+ eject: 'safe',
76
+ wrap: 'safe',
77
+ },
78
+ description: 'The menu icon component',
79
+ },
80
+ MDXComponents: {
81
+ actions: {
82
+ eject: 'safe',
83
+ wrap: 'forbidden', /// TODO allow wrapping objects???
84
+ },
85
+ description:
86
+ 'The MDX components to use for rendering MDX files. Meant to be ejected.',
87
+ },
88
+ // TODO should probably not even appear here
89
+ 'NavbarItem/utils': {
90
+ actions: {
91
+ eject: 'forbidden',
92
+ wrap: 'forbidden',
93
+ },
94
+ },
95
+ NotFound: {
96
+ actions: {
97
+ eject: 'safe',
98
+ wrap: 'safe',
99
+ },
100
+ description:
101
+ 'The global 404 page of your site, meant to be ejected and customized',
102
+ },
103
+ SearchBar: {
104
+ actions: {
105
+ eject: 'safe',
106
+ wrap: 'safe',
107
+ },
108
+ // TODO how to describe this one properly?
109
+ // By default it's an empty placeholder for the user to fill
110
+ description:
111
+ 'The search bar component of your site, appearing in the navbar.',
112
+ },
113
+ 'prism-include-languages': {
114
+ actions: {
115
+ eject: 'safe',
116
+ wrap: 'forbidden', // not a component!
117
+ },
118
+ description:
119
+ 'The Prism languages to include for code block syntax highlighting. Meant to be ejected.',
120
+ },
121
+ },
122
+ };
123
+ }
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';
8
+ import type {LoadContext, Plugin, PostCssOptions} from '@docusaurus/types';
9
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`
26
+ // Make sure the key is the same as the one in `/theme/hooks/useTheme.js`
27
27
  const ThemeStorageKey = 'theme';
28
- const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
29
- return `(function() {
28
+ const noFlashColorMode = ({
29
+ defaultMode,
30
+ respectPrefersColorScheme,
31
+ }: ThemeConfig['colorMode']) => `(function() {
30
32
  var defaultMode = '${defaultMode}';
31
33
  var respectPrefersColorScheme = ${respectPrefersColorScheme};
32
34
 
@@ -61,17 +63,18 @@ const noFlashColorMode = ({defaultMode, respectPrefersColorScheme}) => {
61
63
  }
62
64
  }
63
65
  })();`;
64
- };
65
66
 
66
- // Duplicated constant. Unfortunately we can't import it from theme-common, as we need to support older nodejs versions without ESM support
67
+ // Duplicated constant. Unfortunately we can't import it from theme-common, as
68
+ // we need to support older nodejs versions without ESM support
67
69
  // TODO: import from theme-common once we only support Node.js with ESM support
68
70
  // + move all those announcementBar stuff there too
69
71
  export const AnnouncementBarDismissStorageKey =
70
72
  'docusaurus.announcement.dismiss';
71
73
  const AnnouncementBarDismissDataAttribute =
72
74
  'data-announcement-bar-initially-dismissed';
73
- // We always render the announcement bar html on the server, to prevent layout shifts on React hydration
74
- // The theme can use CSS + the data attribute to hide the announcement bar asap (before React hydration)
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)
75
78
  const AnnouncementBarInlineJavaScript = `
76
79
  (function() {
77
80
  function isDismissed() {
@@ -83,19 +86,15 @@ const AnnouncementBarInlineJavaScript = `
83
86
  document.documentElement.setAttribute('${AnnouncementBarDismissDataAttribute}', isDismissed());
84
87
  })();`;
85
88
 
86
- function getInfimaCSSFile(direction) {
89
+ function getInfimaCSSFile(direction: string) {
87
90
  return `infima/dist/css/default/default${
88
91
  direction === 'rtl' ? '-rtl' : ''
89
92
  }.css`;
90
93
  }
91
94
 
92
- type PluginOptions = {
93
- customCss?: string;
94
- };
95
-
96
95
  export default function docusaurusThemeClassic(
97
- context: DocusaurusContext, // TODO: LoadContext is missing some of properties
98
- options: PluginOptions,
96
+ context: LoadContext,
97
+ options: Options,
99
98
  ): Plugin<void> {
100
99
  const {
101
100
  siteConfig: {themeConfig: roughlyTypedThemeConfig},
@@ -113,31 +112,26 @@ export default function docusaurusThemeClassic(
113
112
  return {
114
113
  name: 'docusaurus-theme-classic',
115
114
 
116
- /*
117
- Does not seem needed: webpack can already hot reload theme files
118
- getPathsToWatch() {
119
- return [
120
- path.join(__dirname, '..', 'lib'),
121
- path.join(__dirname, '..', 'lib-next'),
122
- ];
123
- },
124
- */
125
-
126
115
  getThemePath() {
127
- return path.join(__dirname, '..', 'lib-next', 'theme');
116
+ return path.join(__dirname, '../lib-next/theme');
128
117
  },
129
118
 
130
119
  getTypeScriptThemePath() {
131
- return path.resolve(__dirname, '..', 'src', 'theme');
120
+ return path.resolve(__dirname, '../src/theme');
132
121
  },
133
122
 
134
123
  getTranslationFiles: async () => getTranslationFiles({themeConfig}),
135
- translateThemeConfig,
136
124
 
137
- getDefaultCodeTranslationMessages: () => {
125
+ translateThemeConfig: (params) =>
126
+ translateThemeConfig({
127
+ themeConfig: params.themeConfig as ThemeConfig,
128
+ translationFiles: params.translationFiles,
129
+ }),
130
+
131
+ getDefaultCodeTranslationMessages() {
138
132
  return readDefaultCodeTranslationMessages({
139
- dirPath: path.resolve(__dirname, '..', 'codeTranslations'),
140
133
  locale: currentLocale,
134
+ name: 'theme-common',
141
135
  });
142
136
  },
143
137
 
@@ -145,6 +139,7 @@ export default function docusaurusThemeClassic(
145
139
  const modules = [
146
140
  require.resolve(getInfimaCSSFile(direction)),
147
141
  path.resolve(__dirname, './prism-include-languages'),
142
+ path.resolve(__dirname, './admonitions.css'),
148
143
  ];
149
144
 
150
145
  if (customCss) {
@@ -164,11 +159,10 @@ export default function docusaurusThemeClassic(
164
159
  .join('|');
165
160
 
166
161
  return {
167
- ignoreWarnings: [
168
- // See https://github.com/facebook/docusaurus/pull/3382
169
- (e) => e.message.includes("Can't resolve '@theme-init/hooks/useDocs"),
170
- ],
171
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.
172
166
  new ContextReplacementPlugin(
173
167
  /prismjs[\\/]components$/,
174
168
  new RegExp(`^./(${prismLanguages})$`),
@@ -177,18 +171,18 @@ export default function docusaurusThemeClassic(
177
171
  };
178
172
  },
179
173
 
180
- configurePostCss(postCssOptions: {plugins: AcceptedPlugin[]}) {
174
+ configurePostCss(postCssOptions: PostCssOptions) {
181
175
  if (direction === 'rtl') {
182
176
  const resolvedInfimaFile = require.resolve(getInfimaCSSFile(direction));
183
177
  const plugin: PostCssPlugin = {
184
178
  postcssPlugin: 'RtlCssPlugin',
185
- prepare: (result: Result) => {
179
+ prepare: (result) => {
186
180
  const file = result.root?.source?.input?.file;
187
181
  // Skip Infima as we are using the its RTL version.
188
182
  if (file === resolvedInfimaFile) {
189
183
  return {};
190
184
  }
191
- return rtlcss(result.root);
185
+ return rtlcss(result.root as unknown as rtlcss.ConfigOptions);
192
186
  },
193
187
  };
194
188
  postCssOptions.plugins.push(plugin);
@@ -213,21 +207,5 @@ ${announcementBar ? AnnouncementBarInlineJavaScript : ''}
213
207
  };
214
208
  }
215
209
 
216
- const swizzleAllowedComponents = [
217
- 'CodeBlock',
218
- 'DocSidebar',
219
- 'Footer',
220
- 'NotFound',
221
- 'SearchBar',
222
- 'IconArrow',
223
- 'IconEdit',
224
- 'IconMenu',
225
- 'hooks/useTheme',
226
- 'prism-include-languages',
227
- ];
228
-
229
- export function getSwizzleComponentList(): string[] {
230
- return swizzleAllowedComponents;
231
- }
232
-
210
+ export {default as getSwizzleConfig} from './getSwizzleConfig';
233
211
  export {validateThemeConfig} from './validateThemeConfig';
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import React from 'react';
9
+ import clsx from 'clsx';
10
+ import type {Props} from '@theme/Admonition';
11
+
12
+ const icons = {
13
+ note: (
14
+ <svg
15
+ xmlns="http://www.w3.org/2000/svg"
16
+ width="14"
17
+ height="16"
18
+ viewBox="0 0 14 16">
19
+ <path
20
+ fillRule="evenodd"
21
+ d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"
22
+ />
23
+ </svg>
24
+ ),
25
+ tip: (
26
+ <svg
27
+ xmlns="http://www.w3.org/2000/svg"
28
+ width="12"
29
+ height="16"
30
+ viewBox="0 0 12 16">
31
+ <path
32
+ fillRule="evenodd"
33
+ d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"
34
+ />
35
+ </svg>
36
+ ),
37
+ danger: (
38
+ <svg
39
+ xmlns="http://www.w3.org/2000/svg"
40
+ width="12"
41
+ height="16"
42
+ viewBox="0 0 12 16">
43
+ <path
44
+ fillRule="evenodd"
45
+ d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"
46
+ />
47
+ </svg>
48
+ ),
49
+ info: (
50
+ <svg
51
+ xmlns="http://www.w3.org/2000/svg"
52
+ width="14"
53
+ height="16"
54
+ viewBox="0 0 14 16">
55
+ <path
56
+ fillRule="evenodd"
57
+ d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"
58
+ />
59
+ </svg>
60
+ ),
61
+ caution: (
62
+ <svg
63
+ xmlns="http://www.w3.org/2000/svg"
64
+ width="16"
65
+ height="16"
66
+ viewBox="0 0 16 16">
67
+ <path
68
+ fillRule="evenodd"
69
+ d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"
70
+ />
71
+ </svg>
72
+ ),
73
+ };
74
+
75
+ const ifmClassNames = {
76
+ note: 'secondary',
77
+ tip: 'success',
78
+ danger: 'danger',
79
+ info: 'info',
80
+ caution: 'warning',
81
+ };
82
+
83
+ export default function Admonition({
84
+ children,
85
+ type,
86
+ title = type,
87
+ icon = icons[type],
88
+ }: Props): JSX.Element {
89
+ return (
90
+ <div
91
+ className={clsx(
92
+ 'admonition',
93
+ `admonition-${type}`,
94
+ 'alert',
95
+ `alert--${ifmClassNames[type]}`,
96
+ )}>
97
+ <div className="admonition-heading">
98
+ <h5>
99
+ <span className="admonition-icon">{icon}</span>
100
+ {title}
101
+ </h5>
102
+ </div>
103
+ <div className="admonition-content">{children}</div>
104
+ </div>
105
+ );
106
+ }
@@ -9,32 +9,28 @@ import React from 'react';
9
9
  import clsx from 'clsx';
10
10
  import {useThemeConfig, useAnnouncementBar} from '@docusaurus/theme-common';
11
11
  import {translate} from '@docusaurus/Translate';
12
+ import IconClose from '@theme/IconClose';
12
13
 
13
14
  import styles from './styles.module.css';
14
15
 
15
- function AnnouncementBar(): JSX.Element | null {
16
- const {isClosed, close} = useAnnouncementBar();
16
+ export default function AnnouncementBar(): JSX.Element | null {
17
+ const {isActive, close} = useAnnouncementBar();
17
18
  const {announcementBar} = useThemeConfig();
18
19
 
19
- if (!announcementBar) {
20
+ if (!isActive) {
20
21
  return null;
21
22
  }
22
23
 
23
- const {content, backgroundColor, textColor, isCloseable} = announcementBar;
24
-
25
- if (!content || (isCloseable && isClosed)) {
26
- return null;
27
- }
24
+ const {content, backgroundColor, textColor, isCloseable} = announcementBar!;
28
25
 
29
26
  return (
30
27
  <div
31
28
  className={styles.announcementBar}
32
29
  style={{backgroundColor, color: textColor}}
33
30
  role="banner">
31
+ {isCloseable && <div className={styles.announcementBarPlaceholder} />}
34
32
  <div
35
- className={clsx(styles.announcementBarContent, {
36
- [styles.announcementBarCloseable]: isCloseable,
37
- })}
33
+ className={styles.announcementBarContent}
38
34
  // Developer provided the HTML, so assume it's safe.
39
35
  // eslint-disable-next-line react/no-danger
40
36
  dangerouslySetInnerHTML={{__html: content}}
@@ -42,18 +38,16 @@ function AnnouncementBar(): JSX.Element | null {
42
38
  {isCloseable ? (
43
39
  <button
44
40
  type="button"
45
- className={clsx(styles.announcementBarClose, 'clean-btn')}
41
+ className={clsx('clean-btn close', styles.announcementBarClose)}
46
42
  onClick={close}
47
43
  aria-label={translate({
48
44
  id: 'theme.AnnouncementBar.closeButtonAriaLabel',
49
45
  message: 'Close',
50
46
  description: 'The ARIA label for close button of announcement bar',
51
47
  })}>
52
- <span aria-hidden="true">×</span>
48
+ <IconClose width={14} height={14} strokeWidth={3.1} />
53
49
  </button>
54
50
  ) : null}
55
51
  </div>
56
52
  );
57
53
  }
58
-
59
- export default AnnouncementBar;