UNPKG

@dotconnor/grommet

Version:

focus on the essential experience

82 lines (80 loc) 4.09 kB
import styled, { css, keyframes } from 'styled-components'; import { normalizeColor, genericStyles } from '../../utils'; import { defaultProps } from '../../default-props'; var StyledHour = styled.line.withConfig({ displayName: "StyledClock__StyledHour", componentId: "y4xw8s-0" })(["stroke-width:", ";stroke:", ";transition:stroke 1s ease-out;"], function (props) { return props.theme.clock.analog.hour.width; }, function (props) { return normalizeColor(props.theme.clock.analog.hour.color, props.theme); }); StyledHour.defaultProps = {}; Object.setPrototypeOf(StyledHour.defaultProps, defaultProps); var StyledMinute = styled.line.withConfig({ displayName: "StyledClock__StyledMinute", componentId: "y4xw8s-1" })(["stroke-width:", ";stroke:", ";transition:stroke 1s ease-out;"], function (props) { return props.theme.clock.analog.minute.width; }, function (props) { return normalizeColor(props.theme.clock.analog.minute.color, props.theme); }); StyledMinute.defaultProps = {}; Object.setPrototypeOf(StyledMinute.defaultProps, defaultProps); var StyledSecond = styled.line.withConfig({ displayName: "StyledClock__StyledSecond", componentId: "y4xw8s-2" })(["stroke-width:", ";stroke:", ";transition:stroke 1s ease-out;"], function (props) { return props.theme.clock.analog.second.width; }, function (props) { return normalizeColor(props.theme.clock.analog.second.color, props.theme); }); StyledSecond.defaultProps = {}; Object.setPrototypeOf(StyledSecond.defaultProps, defaultProps); var StyledAnalog = styled.svg.withConfig({ displayName: "StyledClock__StyledAnalog", componentId: "y4xw8s-3" })(["width:", ";height:", ";", " ", ";"], function (props) { return props.theme.clock.analog.size[props.size]; }, function (props) { return props.theme.clock.analog.size[props.size]; }, genericStyles, function (props) { return props.theme.clock.analog && props.theme.clock.analog.extend; }); StyledAnalog.defaultProps = {}; Object.setPrototypeOf(StyledAnalog.defaultProps, defaultProps); var sizeStyle = function sizeStyle(props) { // size is a combination of the size and height properties var size = props.size || 'medium'; var data = props.theme.clock.digital.text[size] || {}; return css(["font-size:", ";line-height:", ";"], data.size || props.theme.clock.digital.text.medium.size, data.height || props.theme.clock.digital.text.medium.height); }; var StyledDigitalDigit = styled.div.withConfig({ displayName: "StyledClock__StyledDigitalDigit", componentId: "y4xw8s-4" })(["position:relative;width:0.8em;text-align:center;overflow:hidden;", ";"], function (props) { return sizeStyle(props); }); StyledDigitalDigit.defaultProps = {}; Object.setPrototypeOf(StyledDigitalDigit.defaultProps, defaultProps); var previousUp = keyframes(["0%{transform:translateY(0);}100%{transform:translateY(-100%);}"]); var previousDown = keyframes(["0%{transform:translateY(0);}100%{transform:translateY(100%);}"]); var StyledDigitalPrevious = styled.div.withConfig({ displayName: "StyledClock__StyledDigitalPrevious", componentId: "y4xw8s-5" })(["position:absolute;top:0;left:0;width:0.8em;text-align:center;animation:", " 0.5s forwards;"], function (props) { return props.direction === 'down' ? previousDown : previousUp; }); StyledDigitalPrevious.defaultProps = {}; Object.setPrototypeOf(StyledDigitalPrevious.defaultProps, defaultProps); var nextUp = keyframes(["0%{transform:translateY(100%);}100%{transform:translateY(0);}"]); var nextDown = keyframes(["0%{transform:translateY(-100%);}100%{transform:translateY(0);}"]); var StyledDigitalNext = styled.div.withConfig({ displayName: "StyledClock__StyledDigitalNext", componentId: "y4xw8s-6" })(["position:absolute;top:0;left:0;width:0.8em;text-align:center;animation:", " 0.5s forwards;"], function (props) { return props.direction === 'down' ? nextDown : nextUp; }); StyledDigitalNext.defaultProps = {}; Object.setPrototypeOf(StyledDigitalNext.defaultProps, defaultProps); export { StyledHour, StyledMinute, StyledSecond, StyledAnalog, StyledDigitalDigit, StyledDigitalPrevious, StyledDigitalNext };