@redocly/theme 0.18.2 → 0.18.3-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 (420) hide show
  1. package/lib/I18n/LanguagePicker.d.ts +7 -2
  2. package/lib/I18n/LanguagePicker.js +11 -3
  3. package/lib/I18n/index.d.ts +1 -0
  4. package/lib/I18n/index.js +15 -0
  5. package/lib/I18n/styledVariables.d.ts +1 -0
  6. package/lib/I18n/styledVariables.js +39 -0
  7. package/lib/components/Breadcrumbs/Breadcrumb.d.ts +1 -0
  8. package/lib/components/Breadcrumbs/Breadcrumb.js +4 -3
  9. package/lib/components/Breadcrumbs/Breadcrumbs.js +9 -2
  10. package/lib/components/Breadcrumbs/index.d.ts +1 -0
  11. package/lib/components/Breadcrumbs/index.js +1 -0
  12. package/lib/components/Breadcrumbs/styledVariables.d.ts +1 -0
  13. package/lib/components/Breadcrumbs/styledVariables.js +19 -0
  14. package/lib/components/Button/Button.d.ts +6 -3
  15. package/lib/components/Button/Button.js +41 -41
  16. package/lib/components/Button/index.d.ts +1 -0
  17. package/lib/components/Button/index.js +1 -0
  18. package/lib/components/Button/styledVariables.d.ts +1 -0
  19. package/lib/components/Button/styledVariables.js +107 -0
  20. package/lib/components/Catalog/Catalog.d.ts +1 -0
  21. package/lib/components/Catalog/Catalog.js +100 -97
  22. package/lib/components/Catalog/CatalogCard.js +73 -58
  23. package/lib/components/Catalog/index.d.ts +4 -3
  24. package/lib/components/Catalog/index.js +4 -3
  25. package/lib/components/Catalog/styledVariables.d.ts +1 -0
  26. package/lib/components/Catalog/styledVariables.js +96 -0
  27. package/lib/components/Catalog/useCatalog.js +12 -1
  28. package/lib/components/CodeBlock/CodeBlockContainer.js +38 -10
  29. package/lib/components/CodeBlock/CodeBlockControlButton.d.ts +3 -4
  30. package/lib/components/CodeBlock/CodeBlockControlButton.js +5 -19
  31. package/lib/components/CodeBlock/CodeBlockControls.js +14 -7
  32. package/lib/components/CodeBlock/index.d.ts +1 -0
  33. package/lib/components/CodeBlock/index.js +1 -0
  34. package/lib/components/CodeBlock/styledVariables.d.ts +1 -0
  35. package/lib/components/CodeBlock/styledVariables.js +92 -0
  36. package/lib/components/ColorModeSwitcher/ColorModeSwitcher.js +2 -1
  37. package/lib/components/Dropdown/Dropdown.d.ts +9 -3
  38. package/lib/components/Dropdown/Dropdown.js +7 -4
  39. package/lib/components/Dropdown/index.d.ts +1 -0
  40. package/lib/components/Dropdown/index.js +1 -0
  41. package/lib/components/Dropdown/styledVariables.d.ts +1 -0
  42. package/lib/components/Dropdown/styledVariables.js +30 -0
  43. package/lib/components/EditPageButton/EditPageButton.js +7 -2
  44. package/lib/components/Feedback/Comment.js +5 -0
  45. package/lib/components/Feedback/Feedback.js +13 -3
  46. package/lib/components/Feedback/Rating.js +5 -1
  47. package/lib/components/Feedback/Reasons.js +6 -1
  48. package/lib/components/Feedback/Sentiment.js +11 -2
  49. package/lib/components/Feedback/Thumbs.js +4 -4
  50. package/lib/components/Filter/Filter.js +104 -78
  51. package/lib/components/Filter/FilterContent.d.ts +11 -0
  52. package/lib/components/Filter/FilterContent.js +59 -0
  53. package/lib/components/Filter/FilterPopover.d.ts +11 -0
  54. package/lib/components/Filter/FilterPopover.js +109 -0
  55. package/lib/components/Filter/FilterTag.d.ts +7 -0
  56. package/lib/components/Filter/FilterTag.js +33 -0
  57. package/lib/components/Filter/FilterTags.d.ts +7 -0
  58. package/lib/components/Filter/FilterTags.js +29 -0
  59. package/lib/components/Filter/index.d.ts +2 -0
  60. package/lib/components/Filter/index.js +2 -0
  61. package/lib/components/Filter/styledVariables.d.ts +1 -0
  62. package/lib/components/Filter/styledVariables.js +112 -0
  63. package/lib/components/Footer/CustomFooterNavItem.js +1 -1
  64. package/lib/components/Footer/Footer.d.ts +4 -3
  65. package/lib/components/Footer/Footer.js +27 -10
  66. package/lib/components/Footer/FooterColumn.d.ts +3 -3
  67. package/lib/components/Footer/FooterColumn.js +54 -63
  68. package/lib/components/Footer/FooterColumns.js +6 -4
  69. package/lib/components/Footer/FooterCopyright.js +11 -6
  70. package/lib/components/Footer/index.d.ts +1 -0
  71. package/lib/components/Footer/index.js +1 -0
  72. package/lib/components/Footer/styledVariables.d.ts +1 -0
  73. package/lib/components/Footer/styledVariables.js +61 -0
  74. package/lib/components/Image/Image.d.ts +9 -0
  75. package/lib/components/Image/Image.js +31 -0
  76. package/lib/components/Image/index.d.ts +1 -0
  77. package/lib/components/{Tags → Image}/index.js +1 -1
  78. package/lib/components/JsonViewer/JsonViewer.js +2 -2
  79. package/lib/components/LastUpdated/index.d.ts +1 -0
  80. package/lib/components/{OperationBadge → LastUpdated}/index.js +1 -1
  81. package/lib/components/LastUpdated/styledVariables.d.ts +1 -0
  82. package/lib/components/LastUpdated/styledVariables.js +11 -0
  83. package/lib/components/Markdown/MarkdownWrapper.js +2 -4
  84. package/lib/components/Markdown/Mermaid.js +1 -1
  85. package/lib/components/Markdown/index.d.ts +1 -0
  86. package/lib/components/Markdown/index.js +1 -0
  87. package/lib/components/Markdown/styledVariables.d.ts +2 -0
  88. package/lib/components/Markdown/styledVariables.js +221 -0
  89. package/lib/components/Menu/Menu.js +5 -7
  90. package/lib/components/Menu/MenuGroup.js +12 -7
  91. package/lib/components/Menu/MenuItemLabel.js +9 -13
  92. package/lib/components/Menu/MenuLinkItem.js +2 -1
  93. package/lib/components/Menu/MobileMenu.js +20 -25
  94. package/lib/components/Menu/MobileMenuGroup.js +1 -1
  95. package/lib/components/Menu/index.d.ts +1 -0
  96. package/lib/components/Menu/index.js +1 -0
  97. package/lib/components/Menu/styledVariables.d.ts +2 -0
  98. package/lib/components/Menu/styledVariables.js +101 -0
  99. package/lib/components/Navbar/Navbar.js +10 -11
  100. package/lib/components/Navbar/NavbarItem.d.ts +1 -1
  101. package/lib/components/Navbar/NavbarItem.js +14 -6
  102. package/lib/components/Navbar/NavbarMenu.js +2 -2
  103. package/lib/components/Navbar/index.d.ts +1 -0
  104. package/lib/components/Navbar/index.js +1 -0
  105. package/lib/components/Navbar/styledVariables.d.ts +1 -0
  106. package/lib/components/Navbar/styledVariables.js +43 -0
  107. package/lib/components/NavbarLogo/NavbarLogo.d.ts +4 -1
  108. package/lib/components/NavbarLogo/NavbarLogo.js +14 -5
  109. package/lib/components/NavbarLogo/index.d.ts +1 -0
  110. package/lib/components/NavbarLogo/index.js +1 -0
  111. package/lib/components/NavbarLogo/styledVariables.d.ts +1 -0
  112. package/lib/components/NavbarLogo/styledVariables.js +18 -0
  113. package/lib/components/OpenApiDocs/DevOnboardingTryItSecurity.js +2 -2
  114. package/lib/components/OpenApiDocs/Dropdown.js +3 -3
  115. package/lib/components/Panel/PanelHeader.js +1 -0
  116. package/lib/components/Panel/PanelHeaderTitle.js +0 -4
  117. package/lib/components/Panel/index.d.ts +1 -0
  118. package/lib/components/Panel/index.js +1 -0
  119. package/lib/components/Panel/styledVariables.d.ts +2 -0
  120. package/lib/components/Panel/styledVariables.js +481 -0
  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 +41 -0
  125. package/lib/components/Profile/LoginLink.js +5 -3
  126. package/lib/components/{Navbar → Profile}/MobileUserProfile.js +18 -26
  127. package/lib/components/Profile/Profile.js +3 -22
  128. package/lib/components/Profile/UserProfile.js +25 -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 +14 -17
  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 +10 -3
  149. package/lib/components/Select/Select.js +9 -6
  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 +33 -0
  154. package/lib/components/Separator/Separator.js +11 -3
  155. package/lib/components/Separator/SeparatorItem.js +5 -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 +2 -2
  161. package/lib/components/Sidebar/SidebarLayout.js +2 -1
  162. package/lib/components/Sidebar/VersionPicker.d.ts +1 -1
  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 +215 -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/SidebarActions.js +15 -3
  170. package/lib/components/SidebarActions/styled.js +29 -21
  171. package/lib/components/TableOfContent/TableOfContent.js +4 -4
  172. package/lib/components/TableOfContent/index.d.ts +1 -0
  173. package/lib/components/TableOfContent/index.js +1 -0
  174. package/lib/components/TableOfContent/styledVariables.d.ts +1 -0
  175. package/lib/components/TableOfContent/styledVariables.js +46 -0
  176. package/lib/components/Tabs/Tab.js +1 -1
  177. package/lib/components/Tabs/Tabs.js +1 -1
  178. package/lib/components/Tag/Tag.d.ts +17 -0
  179. package/lib/components/Tag/Tag.js +39 -0
  180. package/lib/components/Tag/index.d.ts +2 -0
  181. package/lib/components/Tag/index.js +19 -0
  182. package/lib/components/Tag/styledVariables.d.ts +1 -0
  183. package/lib/components/Tag/styledVariables.js +130 -0
  184. package/lib/components/Tiles/ThinTile.js +7 -5
  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 +84 -2
  196. package/lib/config.js +16 -2
  197. package/lib/globalStyle.js +599 -1982
  198. package/lib/icons/ArrowIcon/ArrowIcon.js +1 -1
  199. package/lib/icons/CheckboxIcon/CheckboxIcon.d.ts +6 -0
  200. package/lib/icons/CheckboxIcon/CheckboxIcon.js +28 -0
  201. package/lib/icons/CheckboxIcon/index.d.ts +1 -0
  202. package/lib/icons/CheckboxIcon/index.js +6 -0
  203. package/lib/icons/CollapseIcon/CollapseIcon.d.ts +1 -1
  204. package/lib/icons/CollapseIcon/CollapseIcon.js +5 -5
  205. package/lib/icons/ColorModeIcon/ColorModeIcon.js +1 -1
  206. package/lib/icons/CopyIcon/CopyIcon.d.ts +1 -2
  207. package/lib/icons/CopyIcon/CopyIcon.js +4 -4
  208. package/lib/icons/DeselectIcon/DeselectIcon.d.ts +1 -1
  209. package/lib/icons/DeselectIcon/DeselectIcon.js +5 -5
  210. package/lib/icons/ErrorIcon/ErrorIcon.d.ts +4 -0
  211. package/lib/icons/ErrorIcon/ErrorIcon.js +14 -0
  212. package/lib/icons/ErrorIcon/index.d.ts +1 -0
  213. package/lib/icons/ErrorIcon/index.js +18 -0
  214. package/lib/icons/ExpandIcon/ExpandIcon.d.ts +1 -2
  215. package/lib/icons/ExpandIcon/ExpandIcon.js +5 -5
  216. package/lib/icons/FileIcon/FileIcon.d.ts +1 -2
  217. package/lib/icons/FileIcon/FileIcon.js +2 -2
  218. package/lib/icons/LanguageIcon/LanguageIcon.d.ts +4 -0
  219. package/lib/icons/LanguageIcon/LanguageIcon.js +14 -0
  220. package/lib/icons/LanguageIcon/index.d.ts +1 -0
  221. package/lib/icons/LanguageIcon/index.js +18 -0
  222. package/lib/icons/PlusIcon/PlusIcon.d.ts +5 -0
  223. package/lib/icons/PlusIcon/PlusIcon.js +16 -0
  224. package/lib/icons/PlusIcon/index.d.ts +1 -0
  225. package/lib/icons/PlusIcon/index.js +18 -0
  226. package/lib/icons/PointingArrowIcon/PointingArrowIcon.d.ts +4 -0
  227. package/lib/icons/PointingArrowIcon/PointingArrowIcon.js +15 -0
  228. package/lib/icons/PointingArrowIcon/index.d.ts +1 -0
  229. package/lib/icons/PointingArrowIcon/index.js +18 -0
  230. package/lib/icons/ReportIcon/ReportIcon.d.ts +1 -2
  231. package/lib/icons/ReportIcon/ReportIcon.js +3 -3
  232. package/lib/icons/SelectIcon/SelectIcon.d.ts +1 -2
  233. package/lib/icons/SelectIcon/SelectIcon.js +5 -5
  234. package/lib/icons/index.d.ts +4 -0
  235. package/lib/icons/index.js +4 -0
  236. package/lib/layouts/Forbidden.js +4 -0
  237. package/lib/layouts/NotFound.js +4 -0
  238. package/lib/types/portal/src/shared/types/nav.d.ts +5 -0
  239. package/lib/ui/ArrowBack.js +0 -1
  240. package/lib/ui/Burger.js +1 -1
  241. package/lib/ui/Dropdown.js +7 -7
  242. package/lib/ui/Jumbotron.js +1 -1
  243. package/lib/ui/darkColors.js +217 -84
  244. package/lib/utils/index.d.ts +1 -0
  245. package/lib/utils/index.js +1 -0
  246. package/lib/utils/tags-parser.d.ts +1 -0
  247. package/lib/utils/tags-parser.js +10 -0
  248. package/package.json +2 -2
  249. package/src/I18n/LanguagePicker.tsx +29 -4
  250. package/src/I18n/index.ts +1 -0
  251. package/src/I18n/styledVariables.ts +36 -0
  252. package/src/components/Breadcrumbs/Breadcrumb.tsx +10 -3
  253. package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -2
  254. package/src/components/Breadcrumbs/index.ts +1 -0
  255. package/src/components/Breadcrumbs/styledVariables.ts +16 -0
  256. package/src/components/Button/Button.tsx +53 -47
  257. package/src/components/Button/index.ts +1 -0
  258. package/src/components/Button/styledVariables.ts +104 -0
  259. package/src/components/Catalog/Catalog.tsx +124 -117
  260. package/src/components/Catalog/CatalogCard.tsx +86 -60
  261. package/src/components/Catalog/index.ts +4 -0
  262. package/src/components/Catalog/styledVariables.ts +93 -0
  263. package/src/components/Catalog/useCatalog.ts +13 -1
  264. package/src/components/CodeBlock/CodeBlockContainer.tsx +17 -9
  265. package/src/components/CodeBlock/CodeBlockControlButton.tsx +6 -19
  266. package/src/components/CodeBlock/CodeBlockControls.tsx +14 -6
  267. package/src/components/CodeBlock/index.ts +1 -0
  268. package/src/components/CodeBlock/styledVariables.ts +89 -0
  269. package/src/components/ColorModeSwitcher/ColorModeSwitcher.tsx +3 -1
  270. package/src/components/Dropdown/Dropdown.tsx +14 -5
  271. package/src/components/Dropdown/index.ts +1 -0
  272. package/src/components/Dropdown/styledVariables.ts +27 -0
  273. package/src/components/EditPageButton/EditPageButton.tsx +7 -2
  274. package/src/components/Feedback/Comment.tsx +5 -0
  275. package/src/components/Feedback/Feedback.tsx +13 -3
  276. package/src/components/Feedback/Rating.tsx +5 -1
  277. package/src/components/Feedback/Reasons.tsx +6 -1
  278. package/src/components/Feedback/Sentiment.tsx +15 -2
  279. package/src/components/Feedback/Thumbs.tsx +4 -4
  280. package/src/components/Filter/Filter.tsx +130 -94
  281. package/src/components/Filter/FilterContent.tsx +86 -0
  282. package/src/components/Filter/FilterPopover.tsx +140 -0
  283. package/src/components/Filter/FilterTag.tsx +37 -0
  284. package/src/components/Filter/FilterTags.tsx +39 -0
  285. package/src/components/Filter/index.ts +2 -0
  286. package/src/components/Filter/styledVariables.ts +109 -0
  287. package/src/components/Footer/CustomFooterNavItem.tsx +1 -1
  288. package/src/components/Footer/Footer.tsx +32 -10
  289. package/src/components/Footer/FooterColumn.tsx +81 -62
  290. package/src/components/Footer/FooterColumns.tsx +6 -4
  291. package/src/components/Footer/FooterCopyright.tsx +13 -7
  292. package/src/components/Footer/index.ts +1 -0
  293. package/src/components/Footer/styledVariables.ts +58 -0
  294. package/src/components/Image/Image.tsx +47 -0
  295. package/src/components/Image/index.ts +1 -0
  296. package/src/components/JsonViewer/JsonViewer.tsx +2 -2
  297. package/src/components/LastUpdated/index.ts +1 -0
  298. package/src/components/LastUpdated/styledVariables.ts +8 -0
  299. package/src/components/Markdown/MarkdownWrapper.tsx +2 -4
  300. package/src/components/Markdown/Mermaid.tsx +1 -1
  301. package/src/components/Markdown/index.ts +1 -0
  302. package/src/components/Markdown/styledVariables.ts +219 -0
  303. package/src/components/Menu/Menu.tsx +5 -7
  304. package/src/components/Menu/MenuGroup.tsx +15 -7
  305. package/src/components/Menu/MenuItemLabel.tsx +9 -13
  306. package/src/components/Menu/MenuLinkItem.tsx +6 -1
  307. package/src/components/Menu/MobileMenu.tsx +20 -25
  308. package/src/components/Menu/MobileMenuGroup.tsx +1 -1
  309. package/src/components/Menu/index.ts +1 -0
  310. package/src/components/Menu/styledVariables.ts +99 -0
  311. package/src/components/Navbar/Navbar.tsx +10 -11
  312. package/src/components/Navbar/NavbarItem.tsx +16 -4
  313. package/src/components/Navbar/NavbarMenu.tsx +2 -2
  314. package/src/components/Navbar/index.ts +1 -0
  315. package/src/components/Navbar/styledVariables.ts +40 -0
  316. package/src/components/NavbarLogo/NavbarLogo.tsx +25 -10
  317. package/src/components/NavbarLogo/index.ts +1 -0
  318. package/src/components/NavbarLogo/styledVariables.ts +15 -0
  319. package/src/components/OpenApiDocs/DevOnboardingTryItSecurity.tsx +1 -2
  320. package/src/components/OpenApiDocs/Dropdown.tsx +3 -3
  321. package/src/components/Panel/PanelHeader.ts +1 -0
  322. package/src/components/Panel/PanelHeaderTitle.ts +0 -4
  323. package/src/components/Panel/index.ts +1 -0
  324. package/src/components/Panel/styledVariables.ts +479 -0
  325. package/src/components/Product/index.ts +1 -0
  326. package/src/components/Product/styledVariables.ts +39 -0
  327. package/src/components/Profile/LoginLink.tsx +9 -3
  328. package/src/components/{Navbar → Profile}/MobileUserProfile.tsx +24 -31
  329. package/src/components/Profile/Profile.tsx +1 -24
  330. package/src/components/Profile/UserProfile.tsx +25 -9
  331. package/src/components/Profile/UserProfileData.tsx +40 -0
  332. package/src/components/Profile/index.ts +1 -0
  333. package/src/components/Profile/styledVariables.ts +53 -0
  334. package/src/components/Search/CancelSearch.tsx +2 -15
  335. package/src/components/Search/ProductTag.tsx +8 -8
  336. package/src/components/Search/RecentSearches.tsx +5 -5
  337. package/src/components/Search/Search.tsx +0 -2
  338. package/src/components/Search/SearchIcon.tsx +10 -5
  339. package/src/components/Search/SearchItem.tsx +26 -31
  340. package/src/components/Search/SearchTrigger.tsx +4 -5
  341. package/src/components/Search/ShortcutKey.tsx +1 -5
  342. package/src/components/Search/SuggestedPages.tsx +3 -3
  343. package/src/components/Search/index.ts +1 -0
  344. package/src/components/Search/styledVariables.ts +95 -0
  345. package/src/components/Select/Select.tsx +20 -7
  346. package/src/components/Select/index.ts +1 -0
  347. package/src/components/Select/styledVariables.ts +30 -0
  348. package/src/components/Separator/Separator.tsx +17 -3
  349. package/src/components/Separator/SeparatorItem.tsx +5 -9
  350. package/src/components/Separator/SeparatorLine.tsx +7 -3
  351. package/src/components/Sidebar/ApiCallItem.tsx +17 -13
  352. package/src/components/Sidebar/FooterWrapper.tsx +3 -4
  353. package/src/components/Sidebar/HeaderWrapper.tsx +2 -2
  354. package/src/components/Sidebar/SidebarLayout.tsx +6 -1
  355. package/src/components/Sidebar/index.ts +1 -0
  356. package/src/components/Sidebar/styledVariables.ts +213 -0
  357. package/src/components/Sidebar/types.ts +1 -0
  358. package/src/components/SidebarActions/CollapseSidebarButton.tsx +22 -2
  359. package/src/components/SidebarActions/SidebarActions.tsx +18 -3
  360. package/src/components/SidebarActions/styled.tsx +29 -30
  361. package/src/components/TableOfContent/TableOfContent.tsx +4 -3
  362. package/src/components/TableOfContent/index.ts +1 -0
  363. package/src/components/TableOfContent/styledVariables.ts +43 -0
  364. package/src/components/Tabs/Tab.tsx +1 -1
  365. package/src/components/Tabs/Tabs.tsx +1 -1
  366. package/src/components/Tag/Tag.tsx +63 -0
  367. package/src/components/Tag/index.ts +2 -0
  368. package/src/components/Tag/styledVariables.ts +127 -0
  369. package/src/components/Tiles/ThinTile.tsx +7 -5
  370. package/src/components/Tiles/TileText.tsx +1 -1
  371. package/src/components/Tiles/WideTile.tsx +10 -8
  372. package/src/components/Tooltip/index.ts +1 -0
  373. package/src/components/Tooltip/styledVariables.ts +18 -0
  374. package/src/components/Typography/SectionHeader.ts +2 -2
  375. package/src/components/Typography/Typography.ts +1 -1
  376. package/src/components/index.ts +1 -2
  377. package/src/config.ts +20 -2
  378. package/src/globalStyle.ts +595 -1999
  379. package/src/icons/ArrowIcon/ArrowIcon.tsx +1 -1
  380. package/src/icons/CheckboxIcon/CheckboxIcon.tsx +64 -0
  381. package/src/icons/CheckboxIcon/index.ts +1 -0
  382. package/src/icons/CollapseIcon/CollapseIcon.tsx +5 -5
  383. package/src/icons/ColorModeIcon/ColorModeIcon.tsx +1 -1
  384. package/src/icons/CopyIcon/CopyIcon.tsx +4 -5
  385. package/src/icons/DeselectIcon/DeselectIcon.tsx +5 -5
  386. package/src/icons/ErrorIcon/ErrorIcon.tsx +15 -0
  387. package/src/icons/ErrorIcon/index.ts +1 -0
  388. package/src/icons/ExpandIcon/ExpandIcon.tsx +5 -6
  389. package/src/icons/FileIcon/FileIcon.tsx +2 -3
  390. package/src/icons/LanguageIcon/LanguageIcon.tsx +15 -0
  391. package/src/icons/LanguageIcon/index.ts +1 -0
  392. package/src/icons/PlusIcon/PlusIcon.tsx +25 -0
  393. package/src/icons/PlusIcon/index.ts +1 -0
  394. package/src/icons/PointingArrowIcon/PointingArrowIcon.tsx +16 -0
  395. package/src/icons/PointingArrowIcon/index.ts +1 -0
  396. package/src/icons/ReportIcon/ReportIcon.tsx +3 -4
  397. package/src/icons/SelectIcon/SelectIcon.tsx +5 -6
  398. package/src/icons/index.ts +4 -0
  399. package/src/layouts/Forbidden.tsx +4 -0
  400. package/src/layouts/NotFound.tsx +4 -0
  401. package/src/types/portal/src/shared/types/nav.ts +5 -0
  402. package/src/ui/ArrowBack.tsx +0 -1
  403. package/src/ui/Burger.tsx +1 -1
  404. package/src/ui/Dropdown.tsx +7 -7
  405. package/src/ui/Jumbotron.tsx +1 -1
  406. package/src/ui/darkColors.tsx +217 -84
  407. package/src/utils/index.ts +1 -0
  408. package/src/utils/tags-parser.ts +8 -0
  409. package/lib/components/OperationBadge/OperationBadge.d.ts +0 -6
  410. package/lib/components/OperationBadge/OperationBadge.js +0 -68
  411. package/lib/components/OperationBadge/index.d.ts +0 -1
  412. package/lib/components/Tags/Tags.d.ts +0 -5
  413. package/lib/components/Tags/Tags.js +0 -32
  414. package/lib/components/Tags/index.d.ts +0 -1
  415. package/src/components/Catalog/index.tsx +0 -3
  416. package/src/components/OperationBadge/OperationBadge.ts +0 -62
  417. package/src/components/OperationBadge/index.ts +0 -1
  418. package/src/components/Tags/Tags.tsx +0 -36
  419. package/src/components/Tags/index.ts +0 -1
  420. /package/lib/components/{Navbar → Profile}/MobileUserProfile.d.ts +0 -0
