DocSpace-client/packages/shared/components/submenu/Submenu.styled.ts

183 lines
4.8 KiB
TypeScript
Raw Normal View History

2024-03-17 23:13:02 +00:00
// (c) Copyright Ascensio System SIA 2010-2024
//
// This program is a free software product.
// You can redistribute it and/or modify it under the terms
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
// any third-party rights.
//
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
//
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
//
// The interactive user interfaces in modified source and object code versions of the Program must
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
//
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
// trademark law for use of our trademarks.
//
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import styled, { css } from "styled-components";
import { Base, TColorScheme } from "../../themes";
2022-02-07 11:47:21 +00:00
export const StyledSubmenu = styled.div<{ topProps?: string }>`
2022-02-04 10:21:10 +00:00
display: flex;
flex-direction: column;
.scrollbar {
width: 100%;
height: auto;
}
.text {
width: auto;
display: inline-block;
position: absolute;
}
.sticky {
position: sticky;
2023-10-09 14:19:43 +00:00
top: ${(props) => (props.topProps ? props.topProps : 0)};
background: ${(props) => props.theme.submenu.backgroundColor};
z-index: 1;
}
.sticky-indent {
2023-09-11 12:09:38 +00:00
height: 20px;
}
2022-02-04 10:21:10 +00:00
`;
StyledSubmenu.defaultProps = { theme: Base };
2022-02-04 10:21:10 +00:00
export const StyledSubmenuBottomLine = styled.div`
height: 1px;
width: 100%;
margin-top: -1px;
2022-03-30 18:14:53 +00:00
background: ${(props) => props.theme.submenu.lineColor};
2022-02-04 10:21:10 +00:00
`;
StyledSubmenuBottomLine.defaultProps = { theme: Base };
2022-02-04 10:21:10 +00:00
export const StyledSubmenuContentWrapper = styled.div`
width: 100%;
display: flex;
align-items: center;
`;
export const StyledSubmenuItems = styled.div`
overflow: scroll;
2022-02-04 10:21:10 +00:00
display: flex;
flex-direction: row;
gap: 4px;
width: max-content;
2022-03-30 18:05:29 +00:00
overflow: hidden;
&::-webkit-scrollbar {
display: none;
}
2022-02-04 10:21:10 +00:00
`;
2022-02-07 09:39:57 +00:00
export const StyledSubmenuItem = styled.div.attrs((props) => ({
2022-02-28 14:15:05 +00:00
id: props.id,
2022-02-07 09:39:57 +00:00
}))`
2022-02-17 22:59:46 +00:00
scroll-behavior: smooth;
2022-02-07 09:39:57 +00:00
cursor: pointer;
2022-02-04 10:21:10 +00:00
display: flex;
2022-03-01 11:45:14 +00:00
gap: 4px;
2022-02-04 10:21:10 +00:00
flex-direction: column;
2022-08-04 23:54:39 +00:00
padding-top: 4px;
2022-02-04 10:21:10 +00:00
line-height: 20px;
2023-07-21 10:48:00 +00:00
${(props) =>
props.theme.interfaceDirection === "rtl"
? css`
2023-09-07 08:18:24 +00:00
margin-left: 17px;
`
: css`
&:not(:last-child) {
margin-right: 17px;
}
2023-07-21 10:48:00 +00:00
`}
2022-09-15 09:02:50 +00:00
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
2022-02-04 10:21:10 +00:00
`;
export const StyledSubmenuItemText = styled.div<{ isActive?: boolean }>`
width: max-content;
2022-02-04 10:21:10 +00:00
display: flex;
2022-08-16 10:52:57 +00:00
.item-text {
color: ${(props) =>
2022-12-05 07:34:29 +00:00
props.isActive
? props.theme.submenu.activeTextColor
: props.theme.submenu.textColor};
font-weight: 600;
2022-08-16 10:52:57 +00:00
}
2022-02-04 10:21:10 +00:00
`;
StyledSubmenuItemText.defaultProps = { theme: Base };
export const StyledSubmenuItemLabel = styled.div<{ isActive?: boolean }>`
2022-03-01 11:45:14 +00:00
z-index: 1;
2022-08-04 23:54:39 +00:00
width: 100%;
2022-02-04 10:21:10 +00:00
height: 4px;
bottom: 0px;
border-radius: 4px 4px 0 0;
2022-08-16 10:52:57 +00:00
background-color: ${(props) =>
props.isActive ? props.theme.submenu.bottomLineColor : ""};
2022-02-04 10:21:10 +00:00
`;
StyledSubmenuItemLabel.defaultProps = { theme: Base };
export const SubmenuScroller = styled.div`
position: relative;
display: inline-block;
flex: 1 1 auto;
white-space: nowrap;
scrollbar-width: none; // Firefox
&::-webkit-scrollbar {
display: none; // Safari + Chrome
2023-07-21 10:48:00 +00:00
}
overflow-x: auto;
overflow-y: hidden;
`;
export const SubmenuRoot = styled.div`
overflow: hidden;
min-height: 32px;
// Add iOS momentum scrolling for iOS < 13.0
-webkit-overflow-scrolling: touch;
display: flex;
`;
export const SubmenuScrollbarSize = styled.div`
height: 32;
position: absolute;
top: -9999;
overflow-x: auto;
overflow-y: hidden;
// Hide dimensionless scrollbar on macOS
scrollbar-width: none; // Firefox
2023-07-21 10:48:00 +00:00
&::-webkit-scrollbar {
display: none; // Safari + Chrome
2023-07-21 10:48:00 +00:00
}
`;
export const StyledItemLabelTheme = styled(StyledSubmenuItemLabel)<{
$currentColorScheme?: TColorScheme;
}>`
background-color: ${(props) =>
2024-01-29 07:53:59 +00:00
props.isActive ? props.$currentColorScheme?.main?.accent : "none"};
&:hover {
background-color: ${(props) =>
2024-01-29 07:53:59 +00:00
props.isActive && props.$currentColorScheme?.main?.accent};
}
`;