UNPKG

@vimeo/iris

Version:
99 lines (96 loc) 8.24 kB
import { a as __makeTemplateObject } from '../../../tslib.es6-7f0e734f.js'; import styled from 'styled-components'; import { rgba, rem } from 'polished'; import { SliderInputArrow } from './SliderInputArrow.esm.js'; import { blue, white } from '../../../color/colors.esm.js'; import { core } from '../../../tokens/core.esm.js'; import 'react'; import '../../../tokens/color/index.esm.js'; import '../../../tokens/color/background/background.esm.js'; import '../../../tokens/util/readToken.esm.js'; import '../../../tokens/util/clamp.esm.js'; import '../../../tokens/color/format/format.esm.js'; import '../../../tokens/color/format/primary.esm.js'; import '../../../tokens/color/format/secondary.esm.js'; import '../../../tokens/color/format/tertiary.esm.js'; import '../../../tokens/color/rainbow/rainbow.esm.js'; import '../../../tokens/color/rainbow/conic/index.esm.js'; import '../../../tokens/color/rainbow/conic/sm.esm.js'; import '../../../tokens/color/rainbow/conic/xl.esm.js'; import '../../../tokens/color/rainbow/linear/index.esm.js'; import '../../../tokens/color/rainbow/linear/sm.esm.js'; import '../../../tokens/color/rainbow/linear/xl.esm.js'; import '../../../tokens/color/livestream/livestream.esm.js'; import '../../../tokens/color/status/status.esm.js'; import '../../../tokens/color/status/caution.esm.js'; import '../../../tokens/color/status/negative.esm.js'; import '../../../tokens/color/status/positive.esm.js'; import '../../../tokens/color/stroke/stroke.esm.js'; import '../../../tokens/color/surface/surface.esm.js'; import '../../../tokens/color/text/text.esm.js'; import '../../../tokens/util/round.esm.js'; import '../../../tokens/color/upsell/upsell.esm.js'; import '../../../tokens/color/upsell/sm.esm.js'; import '../../../tokens/color/upsell/xl.esm.js'; import '../../../tokens/color/upsell/new.esm.js'; import '../../../tokens/edge/edge.esm.js'; import '../../../tokens/space/space.esm.js'; import '../../../tokens/typography/index.esm.js'; import '../../../tokens/typography/size/size.esm.js'; var SliderContainer = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100%;\n display: flex;\n align-items: center;\n gap: 16px;\n margin: 0.75rem 0;\n margin-left: ", ";\n"], ["\n width: 100%;\n display: flex;\n align-items: center;\n gap: 16px;\n margin: 0.75rem 0;\n margin-left: ", ";\n"])), function (_a) { var range = _a.range; return (range ? 0 : '0.75rem'); }); var Label = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: relative;\n padding: 0.2125rem;\n width: 3.125rem;\n text-align: center;\n border-radius: 0.25rem;\n border: 1px solid\n ", ";\n background: ", ";\n color: ", ";\n font-size: 0.75rem;\n"], ["\n position: relative;\n padding: 0.2125rem;\n width: 3.125rem;\n text-align: center;\n border-radius: 0.25rem;\n border: 1px solid\n ", ";\n background: ", ";\n color: ", ";\n font-size: 0.75rem;\n"])), function (_a) { var theme = _a.theme, focused = _a.focused; return focused ? blue(500) : rgba(theme.content.color, 0.334); }, function (_a) { var theme = _a.theme; return theme.item.bg; }, function (_a) { var theme = _a.theme; return theme.content.color; }); var LabelInput = styled.input.attrs({ type: 'number' })(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: 100%;\n padding: 0;\n margin: 0;\n background: ", ";\n color: ", ";\n border: none;\n outline: none;\n overflow: visible;\n appearance: none;\n text-align: center;\n font-size: inherit;\n user-select: none;\n\n &::-webkit-inner-spin-button {\n appearance: none;\n }\n &::-outer-inner-spin-button {\n appearance: none;\n }\n"], ["\n width: 100%;\n padding: 0;\n margin: 0;\n background: ", ";\n color: ", ";\n border: none;\n outline: none;\n overflow: visible;\n appearance: none;\n text-align: center;\n font-size: inherit;\n user-select: none;\n\n &::-webkit-inner-spin-button {\n appearance: none;\n }\n &::-outer-inner-spin-button {\n appearance: none;\n }\n"])), function (_a) { var theme = _a.theme; return theme.item.bg; }, function (_a) { var theme = _a.theme; return theme.content.color; }); var HandleStyled = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n width: 1.5rem;\n height: 1.5rem;\n border-radius: 50%;\n background: ", ";\n position: absolute;\n top: 0;\n transform: translate(-50%, -45%);\n cursor: pointer;\n border: 1px solid ", ";\n z-index: 2;\n\n ", ";\n"], ["\n width: 1.5rem;\n height: 1.5rem;\n border-radius: 50%;\n background: ", ";\n position: absolute;\n top: 0;\n transform: translate(-50%, -45%);\n cursor: pointer;\n border: 1px solid ", ";\n z-index: 2;\n\n ", ";\n"])), white, function (_a) { var theme = _a.theme; return rgba(theme.content.color, 0.1); }, function (_a) { var theme = _a.theme; return theme.shadows.small; }); var Background = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n position: relative;\n width: 100%;\n height: 0.3rem;\n background: ", ";\n border-radius: 0.125rem;\n"], ["\n position: relative;\n width: 100%;\n height: 0.3rem;\n background: ", ";\n border-radius: 0.125rem;\n"])), function (_a) { var theme = _a.theme; return theme.formats.secondary; }); var ActiveRange = styled.div.attrs(function (_a) { var values = _a.values, max = _a.max, range = _a.range; return range ? { style: { width: ((values[1] - values[0]) / max) * 100 + '%', left: (values[0] / max) * 100 + '%', }, } : { style: { left: 0, width: (values[0] / max) * 100 + '%', }, }; })(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n pointer-events: none;\n position: absolute;\n height: 100%;\n background: ", ";\n z-index: 1;\n border-radius: 0.125rem;\n"], ["\n pointer-events: none;\n position: absolute;\n height: 100%;\n background: ", ";\n z-index: 1;\n border-radius: 0.125rem;\n"])), function (_a) { var theme = _a.theme; return theme.inputs.primary; }); var Hidden = styled.input.attrs({ type: 'range' })(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n position: absolute;\n height: 0;\n width: 0;\n opacity: 0;\n"], ["\n position: absolute;\n height: 0;\n width: 0;\n opacity: 0;\n"]))); var ArrowsContainer = styled.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n position: absolute;\n right: ", ";\n top: 0;\n width: 10px;\n height: 100%;\n opacity: 0;\n transition: opacity 300ms ease;\n padding: ", " 0 ", " 0;\n"], ["\n display: flex;\n flex-direction: column;\n justify-content: center;\n position: absolute;\n right: ", ";\n top: 0;\n width: 10px;\n height: 100%;\n opacity: 0;\n transition: opacity 300ms ease;\n padding: ", " 0 ", " 0;\n"])), rem(4), rem(1), rem(1.5)); var LabelInputContainer = styled.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n transition: padding 300ms ease;\n\n &:hover {\n padding-right: ", ";\n }\n\n &:hover ", " {\n opacity: 1;\n }\n"], ["\n transition: padding 300ms ease;\n\n &:hover {\n padding-right: ", ";\n }\n\n &:hover ", " {\n opacity: 1;\n }\n"])), rem(10), ArrowsContainer); var SliderInputArrowStyled = styled(SliderInputArrow)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n border-radius: ", ";\n cursor: pointer;\n\n &:hover {\n background: ", ";\n }\n\n color: ", ";\n"], ["\n border-radius: ", ";\n cursor: pointer;\n\n &:hover {\n background: ", ";\n }\n\n color: ", ";\n"])), rem(4), core.color.stroke, core.color.text(0)); var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10; export { ActiveRange, ArrowsContainer, Background, HandleStyled, Hidden, Label, LabelInput, LabelInputContainer, SliderContainer, SliderInputArrowStyled };