@redocly/theme 0.18.3-patch.8 → 0.18.4

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 (434) hide show
  1. package/lib/I18n/LanguagePicker.d.ts +2 -7
  2. package/lib/I18n/LanguagePicker.js +12 -27
  3. package/lib/I18n/index.d.ts +0 -1
  4. package/lib/I18n/index.js +0 -15
  5. package/lib/components/Breadcrumbs/Breadcrumb.js +5 -2
  6. package/lib/components/Breadcrumbs/Breadcrumbs.js +2 -6
  7. package/lib/components/Breadcrumbs/index.d.ts +0 -1
  8. package/lib/components/Breadcrumbs/index.js +0 -1
  9. package/lib/components/Button/Button.d.ts +3 -6
  10. package/lib/components/Button/Button.js +41 -41
  11. package/lib/components/Button/index.d.ts +0 -1
  12. package/lib/components/Button/index.js +0 -1
  13. package/lib/components/Catalog/Catalog.d.ts +0 -6
  14. package/lib/components/Catalog/Catalog.js +103 -108
  15. package/lib/components/Catalog/CatalogCard.js +58 -89
  16. package/lib/components/Catalog/index.d.ts +3 -4
  17. package/lib/components/Catalog/index.js +3 -4
  18. package/lib/components/CodeBlock/CodeBlockContainer.js +10 -38
  19. package/lib/components/CodeBlock/CodeBlockControlButton.d.ts +4 -3
  20. package/lib/components/CodeBlock/CodeBlockControlButton.js +19 -5
  21. package/lib/components/CodeBlock/CodeBlockControls.js +5 -8
  22. package/lib/components/CodeBlock/index.d.ts +0 -1
  23. package/lib/components/CodeBlock/index.js +0 -1
  24. package/lib/components/ColorModeSwitcher/ColorModeSwitcher.js +1 -0
  25. package/lib/components/Dropdown/Dropdown.d.ts +3 -9
  26. package/lib/components/Dropdown/Dropdown.js +4 -7
  27. package/lib/components/Dropdown/index.d.ts +0 -1
  28. package/lib/components/Dropdown/index.js +0 -1
  29. package/lib/components/EditPageButton/EditPageButton.js +1 -5
  30. package/lib/components/Feedback/Comment.js +0 -5
  31. package/lib/components/Feedback/Rating.js +1 -5
  32. package/lib/components/Feedback/Reasons.js +1 -6
  33. package/lib/components/Feedback/Sentiment.js +0 -5
  34. package/lib/components/Feedback/Thumbs.js +4 -4
  35. package/lib/components/Filter/Filter.d.ts +1 -3
  36. package/lib/components/Filter/Filter.js +80 -113
  37. package/lib/components/Filter/index.d.ts +0 -2
  38. package/lib/components/Filter/index.js +0 -2
  39. package/lib/components/Footer/CustomFooterNavItem.js +1 -1
  40. package/lib/components/Footer/Footer.d.ts +3 -4
  41. package/lib/components/Footer/Footer.js +10 -28
  42. package/lib/components/Footer/FooterColumn.d.ts +3 -3
  43. package/lib/components/Footer/FooterColumn.js +63 -55
  44. package/lib/components/Footer/FooterColumns.js +4 -6
  45. package/lib/components/Footer/FooterCopyright.js +6 -11
  46. package/lib/components/Footer/index.d.ts +0 -1
  47. package/lib/components/Footer/index.js +0 -1
  48. package/lib/components/JsonViewer/JsonViewer.js +2 -2
  49. package/lib/components/LastUpdated/LastUpdated.js +0 -1
  50. package/lib/components/Markdown/Admonition.js +9 -12
  51. package/lib/components/Markdown/MarkdownWrapper.js +4 -2
  52. package/lib/components/Markdown/Mermaid.js +1 -4
  53. package/lib/components/Markdown/index.d.ts +0 -1
  54. package/lib/components/Markdown/index.js +0 -1
  55. package/lib/components/Menu/Menu.js +7 -5
  56. package/lib/components/Menu/MenuGroup.js +7 -12
  57. package/lib/components/Menu/MenuItemLabel.js +13 -9
  58. package/lib/components/Menu/MobileMenu.js +25 -20
  59. package/lib/components/Menu/MobileMenuGroup.js +1 -1
  60. package/lib/components/Menu/index.d.ts +0 -1
  61. package/lib/components/Menu/index.js +0 -1
  62. package/lib/components/{Profile → Navbar}/MobileUserProfile.js +24 -12
  63. package/lib/components/Navbar/Navbar.js +11 -10
  64. package/lib/components/Navbar/NavbarItem.d.ts +1 -1
  65. package/lib/components/Navbar/NavbarItem.js +4 -11
  66. package/lib/components/Navbar/NavbarMenu.js +2 -2
  67. package/lib/components/Navbar/index.d.ts +0 -1
  68. package/lib/components/Navbar/index.js +0 -1
  69. package/lib/components/NavbarLogo/NavbarLogo.d.ts +1 -4
  70. package/lib/components/NavbarLogo/NavbarLogo.js +5 -13
  71. package/lib/components/NavbarLogo/index.d.ts +0 -1
  72. package/lib/components/NavbarLogo/index.js +0 -1
  73. package/lib/components/OpenApiDocs/DevOnboardingTryItSecurity.js +2 -2
  74. package/lib/components/OpenApiDocs/Dropdown.js +3 -3
  75. package/lib/components/OperationBadge/OperationBadge.d.ts +6 -0
  76. package/lib/components/OperationBadge/OperationBadge.js +68 -0
  77. package/lib/components/OperationBadge/index.d.ts +1 -0
  78. package/lib/{icons/LanguageIcon → components/OperationBadge}/index.js +1 -1
  79. package/lib/components/Panel/PanelHeader.js +0 -2
  80. package/lib/components/Panel/PanelHeaderTitle.js +4 -0
  81. package/lib/components/Panel/index.d.ts +0 -1
  82. package/lib/components/Panel/index.js +0 -1
  83. package/lib/components/Product/ProductPicker.js +5 -17
  84. package/lib/components/Product/index.d.ts +0 -1
  85. package/lib/components/Product/index.js +0 -1
  86. package/lib/components/Profile/LoginLink.js +2 -1
  87. package/lib/components/Profile/Profile.js +22 -3
  88. package/lib/components/Profile/UserProfile.js +9 -21
  89. package/lib/components/Profile/index.d.ts +0 -1
  90. package/lib/components/Profile/index.js +0 -15
  91. package/lib/components/Search/CancelSearch.js +14 -2
  92. package/lib/components/Search/ProductTag.js +8 -8
  93. package/lib/components/Search/RecentSearches.js +5 -5
  94. package/lib/components/Search/Search.js +2 -0
  95. package/lib/components/Search/SearchIcon.js +2 -2
  96. package/lib/components/Search/SearchItem.js +4 -4
  97. package/lib/components/Search/SearchTrigger.js +5 -4
  98. package/lib/components/Search/ShortcutKey.js +5 -1
  99. package/lib/components/Search/SuggestedPages.js +3 -3
  100. package/lib/components/Search/index.d.ts +0 -1
  101. package/lib/components/Search/index.js +0 -1
  102. package/lib/components/Select/Select.d.ts +9 -21
  103. package/lib/components/Select/Select.js +17 -28
  104. package/lib/components/Select/index.d.ts +0 -1
  105. package/lib/components/Select/index.js +0 -1
  106. package/lib/components/Separator/Separator.js +3 -11
  107. package/lib/components/Separator/SeparatorItem.js +9 -6
  108. package/lib/components/Separator/SeparatorLine.js +3 -7
  109. package/lib/components/Sidebar/ApiCallItem.d.ts +6 -2
  110. package/lib/components/Sidebar/ApiCallItem.js +13 -17
  111. package/lib/components/Sidebar/FooterWrapper.js +4 -3
  112. package/lib/components/Sidebar/HeaderWrapper.js +3 -3
  113. package/lib/components/Sidebar/VersionPicker.d.ts +3 -3
  114. package/lib/components/Sidebar/VersionPicker.js +4 -5
  115. package/lib/components/Sidebar/index.d.ts +0 -1
  116. package/lib/components/Sidebar/index.js +0 -1
  117. package/lib/components/Sidebar/types.d.ts +0 -1
  118. package/lib/components/SidebarActions/CollapseSidebarButton.js +1 -41
  119. package/lib/components/SidebarActions/styled.js +21 -29
  120. package/lib/components/TableOfContent/TableOfContent.js +3 -2
  121. package/lib/components/TableOfContent/index.d.ts +0 -1
  122. package/lib/components/TableOfContent/index.js +0 -1
  123. package/lib/components/Tabs/Tab.js +1 -1
  124. package/lib/components/Tabs/Tabs.js +1 -1
  125. package/lib/components/Tags/Tags.d.ts +5 -0
  126. package/lib/components/Tags/Tags.js +32 -0
  127. package/lib/components/Tags/index.d.ts +1 -0
  128. package/lib/components/{Image → Tags}/index.js +1 -1
  129. package/lib/components/Tiles/ThinTile.js +5 -7
  130. package/lib/components/Tiles/TileHeader.js +1 -1
  131. package/lib/components/Tiles/TileText.js +1 -1
  132. package/lib/components/Tiles/WideTile.js +8 -10
  133. package/lib/components/Tooltip/index.d.ts +0 -1
  134. package/lib/components/Tooltip/index.js +0 -1
  135. package/lib/components/Typography/SectionHeader.js +2 -2
  136. package/lib/components/Typography/Typography.js +1 -1
  137. package/lib/components/index.d.ts +2 -1
  138. package/lib/components/index.js +2 -1
  139. package/lib/config.d.ts +0 -113
  140. package/lib/config.js +3 -27
  141. package/lib/globalStyle.js +1983 -602
  142. package/lib/hooks/useMobileMenu.js +6 -5
  143. package/lib/icons/AlertIcon/AlertIcon.js +5 -0
  144. package/lib/icons/ArrowIcon/ArrowIcon.js +1 -1
  145. package/lib/icons/CollapseIcon/CollapseIcon.d.ts +1 -1
  146. package/lib/icons/CollapseIcon/CollapseIcon.js +5 -5
  147. package/lib/icons/ColorModeIcon/ColorModeIcon.js +1 -1
  148. package/lib/icons/CopyIcon/CopyIcon.d.ts +2 -1
  149. package/lib/icons/CopyIcon/CopyIcon.js +4 -4
  150. package/lib/icons/DeselectIcon/DeselectIcon.d.ts +1 -1
  151. package/lib/icons/DeselectIcon/DeselectIcon.js +5 -5
  152. package/lib/icons/ExpandIcon/ExpandIcon.d.ts +2 -1
  153. package/lib/icons/ExpandIcon/ExpandIcon.js +5 -5
  154. package/lib/icons/FileIcon/FileIcon.d.ts +2 -1
  155. package/lib/icons/FileIcon/FileIcon.js +2 -2
  156. package/lib/icons/ReportIcon/ReportIcon.d.ts +2 -1
  157. package/lib/icons/ReportIcon/ReportIcon.js +3 -3
  158. package/lib/icons/SelectIcon/SelectIcon.d.ts +2 -1
  159. package/lib/icons/SelectIcon/SelectIcon.js +5 -5
  160. package/lib/icons/index.d.ts +0 -4
  161. package/lib/icons/index.js +0 -4
  162. package/lib/layouts/Forbidden.js +0 -4
  163. package/lib/layouts/NotFound.js +0 -4
  164. package/lib/types/portal/src/shared/types/catalog.d.ts +1 -5
  165. package/lib/types/portal/src/shared/types/nav.d.ts +0 -5
  166. package/lib/ui/ArrowBack.js +1 -0
  167. package/lib/ui/Burger.js +1 -1
  168. package/lib/ui/Dropdown.js +7 -7
  169. package/lib/ui/Highlight.d.ts +1 -1
  170. package/lib/ui/Highlight.js +1 -1
  171. package/lib/ui/Jumbotron.js +1 -1
  172. package/lib/ui/darkColors.js +84 -217
  173. package/lib/utils/css-variables.js +1 -1
  174. package/lib/utils/index.d.ts +0 -1
  175. package/lib/utils/index.js +0 -1
  176. package/package.json +1 -1
  177. package/src/I18n/LanguagePicker.tsx +21 -48
  178. package/src/I18n/index.ts +0 -1
  179. package/src/components/Breadcrumbs/Breadcrumb.tsx +5 -2
  180. package/src/components/Breadcrumbs/Breadcrumbs.tsx +2 -6
  181. package/src/components/Breadcrumbs/index.ts +0 -1
  182. package/src/components/Button/Button.tsx +47 -53
  183. package/src/components/Button/index.ts +0 -1
  184. package/src/components/Catalog/Catalog.tsx +120 -135
  185. package/src/components/Catalog/CatalogCard.tsx +58 -106
  186. package/src/components/Catalog/index.tsx +3 -0
  187. package/src/components/CodeBlock/CodeBlockContainer.tsx +9 -17
  188. package/src/components/CodeBlock/CodeBlockControlButton.tsx +19 -6
  189. package/src/components/CodeBlock/CodeBlockControls.tsx +5 -8
  190. package/src/components/CodeBlock/index.ts +0 -1
  191. package/src/components/ColorModeSwitcher/ColorModeSwitcher.tsx +1 -0
  192. package/src/components/Dropdown/Dropdown.tsx +5 -14
  193. package/src/components/Dropdown/index.ts +0 -1
  194. package/src/components/EditPageButton/EditPageButton.tsx +1 -5
  195. package/src/components/Feedback/Comment.tsx +0 -5
  196. package/src/components/Feedback/Rating.tsx +1 -5
  197. package/src/components/Feedback/Reasons.tsx +1 -6
  198. package/src/components/Feedback/Sentiment.tsx +0 -5
  199. package/src/components/Feedback/Thumbs.tsx +4 -4
  200. package/src/components/Filter/Filter.tsx +94 -150
  201. package/src/components/Filter/index.ts +0 -2
  202. package/src/components/Footer/CustomFooterNavItem.tsx +1 -1
  203. package/src/components/Footer/Footer.tsx +10 -32
  204. package/src/components/Footer/FooterColumn.tsx +63 -82
  205. package/src/components/Footer/FooterColumns.tsx +4 -6
  206. package/src/components/Footer/FooterCopyright.tsx +7 -13
  207. package/src/components/Footer/index.ts +0 -1
  208. package/src/components/JsonViewer/JsonViewer.tsx +2 -2
  209. package/src/components/LastUpdated/LastUpdated.tsx +2 -1
  210. package/src/components/Markdown/Admonition.tsx +8 -13
  211. package/src/components/Markdown/MarkdownWrapper.tsx +4 -2
  212. package/src/components/Markdown/Mermaid.tsx +1 -4
  213. package/src/components/Markdown/index.ts +0 -1
  214. package/src/components/Menu/Menu.tsx +7 -5
  215. package/src/components/Menu/MenuGroup.tsx +7 -15
  216. package/src/components/Menu/MenuItemLabel.tsx +13 -9
  217. package/src/components/Menu/MobileMenu.tsx +25 -20
  218. package/src/components/Menu/MobileMenuGroup.tsx +1 -1
  219. package/src/components/Menu/index.ts +0 -1
  220. package/src/components/{Profile → Navbar}/MobileUserProfile.tsx +29 -12
  221. package/src/components/Navbar/Navbar.tsx +11 -10
  222. package/src/components/Navbar/NavbarItem.tsx +4 -13
  223. package/src/components/Navbar/NavbarMenu.tsx +2 -2
  224. package/src/components/Navbar/index.ts +0 -1
  225. package/src/components/NavbarLogo/NavbarLogo.tsx +11 -24
  226. package/src/components/NavbarLogo/index.ts +0 -1
  227. package/src/components/OpenApiDocs/DevOnboardingTryItSecurity.tsx +2 -1
  228. package/src/components/OpenApiDocs/Dropdown.tsx +3 -3
  229. package/src/components/OperationBadge/OperationBadge.ts +62 -0
  230. package/src/components/OperationBadge/index.ts +1 -0
  231. package/src/components/Panel/PanelHeader.ts +0 -2
  232. package/src/components/Panel/PanelHeaderTitle.ts +4 -0
  233. package/src/components/Panel/index.ts +0 -1
  234. package/src/components/Product/ProductPicker.tsx +13 -18
  235. package/src/components/Product/index.ts +0 -1
  236. package/src/components/Profile/LoginLink.tsx +2 -1
  237. package/src/components/Profile/Profile.tsx +24 -1
  238. package/src/components/Profile/UserProfile.tsx +8 -20
  239. package/src/components/Profile/index.ts +0 -1
  240. package/src/components/Search/CancelSearch.tsx +15 -2
  241. package/src/components/Search/ProductTag.tsx +8 -8
  242. package/src/components/Search/RecentSearches.tsx +5 -5
  243. package/src/components/Search/Search.tsx +2 -0
  244. package/src/components/Search/SearchIcon.tsx +5 -10
  245. package/src/components/Search/SearchItem.tsx +4 -4
  246. package/src/components/Search/SearchTrigger.tsx +5 -4
  247. package/src/components/Search/ShortcutKey.tsx +5 -1
  248. package/src/components/Search/SuggestedPages.tsx +3 -3
  249. package/src/components/Search/index.ts +0 -1
  250. package/src/components/Select/Select.tsx +31 -66
  251. package/src/components/Select/index.ts +0 -1
  252. package/src/components/Separator/Separator.tsx +3 -17
  253. package/src/components/Separator/SeparatorItem.tsx +9 -6
  254. package/src/components/Separator/SeparatorLine.tsx +3 -7
  255. package/src/components/Sidebar/ApiCallItem.tsx +13 -17
  256. package/src/components/Sidebar/FooterWrapper.tsx +4 -3
  257. package/src/components/Sidebar/HeaderWrapper.tsx +3 -3
  258. package/src/components/Sidebar/VersionPicker.tsx +4 -5
  259. package/src/components/Sidebar/index.ts +0 -1
  260. package/src/components/Sidebar/types.ts +0 -1
  261. package/src/components/SidebarActions/CollapseSidebarButton.tsx +2 -22
  262. package/src/components/SidebarActions/styled.tsx +30 -29
  263. package/src/components/TableOfContent/TableOfContent.tsx +3 -2
  264. package/src/components/TableOfContent/index.ts +0 -1
  265. package/src/components/Tabs/Tab.tsx +1 -1
  266. package/src/components/Tabs/Tabs.tsx +1 -1
  267. package/src/components/Tags/Tags.tsx +36 -0
  268. package/src/components/Tags/index.ts +1 -0
  269. package/src/components/Tiles/ThinTile.tsx +5 -7
  270. package/src/components/Tiles/TileHeader.ts +1 -1
  271. package/src/components/Tiles/TileText.tsx +1 -1
  272. package/src/components/Tiles/WideTile.tsx +8 -10
  273. package/src/components/Tooltip/index.ts +0 -1
  274. package/src/components/Typography/SectionHeader.ts +2 -2
  275. package/src/components/Typography/Typography.ts +1 -1
  276. package/src/components/index.ts +2 -1
  277. package/src/config.ts +1 -30
  278. package/src/globalStyle.ts +1999 -597
  279. package/src/hooks/useMobileMenu.ts +4 -3
  280. package/src/icons/AlertIcon/AlertIcon.tsx +5 -0
  281. package/src/icons/ArrowIcon/ArrowIcon.tsx +1 -1
  282. package/src/icons/CollapseIcon/CollapseIcon.tsx +5 -5
  283. package/src/icons/ColorModeIcon/ColorModeIcon.tsx +1 -1
  284. package/src/icons/CopyIcon/CopyIcon.tsx +5 -4
  285. package/src/icons/DeselectIcon/DeselectIcon.tsx +5 -5
  286. package/src/icons/ExpandIcon/ExpandIcon.tsx +6 -5
  287. package/src/icons/FileIcon/FileIcon.tsx +3 -2
  288. package/src/icons/ReportIcon/ReportIcon.tsx +4 -3
  289. package/src/icons/SelectIcon/SelectIcon.tsx +6 -5
  290. package/src/icons/index.ts +0 -4
  291. package/src/layouts/Forbidden.tsx +0 -4
  292. package/src/layouts/NotFound.tsx +0 -4
  293. package/src/types/portal/src/shared/types/catalog.ts +1 -7
  294. package/src/types/portal/src/shared/types/nav.ts +0 -5
  295. package/src/ui/ArrowBack.tsx +1 -0
  296. package/src/ui/Burger.tsx +1 -1
  297. package/src/ui/Dropdown.tsx +7 -7
  298. package/src/ui/Highlight.tsx +2 -2
  299. package/src/ui/Jumbotron.tsx +1 -1
  300. package/src/ui/darkColors.tsx +84 -217
  301. package/src/utils/css-variables.ts +2 -4
  302. package/src/utils/index.ts +0 -1
  303. package/lib/I18n/styledVariables.d.ts +0 -1
  304. package/lib/I18n/styledVariables.js +0 -40
  305. package/lib/components/Breadcrumbs/styledVariables.d.ts +0 -1
  306. package/lib/components/Breadcrumbs/styledVariables.js +0 -20
  307. package/lib/components/Button/styledVariables.d.ts +0 -1
  308. package/lib/components/Button/styledVariables.js +0 -107
  309. package/lib/components/Catalog/styledVariables.d.ts +0 -1
  310. package/lib/components/Catalog/styledVariables.js +0 -96
  311. package/lib/components/CodeBlock/styledVariables.d.ts +0 -1
  312. package/lib/components/CodeBlock/styledVariables.js +0 -92
  313. package/lib/components/Dropdown/styledVariables.d.ts +0 -1
  314. package/lib/components/Dropdown/styledVariables.js +0 -30
  315. package/lib/components/Filter/FilterContent.d.ts +0 -13
  316. package/lib/components/Filter/FilterContent.js +0 -60
  317. package/lib/components/Filter/FilterPopover.d.ts +0 -13
  318. package/lib/components/Filter/FilterPopover.js +0 -109
  319. package/lib/components/Filter/FilterTag.d.ts +0 -7
  320. package/lib/components/Filter/FilterTag.js +0 -33
  321. package/lib/components/Filter/FilterTags.d.ts +0 -7
  322. package/lib/components/Filter/FilterTags.js +0 -29
  323. package/lib/components/Filter/styledVariables.d.ts +0 -1
  324. package/lib/components/Filter/styledVariables.js +0 -112
  325. package/lib/components/Footer/styledVariables.d.ts +0 -1
  326. package/lib/components/Footer/styledVariables.js +0 -61
  327. package/lib/components/Image/Image.d.ts +0 -9
  328. package/lib/components/Image/Image.js +0 -31
  329. package/lib/components/Image/index.d.ts +0 -1
  330. package/lib/components/LastUpdated/index.d.ts +0 -1
  331. package/lib/components/LastUpdated/index.js +0 -18
  332. package/lib/components/LastUpdated/styledVariables.d.ts +0 -1
  333. package/lib/components/LastUpdated/styledVariables.js +0 -11
  334. package/lib/components/Markdown/styledVariables.d.ts +0 -3
  335. package/lib/components/Markdown/styledVariables.js +0 -231
  336. package/lib/components/Menu/styledVariables.d.ts +0 -2
  337. package/lib/components/Menu/styledVariables.js +0 -101
  338. package/lib/components/Navbar/styledVariables.d.ts +0 -1
  339. package/lib/components/Navbar/styledVariables.js +0 -43
  340. package/lib/components/NavbarLogo/styledVariables.d.ts +0 -1
  341. package/lib/components/NavbarLogo/styledVariables.js +0 -18
  342. package/lib/components/Panel/styledVariables.d.ts +0 -2
  343. package/lib/components/Panel/styledVariables.js +0 -481
  344. package/lib/components/Product/styledVariables.d.ts +0 -2
  345. package/lib/components/Product/styledVariables.js +0 -41
  346. package/lib/components/Profile/UserProfileData.d.ts +0 -9
  347. package/lib/components/Profile/UserProfileData.js +0 -35
  348. package/lib/components/Profile/styledVariables.d.ts +0 -2
  349. package/lib/components/Profile/styledVariables.js +0 -55
  350. package/lib/components/Search/styledVariables.d.ts +0 -1
  351. package/lib/components/Search/styledVariables.js +0 -98
  352. package/lib/components/Select/styledVariables.d.ts +0 -1
  353. package/lib/components/Select/styledVariables.js +0 -34
  354. package/lib/components/Sidebar/styledVariables.d.ts +0 -2
  355. package/lib/components/Sidebar/styledVariables.js +0 -216
  356. package/lib/components/TableOfContent/styledVariables.d.ts +0 -1
  357. package/lib/components/TableOfContent/styledVariables.js +0 -46
  358. package/lib/components/Tag/Tag.d.ts +0 -18
  359. package/lib/components/Tag/Tag.js +0 -45
  360. package/lib/components/Tag/index.d.ts +0 -2
  361. package/lib/components/Tag/index.js +0 -19
  362. package/lib/components/Tag/styledVariables.d.ts +0 -1
  363. package/lib/components/Tag/styledVariables.js +0 -136
  364. package/lib/components/Tooltip/styledVariables.d.ts +0 -1
  365. package/lib/components/Tooltip/styledVariables.js +0 -21
  366. package/lib/hooks/useModalScrollLock.d.ts +0 -1
  367. package/lib/hooks/useModalScrollLock.js +0 -16
  368. package/lib/icons/CheckboxIcon/CheckboxIcon.d.ts +0 -6
  369. package/lib/icons/CheckboxIcon/CheckboxIcon.js +0 -28
  370. package/lib/icons/CheckboxIcon/index.d.ts +0 -1
  371. package/lib/icons/CheckboxIcon/index.js +0 -6
  372. package/lib/icons/ErrorIcon/ErrorIcon.d.ts +0 -4
  373. package/lib/icons/ErrorIcon/ErrorIcon.js +0 -14
  374. package/lib/icons/ErrorIcon/index.d.ts +0 -1
  375. package/lib/icons/ErrorIcon/index.js +0 -18
  376. package/lib/icons/LanguageIcon/LanguageIcon.d.ts +0 -4
  377. package/lib/icons/LanguageIcon/LanguageIcon.js +0 -14
  378. package/lib/icons/LanguageIcon/index.d.ts +0 -1
  379. package/lib/icons/PlusIcon/PlusIcon.d.ts +0 -5
  380. package/lib/icons/PlusIcon/PlusIcon.js +0 -16
  381. package/lib/icons/PlusIcon/index.d.ts +0 -1
  382. package/lib/icons/PlusIcon/index.js +0 -18
  383. package/lib/icons/PointingArrowIcon/PointingArrowIcon.d.ts +0 -4
  384. package/lib/icons/PointingArrowIcon/PointingArrowIcon.js +0 -15
  385. package/lib/icons/PointingArrowIcon/index.d.ts +0 -1
  386. package/lib/icons/PointingArrowIcon/index.js +0 -18
  387. package/lib/utils/tags-parser.d.ts +0 -1
  388. package/lib/utils/tags-parser.js +0 -10
  389. package/src/I18n/styledVariables.ts +0 -37
  390. package/src/components/Breadcrumbs/styledVariables.ts +0 -17
  391. package/src/components/Button/styledVariables.ts +0 -104
  392. package/src/components/Catalog/index.ts +0 -4
  393. package/src/components/Catalog/styledVariables.ts +0 -93
  394. package/src/components/CodeBlock/styledVariables.ts +0 -89
  395. package/src/components/Dropdown/styledVariables.ts +0 -27
  396. package/src/components/Filter/FilterContent.tsx +0 -95
  397. package/src/components/Filter/FilterPopover.tsx +0 -150
  398. package/src/components/Filter/FilterTag.tsx +0 -37
  399. package/src/components/Filter/FilterTags.tsx +0 -39
  400. package/src/components/Filter/styledVariables.ts +0 -109
  401. package/src/components/Footer/styledVariables.ts +0 -58
  402. package/src/components/Image/Image.tsx +0 -47
  403. package/src/components/Image/index.ts +0 -1
  404. package/src/components/LastUpdated/index.ts +0 -1
  405. package/src/components/LastUpdated/styledVariables.ts +0 -8
  406. package/src/components/Markdown/styledVariables.ts +0 -230
  407. package/src/components/Menu/styledVariables.ts +0 -99
  408. package/src/components/Navbar/styledVariables.ts +0 -40
  409. package/src/components/NavbarLogo/styledVariables.ts +0 -15
  410. package/src/components/Panel/styledVariables.ts +0 -479
  411. package/src/components/Product/styledVariables.ts +0 -39
  412. package/src/components/Profile/UserProfileData.tsx +0 -40
  413. package/src/components/Profile/styledVariables.ts +0 -53
  414. package/src/components/Search/styledVariables.ts +0 -95
  415. package/src/components/Select/styledVariables.ts +0 -31
  416. package/src/components/Sidebar/styledVariables.ts +0 -214
  417. package/src/components/TableOfContent/styledVariables.ts +0 -43
  418. package/src/components/Tag/Tag.tsx +0 -71
  419. package/src/components/Tag/index.ts +0 -2
  420. package/src/components/Tag/styledVariables.ts +0 -133
  421. package/src/components/Tooltip/styledVariables.ts +0 -18
  422. package/src/hooks/useModalScrollLock.ts +0 -12
  423. package/src/icons/CheckboxIcon/CheckboxIcon.tsx +0 -64
  424. package/src/icons/CheckboxIcon/index.ts +0 -1
  425. package/src/icons/ErrorIcon/ErrorIcon.tsx +0 -15
  426. package/src/icons/ErrorIcon/index.ts +0 -1
  427. package/src/icons/LanguageIcon/LanguageIcon.tsx +0 -15
  428. package/src/icons/LanguageIcon/index.ts +0 -1
  429. package/src/icons/PlusIcon/PlusIcon.tsx +0 -25
  430. package/src/icons/PlusIcon/index.ts +0 -1
  431. package/src/icons/PointingArrowIcon/PointingArrowIcon.tsx +0 -16
  432. package/src/icons/PointingArrowIcon/index.ts +0 -1
  433. package/src/utils/tags-parser.ts +0 -8
  434. /package/lib/components/{Profile → Navbar}/MobileUserProfile.d.ts +0 -0
