mirror of
https://github.com/jeffvli/sonixd.git
synced 2026-04-30 19:22:37 -04:00
201 lines
4.6 KiB
TypeScript
201 lines
4.6 KiB
TypeScript
import {
|
|
Button,
|
|
InputGroup,
|
|
InputNumber,
|
|
Input,
|
|
Checkbox,
|
|
IconButton,
|
|
Radio,
|
|
Nav,
|
|
Icon,
|
|
Rate,
|
|
Slider,
|
|
InputPicker,
|
|
} from 'rsuite';
|
|
import styled from 'styled-components';
|
|
|
|
export const HeaderButton = styled(Button)`
|
|
margin-left: 5px;
|
|
margin-right: 5px;
|
|
`;
|
|
|
|
export const StyledButton = styled(Button)<{ width: number }>`
|
|
background: ${(props) =>
|
|
props.appearance === 'primary'
|
|
? `${props.theme.primary.main} !important`
|
|
: undefined};
|
|
|
|
width: ${(props) => `${props.width}px`};
|
|
`;
|
|
|
|
export const StyledInputGroup = styled(InputGroup)`
|
|
input {
|
|
background-color: ${(props) => props.theme.primary.inputBackground};
|
|
color: ${(props) => `${props.theme.primary.text} !important`};
|
|
}
|
|
`;
|
|
|
|
export const StyledInputNumber = styled(InputNumber)<{ width: number }>`
|
|
input {
|
|
background-color: ${(props) => props.theme.primary.inputBackground};
|
|
}
|
|
width: ${(props) => `${props.width}px`};
|
|
`;
|
|
|
|
export const StyledInput = styled(Input)<{ width: number }>`
|
|
input {
|
|
background-color: ${(props) => props.theme.primary.inputBackground};
|
|
}
|
|
width: ${(props) => `${props.width}px`};
|
|
`;
|
|
|
|
export const StyledCheckbox = styled(Checkbox)`
|
|
div {
|
|
label {
|
|
span {
|
|
&:before {
|
|
border: ${(props) => `1px solid ${props.theme.primary.main}`};
|
|
}
|
|
span {
|
|
&:before {
|
|
background-color: ${(props) =>
|
|
props.defaultChecked
|
|
? `${props.theme.primary.main} !important`
|
|
: undefined};
|
|
}
|
|
&:after {
|
|
border: transparent !important;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const StyledRadio = styled(Radio)`
|
|
div {
|
|
label {
|
|
span {
|
|
span {
|
|
&:before {
|
|
background-color: transparent !important;
|
|
}
|
|
&:after {
|
|
background: ${(props) => `${props.theme.primary.main} !important`};
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const StyledIconButton = styled(IconButton)`
|
|
&:hover {
|
|
background: ${(props) =>
|
|
props.appearance === 'subtle' ? 'transparent !important' : undefined};
|
|
color: ${(props) =>
|
|
props.appearance === 'subtle' ? props.theme.primary.main : undefined};
|
|
}
|
|
&:focus {
|
|
background: ${(props) =>
|
|
props.appearance === 'subtle' ? 'transparent !important' : undefined};
|
|
color: ${(props) =>
|
|
props.appearance === 'subtle' ? props.theme.primary.main : undefined};
|
|
}
|
|
i {
|
|
background-color: ${(props) =>
|
|
props.appearance === 'primary' ? props.theme.primary.main : undefined};
|
|
}
|
|
width: ${(props) => `${props.width}px`};
|
|
`;
|
|
|
|
export const StyledNavItem = styled(Nav.Item)`
|
|
a {
|
|
color: ${(props) =>
|
|
props.active ? `${props.theme.primary.main} !important;` : undefined};
|
|
|
|
&:hover {
|
|
color: ${(props) => `${props.theme.primary.main} !important;`};
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const StyledIconToggle = styled(Icon)<{ active: string }>`
|
|
cursor: pointer;
|
|
color: ${(props) =>
|
|
props.active === 'true'
|
|
? props.theme.primary.main
|
|
: props.theme.primary.text};
|
|
`;
|
|
|
|
export const StyledRate = styled(Rate)`
|
|
color: ${(props) => props.theme.primary.main};
|
|
`;
|
|
|
|
export const StyledSlider = styled(Slider)`
|
|
div {
|
|
div {
|
|
border: '2px solid #000 !important';
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const StyledInputPicker = styled(InputPicker)<{ width?: number }>`
|
|
.rs-picker-toggle-value {
|
|
color: ${(props) => `${props.theme.primary.main} !important`};
|
|
}
|
|
|
|
.rs-btn-default {
|
|
background: ${(props) =>
|
|
`${props.theme.primary.inputBackground} !important`};
|
|
}
|
|
|
|
width: ${(props) => `${props.width}px`};
|
|
`;
|
|
|
|
export const StyledIcon = styled(Icon)`
|
|
color: ${(props) => `${props.theme.primary.main} !important`};
|
|
`;
|
|
|
|
export const ContextMenuWindow = styled.div<{
|
|
yPos: number;
|
|
xPos: number;
|
|
numOfButtons: number;
|
|
numOfDividers: number;
|
|
width: number;
|
|
hasTitle: boolean;
|
|
}>`
|
|
position: absolute;
|
|
top: ${(props) => `${props.yPos}px`};
|
|
left: ${(props) => `${props.xPos}px`};
|
|
height: ${(props) =>
|
|
`${
|
|
props.numOfButtons * 30.5 +
|
|
props.numOfDividers * 7 +
|
|
(props.hasTitle ? 16 : 0)
|
|
}px`};
|
|
width: ${(props) => `${props.width}px`};
|
|
margin: 0px;
|
|
white-space: normal;
|
|
overflow: hidden;
|
|
overflow-x: hidden;
|
|
font-size: smaller;
|
|
background: ${(props) => props.theme.primary.sideBar};
|
|
border: 1px #3c4043 solid;
|
|
`;
|
|
|
|
export const StyledContextMenuButton = styled(Button)`
|
|
text-align: left;
|
|
`;
|
|
|
|
export const ContextMenuDivider = styled.hr`
|
|
margin: 5px 0 5px 0;
|
|
`;
|
|
|
|
export const ContextMenuTitle = styled.div`
|
|
color: ${(props) => props.theme.primary.text};
|
|
margin-left: 5px;
|
|
margin-top: 5px;
|
|
user-select: none;
|
|
`;
|