@docusaurus/theme-classic 2.0.0-beta.12faed89d → 2.0.0-beta.14

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