@redocly/theme 0.18.3 → 0.18.4-patch.1

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 (467) hide show
  1. package/lib/components/Breadcrumbs/Breadcrumb.js +2 -5
  2. package/lib/components/Breadcrumbs/Breadcrumbs.js +6 -2
  3. package/lib/components/Breadcrumbs/index.d.ts +1 -0
  4. package/lib/components/Breadcrumbs/index.js +1 -0
  5. package/lib/components/Breadcrumbs/styledVariables.d.ts +1 -0
  6. package/lib/components/Breadcrumbs/styledVariables.js +20 -0
  7. package/lib/components/Button/Button.d.ts +6 -3
  8. package/lib/components/Button/Button.js +41 -41
  9. package/lib/components/Button/index.d.ts +1 -0
  10. package/lib/components/Button/index.js +1 -0
  11. package/lib/components/Button/styledVariables.d.ts +1 -0
  12. package/lib/components/Button/styledVariables.js +107 -0
  13. package/lib/components/Catalog/Catalog.d.ts +6 -0
  14. package/lib/components/Catalog/Catalog.js +112 -102
  15. package/lib/components/Catalog/CatalogCard.js +91 -58
  16. package/lib/components/Catalog/index.d.ts +4 -3
  17. package/lib/components/Catalog/index.js +4 -3
  18. package/lib/components/Catalog/styledVariables.d.ts +1 -0
  19. package/lib/components/Catalog/styledVariables.js +95 -0
  20. package/lib/components/CodeBlock/CodeBlockContainer.js +38 -10
  21. package/lib/components/CodeBlock/CodeBlockControlButton.d.ts +3 -4
  22. package/lib/components/CodeBlock/CodeBlockControlButton.js +5 -19
  23. package/lib/components/CodeBlock/CodeBlockControls.js +8 -5
  24. package/lib/components/CodeBlock/index.d.ts +1 -0
  25. package/lib/components/CodeBlock/index.js +1 -0
  26. package/lib/components/CodeBlock/styledVariables.d.ts +1 -0
  27. package/lib/components/CodeBlock/styledVariables.js +92 -0
  28. package/lib/components/ColorModeSwitcher/ColorModeSwitcher.js +0 -1
  29. package/lib/components/Dropdown/Dropdown.d.ts +9 -3
  30. package/lib/components/Dropdown/Dropdown.js +7 -4
  31. package/lib/components/Dropdown/index.d.ts +1 -0
  32. package/lib/components/Dropdown/index.js +1 -0
  33. package/lib/components/Dropdown/styledVariables.d.ts +1 -0
  34. package/lib/components/Dropdown/styledVariables.js +30 -0
  35. package/lib/components/EditPageButton/EditPageButton.d.ts +1 -3
  36. package/lib/components/EditPageButton/EditPageButton.js +17 -8
  37. package/lib/components/Feedback/Comment.js +5 -0
  38. package/lib/components/Feedback/Rating.js +5 -1
  39. package/lib/components/Feedback/Reasons.js +6 -1
  40. package/lib/components/Feedback/Sentiment.js +5 -0
  41. package/lib/components/Feedback/Thumbs.js +4 -4
  42. package/lib/components/Filter/Filter.d.ts +3 -1
  43. package/lib/components/Filter/Filter.js +113 -80
  44. package/lib/components/Filter/FilterContent.d.ts +13 -0
  45. package/lib/components/Filter/FilterContent.js +60 -0
  46. package/lib/components/Filter/FilterPopover.d.ts +13 -0
  47. package/lib/components/Filter/FilterPopover.js +109 -0
  48. package/lib/components/Filter/FilterTag.d.ts +7 -0
  49. package/lib/components/Filter/FilterTag.js +33 -0
  50. package/lib/components/Filter/FilterTags.d.ts +7 -0
  51. package/lib/components/Filter/FilterTags.js +29 -0
  52. package/lib/components/Filter/index.d.ts +2 -0
  53. package/lib/components/Filter/index.js +2 -0
  54. package/lib/components/Filter/styledVariables.d.ts +1 -0
  55. package/lib/components/Filter/styledVariables.js +112 -0
  56. package/lib/components/Footer/CustomFooterNavItem.js +1 -1
  57. package/lib/components/Footer/Footer.d.ts +4 -3
  58. package/lib/components/Footer/Footer.js +28 -10
  59. package/lib/components/Footer/FooterColumn.d.ts +3 -3
  60. package/lib/components/Footer/FooterColumn.js +57 -63
  61. package/lib/components/Footer/FooterColumns.js +6 -4
  62. package/lib/components/Footer/FooterCopyright.js +11 -6
  63. package/lib/components/Footer/index.d.ts +1 -0
  64. package/lib/components/Footer/index.js +1 -0
  65. package/lib/components/Footer/styledVariables.d.ts +1 -0
  66. package/lib/components/Footer/styledVariables.js +61 -0
  67. package/lib/components/Image/Image.d.ts +9 -0
  68. package/lib/components/Image/Image.js +31 -0
  69. package/lib/components/Image/index.d.ts +1 -0
  70. package/lib/components/{Tags → Image}/index.js +1 -1
  71. package/lib/components/JsonViewer/JsonViewer.js +2 -2
  72. package/lib/components/LastUpdated/LastUpdated.js +1 -0
  73. package/lib/components/LastUpdated/index.d.ts +1 -0
  74. package/lib/components/{OperationBadge → LastUpdated}/index.js +1 -1
  75. package/lib/components/LastUpdated/styledVariables.d.ts +1 -0
  76. package/lib/components/LastUpdated/styledVariables.js +11 -0
  77. package/lib/components/Markdown/Admonition.js +12 -9
  78. package/lib/components/Markdown/MarkdownLayout.d.ts +0 -2
  79. package/lib/components/Markdown/MarkdownLayout.js +1 -6
  80. package/lib/components/Markdown/MarkdownWrapper.js +2 -4
  81. package/lib/components/Markdown/Mermaid.js +4 -1
  82. package/lib/components/Markdown/index.d.ts +1 -0
  83. package/lib/components/Markdown/index.js +1 -0
  84. package/lib/components/Markdown/styledVariables.d.ts +3 -0
  85. package/lib/components/Markdown/styledVariables.js +231 -0
  86. package/lib/components/Menu/Menu.js +5 -7
  87. package/lib/components/Menu/MenuGroup.js +12 -7
  88. package/lib/components/Menu/MenuItem.js +1 -1
  89. package/lib/components/Menu/MenuItemLabel.js +9 -13
  90. package/lib/components/Menu/MobileMenu.js +20 -25
  91. package/lib/components/Menu/MobileMenuGroup.js +1 -1
  92. package/lib/components/Menu/index.d.ts +1 -0
  93. package/lib/components/Menu/index.js +1 -0
  94. package/lib/components/Menu/styledVariables.d.ts +2 -0
  95. package/lib/components/Menu/styledVariables.js +101 -0
  96. package/lib/components/Navbar/Navbar.js +20 -13
  97. package/lib/components/Navbar/NavbarItem.d.ts +1 -1
  98. package/lib/components/Navbar/NavbarItem.js +18 -6
  99. package/lib/components/Navbar/NavbarMenu.js +2 -2
  100. package/lib/components/Navbar/index.d.ts +1 -0
  101. package/lib/components/Navbar/index.js +1 -0
  102. package/lib/components/Navbar/styledVariables.d.ts +1 -0
  103. package/lib/components/Navbar/styledVariables.js +42 -0
  104. package/lib/components/NavbarLogo/NavbarLogo.d.ts +4 -1
  105. package/lib/components/NavbarLogo/NavbarLogo.js +13 -5
  106. package/lib/components/NavbarLogo/index.d.ts +1 -0
  107. package/lib/components/NavbarLogo/index.js +1 -0
  108. package/lib/components/NavbarLogo/styledVariables.d.ts +1 -0
  109. package/lib/components/NavbarLogo/styledVariables.js +18 -0
  110. package/lib/components/OpenApiDocs/DevOnboardingTryItSecurity.js +2 -2
  111. package/lib/components/OpenApiDocs/Dropdown.js +3 -3
  112. package/lib/components/PageNavigation/NextButton.js +1 -1
  113. package/lib/components/PageNavigation/PreviousButton.js +1 -1
  114. package/lib/components/Panel/PanelHeader.js +2 -0
  115. package/lib/components/Panel/PanelHeaderTitle.js +0 -4
  116. package/lib/components/Panel/index.d.ts +1 -0
  117. package/lib/components/Panel/index.js +1 -0
  118. package/lib/components/Panel/styledVariables.d.ts +2 -0
  119. package/lib/components/Panel/styledVariables.js +481 -0
  120. package/lib/components/Product/ProductPicker.js +22 -9
  121. package/lib/components/Product/index.d.ts +1 -0
  122. package/lib/components/Product/index.js +1 -0
  123. package/lib/components/Product/styledVariables.d.ts +2 -0
  124. package/lib/components/Product/styledVariables.js +42 -0
  125. package/lib/components/Profile/LoginLink.js +1 -2
  126. package/lib/components/{Navbar → Profile}/MobileUserProfile.js +12 -24
  127. package/lib/components/Profile/Profile.js +3 -22
  128. package/lib/components/Profile/UserProfile.js +21 -9
  129. package/lib/components/Profile/UserProfileData.d.ts +9 -0
  130. package/lib/components/Profile/UserProfileData.js +35 -0
  131. package/lib/components/Profile/index.d.ts +1 -0
  132. package/lib/components/Profile/index.js +15 -0
  133. package/lib/components/Profile/styledVariables.d.ts +2 -0
  134. package/lib/components/Profile/styledVariables.js +55 -0
  135. package/lib/components/Search/CancelSearch.js +2 -14
  136. package/lib/components/Search/ProductTag.js +8 -8
  137. package/lib/components/Search/RecentSearches.js +5 -5
  138. package/lib/components/Search/Search.js +0 -2
  139. package/lib/components/Search/SearchIcon.js +2 -2
  140. package/lib/components/Search/SearchItem.js +4 -4
  141. package/lib/components/Search/SearchTrigger.js +4 -5
  142. package/lib/components/Search/ShortcutKey.js +1 -5
  143. package/lib/components/Search/SuggestedPages.js +3 -3
  144. package/lib/components/Search/index.d.ts +1 -0
  145. package/lib/components/Search/index.js +1 -0
  146. package/lib/components/Search/styledVariables.d.ts +1 -0
  147. package/lib/components/Search/styledVariables.js +98 -0
  148. package/lib/components/Select/Select.d.ts +21 -9
  149. package/lib/components/Select/Select.js +27 -17
  150. package/lib/components/Select/index.d.ts +1 -0
  151. package/lib/components/Select/index.js +1 -0
  152. package/lib/components/Select/styledVariables.d.ts +1 -0
  153. package/lib/components/Select/styledVariables.js +34 -0
  154. package/lib/components/Separator/Separator.js +11 -3
  155. package/lib/components/Separator/SeparatorItem.js +6 -9
  156. package/lib/components/Separator/SeparatorLine.js +7 -3
  157. package/lib/components/Sidebar/ApiCallItem.d.ts +2 -6
  158. package/lib/components/Sidebar/ApiCallItem.js +17 -13
  159. package/lib/components/Sidebar/FooterWrapper.js +3 -4
  160. package/lib/components/Sidebar/HeaderWrapper.js +3 -3
  161. package/lib/components/Sidebar/VersionPicker.d.ts +3 -3
  162. package/lib/components/Sidebar/VersionPicker.js +6 -4
  163. package/lib/components/Sidebar/index.d.ts +1 -0
  164. package/lib/components/Sidebar/index.js +1 -0
  165. package/lib/components/Sidebar/styledVariables.d.ts +2 -0
  166. package/lib/components/Sidebar/styledVariables.js +216 -0
  167. package/lib/components/Sidebar/types.d.ts +1 -0
  168. package/lib/components/SidebarActions/CollapseSidebarButton.js +41 -1
  169. package/lib/components/SidebarActions/styled.js +29 -21
  170. package/lib/components/TableOfContent/TableOfContent.js +3 -2
  171. package/lib/components/TableOfContent/index.d.ts +1 -0
  172. package/lib/components/TableOfContent/index.js +1 -0
  173. package/lib/components/TableOfContent/styledVariables.d.ts +1 -0
  174. package/lib/components/TableOfContent/styledVariables.js +47 -0
  175. package/lib/components/Tabs/Tab.js +1 -1
  176. package/lib/components/Tabs/Tabs.js +1 -1
  177. package/lib/components/Tag/Tag.d.ts +18 -0
  178. package/lib/components/Tag/Tag.js +45 -0
  179. package/lib/components/Tag/index.d.ts +2 -0
  180. package/lib/components/Tag/index.js +19 -0
  181. package/lib/components/Tag/styledVariables.d.ts +1 -0
  182. package/lib/components/Tag/styledVariables.js +140 -0
  183. package/lib/components/Tiles/ThinTile.js +7 -5
  184. package/lib/components/Tiles/TileHeader.js +1 -1
  185. package/lib/components/Tiles/TileText.js +1 -1
  186. package/lib/components/Tiles/WideTile.js +10 -8
  187. package/lib/components/Tooltip/index.d.ts +1 -0
  188. package/lib/components/Tooltip/index.js +1 -0
  189. package/lib/components/Tooltip/styledVariables.d.ts +1 -0
  190. package/lib/components/Tooltip/styledVariables.js +21 -0
  191. package/lib/components/Typography/SectionHeader.js +2 -2
  192. package/lib/components/Typography/Typography.js +1 -1
  193. package/lib/components/index.d.ts +1 -2
  194. package/lib/components/index.js +1 -2
  195. package/lib/config.d.ts +155 -154
  196. package/lib/config.js +39 -28
  197. package/lib/globalStyle.js +602 -1983
  198. package/lib/hooks/useMobileMenu.js +5 -6
  199. package/lib/hooks/useModalScrollLock.d.ts +1 -0
  200. package/lib/hooks/useModalScrollLock.js +16 -0
  201. package/lib/i18n/LanguagePicker.d.ts +9 -0
  202. package/lib/{I18n → i18n}/LanguagePicker.js +27 -12
  203. package/lib/i18n/index.d.ts +2 -0
  204. package/lib/i18n/index.js +21 -0
  205. package/lib/i18n/styledVariables.d.ts +1 -0
  206. package/lib/i18n/styledVariables.js +40 -0
  207. package/lib/icons/AlertIcon/AlertIcon.js +0 -5
  208. package/lib/icons/ArrowIcon/ArrowIcon.js +1 -1
  209. package/lib/icons/CheckboxIcon/CheckboxIcon.d.ts +6 -0
  210. package/lib/icons/CheckboxIcon/CheckboxIcon.js +28 -0
  211. package/lib/icons/CheckboxIcon/index.d.ts +1 -0
  212. package/lib/icons/CheckboxIcon/index.js +6 -0
  213. package/lib/icons/CollapseIcon/CollapseIcon.d.ts +1 -1
  214. package/lib/icons/CollapseIcon/CollapseIcon.js +5 -5
  215. package/lib/icons/ColorModeIcon/ColorModeIcon.js +1 -1
  216. package/lib/icons/CopyIcon/CopyIcon.d.ts +1 -2
  217. package/lib/icons/CopyIcon/CopyIcon.js +4 -4
  218. package/lib/icons/DeselectIcon/DeselectIcon.d.ts +1 -1
  219. package/lib/icons/DeselectIcon/DeselectIcon.js +5 -5
  220. package/lib/icons/EditIcon/EditIcon.d.ts +6 -0
  221. package/lib/icons/EditIcon/EditIcon.js +18 -0
  222. package/lib/icons/EditIcon/index.d.ts +1 -0
  223. package/lib/icons/EditIcon/index.js +18 -0
  224. package/lib/icons/ErrorIcon/ErrorIcon.d.ts +4 -0
  225. package/lib/icons/ErrorIcon/ErrorIcon.js +14 -0
  226. package/lib/icons/ErrorIcon/index.d.ts +1 -0
  227. package/lib/icons/ErrorIcon/index.js +18 -0
  228. package/lib/icons/ExpandIcon/ExpandIcon.d.ts +1 -2
  229. package/lib/icons/ExpandIcon/ExpandIcon.js +5 -5
  230. package/lib/icons/ExternalIcon/ExternalIcon.js +3 -3
  231. package/lib/icons/FileIcon/FileIcon.d.ts +1 -2
  232. package/lib/icons/FileIcon/FileIcon.js +2 -2
  233. package/lib/icons/LanguageIcon/LanguageIcon.d.ts +4 -0
  234. package/lib/icons/LanguageIcon/LanguageIcon.js +14 -0
  235. package/lib/icons/LanguageIcon/index.d.ts +1 -0
  236. package/lib/icons/LanguageIcon/index.js +18 -0
  237. package/lib/icons/PlusIcon/PlusIcon.d.ts +5 -0
  238. package/lib/icons/PlusIcon/PlusIcon.js +16 -0
  239. package/lib/icons/PlusIcon/index.d.ts +1 -0
  240. package/lib/icons/PlusIcon/index.js +18 -0
  241. package/lib/icons/PointingArrowIcon/PointingArrowIcon.d.ts +4 -0
  242. package/lib/icons/PointingArrowIcon/PointingArrowIcon.js +15 -0
  243. package/lib/icons/PointingArrowIcon/index.d.ts +1 -0
  244. package/lib/icons/PointingArrowIcon/index.js +18 -0
  245. package/lib/icons/ReportIcon/ReportIcon.d.ts +1 -2
  246. package/lib/icons/ReportIcon/ReportIcon.js +3 -3
  247. package/lib/icons/RocketIcon/RocketIcon.d.ts +7 -0
  248. package/lib/icons/RocketIcon/RocketIcon.js +15 -0
  249. package/lib/icons/RocketIcon/index.d.ts +1 -0
  250. package/lib/icons/RocketIcon/index.js +18 -0
  251. package/lib/icons/SelectIcon/SelectIcon.d.ts +1 -2
  252. package/lib/icons/SelectIcon/SelectIcon.js +5 -5
  253. package/lib/icons/index.d.ts +6 -0
  254. package/lib/icons/index.js +6 -0
  255. package/lib/index.d.ts +1 -1
  256. package/lib/index.js +1 -1
  257. package/lib/layouts/Forbidden.js +4 -0
  258. package/lib/layouts/NotFound.js +4 -0
  259. package/lib/mocks/hooks/index.js +0 -1
  260. package/lib/types/portal/src/shared/types/catalog.d.ts +5 -1
  261. package/lib/types/portal/src/shared/types/nav.d.ts +5 -0
  262. package/lib/ui/ArrowBack.js +0 -1
  263. package/lib/ui/Burger.js +1 -1
  264. package/lib/ui/Dropdown.js +7 -7
  265. package/lib/ui/Highlight.d.ts +1 -1
  266. package/lib/ui/Highlight.js +1 -1
  267. package/lib/ui/Jumbotron.js +1 -1
  268. package/lib/ui/darkColors.js +217 -84
  269. package/lib/utils/css-variables.js +1 -1
  270. package/lib/utils/index.d.ts +1 -0
  271. package/lib/utils/index.js +1 -0
  272. package/lib/utils/tags-parser.d.ts +1 -0
  273. package/lib/utils/tags-parser.js +10 -0
  274. package/package.json +1 -1
  275. package/src/components/Breadcrumbs/Breadcrumb.tsx +2 -5
  276. package/src/components/Breadcrumbs/Breadcrumbs.tsx +6 -2
  277. package/src/components/Breadcrumbs/index.ts +1 -0
  278. package/src/components/Breadcrumbs/styledVariables.ts +17 -0
  279. package/src/components/Button/Button.tsx +53 -47
  280. package/src/components/Button/index.ts +1 -0
  281. package/src/components/Button/styledVariables.ts +104 -0
  282. package/src/components/Catalog/Catalog.tsx +140 -120
  283. package/src/components/Catalog/CatalogCard.tsx +108 -58
  284. package/src/components/Catalog/index.ts +4 -0
  285. package/src/components/Catalog/styledVariables.ts +92 -0
  286. package/src/components/CodeBlock/CodeBlockContainer.tsx +17 -9
  287. package/src/components/CodeBlock/CodeBlockControlButton.tsx +6 -19
  288. package/src/components/CodeBlock/CodeBlockControls.tsx +8 -5
  289. package/src/components/CodeBlock/index.ts +1 -0
  290. package/src/components/CodeBlock/styledVariables.ts +89 -0
  291. package/src/components/ColorModeSwitcher/ColorModeSwitcher.tsx +0 -1
  292. package/src/components/Dropdown/Dropdown.tsx +14 -5
  293. package/src/components/Dropdown/index.ts +1 -0
  294. package/src/components/Dropdown/styledVariables.ts +27 -0
  295. package/src/components/EditPageButton/EditPageButton.tsx +24 -10
  296. package/src/components/Feedback/Comment.tsx +5 -0
  297. package/src/components/Feedback/Rating.tsx +5 -1
  298. package/src/components/Feedback/Reasons.tsx +6 -1
  299. package/src/components/Feedback/Sentiment.tsx +5 -0
  300. package/src/components/Feedback/Thumbs.tsx +4 -4
  301. package/src/components/Filter/Filter.tsx +150 -94
  302. package/src/components/Filter/FilterContent.tsx +95 -0
  303. package/src/components/Filter/FilterPopover.tsx +150 -0
  304. package/src/components/Filter/FilterTag.tsx +37 -0
  305. package/src/components/Filter/FilterTags.tsx +39 -0
  306. package/src/components/Filter/index.ts +2 -0
  307. package/src/components/Filter/styledVariables.ts +109 -0
  308. package/src/components/Footer/CustomFooterNavItem.tsx +1 -1
  309. package/src/components/Footer/Footer.tsx +32 -10
  310. package/src/components/Footer/FooterColumn.tsx +84 -63
  311. package/src/components/Footer/FooterColumns.tsx +6 -4
  312. package/src/components/Footer/FooterCopyright.tsx +13 -7
  313. package/src/components/Footer/index.ts +1 -0
  314. package/src/components/Footer/styledVariables.ts +58 -0
  315. package/src/components/Image/Image.tsx +47 -0
  316. package/src/components/Image/index.ts +1 -0
  317. package/src/components/JsonViewer/JsonViewer.tsx +2 -2
  318. package/src/components/LastUpdated/LastUpdated.tsx +1 -2
  319. package/src/components/LastUpdated/index.ts +1 -0
  320. package/src/components/LastUpdated/styledVariables.ts +8 -0
  321. package/src/components/Markdown/Admonition.tsx +13 -8
  322. package/src/components/Markdown/MarkdownLayout.tsx +2 -15
  323. package/src/components/Markdown/MarkdownWrapper.tsx +2 -4
  324. package/src/components/Markdown/Mermaid.tsx +4 -1
  325. package/src/components/Markdown/index.ts +1 -0
  326. package/src/components/Markdown/styledVariables.ts +230 -0
  327. package/src/components/Menu/Menu.tsx +5 -7
  328. package/src/components/Menu/MenuGroup.tsx +15 -7
  329. package/src/components/Menu/MenuItem.tsx +1 -1
  330. package/src/components/Menu/MenuItemLabel.tsx +9 -13
  331. package/src/components/Menu/MobileMenu.tsx +20 -25
  332. package/src/components/Menu/MobileMenuGroup.tsx +1 -1
  333. package/src/components/Menu/index.ts +1 -0
  334. package/src/components/Menu/styledVariables.ts +99 -0
  335. package/src/components/Navbar/Navbar.tsx +20 -13
  336. package/src/components/Navbar/NavbarItem.tsx +18 -4
  337. package/src/components/Navbar/NavbarMenu.tsx +2 -2
  338. package/src/components/Navbar/index.ts +1 -0
  339. package/src/components/Navbar/styledVariables.ts +39 -0
  340. package/src/components/NavbarLogo/NavbarLogo.tsx +24 -11
  341. package/src/components/NavbarLogo/index.ts +1 -0
  342. package/src/components/NavbarLogo/styledVariables.ts +15 -0
  343. package/src/components/OpenApiDocs/DevOnboardingTryItSecurity.tsx +1 -2
  344. package/src/components/OpenApiDocs/Dropdown.tsx +3 -3
  345. package/src/components/PageNavigation/NextButton.tsx +0 -1
  346. package/src/components/PageNavigation/PreviousButton.tsx +0 -1
  347. package/src/components/Panel/PanelHeader.ts +2 -0
  348. package/src/components/Panel/PanelHeaderTitle.ts +0 -4
  349. package/src/components/Panel/index.ts +1 -0
  350. package/src/components/Panel/styledVariables.ts +479 -0
  351. package/src/components/Product/ProductPicker.tsx +23 -17
  352. package/src/components/Product/index.ts +1 -0
  353. package/src/components/Product/styledVariables.ts +40 -0
  354. package/src/components/Profile/LoginLink.tsx +1 -2
  355. package/src/components/{Navbar → Profile}/MobileUserProfile.tsx +12 -29
  356. package/src/components/Profile/Profile.tsx +1 -24
  357. package/src/components/Profile/UserProfile.tsx +20 -8
  358. package/src/components/Profile/UserProfileData.tsx +40 -0
  359. package/src/components/Profile/index.ts +1 -0
  360. package/src/components/Profile/styledVariables.ts +53 -0
  361. package/src/components/Search/CancelSearch.tsx +2 -15
  362. package/src/components/Search/ProductTag.tsx +8 -8
  363. package/src/components/Search/RecentSearches.tsx +5 -5
  364. package/src/components/Search/Search.tsx +0 -2
  365. package/src/components/Search/SearchIcon.tsx +10 -5
  366. package/src/components/Search/SearchItem.tsx +4 -4
  367. package/src/components/Search/SearchTrigger.tsx +4 -5
  368. package/src/components/Search/ShortcutKey.tsx +1 -5
  369. package/src/components/Search/SuggestedPages.tsx +3 -3
  370. package/src/components/Search/index.ts +1 -0
  371. package/src/components/Search/styledVariables.ts +95 -0
  372. package/src/components/Select/Select.tsx +65 -31
  373. package/src/components/Select/index.ts +1 -0
  374. package/src/components/Select/styledVariables.ts +31 -0
  375. package/src/components/Separator/Separator.tsx +17 -3
  376. package/src/components/Separator/SeparatorItem.tsx +6 -9
  377. package/src/components/Separator/SeparatorLine.tsx +7 -3
  378. package/src/components/Sidebar/ApiCallItem.tsx +17 -13
  379. package/src/components/Sidebar/FooterWrapper.tsx +3 -4
  380. package/src/components/Sidebar/HeaderWrapper.tsx +3 -3
  381. package/src/components/Sidebar/VersionPicker.tsx +6 -4
  382. package/src/components/Sidebar/index.ts +1 -0
  383. package/src/components/Sidebar/styledVariables.ts +214 -0
  384. package/src/components/Sidebar/types.ts +1 -0
  385. package/src/components/SidebarActions/CollapseSidebarButton.tsx +22 -2
  386. package/src/components/SidebarActions/styled.tsx +29 -30
  387. package/src/components/TableOfContent/TableOfContent.tsx +3 -2
  388. package/src/components/TableOfContent/index.ts +1 -0
  389. package/src/components/TableOfContent/styledVariables.ts +44 -0
  390. package/src/components/Tabs/Tab.tsx +1 -1
  391. package/src/components/Tabs/Tabs.tsx +1 -1
  392. package/src/components/Tag/Tag.tsx +71 -0
  393. package/src/components/Tag/index.ts +2 -0
  394. package/src/components/Tag/styledVariables.ts +137 -0
  395. package/src/components/Tiles/ThinTile.tsx +7 -5
  396. package/src/components/Tiles/TileHeader.ts +1 -1
  397. package/src/components/Tiles/TileText.tsx +1 -1
  398. package/src/components/Tiles/WideTile.tsx +10 -8
  399. package/src/components/Tooltip/index.ts +1 -0
  400. package/src/components/Tooltip/styledVariables.ts +18 -0
  401. package/src/components/Typography/SectionHeader.ts +2 -2
  402. package/src/components/Typography/Typography.ts +1 -1
  403. package/src/components/index.ts +1 -2
  404. package/src/config.ts +44 -29
  405. package/src/globalStyle.ts +597 -1999
  406. package/src/hooks/useMobileMenu.ts +3 -4
  407. package/src/hooks/useModalScrollLock.ts +12 -0
  408. package/src/{I18n → i18n}/LanguagePicker.tsx +48 -21
  409. package/src/i18n/index.ts +2 -0
  410. package/src/i18n/styledVariables.ts +37 -0
  411. package/src/icons/AlertIcon/AlertIcon.tsx +0 -5
  412. package/src/icons/ArrowIcon/ArrowIcon.tsx +1 -1
  413. package/src/icons/CheckboxIcon/CheckboxIcon.tsx +64 -0
  414. package/src/icons/CheckboxIcon/index.ts +1 -0
  415. package/src/icons/CollapseIcon/CollapseIcon.tsx +5 -5
  416. package/src/icons/ColorModeIcon/ColorModeIcon.tsx +1 -1
  417. package/src/icons/CopyIcon/CopyIcon.tsx +4 -5
  418. package/src/icons/DeselectIcon/DeselectIcon.tsx +5 -5
  419. package/src/icons/EditIcon/EditIcon.tsx +30 -0
  420. package/src/icons/EditIcon/index.ts +1 -0
  421. package/src/icons/ErrorIcon/ErrorIcon.tsx +15 -0
  422. package/src/icons/ErrorIcon/index.ts +1 -0
  423. package/src/icons/ExpandIcon/ExpandIcon.tsx +5 -6
  424. package/src/icons/ExternalIcon/ExternalIcon.tsx +4 -4
  425. package/src/icons/FileIcon/FileIcon.tsx +2 -3
  426. package/src/icons/LanguageIcon/LanguageIcon.tsx +15 -0
  427. package/src/icons/LanguageIcon/index.ts +1 -0
  428. package/src/icons/PlusIcon/PlusIcon.tsx +25 -0
  429. package/src/icons/PlusIcon/index.ts +1 -0
  430. package/src/icons/PointingArrowIcon/PointingArrowIcon.tsx +16 -0
  431. package/src/icons/PointingArrowIcon/index.ts +1 -0
  432. package/src/icons/ReportIcon/ReportIcon.tsx +3 -4
  433. package/src/icons/RocketIcon/RocketIcon.tsx +32 -0
  434. package/src/icons/RocketIcon/index.tsx +1 -0
  435. package/src/icons/SelectIcon/SelectIcon.tsx +5 -6
  436. package/src/icons/index.ts +6 -0
  437. package/src/index.ts +1 -1
  438. package/src/layouts/Forbidden.tsx +4 -0
  439. package/src/layouts/NotFound.tsx +4 -0
  440. package/src/mocks/hooks/index.ts +0 -1
  441. package/src/types/portal/src/shared/types/catalog.ts +7 -1
  442. package/src/types/portal/src/shared/types/nav.ts +5 -0
  443. package/src/ui/ArrowBack.tsx +0 -1
  444. package/src/ui/Burger.tsx +1 -1
  445. package/src/ui/Dropdown.tsx +7 -7
  446. package/src/ui/Highlight.tsx +2 -2
  447. package/src/ui/Jumbotron.tsx +1 -1
  448. package/src/ui/darkColors.tsx +217 -84
  449. package/src/utils/css-variables.ts +4 -2
  450. package/src/utils/index.ts +1 -0
  451. package/src/utils/tags-parser.ts +8 -0
  452. package/lib/I18n/LanguagePicker.d.ts +0 -4
  453. package/lib/I18n/index.d.ts +0 -1
  454. package/lib/I18n/index.js +0 -6
  455. package/lib/components/OperationBadge/OperationBadge.d.ts +0 -6
  456. package/lib/components/OperationBadge/OperationBadge.js +0 -68
  457. package/lib/components/OperationBadge/index.d.ts +0 -1
  458. package/lib/components/Tags/Tags.d.ts +0 -5
  459. package/lib/components/Tags/Tags.js +0 -32
  460. package/lib/components/Tags/index.d.ts +0 -1
  461. package/src/I18n/index.ts +0 -1
  462. package/src/components/Catalog/index.tsx +0 -3
  463. package/src/components/OperationBadge/OperationBadge.ts +0 -62
  464. package/src/components/OperationBadge/index.ts +0 -1
  465. package/src/components/Tags/Tags.tsx +0 -36
  466. package/src/components/Tags/index.ts +0 -1
  467. /package/lib/components/{Navbar → Profile}/MobileUserProfile.d.ts +0 -0
