@redocly/theme 0.18.3-patch.8 → 0.18.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/I18n/LanguagePicker.d.ts +2 -7
- package/lib/I18n/LanguagePicker.js +12 -27
- package/lib/I18n/index.d.ts +0 -1
- package/lib/I18n/index.js +0 -15
- package/lib/components/Breadcrumbs/Breadcrumb.js +5 -2
- package/lib/components/Breadcrumbs/Breadcrumbs.js +2 -6
- package/lib/components/Breadcrumbs/index.d.ts +0 -1
- package/lib/components/Breadcrumbs/index.js +0 -1
- package/lib/components/Button/Button.d.ts +3 -6
- package/lib/components/Button/Button.js +41 -41
- package/lib/components/Button/index.d.ts +0 -1
- package/lib/components/Button/index.js +0 -1
- package/lib/components/Catalog/Catalog.d.ts +0 -6
- package/lib/components/Catalog/Catalog.js +103 -108
- package/lib/components/Catalog/CatalogCard.js +58 -89
- package/lib/components/Catalog/index.d.ts +3 -4
- package/lib/components/Catalog/index.js +3 -4
- package/lib/components/CodeBlock/CodeBlockContainer.js +10 -38
- package/lib/components/CodeBlock/CodeBlockControlButton.d.ts +4 -3
- package/lib/components/CodeBlock/CodeBlockControlButton.js +19 -5
- package/lib/components/CodeBlock/CodeBlockControls.js +5 -8
- package/lib/components/CodeBlock/index.d.ts +0 -1
- package/lib/components/CodeBlock/index.js +0 -1
- package/lib/components/ColorModeSwitcher/ColorModeSwitcher.js +1 -0
- package/lib/components/Dropdown/Dropdown.d.ts +3 -9
- package/lib/components/Dropdown/Dropdown.js +4 -7
- package/lib/components/Dropdown/index.d.ts +0 -1
- package/lib/components/Dropdown/index.js +0 -1
- package/lib/components/EditPageButton/EditPageButton.js +1 -5
- package/lib/components/Feedback/Comment.js +0 -5
- package/lib/components/Feedback/Rating.js +1 -5
- package/lib/components/Feedback/Reasons.js +1 -6
- package/lib/components/Feedback/Sentiment.js +0 -5
- package/lib/components/Feedback/Thumbs.js +4 -4
- package/lib/components/Filter/Filter.d.ts +1 -3
- package/lib/components/Filter/Filter.js +80 -113
- package/lib/components/Filter/index.d.ts +0 -2
- package/lib/components/Filter/index.js +0 -2
- package/lib/components/Footer/CustomFooterNavItem.js +1 -1
- package/lib/components/Footer/Footer.d.ts +3 -4
- package/lib/components/Footer/Footer.js +10 -28
- package/lib/components/Footer/FooterColumn.d.ts +3 -3
- package/lib/components/Footer/FooterColumn.js +63 -55
- package/lib/components/Footer/FooterColumns.js +4 -6
- package/lib/components/Footer/FooterCopyright.js +6 -11
- package/lib/components/Footer/index.d.ts +0 -1
- package/lib/components/Footer/index.js +0 -1
- package/lib/components/JsonViewer/JsonViewer.js +2 -2
- package/lib/components/LastUpdated/LastUpdated.js +0 -1
- package/lib/components/Markdown/Admonition.js +9 -12
- package/lib/components/Markdown/MarkdownWrapper.js +4 -2
- package/lib/components/Markdown/Mermaid.js +1 -4
- package/lib/components/Markdown/index.d.ts +0 -1
- package/lib/components/Markdown/index.js +0 -1
- package/lib/components/Menu/Menu.js +7 -5
- package/lib/components/Menu/MenuGroup.js +7 -12
- package/lib/components/Menu/MenuItemLabel.js +13 -9
- package/lib/components/Menu/MobileMenu.js +25 -20
- package/lib/components/Menu/MobileMenuGroup.js +1 -1
- package/lib/components/Menu/index.d.ts +0 -1
- package/lib/components/Menu/index.js +0 -1
- package/lib/components/{Profile → Navbar}/MobileUserProfile.js +24 -12
- package/lib/components/Navbar/Navbar.js +11 -10
- package/lib/components/Navbar/NavbarItem.d.ts +1 -1
- package/lib/components/Navbar/NavbarItem.js +4 -11
- package/lib/components/Navbar/NavbarMenu.js +2 -2
- package/lib/components/Navbar/index.d.ts +0 -1
- package/lib/components/Navbar/index.js +0 -1
- package/lib/components/NavbarLogo/NavbarLogo.d.ts +1 -4
- package/lib/components/NavbarLogo/NavbarLogo.js +5 -13
- package/lib/components/NavbarLogo/index.d.ts +0 -1
- package/lib/components/NavbarLogo/index.js +0 -1
- package/lib/components/OpenApiDocs/DevOnboardingTryItSecurity.js +2 -2
- package/lib/components/OpenApiDocs/Dropdown.js +3 -3
- package/lib/components/OperationBadge/OperationBadge.d.ts +6 -0
- package/lib/components/OperationBadge/OperationBadge.js +68 -0
- package/lib/components/OperationBadge/index.d.ts +1 -0
- package/lib/{icons/LanguageIcon → components/OperationBadge}/index.js +1 -1
- package/lib/components/Panel/PanelHeader.js +0 -2
- package/lib/components/Panel/PanelHeaderTitle.js +4 -0
- package/lib/components/Panel/index.d.ts +0 -1
- package/lib/components/Panel/index.js +0 -1
- package/lib/components/Product/ProductPicker.js +5 -17
- package/lib/components/Product/index.d.ts +0 -1
- package/lib/components/Product/index.js +0 -1
- package/lib/components/Profile/LoginLink.js +2 -1
- package/lib/components/Profile/Profile.js +22 -3
- package/lib/components/Profile/UserProfile.js +9 -21
- package/lib/components/Profile/index.d.ts +0 -1
- package/lib/components/Profile/index.js +0 -15
- package/lib/components/Search/CancelSearch.js +14 -2
- package/lib/components/Search/ProductTag.js +8 -8
- package/lib/components/Search/RecentSearches.js +5 -5
- package/lib/components/Search/Search.js +2 -0
- package/lib/components/Search/SearchIcon.js +2 -2
- package/lib/components/Search/SearchItem.js +4 -4
- package/lib/components/Search/SearchTrigger.js +5 -4
- package/lib/components/Search/ShortcutKey.js +5 -1
- package/lib/components/Search/SuggestedPages.js +3 -3
- package/lib/components/Search/index.d.ts +0 -1
- package/lib/components/Search/index.js +0 -1
- package/lib/components/Select/Select.d.ts +9 -21
- package/lib/components/Select/Select.js +17 -28
- package/lib/components/Select/index.d.ts +0 -1
- package/lib/components/Select/index.js +0 -1
- package/lib/components/Separator/Separator.js +3 -11
- package/lib/components/Separator/SeparatorItem.js +9 -6
- package/lib/components/Separator/SeparatorLine.js +3 -7
- package/lib/components/Sidebar/ApiCallItem.d.ts +6 -2
- package/lib/components/Sidebar/ApiCallItem.js +13 -17
- package/lib/components/Sidebar/FooterWrapper.js +4 -3
- package/lib/components/Sidebar/HeaderWrapper.js +3 -3
- package/lib/components/Sidebar/VersionPicker.d.ts +3 -3
- package/lib/components/Sidebar/VersionPicker.js +4 -5
- package/lib/components/Sidebar/index.d.ts +0 -1
- package/lib/components/Sidebar/index.js +0 -1
- package/lib/components/Sidebar/types.d.ts +0 -1
- package/lib/components/SidebarActions/CollapseSidebarButton.js +1 -41
- package/lib/components/SidebarActions/styled.js +21 -29
- package/lib/components/TableOfContent/TableOfContent.js +3 -2
- package/lib/components/TableOfContent/index.d.ts +0 -1
- package/lib/components/TableOfContent/index.js +0 -1
- package/lib/components/Tabs/Tab.js +1 -1
- package/lib/components/Tabs/Tabs.js +1 -1
- package/lib/components/Tags/Tags.d.ts +5 -0
- package/lib/components/Tags/Tags.js +32 -0
- package/lib/components/Tags/index.d.ts +1 -0
- package/lib/components/{Image → Tags}/index.js +1 -1
- package/lib/components/Tiles/ThinTile.js +5 -7
- package/lib/components/Tiles/TileHeader.js +1 -1
- package/lib/components/Tiles/TileText.js +1 -1
- package/lib/components/Tiles/WideTile.js +8 -10
- package/lib/components/Tooltip/index.d.ts +0 -1
- package/lib/components/Tooltip/index.js +0 -1
- package/lib/components/Typography/SectionHeader.js +2 -2
- package/lib/components/Typography/Typography.js +1 -1
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +2 -1
- package/lib/config.d.ts +0 -113
- package/lib/config.js +3 -27
- package/lib/globalStyle.js +1983 -602
- package/lib/hooks/useMobileMenu.js +6 -5
- package/lib/icons/AlertIcon/AlertIcon.js +5 -0
- package/lib/icons/ArrowIcon/ArrowIcon.js +1 -1
- package/lib/icons/CollapseIcon/CollapseIcon.d.ts +1 -1
- package/lib/icons/CollapseIcon/CollapseIcon.js +5 -5
- package/lib/icons/ColorModeIcon/ColorModeIcon.js +1 -1
- package/lib/icons/CopyIcon/CopyIcon.d.ts +2 -1
- package/lib/icons/CopyIcon/CopyIcon.js +4 -4
- package/lib/icons/DeselectIcon/DeselectIcon.d.ts +1 -1
- package/lib/icons/DeselectIcon/DeselectIcon.js +5 -5
- package/lib/icons/ExpandIcon/ExpandIcon.d.ts +2 -1
- package/lib/icons/ExpandIcon/ExpandIcon.js +5 -5
- package/lib/icons/FileIcon/FileIcon.d.ts +2 -1
- package/lib/icons/FileIcon/FileIcon.js +2 -2
- package/lib/icons/ReportIcon/ReportIcon.d.ts +2 -1
- package/lib/icons/ReportIcon/ReportIcon.js +3 -3
- package/lib/icons/SelectIcon/SelectIcon.d.ts +2 -1
- package/lib/icons/SelectIcon/SelectIcon.js +5 -5
- package/lib/icons/index.d.ts +0 -4
- package/lib/icons/index.js +0 -4
- package/lib/layouts/Forbidden.js +0 -4
- package/lib/layouts/NotFound.js +0 -4
- package/lib/types/portal/src/shared/types/catalog.d.ts +1 -5
- package/lib/types/portal/src/shared/types/nav.d.ts +0 -5
- package/lib/ui/ArrowBack.js +1 -0
- package/lib/ui/Burger.js +1 -1
- package/lib/ui/Dropdown.js +7 -7
- package/lib/ui/Highlight.d.ts +1 -1
- package/lib/ui/Highlight.js +1 -1
- package/lib/ui/Jumbotron.js +1 -1
- package/lib/ui/darkColors.js +84 -217
- package/lib/utils/css-variables.js +1 -1
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/index.js +0 -1
- package/package.json +1 -1
- package/src/I18n/LanguagePicker.tsx +21 -48
- package/src/I18n/index.ts +0 -1
- package/src/components/Breadcrumbs/Breadcrumb.tsx +5 -2
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +2 -6
- package/src/components/Breadcrumbs/index.ts +0 -1
- package/src/components/Button/Button.tsx +47 -53
- package/src/components/Button/index.ts +0 -1
- package/src/components/Catalog/Catalog.tsx +120 -135
- package/src/components/Catalog/CatalogCard.tsx +58 -106
- package/src/components/Catalog/index.tsx +3 -0
- package/src/components/CodeBlock/CodeBlockContainer.tsx +9 -17
- package/src/components/CodeBlock/CodeBlockControlButton.tsx +19 -6
- package/src/components/CodeBlock/CodeBlockControls.tsx +5 -8
- package/src/components/CodeBlock/index.ts +0 -1
- package/src/components/ColorModeSwitcher/ColorModeSwitcher.tsx +1 -0
- package/src/components/Dropdown/Dropdown.tsx +5 -14
- package/src/components/Dropdown/index.ts +0 -1
- package/src/components/EditPageButton/EditPageButton.tsx +1 -5
- package/src/components/Feedback/Comment.tsx +0 -5
- package/src/components/Feedback/Rating.tsx +1 -5
- package/src/components/Feedback/Reasons.tsx +1 -6
- package/src/components/Feedback/Sentiment.tsx +0 -5
- package/src/components/Feedback/Thumbs.tsx +4 -4
- package/src/components/Filter/Filter.tsx +94 -150
- package/src/components/Filter/index.ts +0 -2
- package/src/components/Footer/CustomFooterNavItem.tsx +1 -1
- package/src/components/Footer/Footer.tsx +10 -32
- package/src/components/Footer/FooterColumn.tsx +63 -82
- package/src/components/Footer/FooterColumns.tsx +4 -6
- package/src/components/Footer/FooterCopyright.tsx +7 -13
- package/src/components/Footer/index.ts +0 -1
- package/src/components/JsonViewer/JsonViewer.tsx +2 -2
- package/src/components/LastUpdated/LastUpdated.tsx +2 -1
- package/src/components/Markdown/Admonition.tsx +8 -13
- package/src/components/Markdown/MarkdownWrapper.tsx +4 -2
- package/src/components/Markdown/Mermaid.tsx +1 -4
- package/src/components/Markdown/index.ts +0 -1
- package/src/components/Menu/Menu.tsx +7 -5
- package/src/components/Menu/MenuGroup.tsx +7 -15
- package/src/components/Menu/MenuItemLabel.tsx +13 -9
- package/src/components/Menu/MobileMenu.tsx +25 -20
- package/src/components/Menu/MobileMenuGroup.tsx +1 -1
- package/src/components/Menu/index.ts +0 -1
- package/src/components/{Profile → Navbar}/MobileUserProfile.tsx +29 -12
- package/src/components/Navbar/Navbar.tsx +11 -10
- package/src/components/Navbar/NavbarItem.tsx +4 -13
- package/src/components/Navbar/NavbarMenu.tsx +2 -2
- package/src/components/Navbar/index.ts +0 -1
- package/src/components/NavbarLogo/NavbarLogo.tsx +11 -24
- package/src/components/NavbarLogo/index.ts +0 -1
- package/src/components/OpenApiDocs/DevOnboardingTryItSecurity.tsx +2 -1
- package/src/components/OpenApiDocs/Dropdown.tsx +3 -3
- package/src/components/OperationBadge/OperationBadge.ts +62 -0
- package/src/components/OperationBadge/index.ts +1 -0
- package/src/components/Panel/PanelHeader.ts +0 -2
- package/src/components/Panel/PanelHeaderTitle.ts +4 -0
- package/src/components/Panel/index.ts +0 -1
- package/src/components/Product/ProductPicker.tsx +13 -18
- package/src/components/Product/index.ts +0 -1
- package/src/components/Profile/LoginLink.tsx +2 -1
- package/src/components/Profile/Profile.tsx +24 -1
- package/src/components/Profile/UserProfile.tsx +8 -20
- package/src/components/Profile/index.ts +0 -1
- package/src/components/Search/CancelSearch.tsx +15 -2
- package/src/components/Search/ProductTag.tsx +8 -8
- package/src/components/Search/RecentSearches.tsx +5 -5
- package/src/components/Search/Search.tsx +2 -0
- package/src/components/Search/SearchIcon.tsx +5 -10
- package/src/components/Search/SearchItem.tsx +4 -4
- package/src/components/Search/SearchTrigger.tsx +5 -4
- package/src/components/Search/ShortcutKey.tsx +5 -1
- package/src/components/Search/SuggestedPages.tsx +3 -3
- package/src/components/Search/index.ts +0 -1
- package/src/components/Select/Select.tsx +31 -66
- package/src/components/Select/index.ts +0 -1
- package/src/components/Separator/Separator.tsx +3 -17
- package/src/components/Separator/SeparatorItem.tsx +9 -6
- package/src/components/Separator/SeparatorLine.tsx +3 -7
- package/src/components/Sidebar/ApiCallItem.tsx +13 -17
- package/src/components/Sidebar/FooterWrapper.tsx +4 -3
- package/src/components/Sidebar/HeaderWrapper.tsx +3 -3
- package/src/components/Sidebar/VersionPicker.tsx +4 -5
- package/src/components/Sidebar/index.ts +0 -1
- package/src/components/Sidebar/types.ts +0 -1
- package/src/components/SidebarActions/CollapseSidebarButton.tsx +2 -22
- package/src/components/SidebarActions/styled.tsx +30 -29
- package/src/components/TableOfContent/TableOfContent.tsx +3 -2
- package/src/components/TableOfContent/index.ts +0 -1
- package/src/components/Tabs/Tab.tsx +1 -1
- package/src/components/Tabs/Tabs.tsx +1 -1
- package/src/components/Tags/Tags.tsx +36 -0
- package/src/components/Tags/index.ts +1 -0
- package/src/components/Tiles/ThinTile.tsx +5 -7
- package/src/components/Tiles/TileHeader.ts +1 -1
- package/src/components/Tiles/TileText.tsx +1 -1
- package/src/components/Tiles/WideTile.tsx +8 -10
- package/src/components/Tooltip/index.ts +0 -1
- package/src/components/Typography/SectionHeader.ts +2 -2
- package/src/components/Typography/Typography.ts +1 -1
- package/src/components/index.ts +2 -1
- package/src/config.ts +1 -30
- package/src/globalStyle.ts +1999 -597
- package/src/hooks/useMobileMenu.ts +4 -3
- package/src/icons/AlertIcon/AlertIcon.tsx +5 -0
- package/src/icons/ArrowIcon/ArrowIcon.tsx +1 -1
- package/src/icons/CollapseIcon/CollapseIcon.tsx +5 -5
- package/src/icons/ColorModeIcon/ColorModeIcon.tsx +1 -1
- package/src/icons/CopyIcon/CopyIcon.tsx +5 -4
- package/src/icons/DeselectIcon/DeselectIcon.tsx +5 -5
- package/src/icons/ExpandIcon/ExpandIcon.tsx +6 -5
- package/src/icons/FileIcon/FileIcon.tsx +3 -2
- package/src/icons/ReportIcon/ReportIcon.tsx +4 -3
- package/src/icons/SelectIcon/SelectIcon.tsx +6 -5
- package/src/icons/index.ts +0 -4
- package/src/layouts/Forbidden.tsx +0 -4
- package/src/layouts/NotFound.tsx +0 -4
- package/src/types/portal/src/shared/types/catalog.ts +1 -7
- package/src/types/portal/src/shared/types/nav.ts +0 -5
- package/src/ui/ArrowBack.tsx +1 -0
- package/src/ui/Burger.tsx +1 -1
- package/src/ui/Dropdown.tsx +7 -7
- package/src/ui/Highlight.tsx +2 -2
- package/src/ui/Jumbotron.tsx +1 -1
- package/src/ui/darkColors.tsx +84 -217
- package/src/utils/css-variables.ts +2 -4
- package/src/utils/index.ts +0 -1
- package/lib/I18n/styledVariables.d.ts +0 -1
- package/lib/I18n/styledVariables.js +0 -40
- package/lib/components/Breadcrumbs/styledVariables.d.ts +0 -1
- package/lib/components/Breadcrumbs/styledVariables.js +0 -20
- package/lib/components/Button/styledVariables.d.ts +0 -1
- package/lib/components/Button/styledVariables.js +0 -107
- package/lib/components/Catalog/styledVariables.d.ts +0 -1
- package/lib/components/Catalog/styledVariables.js +0 -96
- package/lib/components/CodeBlock/styledVariables.d.ts +0 -1
- package/lib/components/CodeBlock/styledVariables.js +0 -92
- package/lib/components/Dropdown/styledVariables.d.ts +0 -1
- package/lib/components/Dropdown/styledVariables.js +0 -30
- package/lib/components/Filter/FilterContent.d.ts +0 -13
- package/lib/components/Filter/FilterContent.js +0 -60
- package/lib/components/Filter/FilterPopover.d.ts +0 -13
- package/lib/components/Filter/FilterPopover.js +0 -109
- package/lib/components/Filter/FilterTag.d.ts +0 -7
- package/lib/components/Filter/FilterTag.js +0 -33
- package/lib/components/Filter/FilterTags.d.ts +0 -7
- package/lib/components/Filter/FilterTags.js +0 -29
- package/lib/components/Filter/styledVariables.d.ts +0 -1
- package/lib/components/Filter/styledVariables.js +0 -112
- package/lib/components/Footer/styledVariables.d.ts +0 -1
- package/lib/components/Footer/styledVariables.js +0 -61
- package/lib/components/Image/Image.d.ts +0 -9
- package/lib/components/Image/Image.js +0 -31
- package/lib/components/Image/index.d.ts +0 -1
- package/lib/components/LastUpdated/index.d.ts +0 -1
- package/lib/components/LastUpdated/index.js +0 -18
- package/lib/components/LastUpdated/styledVariables.d.ts +0 -1
- package/lib/components/LastUpdated/styledVariables.js +0 -11
- package/lib/components/Markdown/styledVariables.d.ts +0 -3
- package/lib/components/Markdown/styledVariables.js +0 -231
- package/lib/components/Menu/styledVariables.d.ts +0 -2
- package/lib/components/Menu/styledVariables.js +0 -101
- package/lib/components/Navbar/styledVariables.d.ts +0 -1
- package/lib/components/Navbar/styledVariables.js +0 -43
- package/lib/components/NavbarLogo/styledVariables.d.ts +0 -1
- package/lib/components/NavbarLogo/styledVariables.js +0 -18
- package/lib/components/Panel/styledVariables.d.ts +0 -2
- package/lib/components/Panel/styledVariables.js +0 -481
- package/lib/components/Product/styledVariables.d.ts +0 -2
- package/lib/components/Product/styledVariables.js +0 -41
- package/lib/components/Profile/UserProfileData.d.ts +0 -9
- package/lib/components/Profile/UserProfileData.js +0 -35
- package/lib/components/Profile/styledVariables.d.ts +0 -2
- package/lib/components/Profile/styledVariables.js +0 -55
- package/lib/components/Search/styledVariables.d.ts +0 -1
- package/lib/components/Search/styledVariables.js +0 -98
- package/lib/components/Select/styledVariables.d.ts +0 -1
- package/lib/components/Select/styledVariables.js +0 -34
- package/lib/components/Sidebar/styledVariables.d.ts +0 -2
- package/lib/components/Sidebar/styledVariables.js +0 -216
- package/lib/components/TableOfContent/styledVariables.d.ts +0 -1
- package/lib/components/TableOfContent/styledVariables.js +0 -46
- package/lib/components/Tag/Tag.d.ts +0 -18
- package/lib/components/Tag/Tag.js +0 -45
- package/lib/components/Tag/index.d.ts +0 -2
- package/lib/components/Tag/index.js +0 -19
- package/lib/components/Tag/styledVariables.d.ts +0 -1
- package/lib/components/Tag/styledVariables.js +0 -136
- package/lib/components/Tooltip/styledVariables.d.ts +0 -1
- package/lib/components/Tooltip/styledVariables.js +0 -21
- package/lib/hooks/useModalScrollLock.d.ts +0 -1
- package/lib/hooks/useModalScrollLock.js +0 -16
- package/lib/icons/CheckboxIcon/CheckboxIcon.d.ts +0 -6
- package/lib/icons/CheckboxIcon/CheckboxIcon.js +0 -28
- package/lib/icons/CheckboxIcon/index.d.ts +0 -1
- package/lib/icons/CheckboxIcon/index.js +0 -6
- package/lib/icons/ErrorIcon/ErrorIcon.d.ts +0 -4
- package/lib/icons/ErrorIcon/ErrorIcon.js +0 -14
- package/lib/icons/ErrorIcon/index.d.ts +0 -1
- package/lib/icons/ErrorIcon/index.js +0 -18
- package/lib/icons/LanguageIcon/LanguageIcon.d.ts +0 -4
- package/lib/icons/LanguageIcon/LanguageIcon.js +0 -14
- package/lib/icons/LanguageIcon/index.d.ts +0 -1
- package/lib/icons/PlusIcon/PlusIcon.d.ts +0 -5
- package/lib/icons/PlusIcon/PlusIcon.js +0 -16
- package/lib/icons/PlusIcon/index.d.ts +0 -1
- package/lib/icons/PlusIcon/index.js +0 -18
- package/lib/icons/PointingArrowIcon/PointingArrowIcon.d.ts +0 -4
- package/lib/icons/PointingArrowIcon/PointingArrowIcon.js +0 -15
- package/lib/icons/PointingArrowIcon/index.d.ts +0 -1
- package/lib/icons/PointingArrowIcon/index.js +0 -18
- package/lib/utils/tags-parser.d.ts +0 -1
- package/lib/utils/tags-parser.js +0 -10
- package/src/I18n/styledVariables.ts +0 -37
- package/src/components/Breadcrumbs/styledVariables.ts +0 -17
- package/src/components/Button/styledVariables.ts +0 -104
- package/src/components/Catalog/index.ts +0 -4
- package/src/components/Catalog/styledVariables.ts +0 -93
- package/src/components/CodeBlock/styledVariables.ts +0 -89
- package/src/components/Dropdown/styledVariables.ts +0 -27
- package/src/components/Filter/FilterContent.tsx +0 -95
- package/src/components/Filter/FilterPopover.tsx +0 -150
- package/src/components/Filter/FilterTag.tsx +0 -37
- package/src/components/Filter/FilterTags.tsx +0 -39
- package/src/components/Filter/styledVariables.ts +0 -109
- package/src/components/Footer/styledVariables.ts +0 -58
- package/src/components/Image/Image.tsx +0 -47
- package/src/components/Image/index.ts +0 -1
- package/src/components/LastUpdated/index.ts +0 -1
- package/src/components/LastUpdated/styledVariables.ts +0 -8
- package/src/components/Markdown/styledVariables.ts +0 -230
- package/src/components/Menu/styledVariables.ts +0 -99
- package/src/components/Navbar/styledVariables.ts +0 -40
- package/src/components/NavbarLogo/styledVariables.ts +0 -15
- package/src/components/Panel/styledVariables.ts +0 -479
- package/src/components/Product/styledVariables.ts +0 -39
- package/src/components/Profile/UserProfileData.tsx +0 -40
- package/src/components/Profile/styledVariables.ts +0 -53
- package/src/components/Search/styledVariables.ts +0 -95
- package/src/components/Select/styledVariables.ts +0 -31
- package/src/components/Sidebar/styledVariables.ts +0 -214
- package/src/components/TableOfContent/styledVariables.ts +0 -43
- package/src/components/Tag/Tag.tsx +0 -71
- package/src/components/Tag/index.ts +0 -2
- package/src/components/Tag/styledVariables.ts +0 -133
- package/src/components/Tooltip/styledVariables.ts +0 -18
- package/src/hooks/useModalScrollLock.ts +0 -12
- package/src/icons/CheckboxIcon/CheckboxIcon.tsx +0 -64
- package/src/icons/CheckboxIcon/index.ts +0 -1
- package/src/icons/ErrorIcon/ErrorIcon.tsx +0 -15
- package/src/icons/ErrorIcon/index.ts +0 -1
- package/src/icons/LanguageIcon/LanguageIcon.tsx +0 -15
- package/src/icons/LanguageIcon/index.ts +0 -1
- package/src/icons/PlusIcon/PlusIcon.tsx +0 -25
- package/src/icons/PlusIcon/index.ts +0 -1
- package/src/icons/PointingArrowIcon/PointingArrowIcon.tsx +0 -16
- package/src/icons/PointingArrowIcon/index.ts +0 -1
- package/src/utils/tags-parser.ts +0 -8
- /package/lib/components/{Profile → Navbar}/MobileUserProfile.d.ts +0 -0
|
@@ -2,21 +2,11 @@ import React from 'react';
|
|
|
2
2
|
import styled from 'styled-components';
|
|
3
3
|
import { DatePicker } from 'react-date-picker';
|
|
4
4
|
|
|
5
|
-
// import type { ReactNode } from 'react';
|
|
6
|
-
|
|
7
5
|
import type { ResolvedFilter } from '@theme/types/portal/src/shared/types/catalog';
|
|
6
|
+
import { Checkbox } from '@theme/ui/Checkbox';
|
|
8
7
|
import { useTranslate } from '@portal/hooks';
|
|
9
|
-
import { CheckboxIcon } from '@theme/icons';
|
|
10
|
-
import { Select } from '@theme/components/Select';
|
|
11
|
-
import type { ThemeConfig } from '@theme/config';
|
|
12
8
|
|
|
13
|
-
export function Filter({
|
|
14
|
-
filter,
|
|
15
|
-
filterValuesCasing,
|
|
16
|
-
}: {
|
|
17
|
-
filter: ResolvedFilter & { selectedOptions: any };
|
|
18
|
-
filterValuesCasing?: NonNullable<ThemeConfig['catalog']>[string]['filterValuesCasing'];
|
|
19
|
-
}) {
|
|
9
|
+
export function Filter({ filter }: { filter: ResolvedFilter & { selectedOptions: any } }) {
|
|
20
10
|
const { translate } = useTranslate();
|
|
21
11
|
const translationKeys = {
|
|
22
12
|
selectAll: 'theme.catalog.filters.select.all',
|
|
@@ -24,48 +14,32 @@ export function Filter({
|
|
|
24
14
|
};
|
|
25
15
|
|
|
26
16
|
if (!filter.parentUsed) return null;
|
|
27
|
-
|
|
28
|
-
let selectOptions: { value: string; element: React.ReactNode }[] = [];
|
|
29
|
-
if (filter.type === 'select') {
|
|
30
|
-
const defaultOptionCount = filter.filteredOptions.reduce(
|
|
31
|
-
(acc, option) => acc + option.count,
|
|
32
|
-
0,
|
|
33
|
-
);
|
|
34
|
-
selectOptions = [
|
|
35
|
-
{
|
|
36
|
-
value: '',
|
|
37
|
-
element: (
|
|
38
|
-
<FilterOption key="all" onClick={() => filter.selectOption('')}>
|
|
39
|
-
<FilterOptionLabel>{translate(translationKeys.selectAll, 'All')}</FilterOptionLabel>
|
|
40
|
-
<FilterOptionCount>{defaultOptionCount}</FilterOptionCount>
|
|
41
|
-
</FilterOption>
|
|
42
|
-
),
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
selectOptions.push(
|
|
46
|
-
...filter.filteredOptions.map((option) => ({
|
|
47
|
-
value: option.value,
|
|
48
|
-
element: (
|
|
49
|
-
<FilterOption key={option.value}>
|
|
50
|
-
<FilterOptionLabel>
|
|
51
|
-
{changeCasing(translate(option.value), filterValuesCasing)}
|
|
52
|
-
</FilterOptionLabel>
|
|
53
|
-
<FilterOptionCount>{option.count}</FilterOptionCount>
|
|
54
|
-
</FilterOption>
|
|
55
|
-
),
|
|
56
|
-
})),
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
17
|
return (
|
|
61
18
|
<FilterGroup key={filter.property + filter.title}>
|
|
62
|
-
<FilterTitle>
|
|
19
|
+
<FilterTitle>
|
|
20
|
+
{translate(filter.titleTranslationKey, filter.title)}{' '}
|
|
21
|
+
{filter.selectedOptions?.size ? (
|
|
22
|
+
<a data-translation-key={translationKeys.clear} onClick={() => filter.selectOption('')}>
|
|
23
|
+
{translate(translationKeys.clear, 'Clear')}
|
|
24
|
+
</a>
|
|
25
|
+
) : null}
|
|
26
|
+
</FilterTitle>
|
|
63
27
|
{filter.type === 'select' ? (
|
|
64
28
|
<StyledSelect
|
|
29
|
+
onChange={(e) => filter.selectOption(e.target.value)}
|
|
65
30
|
value={(filter.selectedOptions as Set<any>).values().next()?.value || ''}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
31
|
+
>
|
|
32
|
+
<option key="none" value="" data-translation-key={translationKeys.selectAll}>
|
|
33
|
+
{translate(translationKeys.selectAll, 'All')}
|
|
34
|
+
</option>
|
|
35
|
+
{filter.filteredOptions.map((value: any) => {
|
|
36
|
+
return (
|
|
37
|
+
<option key={value.value} value={value.value}>
|
|
38
|
+
{translate(value.value)} ({value.count})
|
|
39
|
+
</option>
|
|
40
|
+
);
|
|
41
|
+
})}
|
|
42
|
+
</StyledSelect>
|
|
69
43
|
) : filter.type === 'date-range' ? (
|
|
70
44
|
<>
|
|
71
45
|
<DatePickerWrapper>
|
|
@@ -115,13 +89,17 @@ export function Filter({
|
|
|
115
89
|
filter.filteredOptions.map((value: any) => {
|
|
116
90
|
const id = 'filter--' + filter.property + '--' + slug(value.value);
|
|
117
91
|
return (
|
|
118
|
-
<
|
|
119
|
-
<
|
|
120
|
-
|
|
121
|
-
{
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
92
|
+
<FilterValue key={id} role="link">
|
|
93
|
+
<Checkbox
|
|
94
|
+
type="checkbox"
|
|
95
|
+
id={id}
|
|
96
|
+
checked={filter.selectedOptions.has(value.value)}
|
|
97
|
+
onChange={() => filter.toggleOption(value.value)}
|
|
98
|
+
/>
|
|
99
|
+
<label htmlFor={id}>
|
|
100
|
+
{translate(value.value)} ({value.count})
|
|
101
|
+
</label>
|
|
102
|
+
</FilterValue>
|
|
125
103
|
);
|
|
126
104
|
})
|
|
127
105
|
)}
|
|
@@ -129,89 +107,62 @@ export function Filter({
|
|
|
129
107
|
);
|
|
130
108
|
}
|
|
131
109
|
|
|
132
|
-
function changeCasing(
|
|
133
|
-
str: string,
|
|
134
|
-
casing?: NonNullable<ThemeConfig['catalog']>[string]['filterValuesCasing'],
|
|
135
|
-
) {
|
|
136
|
-
if (!casing || casing === 'original' || !str) return str;
|
|
137
|
-
|
|
138
|
-
if (casing === 'lowercase') {
|
|
139
|
-
return str.toLowerCase();
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (casing === 'uppercase') {
|
|
143
|
-
return str.toUpperCase();
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
if (casing === 'sentence') {
|
|
147
|
-
const words = str.split(/[\s-_]+/);
|
|
148
|
-
return words.map((word) => word[0].toUpperCase() + word.slice(1).toLowerCase()).join(' ');
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
110
|
const FilterGroup = styled.div`
|
|
153
|
-
padding:
|
|
154
|
-
|
|
111
|
+
padding: 16px 0;
|
|
112
|
+
border-bottom: 1px solid var(--border-color);
|
|
155
113
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
font-weight: var(--filter-option-label-font-weight);
|
|
160
|
-
margin: var(--filter-option-label-margin);
|
|
161
|
-
color: var(--filter-option-label-color);
|
|
162
|
-
white-space: nowrap;
|
|
163
|
-
text-overflow: ellipsis;
|
|
164
|
-
overflow: hidden;
|
|
165
|
-
`;
|
|
166
|
-
|
|
167
|
-
const FilterOptionCount = styled.label`
|
|
168
|
-
cursor: pointer;
|
|
169
|
-
display: flex;
|
|
170
|
-
align-items: center;
|
|
171
|
-
height: var(--filter-option-count-height);
|
|
172
|
-
color: var(--filter-option-count-color);
|
|
173
|
-
text-align: center;
|
|
174
|
-
font-size: var(--filter-option-count-font-size);
|
|
175
|
-
font-weight: var(--filter-option-count-font-weight);
|
|
176
|
-
padding: var(--filter-option-count-padding);
|
|
177
|
-
border-radius: var(--filter-option-count-border-radius);
|
|
178
|
-
border: 1px solid var(--filter-option-count-border-color);
|
|
179
|
-
background-color: var(--filter-option-count-background-color);
|
|
114
|
+
&:last-of-type {
|
|
115
|
+
border-bottom: none;
|
|
116
|
+
}
|
|
180
117
|
`;
|
|
181
118
|
|
|
182
119
|
const FilterTitle = styled.h4`
|
|
183
|
-
font-
|
|
184
|
-
font-
|
|
185
|
-
margin:
|
|
120
|
+
font-size: 18px;
|
|
121
|
+
font-weight: var(--font-weight-bold);
|
|
122
|
+
margin: 0;
|
|
123
|
+
margin-bottom: 16px;
|
|
124
|
+
|
|
125
|
+
> a {
|
|
126
|
+
font-size: 14px;
|
|
127
|
+
cursor: pointer;
|
|
128
|
+
}
|
|
186
129
|
`;
|
|
187
130
|
|
|
188
|
-
const
|
|
189
|
-
display:
|
|
190
|
-
align-items: center;
|
|
131
|
+
const FilterValue = styled.label`
|
|
132
|
+
display: block;
|
|
191
133
|
cursor: pointer;
|
|
192
|
-
font-
|
|
193
|
-
|
|
194
|
-
margin: var(--filter-option-margin);
|
|
134
|
+
font-size: 16px;
|
|
135
|
+
margin: 8px 0;
|
|
195
136
|
|
|
196
137
|
input {
|
|
197
138
|
cursor: pointer;
|
|
198
139
|
}
|
|
199
140
|
`;
|
|
200
141
|
|
|
201
|
-
const StyledSelect = styled
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
border-radius: var(--
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
:
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
142
|
+
const StyledSelect = styled.select`
|
|
143
|
+
border: 1px solid rgba(0, 0, 0, 0.23);
|
|
144
|
+
|
|
145
|
+
padding: var(--input-padding);
|
|
146
|
+
border-radius: var(--input-border-radius);
|
|
147
|
+
background-color: var(--input-background-color);
|
|
148
|
+
color: var(--text-color);
|
|
149
|
+
font-family: var(--input-font-family);
|
|
150
|
+
font-size: var(--input-font-size);
|
|
151
|
+
line-height: var(--input-line-height);
|
|
152
|
+
|
|
153
|
+
min-width: 200px;
|
|
154
|
+
outline-color: var(--color-primary-500);
|
|
155
|
+
transition: outline 0.25s ease;
|
|
156
|
+
display: inline-block;
|
|
157
|
+
text-align: left;
|
|
158
|
+
appearance: none;
|
|
159
|
+
|
|
160
|
+
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
|
|
161
|
+
background-repeat: no-repeat;
|
|
162
|
+
background-position: right 10px center;
|
|
163
|
+
background-size: 1em;
|
|
164
|
+
width: 100%;
|
|
165
|
+
padding-right: 25px;
|
|
215
166
|
`;
|
|
216
167
|
|
|
217
168
|
// TODO: import from portal
|
|
@@ -220,16 +171,15 @@ function slug(str: string): string {
|
|
|
220
171
|
}
|
|
221
172
|
|
|
222
173
|
const DatePickerWrapper = styled.div`
|
|
223
|
-
color: var(--filter-date-picker-color);
|
|
224
174
|
display: flex;
|
|
225
175
|
flex-direction: row;
|
|
226
|
-
margin:
|
|
176
|
+
margin-bottom: 5px;
|
|
227
177
|
|
|
228
178
|
align-items: center;
|
|
229
|
-
gap:
|
|
179
|
+
gap: 10px;
|
|
230
180
|
|
|
231
181
|
> span {
|
|
232
|
-
width:
|
|
182
|
+
width: 50px;
|
|
233
183
|
}
|
|
234
184
|
|
|
235
185
|
.react-date-picker {
|
|
@@ -237,41 +187,35 @@ const DatePickerWrapper = styled.div`
|
|
|
237
187
|
}
|
|
238
188
|
|
|
239
189
|
.react-calendar__tile--now {
|
|
240
|
-
background:
|
|
241
|
-
color:
|
|
190
|
+
background: #cbf7f1;
|
|
191
|
+
color: black;
|
|
242
192
|
|
|
243
193
|
&:enabled:hover,
|
|
244
194
|
&:enabled:focus {
|
|
245
|
-
background:
|
|
246
|
-
color:
|
|
195
|
+
background: #b1efe7;
|
|
196
|
+
color: black;
|
|
247
197
|
}
|
|
248
198
|
}
|
|
249
199
|
|
|
250
|
-
.react-date-picker__inputGroup__input {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
&:invalid {
|
|
254
|
-
background: var(--filter-date-picker-invalid-input-background);
|
|
255
|
-
}
|
|
200
|
+
.react-date-picker__inputGroup__input:invalid {
|
|
201
|
+
background: rgb(255 125 0 / 10%);
|
|
256
202
|
}
|
|
257
203
|
|
|
258
204
|
.react-date-picker__button {
|
|
259
|
-
padding:
|
|
260
|
-
|
|
205
|
+
padding: 4px 4px;
|
|
261
206
|
svg {
|
|
262
|
-
|
|
263
|
-
width: var(--filter-date-picker-icon-width);
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
&:enabled:hover .react-date-picker__button__icon {
|
|
267
|
-
stroke: var(--filter-date-picker-hover-icon-stroke);
|
|
207
|
+
width: 12px;
|
|
268
208
|
}
|
|
269
209
|
}
|
|
270
210
|
|
|
271
211
|
.react-date-picker__wrapper {
|
|
272
|
-
border: 1px solid
|
|
273
|
-
border-radius: var(--
|
|
274
|
-
padding: var(--
|
|
212
|
+
border: 1px solid rgba(0, 0, 0, 0.23);
|
|
213
|
+
border-radius: var(--border-radius);
|
|
214
|
+
padding: var(--input-padding);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.react-date-picker__inputGroup__input {
|
|
218
|
+
width: 20px;
|
|
275
219
|
}
|
|
276
220
|
`;
|
|
277
221
|
|
|
@@ -25,7 +25,7 @@ const FooterItem = styled.li`
|
|
|
25
25
|
display: inline-block;
|
|
26
26
|
text-align: center;
|
|
27
27
|
line-height: var(--line-height-base);
|
|
28
|
-
font-size: var(--navbar-font-size);
|
|
28
|
+
font-size: var(--navbar-item-font-size);
|
|
29
29
|
margin: calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);
|
|
30
30
|
font-weight: var(--font-weight-regular);
|
|
31
31
|
`;
|
|
@@ -5,15 +5,13 @@ import { FooterColumns } from '@theme/components/Footer/FooterColumns';
|
|
|
5
5
|
import { FooterCopyright } from '@theme/components/Footer/FooterCopyright';
|
|
6
6
|
import { isEmptyArray } from '@theme/utils';
|
|
7
7
|
import { useThemeConfig } from '@theme/hooks';
|
|
8
|
-
import type {
|
|
9
|
-
import { Flex } from '@theme/ui';
|
|
10
|
-
import { LogoContainer, NavbarLogo } from '@theme/components/NavbarLogo';
|
|
8
|
+
import type { ResolvedNavItem } from '@theme/types/portal';
|
|
11
9
|
|
|
12
10
|
export function Footer(): JSX.Element | null {
|
|
13
|
-
const { footer
|
|
11
|
+
const { footer } = useThemeConfig() || {};
|
|
14
12
|
const { items, copyrightText } = footer || {};
|
|
15
13
|
|
|
16
|
-
if (isEmptyArray(items) || footer?.hide) {
|
|
14
|
+
if (isEmptyArray(items) || !copyrightText || footer?.hide) {
|
|
17
15
|
return null;
|
|
18
16
|
}
|
|
19
17
|
|
|
@@ -21,58 +19,38 @@ export function Footer(): JSX.Element | null {
|
|
|
21
19
|
<FooterPresentationalComponent
|
|
22
20
|
items={items as ResolvedNavItem[]}
|
|
23
21
|
copyrightText={copyrightText}
|
|
24
|
-
logo={footer?.logo?.hide ? undefined : logo}
|
|
25
22
|
/>
|
|
26
23
|
);
|
|
27
24
|
}
|
|
28
25
|
|
|
29
26
|
interface FooterPresentationalComponentProps {
|
|
30
27
|
items: ResolvedNavItem[];
|
|
31
|
-
copyrightText
|
|
32
|
-
logo?: LogoConfig;
|
|
28
|
+
copyrightText: string;
|
|
33
29
|
className?: string;
|
|
34
30
|
}
|
|
35
31
|
|
|
36
32
|
export function FooterPresentationalComponent({
|
|
37
33
|
items,
|
|
38
34
|
copyrightText,
|
|
39
|
-
logo,
|
|
40
35
|
className,
|
|
41
36
|
}: FooterPresentationalComponentProps): JSX.Element | null {
|
|
42
37
|
return (
|
|
43
38
|
<FooterContainer data-component-name="Footer/Footer" className={className}>
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
<FooterColumns columns={items as ResolvedNavItem[]} />
|
|
47
|
-
</ColumnsSection>
|
|
48
|
-
{copyrightText && <FooterCopyright copyrightText={copyrightText} />}
|
|
39
|
+
<FooterColumns columns={items as ResolvedNavItem[]} />
|
|
40
|
+
<FooterCopyright copyrightText={copyrightText} />
|
|
49
41
|
</FooterContainer>
|
|
50
42
|
);
|
|
51
43
|
}
|
|
52
44
|
|
|
53
|
-
const ColumnsSection = styled(Flex)`
|
|
54
|
-
flex-direction: column;
|
|
55
|
-
|
|
56
|
-
${({ theme }) => theme.mediaQueries.small} {
|
|
57
|
-
flex-direction: row;
|
|
58
|
-
}
|
|
59
|
-
`;
|
|
60
|
-
|
|
61
45
|
const FooterContainer = styled.footer`
|
|
62
|
-
padding: var(--mobile-footer-padding-vertical) var(--mobile-footer-padding-horizontal);
|
|
63
|
-
border-top: 1px solid var(--footer-border-color);
|
|
64
46
|
font-size: var(--footer-font-size);
|
|
65
47
|
flex-shrink: 0;
|
|
66
48
|
background-color: var(--footer-background-color);
|
|
67
49
|
color: var(--footer-text-color);
|
|
50
|
+
font-family: var(--footer-font-family);
|
|
68
51
|
font-weight: var(--footer-font-weight);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
margin: 0 var(--footer-logo-margin-right) var(--footer-logo-margin-bottom) 0;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
${({ theme }) => theme.mediaQueries.small} {
|
|
76
|
-
padding: var(--footer-padding-vertical) var(--footer-padding-horizontal);
|
|
52
|
+
a,
|
|
53
|
+
a:hover {
|
|
54
|
+
color: var(--footer-text-color);
|
|
77
55
|
}
|
|
78
56
|
`;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
2
|
+
import styled, { css } from 'styled-components';
|
|
3
3
|
|
|
4
4
|
import { Link } from '@portal/Link';
|
|
5
5
|
import type { ResolvedNavItem } from '@theme/types/portal';
|
|
6
6
|
import { useTranslate } from '@portal/hooks';
|
|
7
|
-
import { Image } from '@theme/components/Image/Image';
|
|
8
7
|
import { telemetry } from '@portal/telemetry';
|
|
9
8
|
|
|
10
9
|
interface FooterColumnProps {
|
|
@@ -14,58 +13,52 @@ interface FooterColumnProps {
|
|
|
14
13
|
|
|
15
14
|
export function FooterColumn({ column, className }: FooterColumnProps): JSX.Element {
|
|
16
15
|
const { translate } = useTranslate();
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
const iconsOnly = items.every((item) => item.label === item.link && (item.icon || item.srcSet));
|
|
16
|
+
const hasIcon = column.items ? column.items.some((item) => !!item.icon) : false;
|
|
20
17
|
|
|
21
18
|
return (
|
|
22
19
|
<FooterColumnContainer data-component-name="Footer/FooterColumn" className={className}>
|
|
23
|
-
<FooterColumnTitle
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
{!iconsOnly && translate(columnItem.labelTranslationKey, columnItem.label)}
|
|
50
|
-
</FooterLink>
|
|
51
|
-
);
|
|
52
|
-
})}
|
|
53
|
-
</FooterColumnItems>
|
|
20
|
+
<FooterColumnTitle withIconPadding={hasIcon}>
|
|
21
|
+
{translate(column.labelTranslationKey, column.label)}
|
|
22
|
+
</FooterColumnTitle>
|
|
23
|
+
{column?.items?.map((columnItem, columnItemIndex) => {
|
|
24
|
+
if (columnItem.type === 'error') {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return columnItem.type === 'separator' ? (
|
|
29
|
+
<FooterSeparator key={columnItem.label + '_' + columnItemIndex}>
|
|
30
|
+
{translate(columnItem.labelTranslationKey, columnItem.label)}
|
|
31
|
+
</FooterSeparator>
|
|
32
|
+
) : (
|
|
33
|
+
<FooterLink
|
|
34
|
+
key={columnItemIndex}
|
|
35
|
+
to={columnItem.link}
|
|
36
|
+
external={columnItem.external}
|
|
37
|
+
target={columnItem.target}
|
|
38
|
+
data-cy={columnItem.label}
|
|
39
|
+
onClick={() => telemetry.send('footer_item_clicked', {})}
|
|
40
|
+
>
|
|
41
|
+
<FooterLinkIcon url={columnItem.icon} withIconPadding={hasIcon} />
|
|
42
|
+
{translate(columnItem.labelTranslationKey, columnItem.label)}
|
|
43
|
+
</FooterLink>
|
|
44
|
+
);
|
|
45
|
+
})}
|
|
54
46
|
</FooterColumnContainer>
|
|
55
47
|
);
|
|
56
48
|
}
|
|
57
49
|
|
|
58
|
-
const FooterColumnTitle = styled.p
|
|
50
|
+
const FooterColumnTitle = styled.p<{ withIconPadding: boolean }>`
|
|
59
51
|
display: inline-block;
|
|
60
52
|
font-weight: var(--footer-title-font-weight);
|
|
61
53
|
font-size: var(--footer-title-font-size);
|
|
62
|
-
margin-
|
|
63
|
-
|
|
54
|
+
margin-bottom: var(--footer-title-margin-vertical);
|
|
55
|
+
${({ withIconPadding }) =>
|
|
56
|
+
withIconPadding &&
|
|
57
|
+
css`
|
|
58
|
+
padding-left: calc(var(--footer-item-icon-width) + var(--footer-item-icon-margin-right));
|
|
59
|
+
`}
|
|
60
|
+
font-family: var(--footer-font-family);
|
|
64
61
|
color: var(--footer-title-text-color);
|
|
65
|
-
|
|
66
|
-
${({ theme }) => theme.mediaQueries.small} {
|
|
67
|
-
margin-bottom: var(--footer-title-margin-bottom);
|
|
68
|
-
}
|
|
69
62
|
`;
|
|
70
63
|
|
|
71
64
|
const FooterSeparator = styled.div`
|
|
@@ -73,58 +66,46 @@ const FooterSeparator = styled.div`
|
|
|
73
66
|
margin: 10px 0 5px 0;
|
|
74
67
|
font-size: 0.75em;
|
|
75
68
|
text-transform: uppercase;
|
|
69
|
+
font-family: var(--footer-font-family);
|
|
76
70
|
`;
|
|
77
71
|
|
|
78
72
|
const FooterColumnContainer = styled.div`
|
|
79
73
|
display: flex;
|
|
80
74
|
flex-direction: column;
|
|
81
|
-
text-align:
|
|
75
|
+
text-align: left;
|
|
76
|
+
margin: var(--footer-column-margin-horizontal) var(--footer-column-margin-vertical);
|
|
77
|
+
width: var(--footer-column-width);
|
|
82
78
|
word-break: break-word;
|
|
83
|
-
flex: 1;
|
|
84
|
-
margin: 0 0 var(--mobile-footer-column-margin-bottom) 0;
|
|
85
|
-
min-width: var(--footer-column-min-width);
|
|
86
|
-
align-content: center;
|
|
87
|
-
flex-wrap: wrap;
|
|
88
|
-
|
|
89
|
-
${({ theme }) => theme.mediaQueries.small} {
|
|
90
|
-
text-align: left;
|
|
91
|
-
margin: 0 var(--footer-column-margin-horizontal);
|
|
92
|
-
border-right: 1px solid var(--footer-dividing-border-color);
|
|
93
|
-
margin-bottom: var(--footer-column-margin-bottom);
|
|
94
|
-
}
|
|
95
79
|
`;
|
|
96
80
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
height: var(--footer-item-icon-height);
|
|
101
|
-
margin-right: var(--footer-item-icon-margin-right);
|
|
102
|
-
vertical-align: middle;
|
|
103
|
-
border: 1px solid var(--footer-item-icon-border-color);
|
|
104
|
-
border-radius: var(--footer-item-icon-border-radius);
|
|
105
|
-
padding: var(--footer-item-icon-padding);
|
|
106
|
-
`;
|
|
107
|
-
|
|
108
|
-
const FooterLink = styled(Link)<{ iconsOnly: boolean }>`
|
|
109
|
-
padding: var(--footer-link-padding-vertical) var(--footer-link-padding-horizontal);
|
|
81
|
+
const FooterLink = styled(Link)`
|
|
82
|
+
font-weight: var(--font-weight-bold);
|
|
83
|
+
padding: var(--footer-item-padding-vertical) var(--footer-item-padding-horizontal);
|
|
110
84
|
color: var(--footer-link-text-color);
|
|
111
85
|
text-decoration: none;
|
|
112
86
|
&:hover {
|
|
113
87
|
color: var(--footer-link-hover-color);
|
|
114
88
|
}
|
|
115
|
-
|
|
116
|
-
&:last-child ${FooterLinkIcon} {
|
|
117
|
-
margin-right: ${({ iconsOnly }) => (iconsOnly ? '0' : 'var(--footer-item-icon-margin-right)')};
|
|
118
|
-
}
|
|
119
89
|
`;
|
|
120
90
|
|
|
121
|
-
export const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
91
|
+
export const FooterLinkIcon = styled.i<{ url?: string; withIconPadding: boolean }>`
|
|
92
|
+
${({ withIconPadding, url }) =>
|
|
93
|
+
withIconPadding &&
|
|
94
|
+
!url &&
|
|
95
|
+
css`
|
|
96
|
+
padding-left: calc(var(--footer-item-icon-width) + var(--footer-item-icon-margin-right));
|
|
97
|
+
`}
|
|
98
|
+
${({ url }) =>
|
|
99
|
+
url &&
|
|
100
|
+
css`
|
|
101
|
+
background-image: url('${url}');
|
|
102
|
+
background-size: contain;
|
|
103
|
+
background-position: center;
|
|
104
|
+
background-repeat: no-repeat;
|
|
105
|
+
width: var(--footer-item-icon-width);
|
|
106
|
+
height: var(--footer-item-icon-height);
|
|
107
|
+
display: inline-block;
|
|
108
|
+
margin-right: var(--footer-item-icon-margin-right);
|
|
109
|
+
vertical-align: middle;
|
|
110
|
+
`}
|
|
130
111
|
`;
|
|
@@ -26,15 +26,15 @@ export function FooterColumns({ columns, className }: FooterColumnsProps): JSX.E
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export const FooterColumnsContainer = styled.div`
|
|
29
|
+
padding: var(--footer-padding-vertical) var(--footer-padding-horizontal);
|
|
29
30
|
display: flex;
|
|
30
31
|
flex-direction: column;
|
|
31
32
|
justify-content: center;
|
|
32
33
|
max-width: var(--footer-container-max-width);
|
|
33
|
-
margin: 0;
|
|
34
|
-
flex: 1;
|
|
34
|
+
margin: 0 auto;
|
|
35
35
|
|
|
36
36
|
${({ theme }) => theme.mediaQueries.small} {
|
|
37
|
-
|
|
37
|
+
padding: 5.625em 20px 3.9375em 20px;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
${({ theme }) => theme.mediaQueries.print} {
|
|
@@ -47,10 +47,8 @@ export const FooterRow = styled.div`
|
|
|
47
47
|
display: flex;
|
|
48
48
|
flex-wrap: wrap;
|
|
49
49
|
justify-content: flex-start;
|
|
50
|
-
flex-direction: column;
|
|
51
50
|
|
|
52
51
|
${({ theme }) => theme.mediaQueries.small} {
|
|
53
|
-
justify-content: space-
|
|
54
|
-
flex-direction: row;
|
|
52
|
+
justify-content: space-evenly;
|
|
55
53
|
}
|
|
56
54
|
`;
|