import { InputHTMLAttributes } from "react"; import styled from "styled-components"; import Text from "../Text/Text"; interface SliderLabelProps { progress: string; } interface StyledInputProps extends InputHTMLAttributes { isMax: boolean; } interface DisabledProp { disabled?: boolean; } const getCursorStyle = ({ disabled = false }: DisabledProp) => { return disabled ? "not-allowed" : "cursor"; }; const finishLine = `"data:image/png;base64,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"`; const startLine = `"data:image/png;base64,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 YII="`; const getBaseThumbStyles = ({ isMax, disabled }: StyledInputProps) => ` -webkit-appearance: none; background-image: url(${isMax ? finishLine : startLine}); background-color: transparent; box-shadow: none; border: 0; cursor: ${getCursorStyle}; width: 24px; height: 32px; filter: ${disabled ? "grayscale(100%)" : "none"}; transform: translate(-10px, -2px); transition: 200ms transform; &:hover { transform: ${disabled ? "scale(1) translate(-10px, -2px)" : "scale(1.1) translate(-11px, -3px)"}; } `; export const SliderLabelContainer = styled.div` bottom: 0; position: absolute; left: 14px; width: calc(100% - 30px); `; export const SliderLabel = styled(Text)` bottom: 0; font-size: 12px; left: ${({ progress }) => progress}; position: absolute; text-align: center; min-width: 24px; // Slider thumb size `; export const CommonSlider = styled.div` position: absolute; left: 10px; width: calc(100% - 14px); `; export const StyledInput = styled.input` cursor: ${getCursorStyle}; height: 32px; position: relative; ::-webkit-slider-thumb { ${getBaseThumbStyles} } ::-moz-range-thumb { ${getBaseThumbStyles} } ::-ms-thumb { ${getBaseThumbStyles} } `; export const BarBackground = styled.div` background-color: ${({ theme, disabled }) => theme.colors[disabled ? "textDisabled" : "inputSecondary"]}; height: 10px; position: absolute; top: 18px; width: 97%; `; export const BarProgress = styled.div` background-color: ${({ theme }) => theme.colors.primary}; filter: ${({ disabled }) => (disabled ? "grayscale(100%)" : "none")}; height: 10px; position: absolute; top: 18px; `;