@docusaurus/theme-classic 2.0.0-beta.1 → 2.0.0-beta.10

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 (367) hide show
  1. package/README.md +1 -1
  2. package/lib/__tests__/validateThemeConfig.test.js +277 -3
  3. package/lib/admonitions.css +35 -0
  4. package/lib/deps.d.ts +13 -0
  5. package/lib/index.js +41 -16
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme/AnnouncementBar/index.js +10 -16
  8. package/lib/theme/AnnouncementBar/styles.module.css +25 -30
  9. package/lib/theme/BackToTopButton/index.js +140 -0
  10. package/lib/theme/BackToTopButton/styles.module.css +42 -0
  11. package/lib/theme/BlogArchivePage/index.js +89 -0
  12. package/lib/theme/BlogLayout/index.js +51 -0
  13. package/lib/theme/BlogListPage/index.js +10 -21
  14. package/lib/theme/BlogPostAuthor/index.js +51 -0
  15. package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
  16. package/lib/theme/BlogPostAuthors/index.js +47 -0
  17. package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
  18. package/lib/theme/BlogPostItem/index.js +58 -67
  19. package/lib/theme/BlogPostPage/index.js +37 -24
  20. package/lib/theme/BlogSidebar/index.js +5 -7
  21. package/lib/theme/BlogSidebar/styles.module.css +2 -2
  22. package/lib/theme/BlogTagsListPage/index.js +8 -44
  23. package/lib/theme/BlogTagsPostsPage/index.js +24 -38
  24. package/lib/theme/CodeBlock/index.js +18 -138
  25. package/lib/theme/CodeBlock/styles.module.css +6 -9
  26. package/lib/theme/Details/index.js +30 -0
  27. package/lib/theme/Details/styles.module.css +13 -0
  28. package/lib/theme/DocCard/index.js +84 -0
  29. package/lib/theme/DocCard/styles.module.css +43 -0
  30. package/lib/theme/DocCardList/index.js +28 -0
  31. package/lib/theme/DocCategoryGeneratedIndexPage/index.js +57 -0
  32. package/lib/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  33. package/lib/theme/DocItem/index.js +29 -46
  34. package/lib/theme/DocItem/styles.module.css +5 -9
  35. package/lib/theme/DocItemFooter/index.js +79 -0
  36. package/lib/theme/DocItemFooter/styles.module.css +18 -0
  37. package/lib/theme/DocPage/index.js +35 -52
  38. package/lib/theme/DocPage/styles.module.css +8 -23
  39. package/lib/theme/DocPaginator/index.js +6 -7
  40. package/lib/theme/DocSidebar/index.js +53 -235
  41. package/lib/theme/DocSidebar/styles.module.css +0 -18
  42. package/lib/theme/DocSidebarItem/index.js +209 -0
  43. package/lib/theme/DocSidebarItem/styles.module.css +19 -0
  44. package/lib/theme/DocTagDocListPage/index.js +89 -0
  45. package/lib/theme/DocTagsListPage/index.js +44 -0
  46. package/lib/theme/DocVersionBadge/index.js +34 -0
  47. package/lib/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +39 -20
  48. package/lib/theme/EditThisPage/index.js +3 -1
  49. package/lib/theme/ErrorPageContent.js +43 -0
  50. package/lib/theme/Footer/index.js +16 -5
  51. package/lib/theme/Heading/index.js +17 -22
  52. package/lib/theme/Heading/styles.css +5 -6
  53. package/lib/theme/Heading/styles.module.css +9 -5
  54. package/lib/theme/IconArrow/index.js +2 -2
  55. package/lib/theme/IconClose/index.js +31 -0
  56. package/lib/theme/IconEdit/index.js +3 -3
  57. package/lib/theme/IconExternalLink/index.js +3 -3
  58. package/lib/theme/IconLanguage/index.js +3 -3
  59. package/lib/theme/IconMenu/index.js +3 -3
  60. package/lib/theme/LastUpdated/index.js +4 -2
  61. package/lib/theme/Layout/index.js +5 -1
  62. package/lib/theme/LayoutHead/index.js +22 -17
  63. package/lib/theme/LayoutProviders/index.js +11 -5
  64. package/lib/theme/Logo/index.js +16 -14
  65. package/lib/theme/MDXComponents/index.js +45 -4
  66. package/lib/theme/MDXComponents/styles.css +11 -0
  67. package/lib/theme/MDXPage/index.js +2 -1
  68. package/lib/theme/Navbar/index.js +162 -42
  69. package/lib/theme/Navbar/styles.module.css +10 -3
  70. package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -123
  71. package/lib/theme/NavbarItem/DocNavbarItem.js +7 -8
  72. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
  73. package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
  74. package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +6 -10
  75. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  76. package/lib/theme/NavbarItem/index.js +31 -11
  77. package/lib/theme/{SearchMetadatas → SearchMetadata}/index.js +2 -2
  78. package/lib/theme/Seo/index.js +10 -7
  79. package/lib/theme/SkipToContent/index.js +12 -4
  80. package/lib/theme/SkipToContent/styles.module.css +1 -0
  81. package/lib/theme/TOC/index.js +9 -29
  82. package/lib/theme/TOC/styles.module.css +1 -1
  83. package/lib/theme/TOCCollapsible/index.js +53 -0
  84. package/lib/theme/TOCCollapsible/styles.module.css +50 -0
  85. package/lib/theme/TOCInline/index.js +7 -27
  86. package/lib/theme/TOCItems/index.js +78 -0
  87. package/lib/theme/Tabs/__tests__/index.test.js +123 -0
  88. package/lib/theme/Tabs/index.js +73 -50
  89. package/lib/theme/Tabs/styles.module.css +0 -13
  90. package/lib/theme/Tag/index.js +40 -0
  91. package/lib/theme/Tag/styles.module.css +70 -0
  92. package/lib/theme/TagsListByLetter/index.js +48 -0
  93. package/lib/theme/TagsListByLetter/styles.module.css +11 -0
  94. package/lib/theme/TagsListInline/index.js +44 -0
  95. package/lib/theme/TagsListInline/styles.module.css +15 -0
  96. package/lib/theme/ThemeProvider/index.js +8 -3
  97. package/lib/theme/ThemedImage/index.js +6 -7
  98. package/lib/theme/Toggle/index.js +41 -44
  99. package/lib/theme/Toggle/styles.module.css +91 -3
  100. package/lib/theme/UserPreferencesProvider/index.js +9 -12
  101. package/lib/theme/hooks/useHideableNavbar.js +14 -32
  102. package/lib/theme/hooks/useTabGroupChoice.js +2 -4
  103. package/lib/theme/hooks/useTheme.js +3 -5
  104. package/lib/theme/hooks/useWindowSize.js +33 -20
  105. package/lib/theme/prism-include-languages.js +4 -3
  106. package/lib/theme-classic.d.ts +806 -0
  107. package/lib/translations.js +4 -4
  108. package/lib/types.d.ts +0 -599
  109. package/lib/validateThemeConfig.js +230 -246
  110. package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
  111. package/lib-next/admonitions.css +35 -0
  112. package/lib-next/deps.d.ts +13 -0
  113. package/lib-next/index.js +45 -13
  114. package/lib-next/prism-include-languages.js +0 -2
  115. package/lib-next/theme/AnnouncementBar/index.js +9 -18
  116. package/lib-next/theme/AnnouncementBar/styles.module.css +25 -30
  117. package/lib-next/theme/BackToTopButton/index.js +131 -0
  118. package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
  119. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  120. package/lib-next/theme/BlogLayout/index.js +40 -0
  121. package/lib-next/theme/BlogListPage/index.js +17 -25
  122. package/lib-next/theme/BlogPostAuthor/index.js +46 -0
  123. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  124. package/lib-next/theme/BlogPostAuthors/index.js +34 -0
  125. package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
  126. package/lib-next/theme/BlogPostItem/index.js +79 -86
  127. package/lib-next/theme/BlogPostPage/index.js +70 -35
  128. package/lib-next/theme/BlogSidebar/index.js +11 -13
  129. package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
  130. package/lib-next/theme/BlogTagsListPage/index.js +14 -55
  131. package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
  132. package/lib-next/theme/CodeBlock/index.js +17 -149
  133. package/lib-next/theme/CodeBlock/styles.module.css +6 -9
  134. package/lib-next/theme/Details/index.js +20 -0
  135. package/lib-next/theme/Details/styles.module.css +13 -0
  136. package/lib-next/theme/DocCard/index.js +80 -0
  137. package/lib-next/theme/DocCard/styles.module.css +43 -0
  138. package/lib-next/theme/DocCardList/index.js +19 -0
  139. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
  140. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  141. package/lib-next/theme/DocItem/index.js +40 -56
  142. package/lib-next/theme/DocItem/styles.module.css +5 -9
  143. package/lib-next/theme/DocItemFooter/index.js +79 -0
  144. package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
  145. package/lib-next/theme/DocPage/index.js +46 -47
  146. package/lib-next/theme/DocPage/styles.module.css +8 -23
  147. package/lib-next/theme/DocPaginator/index.js +7 -11
  148. package/lib-next/theme/DocSidebar/index.js +69 -295
  149. package/lib-next/theme/DocSidebar/styles.module.css +0 -18
  150. package/lib-next/theme/DocSidebarItem/index.js +217 -0
  151. package/lib-next/theme/DocSidebarItem/styles.module.css +19 -0
  152. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  153. package/lib-next/theme/DocTagsListPage/index.js +38 -0
  154. package/lib-next/theme/DocVersionBadge/index.js +27 -0
  155. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +51 -36
  156. package/lib-next/theme/EditThisPage/index.js +6 -1
  157. package/lib-next/theme/ErrorPageContent.js +35 -0
  158. package/lib-next/theme/Footer/index.js +27 -5
  159. package/lib-next/theme/Heading/index.js +25 -29
  160. package/lib-next/theme/Heading/styles.css +5 -6
  161. package/lib-next/theme/Heading/styles.module.css +9 -5
  162. package/lib-next/theme/IconArrow/index.js +2 -2
  163. package/lib-next/theme/IconClose/index.js +23 -0
  164. package/lib-next/theme/IconEdit/index.js +2 -2
  165. package/lib-next/theme/IconExternalLink/index.js +2 -2
  166. package/lib-next/theme/IconLanguage/index.js +2 -2
  167. package/lib-next/theme/IconMenu/index.js +2 -2
  168. package/lib-next/theme/LastUpdated/index.js +3 -2
  169. package/lib-next/theme/Layout/index.js +3 -1
  170. package/lib-next/theme/LayoutHead/index.js +18 -23
  171. package/lib-next/theme/LayoutProviders/index.js +17 -6
  172. package/lib-next/theme/Logo/index.js +25 -21
  173. package/lib-next/theme/MDXComponents/index.js +34 -7
  174. package/lib-next/theme/MDXComponents/styles.css +11 -0
  175. package/lib-next/theme/MDXPage/index.js +10 -2
  176. package/lib-next/theme/Navbar/index.js +193 -56
  177. package/lib-next/theme/Navbar/styles.module.css +10 -3
  178. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
  179. package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
  180. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
  181. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +159 -0
  182. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
  183. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  184. package/lib-next/theme/NavbarItem/index.js +25 -12
  185. package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
  186. package/lib-next/theme/Seo/index.js +11 -7
  187. package/lib-next/theme/SkipToContent/index.js +7 -8
  188. package/lib-next/theme/SkipToContent/styles.module.css +1 -0
  189. package/lib-next/theme/TOC/index.js +12 -36
  190. package/lib-next/theme/TOC/styles.module.css +1 -1
  191. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  192. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  193. package/lib-next/theme/TOCInline/index.js +10 -28
  194. package/lib-next/theme/TOCItems/index.js +85 -0
  195. package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
  196. package/lib-next/theme/Tabs/index.js +91 -43
  197. package/lib-next/theme/Tabs/styles.module.css +0 -13
  198. package/lib-next/theme/Tag/index.js +27 -0
  199. package/lib-next/theme/Tag/styles.module.css +70 -0
  200. package/lib-next/theme/TagsListByLetter/index.js +42 -0
  201. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  202. package/lib-next/theme/TagsListInline/index.js +31 -0
  203. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  204. package/lib-next/theme/ThemeProvider/index.js +10 -7
  205. package/lib-next/theme/ThemedImage/index.js +7 -8
  206. package/lib-next/theme/Toggle/index.js +34 -37
  207. package/lib-next/theme/Toggle/styles.module.css +91 -3
  208. package/lib-next/theme/UserPreferencesProvider/index.js +9 -10
  209. package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
  210. package/lib-next/theme/hooks/useTabGroupChoice.js +2 -4
  211. package/lib-next/theme/hooks/useTheme.js +4 -5
  212. package/lib-next/theme/hooks/useWindowSize.js +34 -20
  213. package/lib-next/theme/prism-include-languages.js +2 -1
  214. package/lib-next/theme-classic.d.ts +806 -0
  215. package/lib-next/translations.js +6 -10
  216. package/lib-next/types.d.ts +0 -599
  217. package/lib-next/validateThemeConfig.js +141 -114
  218. package/package.json +28 -25
  219. package/src/__tests__/validateThemeConfig.test.js +277 -3
  220. package/src/admonitions.css +35 -0
  221. package/src/deps.d.ts +13 -0
  222. package/src/index.ts +55 -22
  223. package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
  224. package/src/theme/AnnouncementBar/index.tsx +10 -17
  225. package/src/theme/AnnouncementBar/styles.module.css +25 -30
  226. package/src/theme/BackToTopButton/index.tsx +142 -0
  227. package/src/theme/BackToTopButton/styles.module.css +42 -0
  228. package/src/theme/BlogArchivePage/index.tsx +91 -0
  229. package/src/theme/BlogLayout/index.tsx +44 -0
  230. package/src/theme/BlogListPage/index.tsx +18 -25
  231. package/src/theme/BlogPostAuthor/index.tsx +49 -0
  232. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  233. package/src/theme/BlogPostAuthors/index.tsx +39 -0
  234. package/src/theme/BlogPostAuthors/styles.module.css +11 -0
  235. package/src/theme/BlogPostItem/index.tsx +70 -80
  236. package/src/theme/BlogPostPage/index.tsx +72 -35
  237. package/src/theme/BlogSidebar/index.tsx +11 -13
  238. package/src/theme/BlogSidebar/styles.module.css +2 -2
  239. package/src/theme/BlogTagsListPage/index.tsx +14 -57
  240. package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
  241. package/src/theme/CodeBlock/index.tsx +21 -151
  242. package/src/theme/CodeBlock/styles.module.css +6 -9
  243. package/src/theme/Details/index.tsx +24 -0
  244. package/src/theme/Details/styles.module.css +13 -0
  245. package/src/theme/DocCard/index.tsx +100 -0
  246. package/src/theme/DocCard/styles.module.css +43 -0
  247. package/src/theme/DocCardList/index.tsx +27 -0
  248. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
  249. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  250. package/src/theme/DocItem/index.tsx +43 -56
  251. package/src/theme/DocItem/styles.module.css +5 -9
  252. package/src/theme/DocItemFooter/index.tsx +91 -0
  253. package/src/theme/DocItemFooter/styles.module.css +18 -0
  254. package/src/theme/DocPage/index.tsx +44 -42
  255. package/src/theme/DocPage/styles.module.css +8 -23
  256. package/src/theme/DocPaginator/index.tsx +9 -13
  257. package/src/theme/DocSidebar/index.tsx +80 -307
  258. package/src/theme/DocSidebar/styles.module.css +0 -18
  259. package/src/theme/DocSidebarItem/index.tsx +242 -0
  260. package/src/theme/DocSidebarItem/styles.module.css +19 -0
  261. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  262. package/src/theme/DocTagsListPage/index.tsx +41 -0
  263. package/src/theme/DocVersionBadge/index.tsx +30 -0
  264. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +74 -44
  265. package/src/theme/EditThisPage/index.tsx +6 -1
  266. package/src/theme/ErrorPageContent.tsx +41 -0
  267. package/src/theme/Footer/index.tsx +30 -6
  268. package/src/theme/Heading/index.tsx +25 -31
  269. package/src/theme/Heading/styles.css +5 -6
  270. package/src/theme/Heading/styles.module.css +9 -5
  271. package/src/theme/IconArrow/index.tsx +2 -2
  272. package/src/theme/IconClose/index.tsx +26 -0
  273. package/src/theme/IconEdit/index.tsx +2 -2
  274. package/src/theme/IconExternalLink/index.tsx +2 -5
  275. package/src/theme/IconLanguage/index.tsx +2 -6
  276. package/src/theme/IconMenu/index.tsx +3 -3
  277. package/src/theme/LastUpdated/index.tsx +3 -2
  278. package/src/theme/Layout/index.tsx +3 -1
  279. package/src/theme/LayoutHead/index.tsx +18 -17
  280. package/src/theme/LayoutProviders/index.tsx +17 -6
  281. package/src/theme/Logo/index.tsx +21 -17
  282. package/src/theme/MDXComponents/index.tsx +39 -5
  283. package/src/theme/MDXComponents/styles.css +11 -0
  284. package/src/theme/MDXPage/index.tsx +10 -2
  285. package/src/theme/Navbar/index.tsx +203 -61
  286. package/src/theme/Navbar/styles.module.css +10 -3
  287. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
  288. package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
  289. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
  290. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  291. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  292. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
  293. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  294. package/src/theme/NavbarItem/index.tsx +41 -16
  295. package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
  296. package/src/theme/Seo/index.tsx +7 -4
  297. package/src/theme/SkipToContent/index.tsx +7 -8
  298. package/src/theme/SkipToContent/styles.module.css +1 -0
  299. package/src/theme/TOC/index.tsx +12 -41
  300. package/src/theme/TOC/styles.module.css +1 -1
  301. package/src/theme/TOCCollapsible/index.tsx +58 -0
  302. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  303. package/src/theme/TOCInline/index.tsx +13 -32
  304. package/src/theme/TOCItems/index.tsx +96 -0
  305. package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
  306. package/src/theme/Tabs/index.tsx +93 -49
  307. package/src/theme/Tabs/styles.module.css +0 -13
  308. package/src/theme/Tag/index.tsx +31 -0
  309. package/src/theme/Tag/styles.module.css +70 -0
  310. package/src/theme/TagsListByLetter/index.tsx +45 -0
  311. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  312. package/src/theme/TagsListInline/index.tsx +35 -0
  313. package/src/theme/TagsListInline/styles.module.css +15 -0
  314. package/src/theme/ThemeProvider/index.tsx +6 -2
  315. package/src/theme/ThemedImage/index.tsx +8 -8
  316. package/src/theme/Toggle/index.tsx +36 -43
  317. package/src/theme/Toggle/styles.module.css +91 -3
  318. package/src/theme/UserPreferencesProvider/index.tsx +9 -11
  319. package/src/theme/hooks/useHideableNavbar.ts +32 -45
  320. package/src/theme/hooks/useTabGroupChoice.ts +4 -4
  321. package/src/theme/hooks/useTheme.ts +4 -5
  322. package/src/theme/hooks/useWindowSize.ts +38 -20
  323. package/src/theme/prism-include-languages.ts +3 -2
  324. package/src/theme-classic.d.ts +806 -0
  325. package/src/translations.ts +8 -10
  326. package/src/types.d.ts +0 -599
  327. package/src/{validateThemeConfig.js → validateThemeConfig.ts} +151 -94
  328. package/tsconfig.json +1 -2
  329. package/codeTranslations/README.md +0 -20
  330. package/codeTranslations/ar.json +0 -57
  331. package/codeTranslations/base.json +0 -112
  332. package/codeTranslations/bn.json +0 -56
  333. package/codeTranslations/da.json +0 -57
  334. package/codeTranslations/de.json +0 -57
  335. package/codeTranslations/es.json +0 -57
  336. package/codeTranslations/fa.json +0 -57
  337. package/codeTranslations/fil.json +0 -57
  338. package/codeTranslations/fr.json +0 -57
  339. package/codeTranslations/he.json +0 -57
  340. package/codeTranslations/hi.json +0 -57
  341. package/codeTranslations/ja.json +0 -57
  342. package/codeTranslations/ko.json +0 -57
  343. package/codeTranslations/pl.json +0 -57
  344. package/codeTranslations/pt-BR.json +0 -57
  345. package/codeTranslations/pt-PT.json +0 -57
  346. package/codeTranslations/ru.json +0 -57
  347. package/codeTranslations/tr.json +0 -57
  348. package/codeTranslations/vi.json +0 -57
  349. package/codeTranslations/zh-Hans.json +0 -57
  350. package/codeTranslations/zh-Hant.json +0 -57
  351. package/lib/theme/Toggle/styles.css +0 -103
  352. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  353. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  354. package/lib/theme/hooks/useScrollPosition.js +0 -49
  355. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  356. package/lib-next/theme/Toggle/styles.css +0 -103
  357. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  358. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  359. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  360. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  361. package/src/theme/Toggle/styles.css +0 -103
  362. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  363. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  364. package/src/theme/hooks/useScrollPosition.ts +0 -45
  365. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  366. package/update-code-translations.js +0 -239
  367. package/update-code-translations.test.js +0 -33