@@ -0,0 +1,27 @@
1
+ import { css } from "styled-components";
2
+
3
+ export const dropdown = css`
4
+ /**
5
+ * @tokens Dropdown
6
+ * */
7
+ --dropdown-font-size: var(--font-size-base); // @presenter FontSize
8
+ --dropdown-font-weight: var(--font-weight-regular); // @presenter FontWeight
9
+ --dropdown-line-height: var(--line-height-base); // @presenter LineHeight
10
+ --dropdown-text-color: var(--text-secondary); // @presenter Color
11
+ --dropdown-border-radius: var(--border-radius); // @presenter BorderRadius
12
+
13
+ --dropdown-list-min-width: 100px;
14
+ --dropdown-list-max-width: 300px;
15
+ --dropdown-list-padding: var(--spacing-xxs); // @presenter Spacing
16
+ --dropdown-list-border-radius: var(--border-radius-lg); // @presenter BorderRadius
17
+ --dropdown-list-background-color: var(--background-color); // @presenter Color
18
+ --dropdown-list-box-shadow: var(--bg-raised-shadow); // @presenter Shadow
19
+
20
+ --dropdown-list-item-horizontal-padding: var(--spacing-base); // @presenter Spacing
21
+ --dropdown-list-item-vertical-padding: var(--spacing-xs); // @presenter Spacing
22
+ --dropdown-list-item-border-radius: var(--border-radius); // @presenter BorderRadius
23
+ --dropdown-list-item-active-background-color: var(--bg-raised); // @presenter Color
24
+ --dropdown-list-item-separator-color: var(--border-primary); // @presenter Color
25
+
26
+ // @tokens End
27
+ `;
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
4
  import { Link } from '@portal/Link';