@@ -0,0 +1,109 @@
1
+ import { css } from 'styled-components';
2
+
3
+ export const filter = css`
4
+ /* === Filter === */
5
+ /**
6
+ * @tokens Filters
7
+ */
8
+ --filter-group-padding: var(--spacing-base) 0 0 0;
9
+
10
+ --filter-title-font-weight: var(--font-weight-bold);
11
+ --filter-title-font-size: var(--font-size-base);
12
+ --filter-title-margin: 0 0 var(--spacing-xxs) 0;
13
+
14
+ --filter-option-font-weight: var(--font-weight-regular);
15
+ --filter-option-font-size: var(--font-size-base);
16
+ --filter-option-margin: var(--spacing-xs) 0 0 0;
17
+
18
+ --filter-option-label-font-size: var(--font-size-base);
19
+ --filter-option-label-font-weight: var(--font-weight-regular);
20
+ --filter-option-label-margin: 0 var(--spacing-xs) 0 0;
21
+ --filter-option-label-color: var(--text-secondary);
22
+
23
+ --filter-option-count-height: 17px;
24
+ --filter-option-count-color: var(--text-secondary);
25
+ --filter-option-count-font-size: var(--font-size-sm);
26
+ --filter-option-count-font-weight: var(--font-weight-regular);
27
+ --filter-option-count-padding: 0px var(--spacing-xxs);
28
+ --filter-option-count-border-radius: var(--spacing-sm);
29
+ --filter-option-count-border: 1px solid var(--border-primary);
30
+ --filter-option-count-background-color: var(--bg-overlay);
31
+
32
+ --filter-content-border-color: var(--border-secondary);
33
+ --filter-content-items-padding: 0 var(--spacing-lg);
34
+ --filter-content-clear-button-margin: var(--spacing-base) auto 0 auto;
35
+ --filter-content-clear-button-width: calc(var(--spacing-unit) * 40);
36
+ --filter-controls-background-color: var(--bg-base);
37
+
38
+ --filter-popover-background-color: var(--bg-base);
39
+ --filter-popover-header-padding: var(--mobile-catalog-filter-padding-vertical) var(--mobile-catalog-filter-padding-horizontal);
40
+ --filter-popover-header-border-color: var(--border-secondary);
41
+ --filter-popover-header-background-color: var(--navbar-background-color);
42
+ --filter-popover-header-label-color: var(--navbar-text-color);
43
+ --filter-popover-header-label-font-size: var(--font-size-lg);
44
+ --filter-popover-header-label-font-weight: var(--font-weight-bold);
45
+ --filter-popover-header-button-color: var(--navbar-text-color);
46
+ --filter-popover-header-button-height: var(--control-height-base);
47
+ --filter-popover-header-button-font-size: var(--font-size-base);
48
+ --filter-popover-header-button-font-weight: var(--font-weight-regular);
49
+
50
+ --filter-tags-wrapper-padding: var(--spacing-xs) 0 var(--spacing-base) 0;
51
+ --filter-tag-color: var(--text-primary);
52
+ --filter-tag-border-radius: var(--spacing-sm);
53
+ --filter-tag-border-color: var(--border-primary);
54
+ --filter-tag-background-color: var(--bg-raised);
55
+ --filter-tag-padding: 0 var(--spacing-xs);
56
+ --filter-tag-font-size: var(--font-size-sm);
57
+ --filter-tag-font-weight: var(--font-weight-regular);
58
+ --filter-tag-margin: 0 var(--spacing-xxs) 0 0;
59
+ --filter-tag-label-margin: 0 var(--spacing-xxs) 0 0;
60
+
61
+ --filter-input-border: 1px solid var(--border-primary);
62
+ --filter-input-min-width: 200px;
63
+ --filter-input-padding: var(--input-padding);
64
+ --filter-input-border-radius: var(--input-border-radius);
65
+ --filter-input-background-color: var(--input-background-color);
66
+ --filter-input-color: var(--text-secondary);
67
+ --filter-input-font-family: var(--font-family-base);
68
+ --filter-input-font-size: var(--font-size-base);
69
+ --filter-input-line-height: var(--input-line-height);
70
+ --filter-input-placeholder-opacity: 0.6;
71
+ --filter-input-placeholder-color: var(--text-placeholder);
72
+ --filter-input-hover-color: var(--text-primary);
73
+ --filter-input-hover-border: 1px solid var(--border-primary);
74
+ --filter-input-focus-color: var(--text-primary);
75
+ --filter-input-focus-border: 1px solid var(--border-primary);
76
+
77
+ --filter-add-button-margin: 0 var(--spacing-sm) 0 0;
78
+ --filter-add-button-padding: 0;
79
+ --filter-add-button-font-size: var(--font-size-base);
80
+ --filter-add-button-font-weight: var(--font-weight-regular);
81
+
82
+ --filter-select-min-height: var(--control-height-base);
83
+ --filter-select-color: var(--text-primary);
84
+ --filter-select-border-color: var(--border-primary);
85
+ --filter-select-border-radius: calc(var(--spacing-unit) * 1.5);
86
+ --filter-select-padding: 0;
87
+ --filter-select-hover-border-color: var(--text-primary);
88
+ --filter-select-option-margin: 0;
89
+
90
+ --filter-date-picker-color: var(--text-primary);
91
+ --filter-date-picker-margin: 0 0 var(--spacing-xxs) 0;
92
+ --filter-date-picker-gap: var(--spacing-xs);
93
+ --filter-date-picker-width: 50px;
94
+ --filter-date-picker-tile-background: var(--color-blue-2);
95
+ --filter-date-picker-tile-color: var(--text-primary);
96
+ --filter-date-picker-tile-hover-background: var(--color-blue-3);
97
+ --filter-date-picker-tile-hover-color: var(--text-primary);
98
+ --filter-date-picker-input-width: var(--spacing-md);
99
+ --filter-date-picker-invalid-input-background: var(--bg-raised);
100
+ --filter-date-picker-button-padding: var(--spacing-xxs);
101
+ --filter-date-picker-icon-stroke: var(--text-secondary);
102
+ --filter-date-picker-icon-width: var(--spacing-sm);
103
+ --filter-date-picker-hover-icon-stroke: var(--text-primary);
104
+ --filter-date-picker-wrapper-border-color: var(--border-primary);
105
+ --filter-date-picker-wrapper-radius: calc(var(--spacing-unit) * 1.5);
106
+ --filter-date-picker-wrapper-padding: calc(var(--spacing-xxs) / 2) var(--spacing-xs);
107
+
108
+ // @tokens End
109
+ `;
@@ -25,7 +25,7 @@ const FooterItem = styled.li`
25
25
  display: inline-block;
26
26
  text-align: center;
27
27
  line-height: var(--line-height-base);
28
- font-size: var(--navbar-item-font-size);
28
+ font-size: var(--navbar-font-size);
29
29
  margin: calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);
30
30
  font-weight: var(--font-weight-regular);
31
31
  `;