@@ -5,91 +5,25 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import React, {useEffect, useState, useRef} from 'react';
8
+ import React, {useEffect, useState} from 'react';
9
9
  import clsx from 'clsx';
10
10
  import Highlight, {defaultProps, Language} from 'prism-react-renderer';
11
11
  import copy from 'copy-text-to-clipboard';
12
- import rangeParser from 'parse-numeric-range';
12
+ import Translate, {translate} from '@docusaurus/Translate';
13
+ import {
14
+ useThemeConfig,
15
+ parseCodeBlockTitle,
16
+ parseLanguage,
17
+ parseLines,
18
+ } from '@docusaurus/theme-common';
13
19
  import usePrismTheme from '@theme/hooks/usePrismTheme';
14
20
  import type {Props} from '@theme/CodeBlock';
15
- import Translate, {translate} from '@docusaurus/Translate';
16
21
 
17
22
  import styles from './styles.module.css';
18
23
 
19
- import {useThemeConfig, parseCodeBlockTitle} from '@docusaurus/theme-common';
20
-
21
- const highlightLinesRangeRegex = /{([\d,-]+)}/;
22
- const getHighlightDirectiveRegex = (
23
- languages = ['js', 'jsBlock', 'jsx', 'python', 'html'],
24
- ) => {
25
- // supported types of comments
26
- const comments = {
27
- js: {
28
- start: '\\/\\/',
29
- end: '',
30
- },
31
- jsBlock: {
32
- start: '\\/\\*',
33
- end: '\\*\\/',
34
- },
35
- jsx: {
36
- start: '\\{\\s*\\/\\*',
37
- end: '\\*\\/\\s*\\}',
38
- },
39
- python: {
40
- start: '#',
41
- end: '',
42
- },
43
- html: {
44
- start: '<!--',
45
- end: '-->',
46
- },
47
- };
48
- // supported directives
49
- const directives = [
50
- 'highlight-next-line',
51
- 'highlight-start',
52
- 'highlight-end',
53
- ].join('|');
54
- // to be more reliable, the opening and closing comment must match
55
- const commentPattern = languages
56
- .map(
57
- (lang) =>
58
- `(?:${comments[lang].start}\\s*(${directives})\\s*${comments[lang].end})`,
59
- )
60
- .join('|');
61
- // white space is allowed, but otherwise it should be on it's own line
62
- return new RegExp(`^\\s*(?:${commentPattern})\\s*$`);
63
- };
64
- // select comment styles based on language
65
- const highlightDirectiveRegex = (lang) => {
66
- switch (lang) {
67
- case 'js':
68
- case 'javascript':
69
- case 'ts':
70
- case 'typescript':
71
- return getHighlightDirectiveRegex(['js', 'jsBlock']);
72
-
73
- case 'jsx':
74
- case 'tsx':
75
- return getHighlightDirectiveRegex(['js', 'jsBlock', 'jsx']);
76
-
77
- case 'html':
78
- return getHighlightDirectiveRegex(['js', 'jsBlock', 'html']);
79
-
80
- case 'python':
81
- case 'py':
82
- return getHighlightDirectiveRegex(['python']);
83
-
84
- default:
85
- // all comment types
86
- return getHighlightDirectiveRegex();
87
- }
88
- };
89
-
90
24
  export default function CodeBlock({
91
25
  children,
92
- className: languageClassName,
26
+ className: blockClassName,
93
27
  metastring,
94
28
  title,
95
29
  }: Props): JSX.Element {
@@ -112,78 +46,16 @@ export default function CodeBlock({
112
46
  // so we probably don't need to parse the metastring
113
47
  // (note: title="xyz" => title prop still has the quotes)
114
48
  const codeBlockTitle = parseCodeBlockTitle(metastring) || title;
115
-
116
- const button = useRef(null);
117
- let highlightLines: number[] = [];
118
-
119
49
  const prismTheme = usePrismTheme();
120
50
 
121
51
  // In case interleaved Markdown (e.g. when using CodeBlock as standalone component).
122
- const content = Array.isArray(children) ? children.join('') : children;
123
-
124
- if (metastring && highlightLinesRangeRegex.test(metastring)) {
125
- // Tested above
126
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
127
- const highlightLinesRange = metastring.match(highlightLinesRangeRegex)![1];
128
- highlightLines = rangeParser(highlightLinesRange).filter((n) => n > 0);
129
- }
130
-
131
- let language =
132
- languageClassName &&
133
- // Force Prism's language union type to `any` because it does not contain all available languages
134
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
135
- ((languageClassName.replace(/language-/, '') as Language) as any);
136
-
137
- if (!language && prism.defaultLanguage) {
138
- language = prism.defaultLanguage;
139
- }
52
+ const content = Array.isArray(children)
53
+ ? children.join('')
54
+ : (children as string);
140
55
 
141
- // only declaration OR directive highlight can be used for a block
142
- let code = content.replace(/\n$/, '');
143
- if (highlightLines.length === 0 && language !== undefined) {
144
- let range = '';
145
- const directiveRegex = highlightDirectiveRegex(language);
146
- // go through line by line
147
- const lines = content.replace(/\n$/, '').split('\n');
148
- let blockStart;
149
- // loop through lines
150
- for (let index = 0; index < lines.length; ) {
151
- const line = lines[index];
152
- // adjust for 0-index
153
- const lineNumber = index + 1;
154
- const match = line.match(directiveRegex);
155
- if (match !== null) {
156
- const directive = match
157
- .slice(1)
158
- .reduce(
159
- (final: string | undefined, item) => final || item,
160
- undefined,
161
- );
162
- switch (directive) {
163
- case 'highlight-next-line':
164
- range += `${lineNumber},`;
165
- break;
166
-
167
- case 'highlight-start':
168
- blockStart = lineNumber;
169
- break;
170
-
171
- case 'highlight-end':
172
- range += `${blockStart}-${lineNumber - 1},`;
173
- break;
174
-
175
- default:
176
- break;
177
- }
178
- lines.splice(index, 1);
179
- } else {
180
- // lines without directives are unchanged
181
- index += 1;
182
- }
183
- }
184
- highlightLines = rangeParser(range);
185
- code = lines.join('\n');
186
- }
56
+ const language =
57
+ parseLanguage(blockClassName) ?? (prism.defaultLanguage as Language);
58
+ const {highlightLines, code} = parseLines(content, metastring, language);
187
59
 
188
60
  const handleCopyCode = () => {
189
61
  copy(code);
@@ -200,7 +72,7 @@ export default function CodeBlock({
200
72
  code={code}
201
73
  language={language}>
202
74
  {({className, style, tokens, getLineProps, getTokenProps}) => (
203
- <div className={styles.codeBlockContainer}>
75
+ <div className={clsx(styles.codeBlockContainer, blockClassName)}>
204
76
  {codeBlockTitle && (
205
77
  <div style={style} className={styles.codeBlockTitle}>
206
78
  {codeBlockTitle}
@@ -210,19 +82,17 @@ export default function CodeBlock({
210
82
  <pre
211
83
  /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
212
84
  tabIndex={0}
213
- className={clsx(className, styles.codeBlock, 'thin-scrollbar', {
214
- [styles.codeBlockWithTitle]: codeBlockTitle,
215
- })}
85
+ className={clsx(className, styles.codeBlock, 'thin-scrollbar')}
216
86
  style={style}>
217
87
  <code className={styles.codeBlockLines}>
218
88
  {tokens.map((line, i) => {
219
- if (line.length === 1 && line[0].content === '') {
220
- line[0].content = '\n'; // eslint-disable-line no-param-reassign
89
+ if (line.length === 1 && line[0].content === '\n') {
90
+ line[0].content = '';
221
91
  }
222
92
 
223
93
  const lineProps = getLineProps({line, key: i});
224
94
 
225
- if (highlightLines.includes(i + 1)) {
95
+ if (highlightLines.includes(i)) {
226
96
  lineProps.className += ' docusaurus-highlight-code-line';
227
97
  }
228
98
 
@@ -231,6 +101,7 @@ export default function CodeBlock({
231
101
  {line.map((token, key) => (
232
102
  <span key={key} {...getTokenProps({token, key})} />
233
103
  ))}
104
+ <br />
234
105
  </span>
235
106
  );
236
107
  })}
@@ -238,7 +109,6 @@ export default function CodeBlock({
238
109
  </pre>
239
110
 
240
111
  <button
241
- ref={button}
242
112
  type="button"
243
113
  aria-label={translate({
244
114
  id: 'theme.CodeBlock.copyButtonAriaLabel',
@@ -7,6 +7,9 @@
7
7
 
8
8
  .codeBlockContainer {
9
9
  margin-bottom: var(--ifm-leading);
10
+ border-radius: var(--ifm-global-radius);
11
+ box-shadow: var(--ifm-global-shadow-lw);
12
+ overflow: hidden;
10
13
  }
11
14
 
12
15
  .codeBlockContent {
@@ -16,8 +19,6 @@
16
19
  }
17
20
 
18
21
  .codeBlockTitle {
19
- border-top-left-radius: var(--ifm-global-radius);
20
- border-top-right-radius: var(--ifm-global-radius);
21
22
  border-bottom: 1px solid var(--ifm-color-emphasis-300);
22
23
  font-size: var(--ifm-code-font-size);
23
24
  font-weight: 500;
@@ -25,12 +26,9 @@
25
26
  }
26
27
 
27
28
  .codeBlock {
29
+ margin: 0;
28
30
  padding: 0;
29
- }
30
-
31
- .codeBlockWithTitle {
32
- border-top-left-radius: 0;
33
- border-top-right-radius: 0;
31
+ border-radius: 0;
34
32
  }
35
33
 
36
34
  .copyButton {
@@ -54,11 +52,10 @@
54
52
 
55
53
  .codeBlockLines {
56
54
  font: inherit;
55
+ /*rtl:ignore*/
57
56
  float: left;
58
57
  min-width: 100%;
59
58
  padding: var(--ifm-pre-padding);
60
- display: flex;
61
- flex-direction: column;
62
59
  }
63
60
 
64
61
  @media print {
@@ -0,0 +1,24 @@
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 {Details as DetailsGeneric} from '@docusaurus/theme-common';
11
+ import type {Props} from '@theme/Details';
12
+ import styles from './styles.module.css';
13
+
14
+ // Should we have a custom details/summary comp in Infima instead of reusing alert classes?
15
+ const InfimaClasses = 'alert alert--info';
16
+
17
+ export default function Details({...props}: Props): JSX.Element {
18
+ return (
19
+ <DetailsGeneric
20
+ {...props}
21
+ className={clsx(InfimaClasses, styles.details, props.className)}
22
+ />
23
+ );
24
+ }
@@ -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
+ .details {
9
+ --docusaurus-details-decoration-color: var(--ifm-alert-border-color);
10
+ --docusaurus-details-transition: transform var(--ifm-transition-fast) ease;
11
+ margin: 0 0 var(--ifm-spacing-vertical);
12
+ border: 1px solid var(--ifm-alert-border-color);
13
+ }
@@ -0,0 +1,100 @@
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, {ReactNode} from 'react';
9
+ import Link from '@docusaurus/Link';
10
+ import {
11
+ PropSidebarItemCategory,
12
+ PropSidebarItemLink,
13
+ } from '@docusaurus/plugin-content-docs';
14
+ import type {Props} from '@theme/DocCard';
15
+ import {findFirstCategoryLink, useDocById} from '@docusaurus/theme-common';
16
+ import clsx from 'clsx';
17
+ import styles from './styles.module.css';
18
+ import isInternalUrl from '@docusaurus/isInternalUrl';
19
+
20
+ function CardContainer({
21
+ href,
22
+ children,
23
+ }: {
24
+ href?: string;
25
+ children: ReactNode;
26
+ }): JSX.Element {
27
+ const className = clsx(
28
+ 'card margin-bottom--lg padding--lg',
29
+ styles.cardContainer,
30
+ href && styles.cardContainerLink,
31
+ );
32
+ return href ? (
33
+ <Link href={href} className={className}>
34
+ {children}
35
+ </Link>
36
+ ) : (
37
+ <div className={className}>{children}</div>
38
+ );
39
+ }
40
+
41
+ function CardLayout({
42
+ href,
43
+ icon,
44
+ title,
45
+ description,
46
+ }: {
47
+ href?: string;
48
+ icon: ReactNode;
49
+ title: string;
50
+ description?: string;
51
+ }): JSX.Element {
52
+ return (
53
+ <CardContainer href={href}>
54
+ <h2 className={clsx('text--truncate', styles.cardTitle)} title={title}>
55
+ {icon} {title}
56
+ </h2>
57
+ <div
58
+ className={clsx('text--truncate', styles.cardDescription)}
59
+ title={description}>
60
+ {description}
61
+ </div>
62
+ </CardContainer>
63
+ );
64
+ }
65
+
66
+ function CardCategory({item}: {item: PropSidebarItemCategory}): JSX.Element {
67
+ const href = findFirstCategoryLink(item);
68
+ return (
69
+ <CardLayout
70
+ href={href}
71
+ icon="🗃️"
72
+ title={item.label}
73
+ description={`${item.items.length} items`}
74
+ />
75
+ );
76
+ }
77
+
78
+ function CardLink({item}: {item: PropSidebarItemLink}): JSX.Element {
79
+ const icon = isInternalUrl(item.href) ? '📄️' : '🔗';
80
+ const doc = useDocById(item.docId ?? undefined);
81
+ return (
82
+ <CardLayout
83
+ href={item.href}
84
+ icon={icon}
85
+ title={item.label}
86
+ description={doc?.description}
87
+ />
88
+ );
89
+ }
90
+
91
+ export default function DocCard({item}: Props): JSX.Element {
92
+ switch (item.type) {
93
+ case 'link':
94
+ return <CardLink item={item} />;
95
+ case 'category':
96
+ return <CardCategory item={item} />;
97
+ default:
98
+ throw new Error(`unknown item type ${JSON.stringify(item)}`);
99
+ }
100
+ }
@@ -0,0 +1,43 @@
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
+ .cardContainer {
9
+ height: 8rem;
10
+
11
+ color: var(--ifm-color-emphasis-800);
12
+ --ifm-link-color: var(--ifm-color-emphasis-800);
13
+ --ifm-link-hover-color: var(--ifm-color-emphasis-800);
14
+ --ifm-link-hover-decoration: none;
15
+
16
+ /* box-shadow: var(--ifm-global-shadow-lw); */
17
+ box-shadow: 0 1.5px 3px 0 rgba(0, 0, 0, 0.15);
18
+ border: 1px solid var(--ifm-color-emphasis-200);
19
+ transition: box-shadow var(--ifm-transition-fast) ease,
20
+ background-color var(--ifm-transition-fast) ease;
21
+ }
22
+
23
+ .cardContainer.cardContainerLink:hover {
24
+ /* box-shadow: var(--ifm-global-shadow-md); */
25
+ box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
26
+ }
27
+ html[data-theme='dark'] .cardContainer.cardContainerLink:hover {
28
+ --ifm-card-background-color: #2d2d2d; /* original, non-hovered color is #242526 */
29
+ }
30
+
31
+ .cardContainer:not(.cardContainerLink) {
32
+ cursor: not-allowed;
33
+ }
34
+
35
+ .cardTitle {
36
+ font-size: 1.2rem;
37
+ min-height: 1.2rem;
38
+ }
39
+
40
+ .cardDescription {
41
+ font-size: 0.8rem;
42
+ min-height: 0.8rem;
43
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import React from 'react';
9
+
10
+ import DocCard from '@theme/DocCard';
11
+ import {PropSidebarItem} from '@docusaurus/plugin-content-docs';
12
+
13
+ export default function DocCardList({
14
+ items,
15
+ }: {
16
+ items: PropSidebarItem[];
17
+ }): JSX.Element {
18
+ return (
19
+ <div className="row">
20
+ {items.map((item, index) => (
21
+ <article key={index} className="col col--6">
22
+ <DocCard item={item} />
23
+ </article>
24
+ ))}
25
+ </div>
26
+ );
27
+ }
@@ -0,0 +1,53 @@
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 {useCurrentSidebarCategory} from '@docusaurus/theme-common';
10
+ import type {Props} from '@theme/DocCategoryGeneratedIndexPage';
11
+ import DocCardList from '@theme/DocCardList';
12
+ import DocPaginator from '@theme/DocPaginator';
13
+ import Seo from '@theme/Seo';
14
+ import DocVersionBanner from '@theme/DocVersionBanner';
15
+ import DocVersionBadge from '@theme/DocVersionBadge';
16
+ import {MainHeading} from '@theme/Heading';
17
+
18
+ import styles from './styles.module.css';
19
+
20
+ export default function DocCategoryGeneratedIndexPage({
21
+ categoryGeneratedIndex,
22
+ }: Props): JSX.Element {
23
+ const category = useCurrentSidebarCategory();
24
+ return (
25
+ <>
26
+ <Seo
27
+ title={categoryGeneratedIndex.title}
28
+ description={categoryGeneratedIndex.description}
29
+ />
30
+ <div className={styles.generatedIndexPage}>
31
+ <DocVersionBanner />
32
+ <DocVersionBadge />
33
+ <header>
34
+ <MainHeading className={styles.title}>
35
+ {categoryGeneratedIndex.title}
36
+ </MainHeading>
37
+ {categoryGeneratedIndex.description && (
38
+ <p>{categoryGeneratedIndex.description}</p>
39
+ )}
40
+ </header>
41
+ <main className="margin-top--lg">
42
+ <DocCardList items={category.items} />
43
+ </main>
44
+ <footer className="margin-top--lg">
45
+ <DocPaginator
46
+ previous={categoryGeneratedIndex.navigation.previous}
47
+ next={categoryGeneratedIndex.navigation.next}
48
+ />
49
+ </footer>
50
+ </div>
51
+ </>
52
+ );
53
+ }
@@ -0,0 +1,18 @@
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
+ @media (min-width: 997px) {
9
+ .generatedIndexPage {
10
+ max-width: 75% !important;
11
+ }
12
+ }
13
+
14
+ /* Duplicated from .markdown h1 */
15
+ .title {
16
+ --ifm-h1-font-size: 3rem;
17
+ margin-bottom: calc(1.25 * var(--ifm-leading));
18
+ }