@redocly/theme 0.15.1 → 0.17.0

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 (348) hide show
  1. package/lib/I18n/LanguagePicker.js +2 -1
  2. package/lib/components/Breadcrumbs/Breadcrumb.js +0 -1
  3. package/lib/components/Breadcrumbs/Breadcrumbs.js +6 -0
  4. package/lib/components/Cards/Card.d.ts +1 -0
  5. package/lib/components/Cards/Card.js +1 -1
  6. package/lib/components/Cards/CardsBlock.d.ts +1 -3
  7. package/lib/components/Cards/CardsBlock.js +2 -1
  8. package/lib/components/Catalog/Catalog.js +1 -1
  9. package/lib/components/CodeBlock/CodeBlock.d.ts +1 -3
  10. package/lib/components/CodeBlock/CodeBlock.js +2 -1
  11. package/lib/components/CodeSample/CodeSample.d.ts +2 -1
  12. package/lib/components/CodeSample/CodeSample.js +3 -2
  13. package/lib/components/ColorModeSwitcher/ColorModeSwitcher.d.ts +5 -1
  14. package/lib/components/ColorModeSwitcher/ColorModeSwitcher.js +3 -2
  15. package/lib/components/Feedback/Comment.d.ts +1 -1
  16. package/lib/components/Feedback/Comment.js +3 -3
  17. package/lib/components/Feedback/Rating.d.ts +1 -1
  18. package/lib/components/Feedback/Rating.js +2 -2
  19. package/lib/components/Feedback/Reasons.d.ts +1 -1
  20. package/lib/components/Feedback/Reasons.js +2 -2
  21. package/lib/components/Feedback/ReportDialog.js +1 -1
  22. package/lib/components/Feedback/Sentiment.d.ts +1 -1
  23. package/lib/components/Feedback/Sentiment.js +2 -2
  24. package/lib/components/Feedback/types.d.ts +5 -0
  25. package/lib/components/Footer/CustomFooter.d.ts +2 -1
  26. package/lib/components/Footer/CustomFooter.js +2 -2
  27. package/lib/components/Footer/CustomFooterNavItem.d.ts +2 -1
  28. package/lib/components/Footer/CustomFooterNavItem.js +2 -2
  29. package/lib/components/Footer/Footer.d.ts +2 -1
  30. package/lib/components/Footer/Footer.js +2 -2
  31. package/lib/components/Footer/FooterColumn.d.ts +2 -1
  32. package/lib/components/Footer/FooterColumn.js +2 -2
  33. package/lib/components/Footer/FooterColumns.d.ts +2 -1
  34. package/lib/components/Footer/FooterColumns.js +2 -2
  35. package/lib/components/Footer/FooterCopyright.d.ts +2 -1
  36. package/lib/components/Footer/FooterCopyright.js +2 -2
  37. package/lib/components/JsonViewer/JsonViewer.d.ts +1 -3
  38. package/lib/components/LastUpdated/LastUpdated.d.ts +1 -0
  39. package/lib/components/LastUpdated/LastUpdated.js +1 -1
  40. package/lib/components/Markdown/ContainerWrapper.d.ts +1 -3
  41. package/lib/components/Markdown/ContainerWrapper.js +2 -1
  42. package/lib/components/Markdown/Heading.d.ts +2 -1
  43. package/lib/components/Markdown/Heading.js +2 -2
  44. package/lib/components/Markdown/MarkdownLayout.d.ts +2 -1
  45. package/lib/components/Markdown/MarkdownLayout.js +2 -2
  46. package/lib/components/Markdown/MarkdownWrapper.d.ts +1 -3
  47. package/lib/components/Markdown/MarkdownWrapper.js +2 -1
  48. package/lib/components/Markdown/Mermaid.d.ts +2 -1
  49. package/lib/components/Markdown/Mermaid.js +3 -2
  50. package/lib/components/Markdown/PageWrapper.d.ts +1 -3
  51. package/lib/components/Markdown/PageWrapper.js +2 -1
  52. package/lib/components/Markdown/Sup.d.ts +3 -1
  53. package/lib/components/Markdown/Sup.js +2 -2
  54. package/lib/components/Menu/Menu.d.ts +3 -1
  55. package/lib/components/Menu/Menu.js +6 -4
  56. package/lib/components/Menu/MenuContainer.d.ts +1 -0
  57. package/lib/components/Menu/MenuContainer.js +2 -1
  58. package/lib/components/Menu/MenuGroup.d.ts +2 -1
  59. package/lib/components/Menu/MenuGroup.js +3 -3
  60. package/lib/components/Menu/MenuItem.d.ts +1 -1
  61. package/lib/components/Menu/MenuItem.js +19 -3
  62. package/lib/components/Menu/MenuItemLabel.d.ts +1 -3
  63. package/lib/components/Menu/MenuItemLabel.js +18 -9
  64. package/lib/components/Menu/MenuItemSwitch.js +4 -2
  65. package/lib/components/Menu/MenuLink.d.ts +1 -3
  66. package/lib/components/Menu/MenuLink.js +2 -1
  67. package/lib/components/Menu/MenuLinkItem.d.ts +1 -1
  68. package/lib/components/Menu/MenuLinkItem.js +2 -2
  69. package/lib/components/Menu/MobileMenu.d.ts +11 -0
  70. package/lib/components/Menu/MobileMenu.js +179 -0
  71. package/lib/components/Menu/MobileMenuGroup.d.ts +9 -0
  72. package/lib/components/Menu/MobileMenuGroup.js +53 -0
  73. package/lib/components/Menu/index.d.ts +1 -0
  74. package/lib/components/Menu/index.js +1 -0
  75. package/lib/components/Navbar/BurgerButton.d.ts +5 -0
  76. package/lib/components/Navbar/BurgerButton.js +29 -0
  77. package/lib/components/Navbar/MobileUserProfile.d.ts +2 -0
  78. package/lib/components/Navbar/MobileUserProfile.js +78 -0
  79. package/lib/components/Navbar/Navbar.d.ts +1 -0
  80. package/lib/components/Navbar/Navbar.js +29 -9
  81. package/lib/components/Navbar/NavbarDropdown.d.ts +2 -1
  82. package/lib/components/Navbar/NavbarDropdown.js +2 -2
  83. package/lib/components/Navbar/NavbarMenu.d.ts +2 -1
  84. package/lib/components/Navbar/NavbarMenu.js +2 -2
  85. package/lib/components/NavbarLogo/NavbarLogo.d.ts +2 -1
  86. package/lib/components/NavbarLogo/NavbarLogo.js +2 -2
  87. package/lib/components/OpenApiDocs/DevOnboardingTryItSecurity.d.ts +1 -1
  88. package/lib/components/OpenApiDocs/DevOnboardingTryItSecurity.js +1 -1
  89. package/lib/components/PageNavigation/NextButton.d.ts +2 -1
  90. package/lib/components/PageNavigation/NextButton.js +2 -2
  91. package/lib/components/PageNavigation/PageNavigation.d.ts +2 -1
  92. package/lib/components/PageNavigation/PageNavigation.js +2 -2
  93. package/lib/components/PageNavigation/PreviousButton.d.ts +2 -1
  94. package/lib/components/PageNavigation/PreviousButton.js +2 -2
  95. package/lib/components/Panel/PanelBody.d.ts +1 -3
  96. package/lib/components/Panel/PanelBody.js +2 -1
  97. package/lib/components/Panel/PanelHeader.d.ts +1 -3
  98. package/lib/components/Panel/PanelHeader.js +2 -1
  99. package/lib/components/Panel/PanelHeaderTitle.d.ts +1 -3
  100. package/lib/components/Panel/PanelHeaderTitle.js +2 -1
  101. package/lib/components/Profile/Profile.d.ts +6 -0
  102. package/lib/components/Profile/Profile.js +7 -7
  103. package/lib/components/Profile/types.d.ts +1 -0
  104. package/lib/components/SamplesPanelControls/SamplesPanelControls.d.ts +2 -6
  105. package/lib/components/SamplesPanelControls/SamplesPanelControls.js +2 -1
  106. package/lib/components/Search/CancelSearch.d.ts +2 -1
  107. package/lib/components/Search/CancelSearch.js +2 -2
  108. package/lib/components/Search/ClearIcon.d.ts +1 -3
  109. package/lib/components/Search/ClearIcon.js +2 -1
  110. package/lib/components/Search/ClockBackwardsIcon.d.ts +1 -4
  111. package/lib/components/Search/Input.d.ts +1 -3
  112. package/lib/components/Search/Input.js +2 -1
  113. package/lib/components/Search/InputWrapper.d.ts +2 -1
  114. package/lib/components/Search/InputWrapper.js +2 -2
  115. package/lib/components/Search/MobileSearchTrigger.d.ts +2 -1
  116. package/lib/components/Search/MobileSearchTrigger.js +6 -5
  117. package/lib/components/Search/Popover.d.ts +1 -3
  118. package/lib/components/Search/Popover.js +3 -2
  119. package/lib/components/Search/RecentSearches.d.ts +2 -1
  120. package/lib/components/Search/RecentSearches.js +3 -3
  121. package/lib/components/Search/Search.d.ts +3 -1
  122. package/lib/components/Search/Search.js +2 -2
  123. package/lib/components/Search/SearchDialog.d.ts +2 -1
  124. package/lib/components/Search/SearchDialog.js +4 -3
  125. package/lib/components/Search/SearchIcon.d.ts +1 -3
  126. package/lib/components/Search/SearchIcon.js +2 -1
  127. package/lib/components/Search/SearchItem.d.ts +2 -1
  128. package/lib/components/Search/SearchItem.js +3 -3
  129. package/lib/components/Search/SearchTrigger.d.ts +2 -1
  130. package/lib/components/Search/SearchTrigger.js +2 -2
  131. package/lib/components/Search/Shortcut.d.ts +2 -1
  132. package/lib/components/Search/Shortcut.js +2 -2
  133. package/lib/components/Search/ShortcutKey.d.ts +1 -0
  134. package/lib/components/Search/ShortcutKey.js +1 -1
  135. package/lib/components/Search/SidebarSearch.d.ts +1 -3
  136. package/lib/components/Search/SidebarSearch.js +2 -1
  137. package/lib/components/Search/SuggestedPages.d.ts +3 -1
  138. package/lib/components/Search/SuggestedPages.js +2 -2
  139. package/lib/components/Separator/Separator.d.ts +1 -1
  140. package/lib/components/Separator/Separator.js +2 -2
  141. package/lib/components/Separator/SeparatorItem.d.ts +1 -5
  142. package/lib/components/Separator/SeparatorItem.js +7 -2
  143. package/lib/components/Separator/SeparatorLine.d.ts +1 -3
  144. package/lib/components/Separator/SeparatorLine.js +2 -1
  145. package/lib/components/Sidebar/ApiCallItem.d.ts +1 -1
  146. package/lib/components/Sidebar/ApiCallItem.js +10 -3
  147. package/lib/components/Sidebar/BackButton.d.ts +2 -1
  148. package/lib/components/Sidebar/BackButton.js +2 -2
  149. package/lib/components/Sidebar/Drilldown.d.ts +2 -1
  150. package/lib/components/Sidebar/Drilldown.js +2 -2
  151. package/lib/components/Sidebar/DrilldownMenu.d.ts +1 -1
  152. package/lib/components/Sidebar/DrilldownMenu.js +3 -3
  153. package/lib/components/Sidebar/DrilldownMenuItem.d.ts +1 -1
  154. package/lib/components/Sidebar/DrilldownMenuItem.js +2 -2
  155. package/lib/components/Sidebar/HeaderWrapper.d.ts +1 -3
  156. package/lib/components/Sidebar/HeaderWrapper.js +2 -1
  157. package/lib/components/Sidebar/MobileSidebarButton.d.ts +1 -3
  158. package/lib/components/Sidebar/MobileSidebarButton.js +3 -2
  159. package/lib/components/Sidebar/Sidebar.d.ts +1 -3
  160. package/lib/components/Sidebar/Sidebar.js +2 -1
  161. package/lib/components/Sidebar/SidebarLayout.d.ts +2 -1
  162. package/lib/components/Sidebar/SidebarLayout.js +2 -4
  163. package/lib/components/Sidebar/types.d.ts +3 -0
  164. package/lib/components/SidebarActions/SidebarActions.d.ts +2 -1
  165. package/lib/components/SidebarActions/SidebarActions.js +2 -2
  166. package/lib/components/SidebarLogo/SidebarLogo.d.ts +2 -1
  167. package/lib/components/SidebarLogo/SidebarLogo.js +2 -2
  168. package/lib/components/TableOfContent/TableOfContent.d.ts +1 -0
  169. package/lib/components/TableOfContent/TableOfContent.js +2 -2
  170. package/lib/components/Tags/Tags.d.ts +2 -1
  171. package/lib/components/Tags/Tags.js +2 -2
  172. package/lib/components/Tiles/TileHeader.d.ts +1 -3
  173. package/lib/components/Tiles/TileHeader.js +2 -1
  174. package/lib/components/Tiles/TileText.d.ts +1 -3
  175. package/lib/components/Tiles/TileText.js +2 -1
  176. package/lib/components/Typography/CompactTypography.d.ts +1 -3
  177. package/lib/components/Typography/Emphasis.d.ts +1 -3
  178. package/lib/components/Typography/Emphasis.js +2 -1
  179. package/lib/components/Typography/H1.d.ts +1 -3
  180. package/lib/components/Typography/H1.js +2 -1
  181. package/lib/components/Typography/H2.d.ts +1 -3
  182. package/lib/components/Typography/H2.js +2 -1
  183. package/lib/components/Typography/H3.d.ts +1 -3
  184. package/lib/components/Typography/H3.js +2 -1
  185. package/lib/components/Typography/SectionHeader.d.ts +1 -3
  186. package/lib/components/Typography/SectionHeader.js +2 -1
  187. package/lib/components/Typography/Typography.d.ts +1 -3
  188. package/lib/components/Typography/Typography.js +2 -1
  189. package/lib/config.d.ts +496 -1
  190. package/lib/config.js +134 -1
  191. package/lib/globalStyle.js +62 -2
  192. package/lib/hooks/useMobileMenu.js +7 -1
  193. package/lib/icons/BurgerIcon/BurgerIcon.d.ts +5 -0
  194. package/lib/icons/BurgerIcon/BurgerIcon.js +15 -0
  195. package/lib/icons/BurgerIcon/index.d.ts +1 -0
  196. package/lib/icons/BurgerIcon/index.js +6 -0
  197. package/lib/icons/CloseIcon/CloseIcon.d.ts +5 -0
  198. package/lib/icons/CloseIcon/CloseIcon.js +16 -0
  199. package/lib/icons/CloseIcon/index.d.ts +1 -0
  200. package/lib/icons/CloseIcon/index.js +6 -0
  201. package/lib/icons/ColorModeIcon/ColorModeIcon.js +5 -1
  202. package/lib/icons/ExpandIcon/ExpandIcon.d.ts +8 -0
  203. package/lib/icons/ExpandIcon/ExpandIcon.js +31 -0
  204. package/lib/icons/ExpandIcon/index.d.ts +1 -0
  205. package/lib/icons/ExpandIcon/index.js +6 -0
  206. package/lib/icons/LogoutIcon/LogoutIcon.d.ts +5 -0
  207. package/lib/icons/LogoutIcon/LogoutIcon.js +17 -0
  208. package/lib/icons/LogoutIcon/index.d.ts +1 -0
  209. package/lib/icons/LogoutIcon/index.js +6 -0
  210. package/lib/icons/index.d.ts +4 -0
  211. package/lib/icons/index.js +4 -0
  212. package/lib/mocks/Sidebar/useSidebarItems.d.ts +3 -0
  213. package/lib/mocks/Sidebar/useSidebarItems.js +8 -0
  214. package/lib/mocks/hooks/index.d.ts +4 -1
  215. package/lib/mocks/hooks/index.js +16 -1
  216. package/lib/mocks/media-css.d.ts +5 -0
  217. package/lib/mocks/media-css.js +5 -0
  218. package/lib/ui/Dropdown.js +1 -1
  219. package/lib/ui/darkColors.js +11 -3
  220. package/package.json +5 -4
  221. package/src/I18n/LanguagePicker.tsx +2 -1
  222. package/src/components/Breadcrumbs/Breadcrumb.tsx +0 -1
  223. package/src/components/Breadcrumbs/Breadcrumbs.tsx +6 -0
  224. package/src/components/Cards/Card.tsx +2 -1
  225. package/src/components/Cards/CardsBlock.tsx +2 -1
  226. package/src/components/Catalog/Catalog.tsx +1 -1
  227. package/src/components/CodeBlock/CodeBlock.ts +2 -1
  228. package/src/components/CodeSample/CodeSample.tsx +4 -1
  229. package/src/components/ColorModeSwitcher/ColorModeSwitcher.tsx +7 -1
  230. package/src/components/Feedback/Comment.tsx +3 -3
  231. package/src/components/Feedback/Rating.tsx +2 -2
  232. package/src/components/Feedback/Reasons.tsx +6 -2
  233. package/src/components/Feedback/ReportDialog.tsx +1 -1
  234. package/src/components/Feedback/Sentiment.tsx +2 -2
  235. package/src/components/Feedback/types.ts +5 -0
  236. package/src/components/Footer/CustomFooter.tsx +3 -2
  237. package/src/components/Footer/CustomFooterNavItem.tsx +3 -2
  238. package/src/components/Footer/Footer.tsx +3 -1
  239. package/src/components/Footer/FooterColumn.tsx +3 -2
  240. package/src/components/Footer/FooterColumns.tsx +3 -2
  241. package/src/components/Footer/FooterCopyright.tsx +6 -1
  242. package/src/components/LastUpdated/LastUpdated.tsx +2 -0
  243. package/src/components/Markdown/ContainerWrapper.tsx +2 -1
  244. package/src/components/Markdown/Heading.tsx +3 -1
  245. package/src/components/Markdown/MarkdownLayout.tsx +3 -1
  246. package/src/components/Markdown/MarkdownWrapper.tsx +2 -1
  247. package/src/components/Markdown/Mermaid.tsx +5 -1
  248. package/src/components/Markdown/PageWrapper.tsx +2 -1
  249. package/src/components/Markdown/Sup.tsx +9 -2
  250. package/src/components/Menu/Menu.tsx +16 -5
  251. package/src/components/Menu/MenuContainer.tsx +3 -1
  252. package/src/components/Menu/MenuGroup.tsx +4 -5
  253. package/src/components/Menu/MenuItem.tsx +22 -4
  254. package/src/components/Menu/MenuItemLabel.tsx +19 -10
  255. package/src/components/Menu/MenuItemSwitch.tsx +7 -5
  256. package/src/components/Menu/MenuLink.tsx +2 -1
  257. package/src/components/Menu/MenuLinkItem.tsx +2 -1
  258. package/src/components/Menu/MobileMenu.tsx +209 -0
  259. package/src/components/Menu/MobileMenuGroup.tsx +73 -0
  260. package/src/components/Menu/index.ts +1 -0
  261. package/src/components/Navbar/BurgerButton.tsx +34 -0
  262. package/src/components/Navbar/MobileUserProfile.tsx +90 -0
  263. package/src/components/Navbar/Navbar.tsx +43 -14
  264. package/src/components/Navbar/NavbarDropdown.tsx +3 -2
  265. package/src/components/Navbar/NavbarMenu.tsx +8 -2
  266. package/src/components/NavbarLogo/NavbarLogo.tsx +11 -3
  267. package/src/components/OpenApiDocs/DevOnboardingTryItSecurity.tsx +2 -4
  268. package/src/components/PageNavigation/NextButton.tsx +3 -1
  269. package/src/components/PageNavigation/PageNavigation.tsx +10 -2
  270. package/src/components/PageNavigation/PreviousButton.tsx +3 -1
  271. package/src/components/Panel/PanelBody.ts +2 -1
  272. package/src/components/Panel/PanelHeader.ts +2 -1
  273. package/src/components/Panel/PanelHeaderTitle.ts +2 -1
  274. package/src/components/Profile/Profile.tsx +2 -2
  275. package/src/components/Profile/types.ts +1 -0
  276. package/src/components/SamplesPanelControls/SamplesPanelControls.ts +6 -3
  277. package/src/components/Search/CancelSearch.tsx +8 -2
  278. package/src/components/Search/ClearIcon.tsx +2 -1
  279. package/src/components/Search/ClockBackwardsIcon.tsx +1 -1
  280. package/src/components/Search/Input.tsx +2 -1
  281. package/src/components/Search/InputWrapper.tsx +3 -1
  282. package/src/components/Search/MobileSearchTrigger.tsx +16 -5
  283. package/src/components/Search/Popover.tsx +3 -2
  284. package/src/components/Search/RecentSearches.tsx +9 -3
  285. package/src/components/Search/Search.tsx +2 -2
  286. package/src/components/Search/SearchDialog.tsx +10 -3
  287. package/src/components/Search/SearchIcon.tsx +2 -1
  288. package/src/components/Search/SearchItem.tsx +4 -1
  289. package/src/components/Search/SearchTrigger.tsx +8 -2
  290. package/src/components/Search/Shortcut.tsx +3 -1
  291. package/src/components/Search/ShortcutKey.tsx +2 -1
  292. package/src/components/Search/SidebarSearch.tsx +2 -1
  293. package/src/components/Search/SuggestedPages.tsx +2 -2
  294. package/src/components/Separator/Separator.tsx +2 -2
  295. package/src/components/Separator/SeparatorItem.tsx +11 -4
  296. package/src/components/Separator/SeparatorLine.tsx +2 -1
  297. package/src/components/Sidebar/ApiCallItem.tsx +12 -4
  298. package/src/components/Sidebar/BackButton.tsx +3 -1
  299. package/src/components/Sidebar/Drilldown.tsx +3 -1
  300. package/src/components/Sidebar/DrilldownMenu.tsx +3 -2
  301. package/src/components/Sidebar/DrilldownMenuItem.tsx +2 -2
  302. package/src/components/Sidebar/HeaderWrapper.tsx +2 -1
  303. package/src/components/Sidebar/MobileSidebarButton.tsx +3 -2
  304. package/src/components/Sidebar/Sidebar.tsx +2 -1
  305. package/src/components/Sidebar/SidebarLayout.tsx +3 -4
  306. package/src/components/Sidebar/types.ts +3 -0
  307. package/src/components/SidebarActions/SidebarActions.tsx +3 -0
  308. package/src/components/SidebarLogo/SidebarLogo.tsx +3 -0
  309. package/src/components/TableOfContent/TableOfContent.tsx +3 -2
  310. package/src/components/Tags/Tags.tsx +2 -2
  311. package/src/components/Tiles/TileHeader.ts +2 -1
  312. package/src/components/Tiles/TileText.tsx +2 -1
  313. package/src/components/Typography/Emphasis.ts +2 -1
  314. package/src/components/Typography/H1.ts +2 -1
  315. package/src/components/Typography/H2.ts +2 -1
  316. package/src/components/Typography/H3.ts +2 -1
  317. package/src/components/Typography/SectionHeader.ts +2 -1
  318. package/src/components/Typography/Typography.ts +2 -1
  319. package/src/config.ts +150 -1
  320. package/src/globalStyle.ts +66 -3
  321. package/src/hooks/useMobileMenu.ts +5 -1
  322. package/src/icons/BurgerIcon/BurgerIcon.tsx +12 -0
  323. package/src/icons/BurgerIcon/index.ts +1 -0
  324. package/src/icons/CloseIcon/CloseIcon.tsx +13 -0
  325. package/src/icons/CloseIcon/index.ts +1 -0
  326. package/src/icons/ColorModeIcon/ColorModeIcon.tsx +5 -1
  327. package/src/icons/ExpandIcon/ExpandIcon.tsx +46 -0
  328. package/src/icons/ExpandIcon/index.ts +1 -0
  329. package/src/icons/LogoutIcon/LogoutIcon.tsx +20 -0
  330. package/src/icons/LogoutIcon/index.ts +1 -0
  331. package/src/icons/index.ts +4 -0
  332. package/src/mocks/Sidebar/useSidebarItems.tsx +7 -0
  333. package/src/mocks/hooks/index.ts +16 -1
  334. package/src/mocks/media-css.ts +1 -0
  335. package/src/ui/Dropdown.tsx +1 -1
  336. package/src/ui/darkColors.tsx +11 -3
  337. package/lib/components/Navbar/MobileNavbarDropdown.d.ts +0 -8
  338. package/lib/components/Navbar/MobileNavbarDropdown.js +0 -30
  339. package/lib/components/Navbar/MobileNavbarItem.d.ts +0 -15
  340. package/lib/components/Navbar/MobileNavbarItem.js +0 -110
  341. package/lib/components/Navbar/MobileNavbarMenu.d.ts +0 -6
  342. package/lib/components/Navbar/MobileNavbarMenu.js +0 -92
  343. package/lib/components/Navbar/MobileNavbarMenuButton.d.ts +0 -4
  344. package/lib/components/Navbar/MobileNavbarMenuButton.js +0 -18
  345. package/src/components/Navbar/MobileNavbarDropdown.tsx +0 -37
  346. package/src/components/Navbar/MobileNavbarItem.tsx +0 -121
  347. package/src/components/Navbar/MobileNavbarMenu.tsx +0 -111
  348. package/src/components/Navbar/MobileNavbarMenuButton.tsx +0 -13