@@ -5,13 +5,15 @@ import { FooterColumns } from '@theme/components/Footer/FooterColumns';
5
5
  import { FooterCopyright } from '@theme/components/Footer/FooterCopyright';
6
6
  import { isEmptyArray } from '@theme/utils';
7
7
  import { useThemeConfig } from '@theme/hooks';
8
- import type { ResolvedNavItem } from '@theme/types/portal';
8
+ import type { LogoConfig, ResolvedNavItem } from '@theme/types/portal';
9
+ import { Flex } from '@theme/ui';
10
+ import { LogoContainer, NavbarLogo } from '@theme/components/NavbarLogo';
9
11
 
10
12
  export function Footer(): JSX.Element | null {
11
- const { footer } = useThemeConfig() || {};
13
+ const { footer, logo } = useThemeConfig() || {};
12
14
  const { items, copyrightText } = footer || {};
13
15
 
14
- if (isEmptyArray(items) || !copyrightText || footer?.hide) {
16
+ if (isEmptyArray(items) || footer?.hide) {
15
17
  return null;
16
18
  }
17
19
 
@@ -19,38 +21,58 @@ export function Footer(): JSX.Element | null {
19
21
  <FooterPresentationalComponent
20
22
  items={items as ResolvedNavItem[]}
21
23
  copyrightText={copyrightText}
24
+ logo={footer?.logo?.hide ? undefined : logo}
22
25
  />
23
26
  );
24
27
  }
25
28
 
26
29
  interface FooterPresentationalComponentProps {
27
30
  items: ResolvedNavItem[];
28
- copyrightText: string;
31
+ copyrightText?: string;
32
+ logo?: LogoConfig;
29
33
  className?: string;
30
34
  }
31
35
 
32
36
  export function FooterPresentationalComponent({
33
37
  items,
34
38
  copyrightText,
39
+ logo,
35
40
  className,
36
41
  }: FooterPresentationalComponentProps): JSX.Element | null {
37
42
  return (
38
43
  <FooterContainer data-component-name="Footer/Footer" className={className}>
39
- <FooterColumns columns={items as ResolvedNavItem[]} />
40
- <FooterCopyright copyrightText={copyrightText} />
44
+ <ColumnsSection>
45
+ {logo && <NavbarLogo logo={logo as Pick<LogoConfig, 'image' | 'link' | 'altText'>} />}
46
+ <FooterColumns columns={items as ResolvedNavItem[]} />
47
+ </ColumnsSection>
48
+ {copyrightText && <FooterCopyright copyrightText={copyrightText} />}
41
49
  </FooterContainer>
42
50
  );
43
51
  }
44
52
 
53
+ const ColumnsSection = styled(Flex)`
54
+ flex-direction: column;
55
+
56
+ ${({ theme }) => theme.mediaQueries.small} {
57
+ flex-direction: row;
58
+ }
59
+ `;
60
+
45
61
  const FooterContainer = styled.footer`
62
+ padding: var(--mobile-footer-padding-vertical) var(--mobile-footer-padding-horizontal);
63
+ border-top: 1px solid var(--footer-border-color);
46
64
  font-size: var(--footer-font-size);
47
65
  flex-shrink: 0;
48
66
  background-color: var(--footer-background-color);
49
67
  color: var(--footer-text-color);
50
- font-family: var(--footer-font-family);
51
68
  font-weight: var(--footer-font-weight);
52
- a,
53
- a:hover {
54
- color: var(--footer-text-color);
69
+
70
+ ${LogoContainer} {
71
+ display: var(--footer-logo-display);
72
+ margin: 0 var(--footer-logo-margin-right) var(--footer-logo-margin-bottom) 0;
73
+ }
74
+
75
+ ${({ theme }) => theme.mediaQueries.small} {
76
+ padding: var(--footer-padding-vertical) var(--footer-padding-horizontal);
55
77
  }
56
78
  `;
@@ -1,10 +1,12 @@
1
1
  import React from 'react';
2
- import styled, { css } from 'styled-components';
2
+ import styled from 'styled-components';
3
3
 
4
4
  import { Link } from '@portal/Link';
5
5
  import type { ResolvedNavItem } from '@theme/types/portal';
6
6
  import { useTranslate } from '@portal/hooks';
7
+ import { Image } from '@theme/components/Image/Image';
7
8
  import { telemetry } from '@portal/telemetry';
9
+ import { ExternalIcon } from '@theme/icons';
8
10
 
9
11
  interface FooterColumnProps {
10
12
  column: ResolvedNavItem;
@@ -13,52 +15,59 @@ interface FooterColumnProps {
13
15
 
14
16
  export function FooterColumn({ column, className }: FooterColumnProps): JSX.Element {
15
17
  const { translate } = useTranslate();
16
- const hasIcon = column.items ? column.items.some((item) => !!item.icon) : false;
18
+ const { items = [] } = column;
19
+
20
+ const iconsOnly = items.every((item) => item.label === item.link && (item.icon || item.srcSet));
17
21
 
18
22
  return (
19
23
  <FooterColumnContainer data-component-name="Footer/FooterColumn" className={className}>
20
- <FooterColumnTitle withIconPadding={hasIcon}>
21
- {translate(column.labelTranslationKey, column.label)}
22
- </FooterColumnTitle>
23
- {column?.items?.map((columnItem, columnItemIndex) => {
24
- if (columnItem.type === 'error') {
25
- return null;
26
- }
27
-
28
- return columnItem.type === 'separator' ? (
29
- <FooterSeparator key={columnItem.label + '_' + columnItemIndex}>
30
- {translate(columnItem.labelTranslationKey, columnItem.label)}
31
- </FooterSeparator>
32
- ) : (
33
- <FooterLink
34
- key={columnItemIndex}
35
- to={columnItem.link}
36
- external={columnItem.external}
37
- target={columnItem.target}
38
- data-cy={columnItem.label}
39
- onClick={() => telemetry.send('footer_item_clicked', {})}
40
- >
41
- <FooterLinkIcon url={columnItem.icon} withIconPadding={hasIcon} />
42
- {translate(columnItem.labelTranslationKey, columnItem.label)}
43
- </FooterLink>
44
- );
45
- })}
24
+ <FooterColumnTitle>{translate(column.labelTranslationKey, column.label)}</FooterColumnTitle>
25
+ <FooterColumnItems iconsOnly={iconsOnly}>
26
+ {items?.map((columnItem, columnItemIndex) => {
27
+ if (columnItem.type === 'error') {
28
+ return null;
29
+ }
30
+
31
+ return columnItem.type === 'separator' ? (
32
+ <FooterSeparator key={columnItem.label + '_' + columnItemIndex}>
33
+ {translate(columnItem.labelTranslationKey, columnItem.label)}
34
+ </FooterSeparator>
35
+ ) : (
36
+ <FooterLink
37
+ key={columnItemIndex}
38
+ to={columnItem.link}
39
+ external={columnItem.external}
40
+ target={columnItem.target}
41
+ data-cy={columnItem.label}
42
+ iconsOnly={iconsOnly}
43
+ onClick={() => telemetry.send('footer_item_clicked', {})}
44
+ >
45
+ {columnItem.icon || columnItem.srcSet ? (
46
+ <FooterLinkIcon>
47
+ <Image src={columnItem.icon} srcSet={columnItem.srcSet} />
48
+ </FooterLinkIcon>
49
+ ) : null}
50
+ {!iconsOnly && translate(columnItem.labelTranslationKey, columnItem.label)}
51
+ {columnItem.external ? <ExternalIcon /> : null}
52
+ </FooterLink>
53
+ );
54
+ })}
55
+ </FooterColumnItems>
46
56
  </FooterColumnContainer>
47
57
  );
48
58
  }
49
59
 
50
- const FooterColumnTitle = styled.p<{ withIconPadding: boolean }>`
60
+ const FooterColumnTitle = styled.p`
51
61
  display: inline-block;
52
62
  font-weight: var(--footer-title-font-weight);
53
63
  font-size: var(--footer-title-font-size);
54
- margin-bottom: var(--footer-title-margin-vertical);
55
- ${({ withIconPadding }) =>
56
- withIconPadding &&
57
- css`
58
- padding-left: calc(var(--footer-item-icon-width) + var(--footer-item-icon-margin-right));
59
- `}
60
- font-family: var(--footer-font-family);
64
+ margin-top: 0;
65
+ margin-bottom: var(--mobile-footer-title-margin-bottom);
61
66
  color: var(--footer-title-text-color);
67
+
68
+ ${({ theme }) => theme.mediaQueries.small} {
69
+ margin-bottom: var(--footer-title-margin-bottom);
70
+ }
62
71
  `;
63
72
 
64
73
  const FooterSeparator = styled.div`
@@ -66,46 +75,58 @@ const FooterSeparator = styled.div`
66
75
  margin: 10px 0 5px 0;
67
76
  font-size: 0.75em;
68
77
  text-transform: uppercase;
69
- font-family: var(--footer-font-family);
70
78
  `;
71
79
 
72
80
  const FooterColumnContainer = styled.div`
73
81
  display: flex;
74
82
  flex-direction: column;
75
- text-align: left;
76
- margin: var(--footer-column-margin-horizontal) var(--footer-column-margin-vertical);
77
- width: var(--footer-column-width);
83
+ text-align: center;
78
84
  word-break: break-word;
85
+ flex: 1;
86
+ margin: 0 0 var(--mobile-footer-column-margin-bottom) 0;
87
+ min-width: var(--footer-column-min-width);
88
+ align-content: center;
89
+ flex-wrap: wrap;
90
+
91
+ ${({ theme }) => theme.mediaQueries.small} {
92
+ text-align: left;
93
+ margin: 0 var(--footer-column-margin-horizontal);
94
+ border-right: 1px solid var(--footer-dividing-border-color);
95
+ margin-bottom: var(--footer-column-margin-bottom);
96
+ }
79
97
  `;
80
98
 
81
- const FooterLink = styled(Link)`
82
- font-weight: var(--font-weight-bold);
83
- padding: var(--footer-item-padding-vertical) var(--footer-item-padding-horizontal);
99
+ export const FooterLinkIcon = styled.div`
100
+ display: inline-flex;
101
+ width: var(--footer-item-icon-width);
102
+ height: var(--footer-item-icon-height);
103
+ margin-right: var(--footer-item-icon-margin-right);
104
+ vertical-align: middle;
105
+ border: 1px solid var(--footer-item-icon-border-color);
106
+ border-radius: var(--footer-item-icon-border-radius);
107
+ padding: var(--footer-item-icon-padding);
108
+ `;
109
+
110
+ const FooterLink = styled(Link)<{ iconsOnly: boolean }>`
111
+ padding: var(--footer-link-padding-vertical) var(--footer-link-padding-horizontal);
84
112
  color: var(--footer-link-text-color);
85
113
  text-decoration: none;
86
114
  &:hover {
87
115
  color: var(--footer-link-hover-color);
88
116
  }
117
+
118
+ &:last-child ${FooterLinkIcon} {
119
+ margin-right: ${({ iconsOnly }) => (iconsOnly ? '0' : 'var(--footer-item-icon-margin-right)')};
120
+ }
89
121
  `;
90
122
 
91
- export const FooterLinkIcon = styled.i<{ url?: string; withIconPadding: boolean }>`
92
- ${({ withIconPadding, url }) =>
93
- withIconPadding &&
94
- !url &&
95
- css`
96
- padding-left: calc(var(--footer-item-icon-width) + var(--footer-item-icon-margin-right));
97
- `}
98
- ${({ url }) =>
99
- url &&
100
- css`
101
- background-image: url('${url}');
102
- background-size: contain;
103
- background-position: center;
104
- background-repeat: no-repeat;
105
- width: var(--footer-item-icon-width);
106
- height: var(--footer-item-icon-height);
107
- display: inline-block;
108
- margin-right: var(--footer-item-icon-margin-right);
109
- vertical-align: middle;
110
- `}
123
+ export const FooterColumnItems = styled.div<{ iconsOnly: boolean }>`
124
+ display: flex;
125
+ flex-wrap: wrap;
126
+ justify-content: center;
127
+ flex-direction: ${(props) => (props.iconsOnly ? 'row' : 'column')};
128
+
129
+ ${({ theme }) => theme.mediaQueries.small} {
130
+ justify-content: flex-start;
131
+ }
111
132
  `;
@@ -26,15 +26,15 @@ export function FooterColumns({ columns, className }: FooterColumnsProps): JSX.E
26
26
  }
27
27
 
28
28
  export const FooterColumnsContainer = styled.div`
29
- padding: var(--footer-padding-vertical) var(--footer-padding-horizontal);
30
29
  display: flex;
31
30
  flex-direction: column;
32
31
  justify-content: center;
33
32
  max-width: var(--footer-container-max-width);
34
- margin: 0 auto;
33
+ margin: 0;
34
+ flex: 1;
35
35
 
36
36
  ${({ theme }) => theme.mediaQueries.small} {
37
- padding: 5.625em 20px 3.9375em 20px;
37
+ margin: 0 auto;
38
38
  }
39
39
 
40
40
  ${({ theme }) => theme.mediaQueries.print} {
@@ -47,8 +47,10 @@ export const FooterRow = styled.div`
47
47
  display: flex;
48
48
  flex-wrap: wrap;
49
49
  justify-content: flex-start;
50
+ flex-direction: column;
50
51
 
51
52
  ${({ theme }) => theme.mediaQueries.small} {
52
- justify-content: space-evenly;
53
+ justify-content: space-between;
54
+ flex-direction: row;
53
55
  }
54
56
  `;
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import styled from 'styled-components';
3
+ import { LanguagePicker } from '@theme';
3
4
 
4
- import { useTranslate } from '@portal/hooks';
5
+ import { useI18n, useTranslate } from '@portal/hooks';
5
6
 
6
7
  interface FooterCopyrightProps {
7
8
  copyrightText: string;
@@ -13,6 +14,8 @@ export function FooterCopyright({
13
14
  className,
14
15
  }: FooterCopyrightProps): JSX.Element | null {
15
16
  const { translate } = useTranslate();
17
+ const { changeLanguage } = useI18n();
18
+
16
19
  const translationKeys = {
17
20
  copyrightText: 'theme.footer.copyrightText',
18
21
  };
@@ -22,21 +25,24 @@ export function FooterCopyright({
22
25
  data-component-name="Footer/FooterCopyright"
23
26
  data-translation-key={translationKeys.copyrightText}
24
27
  >
25
- {translate(translationKeys.copyrightText, copyrightText)}
28
+ <Label>{translate(translationKeys.copyrightText, copyrightText)}</Label>
29
+ <LanguagePicker onChangeLanguage={changeLanguage} placement="top" alignment="end" />
26
30
  </Wrapper>
27
31
  ) : null;
28
32
  }
29
33
 
30
34
  const Wrapper = styled.section`
31
35
  display: flex;
32
- justify-content: center;
33
- font-size: 0.875em;
34
- padding: 1.5em 3em;
35
- font-weight: var(--font-weight-bold);
36
+ justify-content: space-between;
37
+ align-items: center;
38
+ font-size: var(--footer-copyright-font-size);
39
+ margin-top: var(--footer-copyright-margin-top);
36
40
  background-color: var(--footer-background-color);
37
41
  color: var(--footer-text-color);
38
- text-align: center;
42
+ text-align: var(--footer-copyright-text-align);
39
43
  span {
40
44
  max-width: var(--footer-container-max-width);
41
45
  }
42
46
  `;
47
+
48
+ const Label = styled.div``;
@@ -2,3 +2,4 @@ export * from '@theme/components/Footer/Footer';
2
2
  export * from '@theme/components/Footer/FooterColumn';
3
3
  export * from '@theme/components/Footer/FooterColumns';
4
4
  export * from '@theme/components/Footer/FooterCopyright';
5
+ export * from '@theme/components/Footer/styledVariables';
@@ -0,0 +1,58 @@
1
+ import { css } from 'styled-components';
2
+
3
+ export const footer = css`
4
+ /**
5
+ * @tokens Footer
6
+ */
7
+ --footer-background-color: var(--bg-raised); // @presenter Color
8
+ --footer-text-color: var(--text-secondary); // @presenter Color
9
+ --footer-border-color: var(--border-secondary); // @presenter Color
10
+
11
+ --footer-padding-vertical: calc(var(--spacing-unit) * 20); // @presenter Spacing
12
+ --footer-padding-horizontal: calc(var(--spacing-unit) * 20); // @presenter Spacing
13
+
14
+ --footer-font-size: var(--font-size-base); // @presenter FontSize
15
+ --footer-font-weight: var(--font-weight-regular); // @presenter FontWeight
16
+
17
+ --footer-dividing-border-color: var(--footer-border-color); // @presenter Color
18
+
19
+ --footer-title-text-color: var(--text-primary); // @presenter Color
20
+ --footer-title-font-size: var(--font-size-xl); // @presenter FontSize
21
+ --footer-title-font-weight: var(--font-weight-bold); // @presenter FontWeight
22
+ --footer-title-margin-bottom: var(--spacing-lg); // @presenter Spacing
23
+
24
+ --footer-link-text-color: var(--text-secondary); // @presenter Color
25
+ --footer-link-hover-color: var(--text-primary); // @presenter Color
26
+ --footer-link-padding-vertical: var(--spacing-xs); // @presenter Spacing
27
+ --footer-link-padding-horizontal: 0;
28
+
29
+ --footer-item-icon-width: var(--spacing-lg); // @presenter Spacing
30
+ --footer-item-icon-height: var(--spacing-lg); // @presenter Spacing
31
+ --footer-item-icon-margin-right: var(--spacing-sm); // @presenter Spacing
32
+ --footer-item-icon-border-color: var(--border-primary); // @presenter Color
33
+ --footer-item-icon-border-radius: 12px; // @presenter BorderRadius
34
+ --footer-item-icon-padding: var(--spacing-xxs); // @presenter Spacing
35
+
36
+ --footer-column-min-width: calc(var(--spacing-unit) * 30);
37
+ --footer-column-margin-bottom: var(--spacing-lg); // @presenter Spacing
38
+ --footer-column-margin-horizontal: var(--spacing-sm); // @presenter Spacing
39
+
40
+ --footer-copyright-font-size: var(--footer-font-size); // @presenter FontSize
41
+ --footer-copyright-margin-top: var(--spacing-sm); // @presenter Spacing
42
+ --footer-copyright-text-align: start;
43
+
44
+ --footer-logo-display: block;
45
+ --footer-logo-margin-right: 0; // @presenter Spacing
46
+ --footer-logo-margin-bottom: var(--spacing-xl); // @presenter Spacing
47
+
48
+ --footer-language-picker-display: block;
49
+
50
+ --footer-container-max-width: var(--container-width); // @presenter Spacing
51
+
52
+ --mobile-footer-padding-vertical: var(--spacing-base); // @presenter Spacing
53
+ --mobile-footer-padding-horizontal: var(--spacing-base); // @presenter Spacing
54
+ --mobile-footer-column-margin-bottom: var(--spacing-base); // @presenter Spacing
55
+ --mobile-footer-title-margin-bottom: var(--spacing-sm); // @presenter Spacing
56
+
57
+ // @tokens End
58
+ `;
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+
4
+ function parseSrcSet(srcSet: string): Map<string, string> {
5
+ const result = new Map<string, string>();
6
+ const parts = srcSet.split(', ');
7
+
8
+ for (const part of parts) {
9
+ const [url, theme] = part.split(' ');
10
+ result.set(theme, url);
11
+ }
12
+
13
+ return result;
14
+ }
15
+
16
+ type ImageProps = {
17
+ src?: string;
18
+ srcSet?: string;
19
+ alt?: string;
20
+ className?: string;
21
+ };
22
+
23
+ export function Image(props: ImageProps) {
24
+ const { src, srcSet, alt, className } = props;
25
+
26
+ const parsedSourceSetMap = React.useMemo(() => {
27
+ return srcSet ? parseSrcSet(srcSet) : new Map();
28
+ }, [srcSet]);
29
+
30
+ return (
31
+ <>
32
+ {src ? (
33
+ <img src={src} alt={alt} className={className} />
34
+ ) : (
35
+ Array.from(parsedSourceSetMap).map(([key, value]) => (
36
+ <ColorModeAwareImage key={key} colorMode={key} src={value} alt={alt} />
37
+ ))
38
+ )}
39
+ </>
40
+ );
41
+ }
42
+
43
+ const ColorModeAwareImage = styled.img<{ colorMode: string }>`
44
+ html:not(.${(props) => props.colorMode}) && {
45
+ display: none;
46
+ }
47
+ `;
@@ -0,0 +1 @@
1
+ export * from '@theme/components/Image/Image';
@@ -108,7 +108,7 @@ export const JsonViewer = styled(Json).attrs(() => ({
108
108
  }))<JsonProps>`
109
109
  .redoc-json code {
110
110
  background-color: var(--panel-samples-code-block-background-color);
111
- color: var(--text-color-inverse);
111
+ color: var(--text-secondary);
112
112
  padding: inherit;
113
113
  border: none;
114
114
  }
@@ -175,7 +175,7 @@ export const JsonViewer = styled(Json).attrs(() => ({
175
175
  background-color: transparent;
176
176
  border: 0;
177
177
  padding: 1px;
178
- color: #fff;
178
+ color: var(--text-secondary);
179
179
  width: var(--size);
180
180
  height: var(--size);
181
181
  margin-left: calc((var(--size) + var(--margin-right)) * -1);
@@ -51,8 +51,7 @@ export function LastUpdated(props: LastUpdatedProps): JSX.Element | null {
51
51
  data-print-datetime={isoDate}
52
52
  data-translation-key={translationKey}
53
53
  >
54
- {text}
55
- {/* TODO: fix issue with snapshot tests - they should not depend on current date */}
54
+ {text} {/* TODO: fix issue with snapshot tests - they should not depend on current date */}
56
55
  <time dateTime={isoDate}>{lastUpdatedString}</time>
57
56
  </Wrapper>
58
57
  );
@@ -0,0 +1 @@
1
+ export * from '@theme/components/LastUpdated/styledVariables';
@@ -0,0 +1,8 @@
1
+ import { css } from "styled-components";
2
+
3
+ export const lastUpdated = css`
4
+ --last-updated-text-color: var(--text-secondary);
5
+ --last-updated-font-size: var(--font-size-sm);
6
+ --last-updated-font-family: var(--font-family-base);
7
+ --last-updated-line-height: var(--line-height-base);
8
+ `;