5
+ import { telemetry } from '@portal/telemetry';
5
6
 
6
7
  export interface EditPageButtonProps {
7
8
  text: string;
@@ -11,7 +12,7 @@ export interface EditPageButtonProps {
11
12
 
12
13
  export const EditPageButton = ({ text, to, icon }: EditPageButtonProps): JSX.Element => {
13
14
  return (
14
- <EditButton to={to}>
15
+ <EditButton to={to} onClick={() => telemetry.send('edit_page_link_clicked', {})}>
15
16
  {icon ? <ButtonIcon src={icon} /> : null}
16
17
  <ButtonText>{text}</ButtonText>
17
18
  </EditButton>
@@ -21,12 +22,16 @@ export const EditPageButton = ({ text, to, icon }: EditPageButtonProps): JSX.Ele
21
22
  const EditButton = styled(Link)`
22
23
  margin-left: auto;
23
24
  display: inline-flex;
24
- color: var(--color-content);
25
+ color: var(--text-secondary);
25
26
  font-weight: var(--font-weight-bold);
26
27
  font-size: var(--font-size-base);
27
28
  font-family: var(--font-family-base);
28
29
  text-decoration: none;
29
30
 
31
+ &:hover {
32
+ color: var(--text-primary);
33
+ }
34
+
30
35
  @media print {
31
36
  display: none;
32
37
  }
@@ -67,6 +67,11 @@ const Wrapper = styled.div`
67
67
  `;
68
68
 
69
69
  const Label = styled.h3`
70
+ font-family: var(--h3-font-family);
71
+ font-weight: var(--h3-font-weight);
72
+ font-size: var(--h3-font-size);
73
+ line-height: var(--h3-line-height);
74
+ color: var(--h3-text-color);
70
75
  margin-right: 15px;
71
76
  `;
72
77
 
@@ -6,6 +6,7 @@ import type { FeedbackProps } from '@theme/types/portal/src/shared/types/feedbac
6
6
  import { Rating, Sentiment, Comment } from '@theme/components/Feedback';
7
7
  import { useThemeConfig } from '@theme/hooks';
8
8
  import { useSubmitFeedback } from '@portal/Feedback/useSubmitFeedback';
9
+ import { telemetry } from '@portal/telemetry';
9
10
 
10
11
  export const Feedback = (props: FeedbackProps & { path?: string }) => {
11
12
  const { submitFeedback } = useSubmitFeedback();
@@ -20,7 +21,10 @@ export const Feedback = (props: FeedbackProps & { path?: string }) => {
20
21
  <Wrapper>
21
22
  <Rating
22
23
  settings={settings}
23
- onSubmit={(values) => submitFeedback({ type: 'rating', values, path })}
24
+ onSubmit={(values) => {
25
+ submitFeedback({ type: 'rating', values, path });
26
+ telemetry.send('feedback_sent', { type: 'rating' });
27
+ }}
24
28
  />
25
29
  </Wrapper>
26
30
  );
@@ -29,7 +33,10 @@ export const Feedback = (props: FeedbackProps & { path?: string }) => {
29
33
  <Wrapper>
30
34
  <Sentiment
31
35
  settings={settings}
32
- onSubmit={(values) => submitFeedback({ type: 'sentiment', values, path })}
36
+ onSubmit={(values) => {
37
+ submitFeedback({ type: 'sentiment', values, path });
38
+ telemetry.send('feedback_sent', { type: 'sentiment' });
39
+ }}
33
40
  />
34
41
  </Wrapper>
35
42
  );
@@ -38,7 +45,10 @@ export const Feedback = (props: FeedbackProps & { path?: string }) => {
38
45
  <Wrapper>
39
46
  <Comment
40
47
  settings={settings}
41
- onSubmit={(values) => submitFeedback({ type: 'comment', values, path })}
48
+ onSubmit={(values) => {
49
+ submitFeedback({ type: 'comment', values, path });
50
+ telemetry.send('feedback_sent', { type: 'comment' });
51
+ }}
42
52
  />
43
53
  </Wrapper>
44
54
  );
@@ -116,5 +116,9 @@ const Star = styled.span`
116
116
 
117
117
  const Label = styled.h3`
118
118
  margin-right: 15px;
119
- font-family: var(--font-family-base);
119
+ font-family: var(--h3-font-family);
120
+ font-weight: var(--h3-font-weight);
121
+ font-size: var(--h3-font-size);
122
+ line-height: var(--h3-line-height);
123
+ color: var(--h3-text-color);
120
124
  `;
@@ -77,6 +77,11 @@ const Wrapper = styled.div`
77
77
  `;
78
78
 
79
79
  const Label = styled.h3`
80
+ font-family: var(--h3-font-family);
81
+ font-weight: var(--h3-font-weight);
82
+ font-size: var(--h3-font-size);
83
+ line-height: var(--h3-line-height);
84
+ color: var(--h3-text-color);
80
85
  margin-right: 15px;
81
86
  `;
82
87
 
@@ -97,7 +102,7 @@ const OptionWrapper = styled.div`
97
102
  cursor: pointer;
98
103
  }
99
104
  label {
100
- font-size: 14px;
105
+ font-size: var(--font-size-base);
101
106
  cursor: pointer;
102
107
  }
103
108
  `;
@@ -69,10 +69,18 @@ export const Sentiment = ({ settings, onSubmit, className }: SentimentProps): JS
69
69
  <Label data-translation-key={translationKeys.label}>
70
70
  {translate(translationKeys.label, label || 'Was this page helpful?')}
71
71
  </Label>
72
- <Vote onClick={() => setScore(1)}>
72
+ <Vote
73
+ onClick={() => {
74
+ setScore(1);
75
+ }}
76
+ >
73
77
  <ThumbUp text="Yes" />
74
78
  </Vote>
75
- <Vote onClick={() => setScore(-1)}>
79
+ <Vote
80
+ onClick={() => {
81
+ setScore(-1);
82
+ }}
83
+ >
76
84
  <ThumbDown />
77
85
  </Vote>
78
86
  </Wrapper>
@@ -86,6 +94,11 @@ const Wrapper = styled.div`
86
94
  `;
87
95
 
88
96
  const Label = styled.h3`
97
+ font-family: var(--h3-font-family);
98
+ font-weight: var(--h3-font-weight);
99
+ font-size: var(--h3-font-size);
100
+ line-height: var(--h3-line-height);
101
+ color: var(--h3-text-color);
89
102
  margin-right: 15px;
90
103
  `;
91
104
 
@@ -108,12 +108,12 @@ export const ThumbDown = ({ text }: { text?: string }) => {
108
108
  const Wrapper = styled.div`
109
109
  font-family: var(--font-family-base);
110
110
  display: flex;
111
- color: var(--color-primary-500);
111
+ color: var(--color-info-text);
112
112
  &:hover {
113
- color: var(--color-primary-600);
113
+ color: var(--color-info-text-active);
114
114
  svg {
115
115
  > g {
116
- fill: var(--color-primary-600);
116
+ fill: var(--color-info-text-active);
117
117
  }
118
118
  }
119
119
  }
@@ -125,7 +125,7 @@ const Icon = styled.div`
125
125
  margin-right: 5px;
126
126
  > svg {
127
127
  > g {
128
- fill: var(--color-primary-500);
128
+ fill: var(--color-info-text);
129
129
  }
130
130
  }
131
131
  `;
@@ -2,9 +2,12 @@ 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
+
5
7
  import type { ResolvedFilter } from '@theme/types/portal/src/shared/types/catalog';
6
- import { Checkbox } from '@theme/ui/Checkbox';
7
8
  import { useTranslate } from '@portal/hooks';
9
+ import { CheckboxIcon } from '@theme/icons';
10
+ import { Select } from '@theme/components/Select';
8
11
 
9
12
  export function Filter({ filter }: { filter: ResolvedFilter & { selectedOptions: any } }) {
10
13
  const { translate } = useTranslate();
@@ -14,32 +17,57 @@ export function Filter({ filter }: { filter: ResolvedFilter & { selectedOptions:
14
17
  };
15
18
 
16
19
  if (!filter.parentUsed) return null;
20
+
21
+ let selectOptions: { value: string; component: React.ReactNode }[] = [];
22
+ if (filter.type === 'select') {
23
+ const defaultOptionCount = filter.filteredOptions.reduce(
24
+ (acc, option) => acc + option.count,
25
+ 0,
26
+ );
27
+ selectOptions = [
28
+ {
29
+ value: '',
30
+ component: (
31
+ <FilterOption key="all" role="link" onClick={() => filter.selectOption('')}>
32
+ <FilterOptionLabel>{translate(translationKeys.selectAll, 'All')}</FilterOptionLabel>
33
+ <FilterOptionCount>{defaultOptionCount}</FilterOptionCount>
34
+ </FilterOption>
35
+ ),
36
+ },
37
+ ];
38
+ selectOptions.push(
39
+ ...filter.filteredOptions.map((option) => ({
40
+ value: option.value,
41
+ component: (
42
+ <FilterOption
43
+ key={option.value}
44
+ role="link"
45
+ onClick={() => filter.selectOption(option.value)}
46
+ >
47
+ <FilterOptionLabel>{translate(option.value)}</FilterOptionLabel>
48
+ <FilterOptionCount>{option.count}</FilterOptionCount>
49
+ </FilterOption>
50
+ ),
51
+ })),
52
+ );
53
+ }
54
+
55
+ let selectedOptionComponent: ReactNode;
56
+ if (filter.type === 'select') {
57
+ const selectedOption = (filter.selectedOptions as Set<any>).values().next()?.value;
58
+ selectedOptionComponent =
59
+ selectOptions.find((option) => option.value === selectedOption)?.component ||
60
+ selectOptions[0].component;
61
+ }
62
+
17
63
  return (
18
64
  <FilterGroup key={filter.property + filter.title}>
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>
65
+ <FilterTitle>{translate(filter.titleTranslationKey, filter.title)} </FilterTitle>
27
66
  {filter.type === 'select' ? (
28
67
  <StyledSelect
29
- onChange={(e) => filter.selectOption(e.target.value)}
30
- value={(filter.selectedOptions as Set<any>).values().next()?.value || ''}
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>
68
+ selected={selectedOptionComponent}
69
+ options={selectOptions.map((option) => option.component)}
70
+ />
43
71
  ) : filter.type === 'date-range' ? (
44
72
  <>
45
73
  <DatePickerWrapper>
@@ -89,17 +117,11 @@ export function Filter({ filter }: { filter: ResolvedFilter & { selectedOptions:
89
117
  filter.filteredOptions.map((value: any) => {
90
118
  const id = 'filter--' + filter.property + '--' + slug(value.value);
91
119
  return (
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>
120
+ <FilterOption key={id} role="link" onClick={() => filter.toggleOption(value.value)}>
121
+ <CheckboxIcon checked={filter.selectedOptions.has(value.value)} />
122
+ <FilterOptionLabel>{translate(value.value)}</FilterOptionLabel>
123
+ <FilterOptionCount>{value.count}</FilterOptionCount>
124
+ </FilterOption>
103
125
  );
104
126
  })
105
127
  )}
@@ -108,61 +130,68 @@ export function Filter({ filter }: { filter: ResolvedFilter & { selectedOptions:
108
130
  }
109
131
 
110
132
  const FilterGroup = styled.div`
111
- padding: 16px 0;
112
- border-bottom: 1px solid var(--border-color);
133
+ padding: var(--filter-group-padding);
134
+ `;
113
135
 
114
- &:last-of-type {
115
- border-bottom: none;
116
- }
136
+ const FilterOptionLabel = styled.label`
137
+ cursor: pointer;
138
+ font-size: var(--filter-option-label-font-size);
139
+ font-weight: var(--filter-option-label-font-weight);
140
+ margin: var(--filter-option-label-margin);
141
+ color: var(--filter-option-label-color);
142
+ white-space: nowrap;
143
+ text-overflow: ellipsis;
144
+ overflow: hidden;
117
145
  `;
118
146
 
119
- const FilterTitle = styled.h4`
120
- font-size: 18px;
121
- font-weight: var(--font-weight-bold);
122
- margin: 0;
123
- margin-bottom: 16px;
147
+ const FilterOptionCount = styled.label`
148
+ cursor: pointer;
149
+ display: flex;
150
+ align-items: center;
151
+ height: var(--filter-option-count-height);
152
+ color: var(--filter-option-count-color);
153
+ text-align: center;
154
+ font-size: var(--filter-option-count-font-size);
155
+ font-weight: var(--filter-option-count-font-weight);
156
+ padding: var(--filter-option-count-padding);
157
+ border-radius: var(--filter-option-count-border-radius);
158
+ border: 1px solid var(--filter-option-count-border-color);
159
+ background-color: var(--filter-option-count-background-color);
160
+ `;
124
161
 
125
- > a {
126
- font-size: 14px;
127
- cursor: pointer;
128
- }
162
+ const FilterTitle = styled.h4`
163
+ font-weight: var(--filter-title-font-weight);
164
+ font-size: var(--filter-title-font-size);
165
+ margin: var(--filter-title-margin);
129
166
  `;
130
167
 
131
- const FilterValue = styled.label`
132
- display: block;
168
+ const FilterOption = styled.label.attrs({ 'data-cy': 'Filter/FilterOption' })`
169
+ display: flex;
170
+ align-items: center;
133
171
  cursor: pointer;
134
- font-size: 16px;
135
- margin: 8px 0;
172
+ font-weight: var(--filter-option-font-weight);
173
+ font-size: var(--filter-option-font-size);
174
+ margin: var(--filter-option-margin);
136
175
 
137
176
  input {
138
177
  cursor: pointer;
139
178
  }
140
179
  `;
141
180
 
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;
181
+ const StyledSelect = styled(Select)`
182
+ min-height: var(--filter-select-min-height);
183
+ color: var(--filter-select-color);
184
+ border: 1px solid var(--filter-select-border-color);
185
+ border-radius: var(--filter-select-border-radius);
186
+ padding: var(--filter-select-padding);
187
+
188
+ :hover {
189
+ border-color: var(--filter-select-hover-border-color);
190
+ }
191
+
192
+ ${FilterOption} {
193
+ margin: var(--filter-select-option-margin);
194
+ }
166
195
  `;
167
196
 
168
197
  // TODO: import from portal
@@ -171,15 +200,16 @@ function slug(str: string): string {
171
200
  }
172
201
 
173
202
  const DatePickerWrapper = styled.div`
203
+ color: var(--filter-date-picker-color);
174
204
  display: flex;
175
205
  flex-direction: row;
176
- margin-bottom: 5px;
206
+ margin: var(--filter-date-picker-margin);
177
207
 
178
208
  align-items: center;
179
- gap: 10px;
209
+ gap: var(--filter-date-picker-gap);
180
210
 
181
211
  > span {
182
- width: 50px;
212
+ width: var(--filter-date-picker-width);
183
213
  }
184
214
 
185
215
  .react-date-picker {
@@ -187,35 +217,41 @@ const DatePickerWrapper = styled.div`
187
217
  }
188
218
 
189
219
  .react-calendar__tile--now {
190
- background: #cbf7f1;
191
- color: black;
220
+ background: var(--filter-date-picker-tile-background);
221
+ color: var(--filter-date-picker-tile-color);
192
222
 
193
223
  &:enabled:hover,
194
224
  &:enabled:focus {
195
- background: #b1efe7;
196
- color: black;
225
+ background: var(--filter-date-picker-tile-hover-background);
226
+ color: var(--filter-date-picker-tile-hover-color);
197
227
  }
198
228
  }
199
229
 
200
- .react-date-picker__inputGroup__input:invalid {
201
- background: rgb(255 125 0 / 10%);
230
+ .react-date-picker__inputGroup__input {
231
+ width: var(--filter-date-picker-input-width);
232
+
233
+ &:invalid {
234
+ background: var(--filter-date-picker-invalid-input-background);
235
+ }
202
236
  }
203
237
 
204
238
  .react-date-picker__button {
205
- padding: 4px 4px;
239
+ padding: var(--filter-date-picker-button-padding);
240
+
206
241
  svg {
207
- width: 12px;
242
+ stroke: var(--filter-date-picker-icon-stroke);
243
+ width: var(--filter-date-picker-icon-width);
208
244
  }
209
- }
210
245
 
211
- .react-date-picker__wrapper {
212
- border: 1px solid rgba(0, 0, 0, 0.23);
213
- border-radius: var(--border-radius);
214
- padding: var(--input-padding);
246
+ &:enabled:hover .react-date-picker__button__icon {
247
+ stroke: var(--filter-date-picker-hover-icon-stroke);
248
+ }
215
249
  }
216
250
 
217
- .react-date-picker__inputGroup__input {
218
- width: 20px;
251
+ .react-date-picker__wrapper {
252
+ border: 1px solid var(--filter-date-picker-wrapper-border-color);
253
+ border-radius: var(--filter-date-picker-wrapper-radius);
254
+ padding: var(--filter-date-picker-wrapper-padding);
219
255
  }
220
256
  `;
221
257
 
@@ -0,0 +1,86 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { Button } from '@theme';
4
+
5
+ import { useTranslate } from '@portal/hooks';
6
+ import { FilterControls } from '@theme/components/Catalog';
7
+ import { Filter } from '@theme/components/Filter/index';
8
+ import type { ResolvedFilter } from '@theme/types/portal/src/shared/types/catalog';
9
+ import { StyledInput } from '@theme/components/Filter/FilterPopover';
10
+
11
+ interface FilterContentProps {
12
+ setFilterTerm: (value: string) => void;
13
+ filters: ResolvedFilter[];
14
+ filterTerm: string;
15
+ isMobile: boolean;
16
+ }
17
+
18
+ export function FilterContent({
19
+ setFilterTerm,
20
+ filters,
21
+ filterTerm,
22
+ isMobile,
23
+ }: FilterContentProps) {
24
+ const { translate } = useTranslate();
25
+ const translationKeys = {
26
+ placeholder: 'theme.catalog.filters.placeholder',
27
+ clearAll: 'theme.catalog.filters.clearAll',
28
+ };
29
+
30
+ const hasActiveFilters = filters.some((filter) => {
31
+ if (filter.selectedOptions && filter.selectedOptions instanceof Set) {
32
+ return filter.selectedOptions.size;
33
+ } else if (filter.selectedOptions.from && filter.selectedOptions.to) {
34
+ return true;
35
+ }
36
+ });
37
+
38
+ const handleClearAll = () => {
39
+ filters.forEach((filter) => filter.selectOption(''));
40
+ };
41
+
42
+ return (
43
+ <FilterContentWrapper isMobile={isMobile}>
44
+ <FilterControls>
45
+ <StyledInput
46
+ placeholder={translate(translationKeys.placeholder, 'Type to filter...')}
47
+ value={filterTerm}
48
+ onChange={(e) => setFilterTerm(e.target.value)}
49
+ />
50
+ </FilterControls>
51
+ <FilterItems>
52
+ {filters.map((filter, idx) => (
53
+ <Filter filter={filter} key={filter.property + '-' + idx} />
54
+ ))}
55
+ </FilterItems>
56
+ {hasActiveFilters && (
57
+ <Button size="small" onClick={handleClearAll}>
58
+ {translate(translationKeys.placeholder, 'Clear all filters')}
59
+ </Button>
60
+ )}
61
+ </FilterContentWrapper>
62
+ );
63
+ }
64
+
65
+ const FilterContentWrapper = styled.div<{ isMobile?: boolean }>`
66
+ width: var(--sidebar-width);
67
+ display: none;
68
+
69
+ ${Button} {
70
+ width: var(--filter-content-clear-button-width);
71
+ margin: var(--filter-content-clear-button-margin);
72
+ }
73
+
74
+ ${({ theme, isMobile }) => !isMobile && theme.mediaQueries.small} {
75
+ display: block;
76
+ border-right: 1px solid var(--filter-content-border-color);
77
+
78
+ ${FilterControls} {
79
+ background: var(--filter-controls-background-color);
80
+ }
81
+ }
82
+ `;
83
+
84
+ export const FilterItems = styled.div`
85
+ padding: var(--filter-content-items-padding);
86
+ `;