@@ -10,7 +10,7 @@ type StarsProps = {
10
10
  max: number;
11
11
  };
12
12
 
13
- export const Rating = ({ settings, onSubmit }: RatingProps): JSX.Element => {
13
+ export const Rating = ({ settings, onSubmit, className }: RatingProps): JSX.Element => {
14
14
  const {
15
15
  label,
16
16
  max,
@@ -66,7 +66,7 @@ export const Rating = ({ settings, onSubmit }: RatingProps): JSX.Element => {
66
66
  }
67
67
 
68
68
  return (
69
- <Wrapper data-component-name="Feedback/Rating">
69
+ <Wrapper data-component-name="Feedback/Rating" className={className}>
70
70
  <Label data-translation-key={translationKeys.label}>
71
71
  {translate(translationKeys.label, label || 'How helpful was this page?')}
72
72
  </Label>
@@ -5,7 +5,7 @@ import { Button } from '@theme/components/Button/Button';
5
5
  import type { ReasonsProps } from '@theme/components/Feedback';
6
6
  import { useTranslate } from '@portal/hooks';
7
7
 
8
- export const Reasons = ({ settings, onSubmit }: ReasonsProps): JSX.Element => {
8
+ export const Reasons = ({ settings, onSubmit, className }: ReasonsProps): JSX.Element => {
9
9
  const { label, multi, buttonText, items = [] } = settings;
10
10
  const [checkedState, setCheckedState] = React.useState(new Array(items.length).fill(false));
11
11
  const { translate } = useTranslate();
@@ -34,7 +34,11 @@ export const Reasons = ({ settings, onSubmit }: ReasonsProps): JSX.Element => {
34
34
  };
35
35
 
36
36
  return (
37
- <Wrapper data-component-name="Feedback/Reasons" data-translation-key={translationKeys.label}>
37
+ <Wrapper
38
+ data-component-name="Feedback/Reasons"
39
+ data-translation-key={translationKeys.label}
40
+ className={className}
41
+ >
38
42
  <Label>
39
43
  {translate(
40
44
  translationKeys.label,
@@ -35,7 +35,7 @@ const Wrapper = styled.div`
35
35
  width: 100vw;
36
36
  height: 100vh;
37
37
  background: var(--modal-overlay-background-color);
38
- z-index: 10000;
38
+ z-index: var(--z-index-overlay);
39
39
  display: flex;
40
40
  align-items: center;
41
41
  justify-content: center;
@@ -6,7 +6,7 @@ import { Comment, Reasons } from '@theme/components/Feedback';
6
6
  import { ThumbUp, ThumbDown } from '@theme/components/Feedback/Thumbs';
7
7
  import { useTranslate } from '@portal/hooks';
8
8
 
9
- export const Sentiment = ({ settings, onSubmit }: SentimentProps): JSX.Element => {
9
+ export const Sentiment = ({ settings, onSubmit, className }: SentimentProps): JSX.Element => {
10
10
  const { label, submitText, comment: commentSettings, reasons: reasonsSettings } = settings || {};
11
11
  const [score, setScore] = React.useState(0);
12
12
  const [comment, setComment] = React.useState('');
@@ -65,7 +65,7 @@ export const Sentiment = ({ settings, onSubmit }: SentimentProps): JSX.Element =
65
65
  }
66
66
 
67
67
  return (
68
- <Wrapper data-component-name="Feedback/Sentiment">
68
+ <Wrapper data-component-name="Feedback/Sentiment" className={className}>
69
69
  <Label data-translation-key={translationKeys.label}>
70
70
  {translate(translationKeys.label, label || 'Was this page helpful?')}
71
71
  </Label>
@@ -17,6 +17,7 @@ export type RatingProps = {
17
17
  items: string[];
18
18
  };
19
19
  };
20
+ className?: string;
20
21
  };
21
22
 
22
23
  export type SentimentProps = {
@@ -36,6 +37,7 @@ export type SentimentProps = {
36
37
  items: string[];
37
38
  };
38
39
  };
40
+ className?: string;
39
41
  };
40
42
 
41
43
  export type CommentProps = {
@@ -45,6 +47,7 @@ export type CommentProps = {
45
47
  label?: string;
46
48
  submitText?: string;
47
49
  };
50
+ className?: string;
48
51
  };
49
52
 
50
53
  export type ReasonsProps = {
@@ -56,6 +59,7 @@ export type ReasonsProps = {
56
59
  submitText?: string;
57
60
  buttonText?: string;
58
61
  };
62
+ className?: string;
59
63
  };
60
64
 
61
65
  export type ReportDialogProps = {
@@ -66,4 +70,5 @@ export type ReportDialogProps = {
66
70
  label?: string;
67
71
  };
68
72
  submitFeedback: ({ type, values, path }: SubmitFeedbackParams) => Promise<void>;
73
+ className?: string;
69
74
  };
@@ -7,15 +7,16 @@ import type { NavGroupRecord, ResolvedNavItem } from '@theme/types/portal';
7
7
 
8
8
  interface FooterProps {
9
9
  data: NavGroupRecord;
10
+ className?: string;
10
11
  }
11
12
 
12
- export function CustomFooter({ data }: FooterProps): JSX.Element | null {
13
+ export function CustomFooter({ data, className }: FooterProps): JSX.Element | null {
13
14
  if (!data) {
14
15
  return null;
15
16
  }
16
17
 
17
18
  return (
18
- <FooterContainer data-component-name="Footer/CustomFooter">
19
+ <FooterContainer data-component-name="Footer/CustomFooter" className={className}>
19
20
  {(data.links as ResolvedNavItem[]).map((navItem, index) => {
20
21
  return (
21
22
  <CustomFooterNavItem
@@ -6,13 +6,14 @@ import type { ResolvedNavItem, ResolvedNavLinkItem } from '@theme/types/portal';
6
6
 
7
7
  interface CustomFooterNavItemProps {
8
8
  navItem: ResolvedNavItem;
9
+ className?: string;
9
10
  }
10
11
 
11
- export function CustomFooterNavItem({ navItem }: CustomFooterNavItemProps): JSX.Element {
12
+ export function CustomFooterNavItem({ navItem, className }: CustomFooterNavItemProps): JSX.Element {
12
13
  const item = navItem as ResolvedNavLinkItem;
13
14
 
14
15
  return (
15
- <FooterItem data-component-name="Navbar/NavbarItem">
16
+ <FooterItem data-component-name="Navbar/NavbarItem" className={className}>
16
17
  <FooterLink to={item.link}>
17
18
  <FooterLabel>{item.label}</FooterLabel>
18
19
  </FooterLink>
@@ -26,14 +26,16 @@ export function Footer(): JSX.Element | null {
26
26
  interface FooterPresentationalComponentProps {
27
27
  items: ResolvedNavItem[];
28
28
  copyrightText: string;
29
+ className?: string;
29
30
  }
30
31
 
31
32
  export function FooterPresentationalComponent({
32
33
  items,
33
34
  copyrightText,
35
+ className,
34
36
  }: FooterPresentationalComponentProps): JSX.Element | null {
35
37
  return (
36
- <FooterContainer data-component-name="Footer/Footer">
38
+ <FooterContainer data-component-name="Footer/Footer" className={className}>
37
39
  <FooterColumns columns={items as ResolvedNavItem[]} />
38
40
  <FooterCopyright copyrightText={copyrightText} />
39
41
  </FooterContainer>
@@ -7,14 +7,15 @@ import { useTranslate } from '@portal/hooks';
7
7
 
8
8
  interface FooterColumnProps {
9
9
  column: ResolvedNavItem;
10
+ className?: string;
10
11
  }
11
12
 
12
- export function FooterColumn({ column }: FooterColumnProps): JSX.Element {
13
+ export function FooterColumn({ column, className }: FooterColumnProps): JSX.Element {
13
14
  const { translate } = useTranslate();
14
15
  const hasIcon = column.items ? column.items.some((item) => !!item.icon) : false;
15
16
 
16
17
  return (
17
- <FooterColumnContainer data-component-name="Footer/FooterColumn">
18
+ <FooterColumnContainer data-component-name="Footer/FooterColumn" className={className}>
18
19
  <FooterColumnTitle withIconPadding={hasIcon}>
19
20
  {translate(column.labelTranslationKey, column.label)}
20
21
  </FooterColumnTitle>
@@ -6,15 +6,16 @@ import type { ResolvedNavItem } from '@theme/types/portal';
6
6
 
7
7
  interface FooterColumnsProps {
8
8
  columns: ResolvedNavItem[];
9
+ className?: string;
9
10
  }
10
11
 
11
- export function FooterColumns({ columns }: FooterColumnsProps): JSX.Element | null {
12
+ export function FooterColumns({ columns, className }: FooterColumnsProps): JSX.Element | null {
12
13
  if (!columns?.length) {
13
14
  return null;
14
15
  }
15
16
 
16
17
  return (
17
- <FooterColumnsContainer data-component-name="Footer/FooterColumns">
18
+ <FooterColumnsContainer data-component-name="Footer/FooterColumns" className={className}>
18
19
  <FooterRow>
19
20
  {columns.map((column, index) => (
20
21
  <FooterColumn key={`${column.label}_${index}`} column={column} />
@@ -5,15 +5,20 @@ import { useTranslate } from '@portal/hooks';
5
5
 
6
6
  interface FooterCopyrightProps {
7
7
  copyrightText: string;
8
+ className?: string;
8
9
  }
9
10
 
10
- export function FooterCopyright({ copyrightText = '' }: FooterCopyrightProps): JSX.Element | null {
11
+ export function FooterCopyright({
12
+ copyrightText = '',
13
+ className,
14
+ }: FooterCopyrightProps): JSX.Element | null {
11
15
  const { translate } = useTranslate();
12
16
  const translationKeys = {
13
17
  copyrightText: 'theme.footer.copyrightText',
14
18
  };
15
19
  return copyrightText ? (
16
20
  <Wrapper
21
+ className={className}
17
22
  data-component-name="Footer/FooterCopyright"
18
23
  data-translation-key={translationKeys.copyrightText}
19
24
  >
@@ -18,6 +18,7 @@ export interface LastUpdatedProps {
18
18
  lastModified: Date;
19
19
  format?: keyof typeof FORMATS;
20
20
  locale?: string;
21
+ className?: string;
21
22
  }
22
23
 
23
24
  export function LastUpdated(props: LastUpdatedProps): JSX.Element | null {
@@ -44,6 +45,7 @@ export function LastUpdated(props: LastUpdatedProps): JSX.Element | null {
44
45
 
45
46
  return (
46
47
  <Wrapper
48
+ className={props.className}
47
49
  data-component-name="LastUpdated/LastUpdated"
48
50
  rawOnPrint={format === 'timeago'}
49
51
  data-print-datetime={isoDate}
@@ -1,7 +1,8 @@
1
1
  import styled from 'styled-components';
2
2
 
3
- export const ContainerWrapper = styled.section.attrs(() => ({
3
+ export const ContainerWrapper = styled.section.attrs<{ className?: string }>(({ className }) => ({
4
4
  'data-component-name': 'Markdown/ContainerWrapper',
5
+ className,
5
6
  }))<{ withToc: boolean }>`
6
7
  max-width: var(--md-container-max-width);
7
8
  width: 90%;
@@ -16,11 +16,13 @@ export function Heading({
16
16
  children,
17
17
  'data-source': dataSource,
18
18
  'data-hash': dataHash,
19
+ className,
19
20
  }: PropsWithChildren<{
20
21
  level: number;
21
22
  id: string;
22
23
  'data-source'?: string;
23
24
  'data-hash'?: string;
25
+ className?: string;
24
26
  }>): JSX.Element {
25
27
  const linkEl = (
26
28
  <a href={`#${id}`} className={concatClassNames('anchor', 'before')}>
@@ -32,7 +34,7 @@ export function Heading({
32
34
  `h${level}`,
33
35
  {
34
36
  id,
35
- className: concatClassNames('heading-anchor', mdClassName),
37
+ className: concatClassNames('heading-anchor', mdClassName, className),
36
38
  'data-component-name': 'Markdown/Heading',
37
39
  'data-source': dataSource,
38
40
  'data-hash': dataHash,
@@ -24,6 +24,7 @@ type MarkdownLayoutProps = {
24
24
  lastModified?: string | null;
25
25
  nextPage?: ResolvedNavItemWithLink | null;
26
26
  prevPage?: ResolvedNavItemWithLink | null;
27
+ className?: string;
27
28
  };
28
29
 
29
30
  export function MarkdownLayout({
@@ -34,6 +35,7 @@ export function MarkdownLayout({
34
35
  lastModified,
35
36
  nextPage,
36
37
  prevPage,
38
+ className,
37
39
  }: MarkdownLayoutProps): JSX.Element {
38
40
  const { markdown } = useThemeConfig();
39
41
  const { translate } = useTranslate();
@@ -45,7 +47,7 @@ export function MarkdownLayout({
45
47
  const mergedConf = editPage ? { ...themeEditPage, ...editPage } : undefined;
46
48
 
47
49
  return (
48
- <PageWrapper data-component-name="Markdown/MarkdownLayout">
50
+ <PageWrapper data-component-name="Markdown/MarkdownLayout" className={className}>
49
51
  <ContainerWrapper withToc={true}>
50
52
  <Breadcrumbs />
51
53
  <LayoutTop>
@@ -117,8 +117,9 @@ export function headingAnchor(className = 'anchor'): FlattenSimpleInterpolation
117
117
  `;
118
118
  }
119
119
 
120
- export const MarkdownWrapper = styled.main.attrs(() => ({
120
+ export const MarkdownWrapper = styled.main.attrs<{ className?: string }>(({ className }) => ({
121
121
  'data-component-name': 'Markdown/MarkdownWrapper',
122
+ className,
122
123
  }))`
123
124
  font-weight: var(--font-weight-regular);
124
125
  padding: 0;
@@ -1,20 +1,24 @@
1
1
  import React from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
+ import { concatClassNames } from '@theme/utils';
5
+
4
6
  type MermaidProps = {
5
7
  diagramHtml: string;
6
8
  'data-source'?: string;
7
9
  'data-hash'?: string;
10
+ className?: string;
8
11
  };
9
12
 
10
13
  export function Mermaid({
11
14
  diagramHtml,
12
15
  'data-source': dataSource,
13
16
  'data-hash': dataHash,
17
+ className,
14
18
  }: MermaidProps): JSX.Element {
15
19
  return (
16
20
  <Wrapper
17
- className="mermaid-wrapper"
21
+ className={concatClassNames('mermaid-wrapper', className)}
18
22
  dangerouslySetInnerHTML={{ __html: diagramHtml }}
19
23
  data-component-name="Markdown/Mermaid"
20
24
  data-source={dataSource}
@@ -1,7 +1,8 @@
1
1
  import styled from 'styled-components';
2
2
 
3
- export const PageWrapper = styled.div.attrs(() => ({
3
+ export const PageWrapper = styled.div.attrs<{ className?: string }>(({ className }) => ({
4
4
  'data-component-name': 'Markdown/PageWrapper',
5
+ className,
5
6
  }))`
6
7
  display: flex;
7
8
  flex: 1;
@@ -3,8 +3,15 @@ import styled from 'styled-components';
3
3
 
4
4
  import type { PropsWithChildren } from 'react';
5
5
 
6
- export function Sup({ children }: PropsWithChildren<unknown>): JSX.Element {
7
- return <Wrapper data-component-name="Markdown/Sup">{children}</Wrapper>;
6
+ export function Sup({
7
+ children,
8
+ className,
9
+ }: PropsWithChildren<{ className?: string }>): JSX.Element {
10
+ return (
11
+ <Wrapper data-component-name="Markdown/Sup" className={className}>
12
+ {children}
13
+ </Wrapper>
14
+ );
8
15
  }
9
16
 
10
17
  const Wrapper = styled.sup``;
@@ -8,18 +8,27 @@ import { MenuItemSwitch } from './MenuItemSwitch';
8
8
  export interface MenuListProps {
9
9
  items: ItemState[];
10
10
  depth?: number;
11
+ isMobile?: boolean;
12
+ className?: string;
11
13
  }
12
14
 
13
- export function Menu({ depth = 0, items }: MenuListProps) {
15
+ export function Menu({ depth = 0, items, className, isMobile }: MenuListProps) {
14
16
  // TODO: provide active section via MenuContext
15
17
  const activeItem = items.find(({ active }) => active);
16
18
 
17
19
  return (
18
- <ThemeMenu>
20
+ <ThemeMenu className={className}>
19
21
  {items.map((item, index) => {
20
22
  return (
21
- <MenuItemSwitch item={item} key={`${item.pageId}-${index}`} activeItem={activeItem}>
22
- {item.items?.length ? <Menu items={item.items} depth={depth + 1} /> : null}
23
+ <MenuItemSwitch
24
+ item={item}
25
+ key={`${item.pageId}-${index}`}
26
+ activeItem={activeItem}
27
+ isMobile={isMobile}
28
+ >
29
+ {item.items?.length ? (
30
+ <Menu items={item.items} depth={depth + 1} isMobile={isMobile} />
31
+ ) : null}
23
32
  </MenuItemSwitch>
24
33
  );
25
34
  })}
@@ -34,5 +43,7 @@ export const ThemeMenu = styled.ul.attrs(() => ({
34
43
  margin: 0;
35
44
  list-style: none;
36
45
  color: var(--sidebar-item-text-color);
37
- position: relative;
46
+ ${({ theme }) => theme.mediaQueries.medium} {
47
+ position: relative;
48
+ }
38
49
  `;
@@ -2,11 +2,13 @@ import styled from 'styled-components';
2
2
 
3
3
  interface MenuContainerProps {
4
4
  growContent?: boolean;
5
+ className?: string;
5
6
  }
6
7
 
7
- export const MenuContainer = styled.div.attrs<MenuContainerProps>(({ growContent }) => ({
8
+ export const MenuContainer = styled.div.attrs<MenuContainerProps>(({ growContent, className }) => ({
8
9
  'data-component-name': 'Menu/MenuContainer',
9
10
  growContent: growContent === undefined ? true : growContent,
11
+ className,
10
12
  }))<MenuContainerProps>`
11
13
  position: relative;
12
14
  overflow-y: auto;
@@ -12,6 +12,7 @@ interface MenuGroupProps {
12
12
  item: ItemState;
13
13
  isExpanded: boolean;
14
14
  toggleExpanded: () => void;
15
+ className?: string;
15
16
  }
16
17
 
17
18
  export function MenuGroup({
@@ -19,6 +20,7 @@ export function MenuGroup({
19
20
  isExpanded,
20
21
  toggleExpanded,
21
22
  children,
23
+ className,
22
24
  }: React.PropsWithChildren<MenuGroupProps>): JSX.Element {
23
25
  const [showChildren, setShowChildren] = useState<boolean>(isExpanded);
24
26
  const timer = useRef<ReturnType<typeof setTimeout> | null>(null);
@@ -39,7 +41,7 @@ export function MenuGroup({
39
41
  }, [isExpanded]);
40
42
 
41
43
  return (
42
- <Wrapper data-component-name="Menu/MenuGroup">
44
+ <Wrapper data-component-name="Menu/MenuGroup" className={className}>
43
45
  <MenuLinkItem item={item}>
44
46
  <MenuGroupLabel
45
47
  onClick={toggleExpanded}
@@ -47,10 +49,7 @@ export function MenuGroup({
47
49
  active={item.active}
48
50
  role={!item.link ? 'link' : 'none'}
49
51
  >
50
- <MenuGroupArrow
51
- visibility={item.items.length ? 'visible' : 'hidden'}
52
- direction={isExpanded ? 'down' : 'right'}
53
- />
52
+ {!!item.items.length && <MenuGroupArrow direction={isExpanded ? 'down' : 'right'} />}
54
53
  {translate(item.labelTranslationKey, item.label)}
55
54
  </MenuGroupLabel>
56
55
  </MenuLinkItem>
@@ -8,15 +8,15 @@ import { SeparatorLine } from '@theme/components/Separator/SeparatorLine';
8
8
  import type { MenuItemProps } from '@theme/components/Sidebar/types';
9
9
  import { useTranslate } from '@portal/hooks';
10
10
 
11
- export function MenuItem({ item }: MenuItemProps): JSX.Element {
11
+ export function MenuItem({ item, className }: MenuItemProps): JSX.Element {
12
12
  const { translate } = useTranslate();
13
13
  return (
14
- <Wrapper data-component-name="Sidebar/MenuItem">
14
+ <Wrapper data-component-name="Sidebar/MenuItem" className={className}>
15
15
  <MenuLinkItem item={item}>
16
- <MenuItemLabel active={item.active}>
16
+ <Label active={item.active}>
17
17
  {translate(item.labelTranslationKey, item.label)}
18
18
  {item.external ? <ExternalIcon dataComponentName="Sidebar/ExternalIcon" /> : null}
19
- </MenuItemLabel>
19
+ </Label>
20
20
  </MenuLinkItem>
21
21
 
22
22
  {item.separatorLine ? <SeparatorLine /> : null}
@@ -25,3 +25,21 @@ export function MenuItem({ item }: MenuItemProps): JSX.Element {
25
25
  }
26
26
 
27
27
  const Wrapper = styled.div``;
28
+
29
+ const Label = styled(MenuItemLabel)<{ active?: boolean }>`
30
+ color: var(--mobile-menu-item-text-color);
31
+
32
+ ${({ theme }) => theme.mediaQueries.medium} {
33
+ color: var(--sidebar-item-text-color);
34
+ }
35
+
36
+ ${({ active, theme }) =>
37
+ active &&
38
+ `
39
+ color: var(--mobile-menu-item-active-text-color);
40
+
41
+ ${theme.mediaQueries.medium} {
42
+ color: var(--sidebar-item-active-color);
43
+ }
44
+ `};
45
+ `;
@@ -1,7 +1,8 @@
1
1
  import styled from 'styled-components';
2
2
 
3
- export const MenuItemLabel = styled.li.attrs(() => ({
3
+ export const MenuItemLabel = styled.li.attrs<{ className?: string }>(({ className }) => ({
4
4
  'data-component-name': 'Menu/MenuItemLabel',
5
+ className,
5
6
  }))<{ active?: boolean }>`
6
7
  display: flex;
7
8
  align-items: center;
@@ -22,17 +23,25 @@ export const MenuItemLabel = styled.li.attrs(() => ({
22
23
  );
23
24
  border-radius: var(--sidebar-item-border-radius);
24
25
 
25
- ${(props) =>
26
- props.active
27
- ? `
28
- color: var(--sidebar-item-active-color);
29
- background-color: var(--sidebar-item-active-background-color);
30
- `
31
- : null};
26
+ ${({ active, theme }) =>
27
+ active &&
28
+ `
29
+ color: var(--mobile-menu-item-active-text-color);
30
+ background-color: var(--mobile-menu-item-active-color);
31
+
32
+ ${theme.mediaQueries.medium} {
33
+ color: var(--sidebar-item-active-color);
34
+ background-color: var(--sidebar-item-active-background-color);
35
+ }
36
+ `};
32
37
 
33
38
  :hover {
34
- color: var(--sidebar-item-hover-color);
35
- background-color: var(--sidebar-item-hover-background-color);
39
+ color: var(--mobile-menu-item-active-text-color);
40
+
41
+ ${({ theme }) => theme.mediaQueries.medium} {
42
+ color: var(--sidebar-item-hover-color);
43
+ background-color: var(--sidebar-item-hover-background-color);
44
+ }
36
45
  }
37
46
 
38
47
  :empty {
@@ -8,6 +8,7 @@ import { MenuType } from '@portal/Sidebar/types';
8
8
  import { getMenuType } from '@portal/Sidebar/getMenuType';
9
9
  import { useDrilldown } from '@portal/Sidebar/useDrilldown';
10
10
  import { useMenuGroup } from '@portal/Sidebar/useMenuGroup';
11
+ import { MobileMenuGroup } from '@theme/components/Menu/MobileMenuGroup';
11
12
 
12
13
  export function MenuItemSwitch(props: PropsWithChildren<MenuItemProps>) {
13
14
  const type = getMenuType(props.item);
@@ -24,26 +25,27 @@ export function MenuItemSwitch(props: PropsWithChildren<MenuItemProps>) {
24
25
  });
25
26
 
26
27
  const { MenuGroup, handleGroupClick, isExpanded } = useMenuGroup(props.item);
27
-
28
28
  switch (type) {
29
29
  case MenuType.Separator:
30
30
  return <Separator {...props} />;
31
31
  case MenuType.Operation:
32
32
  return <ApiCallItem {...props} />;
33
33
  case MenuType.Group:
34
+ const Group = props.isMobile ? MobileMenuGroup : MenuGroup;
35
+
34
36
  if (!props.item.items?.length) {
35
37
  // Needed for OpenApi docs model items
36
38
  return (
37
- <MenuGroup item={props.item} isExpanded={false} toggleExpanded={() => {}}>
39
+ <Group item={props.item} isExpanded={false} toggleExpanded={() => {}}>
38
40
  {props.children}
39
- </MenuGroup>
41
+ </Group>
40
42
  );
41
43
  }
42
44
 
43
45
  return (
44
- <MenuGroup item={props.item} isExpanded={isExpanded} toggleExpanded={handleGroupClick}>
46
+ <Group item={props.item} isExpanded={isExpanded} toggleExpanded={handleGroupClick}>
45
47
  {props.children}
46
- </MenuGroup>
48
+ </Group>
47
49
  );
48
50
  case MenuType.DrillDown:
49
51
  return (
@@ -2,8 +2,9 @@ import styled from 'styled-components';
2
2
 
3
3
  import { Link } from '@portal/Link';
4
4
 
5
- export const MenuLink = styled(Link).attrs(() => ({
5
+ export const MenuLink = styled(Link).attrs<{ className?: string }>(({ className }) => ({
6
6
  'data-component-name': 'Sidebar/MenuLink',
7
+ className,
7
8
  }))`
8
9
  text-decoration: none;
9
10
  color: var(--sidebar-item-text-color);
@@ -7,9 +7,10 @@ import type { MenuItemProps } from '@theme/components/Sidebar/types';
7
7
  export function MenuLinkItem({
8
8
  item,
9
9
  children,
10
+ className,
10
11
  }: React.PropsWithChildren<MenuItemProps>): JSX.Element {
11
12
  return (
12
- <Wrapper data-component-name="Sidebar/MenuLinkItem">
13
+ <Wrapper data-component-name="Sidebar/MenuLinkItem" className={className}>
13
14
  {item.link ? (
14
15
  <MenuLink to={item.link} {...item}>
15
16
  {children}