@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,104 @@
1
+ import { css } from 'styled-components';
2
+
3
+ export const button = css`
4
+ /**
5
+ * Static classnames that can be used to override styles for components:
6
+ * download-specification-button, next-section-button, button-base
7
+ */
8
+
9
+ /**
10
+ * @tokens Button borders
11
+ */
12
+
13
+ --button-border-width: 1px; //@presenter Border
14
+ --button-border-style: solid; //@presenter Border
15
+ --button-border-radius: var(--border-radius-md); // @presenter BorderRadius
16
+ --button-margin: 5px; // @presenter Spacing
17
+ --button-box-shadow: none; // @presenter Shadow
18
+ --button-hover-box-shadow: none; // @presenter Shadow
19
+ --button-active-box-shadow: none; // @presenter Shadow
20
+
21
+ /**
22
+ * @tokens Button typography
23
+ */
24
+
25
+ --button-font-size: var(--font-size-base); // @presenter FontSize
26
+ --button-font-family: inherit; // @presenter FontFamily
27
+ --button-font-weight: var(--font-weight-bold); // @presenter FontWeight
28
+
29
+ --button-default-font-size: var(--font-size-base); // @presenter FontSize
30
+ --button-default-padding: 8px 16px;
31
+
32
+ --button-small-font-size: var(--font-size-base); // @presenter FontSize
33
+ --button-small-padding: 4px 8px;
34
+
35
+ --button-large-font-size: var(--font-size-lg); // @presenter FontSize
36
+ --button-large-padding: 8px 16px;
37
+
38
+ /**
39
+ * @tokens Button icon
40
+ */
41
+ --button-icon-width: 1em; // @presenter Spacing
42
+ --button-icon-height: 1em; // @presenter Spacing
43
+
44
+ /**
45
+ * @tokens Button default
46
+ */
47
+ .button-default {
48
+ --button-color: var(--text-primary); // @presenter Color
49
+ --button-background-color: var(--bg-overlay); // @presenter Color
50
+ --button-border-color: var(--bg-overlay);
51
+
52
+ --button-hover-background-color: var(--bg-overlay); // @presenter Color
53
+ --button-hover-border-color: var(--border-primary); // @presenter Color
54
+
55
+ --button-active-background-color: var(--bg-overlay); // @presenter Color
56
+ --button-active-border-color: var(--button-color); // @presenter Color
57
+
58
+ --button-disabled-color: var(--text-placeholder); // @presenter Color
59
+ --button-disabled-background-color: var(--bg-raised); // @presenter Color
60
+ --button-disabled-border-color: var(--border-secondary); // @presenter Color
61
+ }
62
+
63
+ /**
64
+ * @tokens Button primary
65
+ */
66
+ .button-primary {
67
+ --button-color: var(--text-light-solid); // @presenter Color
68
+ --button-background-color: var(--color-primary); // @presenter Color
69
+ --button-border-color: var(--color-primary); // @presenter Color
70
+ --button-border: 1px solid var(--button-border-color);
71
+
72
+ --button-hover-background-color: var(--color-primary-hover); // @presenter Color
73
+ --button-hover-border-color: var(--color-primary-hover); // @presenter Color
74
+
75
+ --button-active-background-color: var(--color-primary-active); // @presenter Color
76
+ --button-active-border-color: var(--color-primary-active); // @presenter Color
77
+
78
+ --button-disabled-color: var(--text-placeholder); // @presenter Color
79
+ --button-disabled-background-color: var(--bg-raised); // @presenter Color
80
+ --button-disabled-border-color: var(--border-secondary); // @presenter Color
81
+ }
82
+
83
+ /**
84
+ * @tokens Button outline
85
+ */
86
+ .button-outlined {
87
+ --button-background-color: transparent; // @presenter Color
88
+ }
89
+
90
+ /**
91
+ * @tokens Button text
92
+ */
93
+ .button-text {
94
+ --button-color: var(--text-secondary); // @presenter Color
95
+ --button-border-color: transparent; // @presenter Color
96
+ --button-background-color: transparent; // @presenter Color
97
+
98
+ --button-hover-color: var(--text-primary); // @presenter Color
99
+ --button-hover-background-color: transparent; // @presenter Color
100
+ --button-hover-border-color: transparent; // @presenter Color
101
+ }
102
+
103
+ // @tokens End
104
+ `;
@@ -2,14 +2,17 @@ import React from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
4
  import type { ResolvedNavItem } from '@theme/types/portal';
