Files
fauxjira/client/src/shared/components/Select/Styles.js

135 lines
2.7 KiB
JavaScript

import styled, { css } from 'styled-components';
import { color, font, mixin, zIndexValues } from 'shared/utils/styles';
import Icon from 'shared/components/Icon';
export const StyledSelect = styled.div`
position: relative;
width: 100%;
border-radius: 4px;
border: 1px solid ${color.borderLight};
background: #fff;
${font.size(14)}
&:focus {
outline: none;
border: 1px solid ${color.borderMedium};
}
${props => (props.hasIcon ? 'padding-left: 25px;' : '')}
${props => (props.invalid ? `&, &:focus { border: 1px solid ${color.danger}; }` : '')}
`;
export const StyledIcon = styled(Icon)`
position: absolute;
top: 12px;
left: 14px;
font-size: 16px;
color: ${color.textMedium};
`;
export const ValueContainer = styled.div`
min-height: 38px;
width: 100%;
`;
export const ChevronIcon = styled(Icon)`
position: absolute;
top: 10px;
right: 11px;
font-size: 18px;
color: ${color.textMedium};
`;
export const Placeholder = styled.div`
padding: 11px 0 0 15px;
color: ${color.textLightBlue};
`;
export const ValueSingle = styled.div`
padding: 11px 0 0 15px;
`;
export const ValueMulti = styled.div`
padding: 15px 5px 10px 10px;
`;
export const ValueMultiItem = styled.div`
margin: 0 5px 5px 0;
${mixin.tag}
`;
export const AddMore = styled.div`
display: inline-block;
height: 24px;
line-height: 22px;
padding-right: 5px;
${font.size(12)}
${mixin.link()}
i {
margin-right: 3px;
vertical-align: middle;
font-size: 14px;
}
`;
export const Dropdown = styled.div`
z-index: ${zIndexValues.dropdown};
position: absolute;
top: 100%;
left: 0;
width: 100%;
background: #fff;
${mixin.boxShadowBorderMedium}
`;
export const DropdownInput = styled.input`
padding: 10px 15px 8px;
width: 100%;
border: none;
color: ${color.textDarkest};
background: none;
&:focus {
outline: none;
}
`;
export const ClearIcon = styled(Icon)`
position: absolute;
top: 4px;
right: 7px;
padding: 5px;
font-size: 16px;
color: ${color.textMedium};
${mixin.clickable}
`;
export const Options = styled.div`
max-height: 200px;
${mixin.scrollableY};
${mixin.customScrollbar()};
`;
export const Option = styled.div`
padding: 5px 15px;
word-break: break-word;
&:hover {
cursor: pointer;
}
&:last-of-type {
margin-bottom: 8px;
}
&.jira-select-option-is-active {
background: ${mixin.lighten(color.backgroundMedium, 0.05)};
}
${props => (props.isSelected ? selectedOptionStyles : '')}
`;
const selectedOptionStyles = css`
color: #fff !important;
background: ${color.primary} !important;
`;
export const OptionsNoResults = styled.div`
padding: 5px 15px 15px;
color: ${color.textLight};
`;