@@ -2,21 +2,11 @@ import React from 'react';
2
2
  import styled from 'styled-components';
3
3
  import { DatePicker } from 'react-date-picker';
4
4
 
5
- // import type { ReactNode } from 'react';
6
-
7
5
  import type { ResolvedFilter } from '@theme/types/portal/src/shared/types/catalog';
6
+ import { Checkbox } from '@theme/ui/Checkbox';
8
7
  import { useTranslate } from '@portal/hooks';
9
- import { CheckboxIcon } from '@theme/icons';
10
- import { Select } from '@theme/components/Select';
11
- import type { ThemeConfig } from '@theme/config';
12
8
 
13
- export function Filter({
14
- filter,
15
- filterValuesCasing,
16
- }: {
17
- filter: ResolvedFilter & { selectedOptions: any };
18
- filterValuesCasing?: NonNullable<ThemeConfig['catalog']>[string]['filterValuesCasing'];
19
- }) {
9
+ export function Filter({ filter }: { filter: ResolvedFilter & { selectedOptions: any } }) {
20
10
  const { translate } = useTranslate();
21
11
  const translationKeys = {
22
12
  selectAll: 'theme.catalog.filters.select.all',
@@ -24,48 +14,32 @@ export function Filter({
24
14
  };
25
15
 
26
16
  if (!filter.parentUsed) return null;
27
-
28
- let selectOptions: { value: string; element: React.ReactNode }[] = [];
29
- if (filter.type === 'select') {
30
- const defaultOptionCount = filter.filteredOptions.reduce(
31
- (acc, option) => acc + option.count,
32
- 0,
33
- );
34
- selectOptions = [
35
- {
36
- value: '',
37
- element: (
38
- <FilterOption key="all" onClick={() => filter.selectOption('')}>
39
- <FilterOptionLabel>{translate(translationKeys.selectAll, 'All')}</FilterOptionLabel>
40
- <FilterOptionCount>{defaultOptionCount}</FilterOptionCount>
41
- </FilterOption>
42
- ),
43
- },
44
- ];
45
- selectOptions.push(
46
- ...filter.filteredOptions.map((option) => ({
47
- value: option.value,
48
- element: (
49
- <FilterOption key={option.value}>
50
- <FilterOptionLabel>
51
- {changeCasing(translate(option.value), filterValuesCasing)}
52
- </FilterOptionLabel>
53
- <FilterOptionCount>{option.count}</FilterOptionCount>
54
- </FilterOption>
55
- ),
56
- })),
57
- );
58
- }
59
-
60
17
  return (
61
18
  <FilterGroup key={filter.property + filter.title}>
62
- <FilterTitle>{translate(filter.titleTranslationKey, filter.title)} </FilterTitle>
19
+ <FilterTitle>
20
+ {translate(filter.titleTranslationKey, filter.title)}{' '}
21
+ {filter.selectedOptions?.size ? (
22
+ <a data-translation-key={translationKeys.clear} onClick={() => filter.selectOption('')}>
23
+ {translate(translationKeys.clear, 'Clear')}
24
+ </a>
25
+ ) : null}
26
+ </FilterTitle>
63
27
  {filter.type === 'select' ? (
64
28
  <StyledSelect
29
+ onChange={(e) => filter.selectOption(e.target.value)}
65
30
  value={(filter.selectedOptions as Set<any>).values().next()?.value || ''}
66
- onChange={(value) => filter.selectOption(value)}
67
- options={selectOptions}
68
- />
31
+ >
32
+ <option key="none" value="" data-translation-key={translationKeys.selectAll}>
33
+ {translate(translationKeys.selectAll, 'All')}
34
+ </option>
35
+ {filter.filteredOptions.map((value: any) => {
36
+ return (
37
+ <option key={value.value} value={value.value}>
38
+ {translate(value.value)} ({value.count})
39
+ </option>
40
+ );
41
+ })}
42
+ </StyledSelect>
69
43
  ) : filter.type === 'date-range' ? (
70
44
  <>
71
45
  <DatePickerWrapper>
@@ -115,13 +89,17 @@ export function Filter({
115
89
  filter.filteredOptions.map((value: any) => {
116
90
  const id = 'filter--' + filter.property + '--' + slug(value.value);
117
91
  return (
118
- <FilterOption key={id} role="link" onClick={() => filter.toggleOption(value.value)}>
119
- <CheckboxIcon checked={filter.selectedOptions.has(value.value)} />
120
- <FilterOptionLabel>
121
- {changeCasing(translate(value.value), filterValuesCasing)}
122
- </FilterOptionLabel>
123
- <FilterOptionCount>{value.count}</FilterOptionCount>
124
- </FilterOption>
92
+ <FilterValue key={id} role="link">
93
+ <Checkbox
94
+ type="checkbox"
95
+ id={id}
96
+ checked={filter.selectedOptions.has(value.value)}
97
+ onChange={() => filter.toggleOption(value.value)}
98
+ />
99
+ <label htmlFor={id}>
100
+ {translate(value.value)} ({value.count})
101
+ </label>
102
+ </FilterValue>
125
103
  );
126
104
  })
127
105
  )}
@@ -129,89 +107,62 @@ export function Filter({
129
107
  );
130
108
  }
131
109
 
132
- function changeCasing(
133
- str: string,
134
- casing?: NonNullable<ThemeConfig['catalog']>[string]['filterValuesCasing'],
135
- ) {
136
- if (!casing || casing === 'original' || !str) return str;
137
-
138
- if (casing === 'lowercase') {
139
- return str.toLowerCase();
140
- }
141
-
142
- if (casing === 'uppercase') {
143
- return str.toUpperCase();
144
- }
145
-
146
- if (casing === 'sentence') {
147
- const words = str.split(/[\s-_]+/);
148
- return words.map((word) => word[0].toUpperCase() + word.slice(1).toLowerCase()).join(' ');
149
- }
150
- }
151
-
152
110
  const FilterGroup = styled.div`
153
- padding: var(--filter-group-padding);
154
- `;
111
+ padding: 16px 0;
112
+ border-bottom: 1px solid var(--border-color);
155
113
 
156
- const FilterOptionLabel = styled.label`
157
- cursor: pointer;
158
- font-size: var(--filter-option-label-font-size);
159
- font-weight: var(--filter-option-label-font-weight);
160
- margin: var(--filter-option-label-margin);
161
- color: var(--filter-option-label-color);
162
- white-space: nowrap;
163
- text-overflow: ellipsis;
164
- overflow: hidden;
165
- `;
166
-
167
- const FilterOptionCount = styled.label`
168
- cursor: pointer;
169
- display: flex;
170
- align-items: center;
171
- height: var(--filter-option-count-height);
172
- color: var(--filter-option-count-color);
173
- text-align: center;
174
- font-size: var(--filter-option-count-font-size);
175
- font-weight: var(--filter-option-count-font-weight);
176
- padding: var(--filter-option-count-padding);
177
- border-radius: var(--filter-option-count-border-radius);
178
- border: 1px solid var(--filter-option-count-border-color);
179
- background-color: var(--filter-option-count-background-color);
114
+ &:last-of-type {
115
+ border-bottom: none;
116
+ }
180
117
  `;
181
118
 
182
119
  const FilterTitle = styled.h4`
183
- font-weight: var(--filter-title-font-weight);
184
- font-size: var(--filter-title-font-size);
185
- margin: var(--filter-title-margin);
120
+ font-size: 18px;
121
+ font-weight: var(--font-weight-bold);
122
+ margin: 0;
123
+ margin-bottom: 16px;
124
+
125
+ > a {
126
+ font-size: 14px;
127
+ cursor: pointer;
128
+ }
186
129
  `;
187
130
 
188
- const FilterOption = styled.label.attrs({ 'data-cy': 'Filter/FilterOption' })`
189
- display: flex;
190
- align-items: center;
131
+ const FilterValue = styled.label`
132
+ display: block;
191
133
  cursor: pointer;
192
- font-weight: var(--filter-option-font-weight);
193
- font-size: var(--filter-option-font-size);
194
- margin: var(--filter-option-margin);
134
+ font-size: 16px;
135
+ margin: 8px 0;
195
136
 
196
137
  input {
197
138
  cursor: pointer;
198
139
  }
199
140
  `;
200
141
 
201
- const StyledSelect = styled(Select)`
202
- min-height: var(--filter-select-min-height);
203
- color: var(--filter-select-color);
204
- border: 1px solid var(--filter-select-border-color);
205
- border-radius: var(--filter-select-border-radius);
206
- padding: var(--filter-select-padding);
207
-
208
- :hover {
209
- border-color: var(--filter-select-hover-border-color);
210
- }
211
-
212
- ${FilterOption} {
213
- margin: var(--filter-select-option-margin);
214
- }
142
+ const StyledSelect = styled.select`
143
+ border: 1px solid rgba(0, 0, 0, 0.23);
144
+
145
+ padding: var(--input-padding);
146
+ border-radius: var(--input-border-radius);
147
+ background-color: var(--input-background-color);
148
+ color: var(--text-color);
149
+ font-family: var(--input-font-family);
150
+ font-size: var(--input-font-size);
151
+ line-height: var(--input-line-height);
152
+
153
+ min-width: 200px;
154
+ outline-color: var(--color-primary-500);
155
+ transition: outline 0.25s ease;
156
+ display: inline-block;
157
+ text-align: left;
158
+ appearance: none;
159
+
160
+ background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
161
+ background-repeat: no-repeat;
162
+ background-position: right 10px center;
163
+ background-size: 1em;
164
+ width: 100%;
165
+ padding-right: 25px;
215
166
  `;
216
167
 
217
168
  // TODO: import from portal
@@ -220,16 +171,15 @@ function slug(str: string): string {
220
171
  }
221
172
 
222
173
  const DatePickerWrapper = styled.div`
223
- color: var(--filter-date-picker-color);
224
174
  display: flex;
225
175
  flex-direction: row;
226
- margin: var(--filter-date-picker-margin);
176
+ margin-bottom: 5px;
227
177
 
228
178
  align-items: center;
229
- gap: var(--filter-date-picker-gap);
179
+ gap: 10px;
230
180
 
231
181
  > span {
232
- width: var(--filter-date-picker-width);
182
+ width: 50px;
233
183
  }
234
184
 
235
185
  .react-date-picker {
@@ -237,41 +187,35 @@ const DatePickerWrapper = styled.div`
237
187
  }
238
188
 
239
189
  .react-calendar__tile--now {
240
- background: var(--filter-date-picker-tile-background);
241
- color: var(--filter-date-picker-tile-color);
190
+ background: #cbf7f1;
191
+ color: black;
242
192
 
243
193
  &:enabled:hover,
244
194
  &:enabled:focus {
245
- background: var(--filter-date-picker-tile-hover-background);
246
- color: var(--filter-date-picker-tile-hover-color);
195
+ background: #b1efe7;
196
+ color: black;
247
197
  }
248
198
  }
249
199
 
250
- .react-date-picker__inputGroup__input {
251
- width: var(--filter-date-picker-input-width);
252
-
253
- &:invalid {
254
- background: var(--filter-date-picker-invalid-input-background);
255
- }
200
+ .react-date-picker__inputGroup__input:invalid {
201
+ background: rgb(255 125 0 / 10%);
256
202
  }
257
203
 
258
204
  .react-date-picker__button {
259
- padding: var(--filter-date-picker-button-padding);
260
-
205
+ padding: 4px 4px;
261
206
  svg {
262
- stroke: var(--filter-date-picker-icon-stroke);
263
- width: var(--filter-date-picker-icon-width);
264
- }
265
-
266
- &:enabled:hover .react-date-picker__button__icon {
267
- stroke: var(--filter-date-picker-hover-icon-stroke);
207
+ width: 12px;
268
208
  }
269
209
  }
270
210
 
271
211
  .react-date-picker__wrapper {
272
- border: 1px solid var(--filter-date-picker-wrapper-border-color);
273
- border-radius: var(--filter-date-picker-wrapper-radius);
274
- padding: var(--filter-date-picker-wrapper-padding);
212
+ border: 1px solid rgba(0, 0, 0, 0.23);
213
+ border-radius: var(--border-radius);
214
+ padding: var(--input-padding);
215
+ }
216
+
217
+ .react-date-picker__inputGroup__input {
218
+ width: 20px;
275
219
  }
276
220
  `;
277
221
 
@@ -1,3 +1 @@
1
1
  export * from '@theme/components/Filter/Filter';
2
- export * from '@theme/components/Filter/FilterContent';
3
- export * from '@theme/components/Filter/styledVariables';
@@ -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-font-size);
28
+ font-size: var(--navbar-item-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,15 +5,13 @@ 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 { LogoConfig, ResolvedNavItem } from '@theme/types/portal';
9
- import { Flex } from '@theme/ui';
10
- import { LogoContainer, NavbarLogo } from '@theme/components/NavbarLogo';
8
+ import type { ResolvedNavItem } from '@theme/types/portal';
11
9
 
12
10
  export function Footer(): JSX.Element | null {
13
- const { footer, logo } = useThemeConfig() || {};
11
+ const { footer } = useThemeConfig() || {};
14
12
  const { items, copyrightText } = footer || {};
15
13
 
16
- if (isEmptyArray(items) || footer?.hide) {
14
+ if (isEmptyArray(items) || !copyrightText || footer?.hide) {
17
15
  return null;
18
16
  }
19
17
 
@@ -21,58 +19,38 @@ export function Footer(): JSX.Element | null {
21
19
  <FooterPresentationalComponent
22
20
  items={items as ResolvedNavItem[]}
23
21
  copyrightText={copyrightText}
24
- logo={footer?.logo?.hide ? undefined : logo}
25
22
  />
26
23
  );
27
24
  }
28
25
 
29
26
  interface FooterPresentationalComponentProps {
30
27
  items: ResolvedNavItem[];
31
- copyrightText?: string;
32
- logo?: LogoConfig;
28
+ copyrightText: string;
33
29
  className?: string;
34
30
  }
35
31
 
36
32
  export function FooterPresentationalComponent({
37
33
  items,
38
34
  copyrightText,
39
- logo,
40
35
  className,
41
36
  }: FooterPresentationalComponentProps): JSX.Element | null {
42
37
  return (
43
38
  <FooterContainer data-component-name="Footer/Footer" className={className}>
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} />}
39
+ <FooterColumns columns={items as ResolvedNavItem[]} />
40
+ <FooterCopyright copyrightText={copyrightText} />
49
41
  </FooterContainer>
50
42
  );
51
43
  }
52
44
 
53
- const ColumnsSection = styled(Flex)`
54
- flex-direction: column;
55
-
56
- ${({ theme }) => theme.mediaQueries.small} {
57
- flex-direction: row;
58
- }
59
- `;
60
-
61
45
  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);
64
46
  font-size: var(--footer-font-size);
65
47
  flex-shrink: 0;
66
48
  background-color: var(--footer-background-color);
67
49
  color: var(--footer-text-color);
50
+ font-family: var(--footer-font-family);
68
51
  font-weight: var(--footer-font-weight);
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);
52
+ a,
53
+ a:hover {
54
+ color: var(--footer-text-color);
77
55
  }
78
56
  `;
@@ -1,10 +1,9 @@
1
1
  import React from 'react';
2
- import styled from 'styled-components';
2
+ import styled, { css } 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';
8
7
  import { telemetry } from '@portal/telemetry';
9
8
 
10
9
  interface FooterColumnProps {
@@ -14,58 +13,52 @@ interface FooterColumnProps {
14
13
 
15
14
  export function FooterColumn({ column, className }: FooterColumnProps): JSX.Element {
16
15
  const { translate } = useTranslate();
17
- const { items = [] } = column;
18
-
19
- const iconsOnly = items.every((item) => item.label === item.link && (item.icon || item.srcSet));
16
+ const hasIcon = column.items ? column.items.some((item) => !!item.icon) : false;
20
17
 
21
18
  return (
22
19
  <FooterColumnContainer data-component-name="Footer/FooterColumn" className={className}>
23
- <FooterColumnTitle>{translate(column.labelTranslationKey, column.label)}</FooterColumnTitle>
24
- <FooterColumnItems iconsOnly={iconsOnly}>
25
- {items?.map((columnItem, columnItemIndex) => {
26
- if (columnItem.type === 'error') {
27
- return null;
28
- }
29
-
30
- return columnItem.type === 'separator' ? (
31
- <FooterSeparator key={columnItem.label + '_' + columnItemIndex}>
32
- {translate(columnItem.labelTranslationKey, columnItem.label)}
33
- </FooterSeparator>
34
- ) : (
35
- <FooterLink
36
- key={columnItemIndex}
37
- to={columnItem.link}
38
- external={columnItem.external}
39
- target={columnItem.target}
40
- data-cy={columnItem.label}
41
- iconsOnly={iconsOnly}
42
- onClick={() => telemetry.send('footer_item_clicked', {})}
43
- >
44
- {columnItem.icon || columnItem.srcSet ? (
45
- <FooterLinkIcon>
46
- <Image src={columnItem.icon} srcSet={columnItem.srcSet} />
47
- </FooterLinkIcon>
48
- ) : null}
49
- {!iconsOnly && translate(columnItem.labelTranslationKey, columnItem.label)}
50
- </FooterLink>
51
- );
52
- })}
53
- </FooterColumnItems>
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
+ })}
54
46
  </FooterColumnContainer>
55
47
  );
56
48
  }
57
49
 
58
- const FooterColumnTitle = styled.p`
50
+ const FooterColumnTitle = styled.p<{ withIconPadding: boolean }>`
59
51
  display: inline-block;
60
52
  font-weight: var(--footer-title-font-weight);
61
53
  font-size: var(--footer-title-font-size);
62
- margin-top: 0;
63
- margin-bottom: var(--mobile-footer-title-margin-bottom);
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
61
  color: var(--footer-title-text-color);
65
-
66
- ${({ theme }) => theme.mediaQueries.small} {
67
- margin-bottom: var(--footer-title-margin-bottom);
68
- }
69
62
  `;
70
63
 
71
64
  const FooterSeparator = styled.div`
@@ -73,58 +66,46 @@ const FooterSeparator = styled.div`
73
66
  margin: 10px 0 5px 0;
74
67
  font-size: 0.75em;
75
68
  text-transform: uppercase;
69
+ font-family: var(--footer-font-family);
76
70
  `;
77
71
 
78
72
  const FooterColumnContainer = styled.div`
79
73
  display: flex;
80
74
  flex-direction: column;
81
- text-align: center;
75
+ text-align: left;
76
+ margin: var(--footer-column-margin-horizontal) var(--footer-column-margin-vertical);
77
+ width: var(--footer-column-width);
82
78
  word-break: break-word;
83
- flex: 1;
84
- margin: 0 0 var(--mobile-footer-column-margin-bottom) 0;
85
- min-width: var(--footer-column-min-width);
86
- align-content: center;
87
- flex-wrap: wrap;
88
-
89
- ${({ theme }) => theme.mediaQueries.small} {
90
- text-align: left;
91
- margin: 0 var(--footer-column-margin-horizontal);
92
- border-right: 1px solid var(--footer-dividing-border-color);
93
- margin-bottom: var(--footer-column-margin-bottom);
94
- }
95
79
  `;
96
80
 
97
- export const FooterLinkIcon = styled.div`
98
- display: inline-flex;
99
- width: var(--footer-item-icon-width);
100
- height: var(--footer-item-icon-height);
101
- margin-right: var(--footer-item-icon-margin-right);
102
- vertical-align: middle;
103
- border: 1px solid var(--footer-item-icon-border-color);
104
- border-radius: var(--footer-item-icon-border-radius);
105
- padding: var(--footer-item-icon-padding);
106
- `;
107
-
108
- const FooterLink = styled(Link)<{ iconsOnly: boolean }>`
109
- padding: var(--footer-link-padding-vertical) var(--footer-link-padding-horizontal);
81
+ const FooterLink = styled(Link)`
82
+ font-weight: var(--font-weight-bold);
83
+ padding: var(--footer-item-padding-vertical) var(--footer-item-padding-horizontal);
110
84
  color: var(--footer-link-text-color);
111
85
  text-decoration: none;
112
86
  &:hover {
113
87
  color: var(--footer-link-hover-color);
114
88
  }
115
-
116
- &:last-child ${FooterLinkIcon} {
117
- margin-right: ${({ iconsOnly }) => (iconsOnly ? '0' : 'var(--footer-item-icon-margin-right)')};
118
- }
119
89
  `;
120
90
 
121
- export const FooterColumnItems = styled.div<{ iconsOnly: boolean }>`
122
- display: flex;
123
- flex-wrap: wrap;
124
- justify-content: center;
125
- flex-direction: ${(props) => (props.iconsOnly ? 'row' : 'column')};
126
-
127
- ${({ theme }) => theme.mediaQueries.small} {
128
- justify-content: flex-start;
129
- }
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
+ `}
130
111
  `;
@@ -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);
29
30
  display: flex;
30
31
  flex-direction: column;
31
32
  justify-content: center;
32
33
  max-width: var(--footer-container-max-width);
33
- margin: 0;
34
- flex: 1;
34
+ margin: 0 auto;
35
35
 
36
36
  ${({ theme }) => theme.mediaQueries.small} {
37
- margin: 0 auto;
37
+ padding: 5.625em 20px 3.9375em 20px;
38
38
  }
39
39
 
40
40
  ${({ theme }) => theme.mediaQueries.print} {
@@ -47,10 +47,8 @@ export const FooterRow = styled.div`
47
47
  display: flex;
48
48
  flex-wrap: wrap;
49
49
  justify-content: flex-start;
50
- flex-direction: column;
51
50
 
52
51
  ${({ theme }) => theme.mediaQueries.small} {
53
- justify-content: space-between;
54
- flex-direction: row;
52
+ justify-content: space-evenly;
55
53
  }
56
54
  `;