5
+ import type { CatalogConfig } from '@theme/config';
5
6
  import { HighlightContext } from '@theme/ui/Highlight';
6
- import { Button } from '@theme/components/Button';
7
- import { Filter } from '@theme/components/Filter';
8
7
  import { H2 } from '@theme/components/Typography/H2';
9
- import { H3 } from '@theme/components/Typography/H3';
10
8
  import { CatalogCard } from '@theme/components/Catalog/CatalogCard';
11
9
  import { usePageSharedData, useTranslate } from '@portal/hooks/index';
12
- import type { CatalogConfig } from '@theme/config';
10
+ import { FilterTags } from '@theme/components/Filter/FilterTags';
11
+ import { FilterContent } from '@theme/components/Filter/FilterContent';
12
+ import { FilterPopover } from '@theme/components/Filter/FilterPopover';
13
+ import { Button } from '@theme/components/Button';
14
+ import { PlusIcon } from '@theme/icons/PlusIcon';
15
+ import useModalScrollLock from '@theme/hooks/useModalScrollLock';
13
16
 
14
17
  import { useCatalog } from './useCatalog';
15
18
 
@@ -24,55 +27,63 @@ export default function Catalog(props: {
24
27
  const items = usePageSharedData('catalog') as ResolvedNavItem[];
25
28
 
26
29
  const { filterTerm, setFilterTerm, groups, filters } = useCatalog(items, catalogConfig);
27
-
28
- const [isFilterPanelFocused, setIsFilterPanelFocused] = React.useState(false);
29
- const { translate } = useTranslate();
30
+ const [isAddingFilter, setIsAddingFilter] = React.useState(false);
30
31
  const translationKeys = {
31
- placeholder: 'theme.catalog.filters.placeholder',
32
- applyFilter: 'theme.catalog.filters.apply',
32
+ addFilter: 'theme.catalog.filters.select.addFilter',
33
33
  };
34
+ const { translate } = useTranslate();
35
+
36
+ useModalScrollLock(isAddingFilter);
34
37
 
35
38
  return (
36
39
  <HighlightContext.Provider value={[filterTerm]}>
37
40
  <CatalogPageWrapper>
38
- <CatalogPageSidebar isActiveInMobileMode={isFilterPanelFocused}>
39
- <StyledInput
40
- placeholder={translate(translationKeys.placeholder, 'Filter...')}
41
- value={filterTerm}
42
- onFocus={() => setIsFilterPanelFocused(true)}
43
- onChange={(e) => setFilterTerm(e.target.value)}
41
+ <FilterTagsWrapper>
42
+ <Button
43
+ variant="text"
44
+ size="small"
45
+ icon={<PlusIcon />}
46
+ onClick={() => setIsAddingFilter(true)}
47
+ >
48
+ {translate(translationKeys.addFilter, 'Add filter')}
49
+ </Button>
50
+ <FilterTags filters={filters} />
51
+ </FilterTagsWrapper>
52
+ <FilterContent
53
+ setFilterTerm={setFilterTerm}
54
+ filters={filters}
55
+ filterTerm={filterTerm}
56
+ isMobile={false}
57
+ filterValuesCasing={catalogConfig.filterValuesCasing}
58
+ />
59
+ {isAddingFilter && (
60
+ <FilterPopover
61
+ setIsAddingFilter={setIsAddingFilter}
62
+ filters={filters}
63
+ filterValuesCasing={catalogConfig.filterValuesCasing}
44
64
  />
45
- {filters.map((filter, idx) => (
46
- <Filter filter={filter} key={filter.property + '-' + idx} />
47
- ))}
48
- <MobileStickyApplyFilters>
49
- <Button
50
- data-translation-key={translationKeys.applyFilter}
51
- color="secondary"
52
- onClick={() => setIsFilterPanelFocused(false)}
53
- >
54
- {translate(translationKeys.applyFilter, 'Apply filters')}
55
- </Button>
56
- </MobileStickyApplyFilters>
57
- </CatalogPageSidebar>
65
+ )}
58
66
  <CatalogPageContent>
59
- {catalogConfig.title ? (
60
- <CatalogTitle>
61
- {' '}
62
- {translate(catalogConfig.titleTranslationKey, catalogConfig.title)}{' '}
63
- </CatalogTitle>
64
- ) : null}
65
- {catalogConfig.description ? (
66
- <CatalogDescription>
67
- {' '}
68
- {translate(catalogConfig.descriptionTranslationKey, catalogConfig.description)}{' '}
69
- </CatalogDescription>
70
- ) : null}
67
+ <CatalogPageDescriptionWrapper>
68
+ {catalogConfig.title ? (
69
+ <CatalogTitle>
70
+ {' '}
71
+ {translate(catalogConfig.titleTranslationKey, catalogConfig.title)}{' '}
72
+ </CatalogTitle>
73
+ ) : null}
74
+ {catalogConfig.description ? (
75
+ <CatalogDescription>
76
+ {' '}
77
+ {translate(catalogConfig.descriptionTranslationKey, catalogConfig.description)}{' '}
78
+ </CatalogDescription>
79
+ ) : null}
80
+ </CatalogPageDescriptionWrapper>
71
81
  {groups.map((group) => (
72
82
  <React.Fragment key={group.title}>
73
- <H3>
74
- {group.title} ({group.items.length})
75
- </H3>
83
+ <CatalogSeparator>
84
+ <CatalogSeparatorLabel>{group.title}</CatalogSeparatorLabel>
85
+ <CatalogSeparatorCount>{group.items.length}</CatalogSeparatorCount>
86
+ </CatalogSeparator>
76
87
  <CatalogCards>
77
88
  {group.items.map((item) => (
78
89
  <CatalogCard item={item} key={item.link} />
@@ -86,78 +97,86 @@ export default function Catalog(props: {
86
97
  );
87
98
  }
88
99
 
89
- const MobileStickyApplyFilters = styled.div`
90
- position: fixed;
91
- display: none;
92
- background-color: var(--sidebar-background-color);
93
- bottom: 0;
94
- padding: 16px 30px;
95
- left: 0px;
96
- right: 0px;
100
+ const CatalogSeparator = styled.div`
101
+ display: flex;
102
+ align-items: center;
103
+ color: var(--catalog-separator-color);
104
+ font-size: var(--catalog-separator-font-size);
105
+ font-weight: var(--catalog-separator-font-weight);
106
+ border-top: 1px solid var(--catalog-separator-border-color);
107
+ margin: var(--catalog-separator-margin);
108
+ padding: var(--catalog-separator-padding);
109
+ `;
97
110
 
98
- ${Button} {
99
- width: 100%;
100
- margin: 0;
101
- }
111
+ const CatalogSeparatorLabel = styled.div`
112
+ margin: var(--catalog-separator-label-margin);
102
113
  `;
103
114
 
104
- const CatalogPageSidebar = styled.aside<{ isActiveInMobileMode?: boolean }>`
105
- width: var(--sidebar-width);
106
- border-right: 1px solid var(--sidebar-border-color);
107
- padding: 20px 30px;
108
- position: sticky;
109
- top: var(--navbar-height);
110
- height: calc(100vh - var(--navbar-height));
111
- overflow: auto;
112
-
113
- @media screen and (max-width: 767px) {
114
- transition: height 0.2s ease-in-out;
115
- width: 100%;
116
- ${({ isActiveInMobileMode }) =>
117
- isActiveInMobileMode ? 'padding-bottom: 66px;' : 'height: 76px;'};
118
- background-color: var(--sidebar-background-color);
119
- border-bottom: 1px solid var(--sidebar-border-color);
120
- z-index: var(--z-index-surface);
121
-
122
- ${MobileStickyApplyFilters} {
123
- display: ${({ isActiveInMobileMode }) => (isActiveInMobileMode ? 'block' : 'none')};
124
- }
125
- }
115
+ const CatalogSeparatorCount = styled.div`
116
+ display: flex;
117
+ height: var(--catalog-separator-count-height);
118
+ padding: var(--catalog-separator-count-padding);
119
+ flex-direction: column;
120
+ justify-content: center;
121
+ align-items: center;
122
+ border-radius: var(--catalog-separator-count-border-radius);
123
+ border: 1px solid var(--catalog-separator-count-border-color);
124
+ background: var(--catalog-separator-count-background);
126
125
  `;
127
126
 
128
- const CatalogPageContent = styled.main`
127
+ export const FilterControls = styled.div`
128
+ padding: var(--mobile-catalog-filter-padding-vertical)
129
+ var(--mobile-catalog-filter-padding-horizontal);
130
+ border-bottom: 1px solid var(--border-secondary);
131
+ background: var(--bg-raised);
132
+ `;
133
+
134
+ export const CatalogPageContent = styled.main`
129
135
  flex: 1;
130
- padding: 32px;
136
+ width: 90%;
137
+ margin: 0 auto;
138
+ padding: 0;
139
+
140
+ ${({ theme }) => theme.mediaQueries.medium} {
141
+ width: 100%;
142
+ padding: var(--catalog-page-padding);
143
+ }
131
144
  `;
132
145
 
133
146
  const CatalogCards = styled.div`
134
147
  display: grid;
135
148
  grid-template-columns: repeat(auto-fill, minmax(var(--api-catalog-card-min-width), 1fr));
136
149
  gap: 32px;
150
+ margin: var(--catalog-cards-group-margin);
137
151
  `;
138
152
 
139
- const CatalogTitle = styled(H2)`
153
+ export const CatalogTitle = styled(H2)`
154
+ color: var(--catalog-title-text-color);
155
+ font-weight: var(--catalog-title-font-weight);
156
+ font-size: var(--catalog-title-font-size);
157
+
140
158
  && {
141
159
  margin: 0;
142
160
  }
143
161
  `;
144
162
 
145
- const CatalogDescription = styled.p`
146
- margin: 16px 0 32px 0;
147
- font-size: 16px;
148
- color: var(--text-color-secondary);
163
+ export const CatalogDescription = styled.p`
164
+ color: var(--catalog-description-text-color);
165
+ font-weight: var(--catalog-description-font-weight);
166
+ font-size: var(--catalog-description-font-size);
167
+ margin: var(--catalog-description-margin-top) 0 var(--catalog-description-margin-bottom) 0;
149
168
  `;
150
169
 
151
- const CatalogPageWrapper = styled.div`
152
- --sidebar-width: var(--catalog-sidebar-width, 300px);
170
+ export const CatalogPageWrapper = styled.div`
171
+ --sidebar-width: var(--catalog-sidebar-width, 285px);
153
172
 
154
173
  display: flex;
155
- flex-direction: row;
174
+ flex-direction: column;
156
175
 
157
176
  font-weight: var(--font-weight-regular);
158
177
  padding: 0;
159
178
 
160
- color: var(--text-color);
179
+ color: var(--text-secondary);
161
180
  font-size: var(--font-size-base);
162
181
  font-family: var(--font-family-base);
163
182
  line-height: var(--line-height-base);
@@ -166,7 +185,7 @@ const CatalogPageWrapper = styled.div`
166
185
  border: 0;
167
186
  width: calc(100% + 48px);
168
187
  margin: auto -24px 0 -24px;
169
- border-top: 1px solid var(--border-color);
188
+ border-top: 1px solid var(--border-primary);
170
189
  }
171
190
  a:not([role='button']) {
172
191
  text-decoration: none;
@@ -174,44 +193,45 @@ const CatalogPageWrapper = styled.div`
174
193
  font-weight: var(--link-font-weight);
175
194
  }
176
195
 
177
- @media screen and (max-width: 767px) {
178
- flex-direction: column;
196
+ ${({ theme }) => theme.mediaQueries.medium} {
197
+ flex-direction: row;
179
198
  }
180
199
  `;
181
200
 
182
- // TODO: merge this input with the input from reference docs
183
- // the on in ref docs is dark, needs separate variables most likely
184
- const StyledInput = styled.input`
185
- border: 1px solid rgba(0, 0, 0, 0.23);
186
- min-width: 200px;
187
- outline-color: var(--color-primary-500);
188
- width: 100%;
189
-
190
- outline: none;
191
- padding: var(--input-padding);
192
- border-radius: var(--input-border-radius);
193
- background-color: var(--input-background-color);
194
- color: var(--text-color);
195
- font-family: var(--input-font-family);
196
- font-size: var(--input-font-size);
197
- line-height: var(--input-line-height);
198
-
199
- &::placeholder {
200
- opacity: 0.6;
201
- color: var(--text-color);
202
- }
201
+ const FilterTagsWrapper = styled.div.attrs({ 'data-cy': 'Catalog/FilterTags' })`
202
+ width: 90%;
203
+ margin: 0 auto;
204
+ padding: var(--filter-tags-wrapper-padding);
205
+ display: flex;
206
+ overflow-x: scroll;
203
207
 
204
- &:hover {
205
- color: var(--text-color);
206
- border: 1px solid rgba(0, 0, 0, 0.23);
208
+ ${({ theme }) => theme.mediaQueries.medium} {
209
+ display: none;
207
210
  }
208
211
 
209
- &:focus {
210
- color: var(--text-color);
211
- border: 1px solid rgba(0, 0, 0, 0.23);
212
+ ${Button} {
213
+ margin: var(--filter-add-button-margin);
214
+ padding: var(--filter-add-button-padding);
215
+ font-size: var(--filter-add-button-font-size);
216
+ font-weight: var(--filter-add-button-font-weight);
217
+ color: var(--text-secondary);
218
+ display: flex;
219
+ white-space: nowrap;
220
+
221
+ svg {
222
+ fill: var(--text-primary);
223
+ }
224
+
225
+ &:hover {
226
+ color: var(--text-primary);
227
+ }
212
228
  }
229
+ `;
230
+
231
+ export const CatalogPageDescriptionWrapper = styled.div`
232
+ display: none;
213
233
 
214
- &:-webkit-autofill {
215
- background-color: var(--input-background-color);
234
+ ${({ theme }) => theme.mediaQueries.medium} {
235
+ display: block;
216
236
  }
217
237
  `;
@@ -4,100 +4,150 @@ import styled from 'styled-components';
4
4
  import type { CatalogItem } from '@theme/types/portal/src/shared/types/catalog';
5
5
  import { Link } from '@portal/Link';
6
6
  import { Highlight } from '@theme/ui/Highlight';
7
- import { Tags } from '@theme/components/Tags';
8
- import { useTranslate } from '@portal/hooks';
7
+ import { Tag } from '@theme/components/Tag';
8
+ import { PointingArrowIcon } from '@theme/icons';
9
9
  import { telemetry } from '@portal/telemetry';
10
+ import { slug } from '@theme/utils';
10
11
 
11
12
  export function CatalogCard({ item }: { item: CatalogItem }): JSX.Element {
12
- const { translate } = useTranslate();
13
- const translationKeys = {
14
- footer: 'theme.catalog.card.footer',
15
- };
13
+ const hasTags = item.scorecardStatus || item.tags?.length;
16
14
  return (
17
15
  <Link key={item.docsLink || item.link} to={item.docsLink || item.link}>
18
16
  <StyledCard onClick={() => telemetry.send('catalog_item_clicked', {})}>
19
17
  <CardTitle>
20
18
  <Highlight>{item.title}</Highlight>
21
19
  </CardTitle>
22
- {/* <div>{item.image}</div> */}
23
- <CardDescription>
24
- <Highlight>{item.description ?? ''}</Highlight>
25
- </CardDescription>
26
- {item.tags ? <Tags tags={item.tags as string[]} /> : null}
27
- <hr />
28
- <CardFooter data-translation-key={translationKeys.footer}>
29
- {translate(translationKeys.footer, 'View documentation')}
30
- </CardFooter>
20
+ <CardContent>
21
+ <CardDescription>
22
+ <Highlight>{item.description ?? ''}</Highlight>
23
+ </CardDescription>
24
+ <CardFooter>
25
+ {hasTags && (
26
+ <CardTags>
27
+ {((item.tags as string[]) || []).map((tag, index) => (
28
+ <CardTag key={tag + index} color={slug(tag)}>
29
+ <Highlight>{tag}</Highlight>
30
+ </CardTag>
31
+ ))}
32
+ {(item.scorecardLevel && item.scorecardStatus && (
33
+ <CardTag
34
+ color={statusToColor(item.scorecardStatus)}
35
+ className="tag-variant-scorecard-level"
36
+ >
37
+ <Highlight>{item.scorecardLevel}</Highlight>
38
+ </CardTag>
39
+ )) ||
40
+ null}
41
+ </CardTags>
42
+ )}
43
+ <SelectButton>
44
+ <PointingArrowIcon />
45
+ </SelectButton>
46
+ </CardFooter>
47
+ </CardContent>
31
48
  </StyledCard>
32
49
  </Link>
33
50
  );
34
51
  }
35
52
 
36
- const StyledCard = styled.div`
37
- min-height: 268px;
38
- height: 100%;
39
- box-shadow: var(--box-shadow);
53
+ function statusToColor(status: string) {
54
+ switch (status) {
55
+ case 'Below minimum':
56
+ return 'error';
57
+ case 'Minimum':
58
+ return 'warning';
59
+ case 'Highest':
60
+ return 'success';
61
+ default:
62
+ return '';
63
+ }
64
+ }
40
65
 
66
+ const SelectButton = styled.div`
67
+ border: 1px solid var(--catalog-card-button-border-color);
68
+ border-radius: 100%;
69
+ width: var(--catalog-card-button-width);
70
+ height: var(--catalog-card-button-height);
41
71
  display: flex;
42
- flex-direction: column;
43
-
44
- color: var(--text-color);
45
- background-color: var(--thin-tile-background-color);
46
- border-radius: 4px;
47
-
48
- border: 1px solid var(--border-color);
49
- box-shadow: 0px 0px 10px 0px rgba(35, 35, 35, 0.05);
72
+ align-items: center;
73
+ justify-content: center;
50
74
  transition: all 0.2s ease-in-out;
51
75
 
52
- &:hover {
53
- /* box-shadow: 0px 12px 30px 0px rgba(35, 35, 35, 0.2); */
54
- box-shadow: 0px 10px 30px 0px rgba(35, 35, 35, 0.1);
55
- border: 1px solid var(--border-color);
56
- transform: translateY(-2px);
76
+ svg {
77
+ fill: var(--catalog-card-icon-color);
57
78
  }
79
+ `;
58
80
 
59
- border-radius: 8px;
60
- width: 100%;
61
- padding: 24px 24px 0;
81
+ const StyledCard = styled.div.attrs({ 'data-cy': 'Catalog/CatalogCard' })`
82
+ min-height: var(--catalog-card-min-height);
83
+ height: 100%;
84
+ color: var(--catalog-card-text-color);
85
+ font-size: var(--catalog-card-font-size);
86
+ font-weight: var(--catalog-card-font-weight);
87
+ background-color: var(--catalog-card-background-color);
88
+ border: var(--catalog-card-border-width) var(--catalog-card-border-style) var(--catalog-card-border-color);
89
+ transition: all 0.2s ease-in-out;
90
+ border-radius: var(--catalog-card-border-radius);
91
+ cursor: pointer;
62
92
  display: flex;
63
93
  flex-direction: column;
64
- cursor: pointer;
94
+
95
+ &:hover {
96
+ border-color: var(--catalog-card-hover-border-color);
97
+
98
+ ${SelectButton} {
99
+ transform: rotate(-45deg);
100
+ border-color: var(--catalog-card-hover-border-color);
101
+ background: var(--catalog-card-button-hover-background);
102
+
103
+ svg {
104
+ fill: var(--catalog-card-icon-hover-color);
105
+ }
106
+ }
65
107
  `;
66
108
 
67
109
  const CardTitle = styled.h4`
68
- line-height: 26px;
69
- letter-spacing: 0.8px;
70
- font-size: 20px;
71
- font-weight: var(--font-weight-bold);
110
+ color: var(--catalog-card-title-color);
111
+ min-height: var(--catalog-card-title-min-height);
112
+ font-size: var(--catalog-card-title-font-size);
113
+ font-weight: var(--catalog-card-title-font-weight);
72
114
  margin: 0;
73
- margin-bottom: 16px;
115
+ padding: var(--catalog-card-title-padding-vertical) var(--catalog-card-title-padding-horizontal);
74
116
  `;
75
117
 
76
118
  const CardDescription = styled.div`
77
119
  display: -webkit-box;
78
- -webkit-line-clamp: 3;
120
+ -webkit-line-clamp: var(--catalog-card-description-line-clamp);
79
121
  -webkit-box-orient: vertical;
80
122
  overflow: hidden;
81
123
  text-overflow: ellipsis;
82
- line-height: var(--line-height);
83
- letter-spacing: 0px;
84
- font-size: 16px;
85
- color: var(--text-color-secondary);
86
- text-align: inherit;
87
- font-weight: 400;
124
+ margin-bottom: var(--catalog-card-description-margin-bottom);
88
125
  `;
89
126
 
90
- const CardFooter = styled.div`
91
- height: 46px;
127
+ const CardContent = styled.div`
128
+ background-color: var(--catalog-card-content-background-color);
129
+ border-radius: var(--catalog-card-content-border-radius);
130
+ padding: var(--catalog-card-content-padding);
131
+ flex: 1;
92
132
  display: flex;
93
- align-items: flex-start;
94
- justify-content: center;
95
133
  flex-direction: column;
96
- font-size: 16px;
97
- font-weight: var(--font-weight-bold);
134
+ justify-content: space-between;
135
+ `;
98
136
 
99
- a:hover & {
100
- text-decoration: var(--link-hover-text-decoration);
101
- color: var(--link-hover-text-color);
102
- }
137
+ const CardFooter = styled.div`
138
+ display: flex;
139
+ align-items: flex-end;
140
+ justify-content: space-between;
141
+ `;
142
+
143
+ const CardTags = styled.div`
144
+ display: flex;
145
+ flex-wrap: wrap;
146
+ align-items: center;
147
+ gap: var(--spacing-xxs);
148
+ min-height: var(--spacing-xl);
149
+ `;
150
+
151
+ const CardTag = styled(Tag)`
152
+ margin: 0;
103
153
  `;
@@ -0,0 +1,4 @@
1
+ export * from '@theme/components/Catalog/Catalog';
2
+ export * from '@theme/components/Catalog/CatalogCard';
3
+ export * from '@theme/components/Catalog/useCatalog';
4
+ export * from '@theme/components/Catalog/styledVariables';