UNPKG

@vimeo/iris

Version:
139 lines (132 loc) 11.3 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../../tslib.es6-3ec409b7.js'); var styled = require('styled-components'); var polished = require('polished'); var color_colors = require('../../color/colors.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled); var isDev = process.env.NODE_ENV === 'development'; function inputColors(_a) { var theme = _a.theme, _b = _a.disabled, disabled = _b === void 0 ? false : _b, format = _a.format; if (!format || !theme.formats[format]) format = 'basic'; var color = theme.formats[format]; var opacity = format === 'basic' ? 0 : 0.4; return styled.css(templateObject_3 || (templateObject_3 = tslib_es6.__makeTemplateObject(["\n color: ", ";\n background-color: ", ";\n border: 1px solid ", ";\n transition: 120ms ease-in-out;\n\n &:hover {\n border: 1px solid ", ";\n }\n\n ", "\n\n ", "\n "], ["\n color: ", ";\n background-color: ", ";\n border: 1px solid ", ";\n transition: 120ms ease-in-out;\n\n &:hover {\n border: 1px solid ", ";\n }\n\n ", "\n\n ", "\n "])), theme.content.color, theme.content.background, polished.rgba(color, 0.25 + opacity), polished.rgba(color, 0.5 + opacity), !disabled && styled.css(templateObject_1 || (templateObject_1 = tslib_es6.__makeTemplateObject(["\n &:hover {\n border: 1px solid ", ";\n }\n "], ["\n &:hover {\n border: 1px solid ", ";\n }\n "])), polished.rgba(color, 0.5 + opacity)), disabled && styled.css(templateObject_2 || (templateObject_2 = tslib_es6.__makeTemplateObject(["\n background-color: ", ";\n border-color: ", ";\n pointer-events: none;\n "], ["\n background-color: ", ";\n border-color: ", ";\n pointer-events: none;\n "])), theme.content.disabled, polished.rgba(color, 0.1 + opacity))); } var sizes = { xxs: 0.5, xs: 0.75, sm: 0.75, md: 1, lg: 1.5, xl: 1.75, xxl: 2, }; var paddings = { xxs: 0.75, xs: 0.875, sm: 1.25, md: 1.375, lg: 1.5, xl: 2, xxl: 2.5, }; // const sizes = { // xs: 1.625, // sm: 2, // md: 2.375, // lg: 3, // xl: 3.75, // }; function inputShape(_a) { var inputSize = _a.inputSize, floating = _a.floating, _b = _a.variant, variant = _b === void 0 ? null : _b, _c = _a.pill, pill = _c === void 0 ? false : _c; var variantPadding = variant === 'underline' ? 2.5 : 1; var padding = (paddings[inputSize] / 2 - 0.175) / variantPadding; return styled.css(templateObject_5 || (templateObject_5 = tslib_es6.__makeTemplateObject(["\n border-radius: ", ";\n padding: ", "rem;\n width: 100%;\n margin: 0;\n font-size: ", "rem;\n outline: none;\n ", ";\n\n ", ";\n "], ["\n border-radius: ", ";\n padding: ", "rem;\n width: 100%;\n margin: 0;\n font-size: ", "rem;\n outline: none;\n ", ";\n\n ", ";\n "])), pill ? '2rem' : '0.25rem', padding, sizes[inputSize], inputVariant, floating && styled.css(templateObject_4 || (templateObject_4 = tslib_es6.__makeTemplateObject(["\n padding-top: ", "rem;\n "], ["\n padding-top: ", "rem;\n "])), padding * 3)); } var underline = styled.css(templateObject_6 || (templateObject_6 = tslib_es6.__makeTemplateObject(["\n border-radius: 0;\n border-top-color: rgba(0, 0, 0, 0);\n border-left-color: rgba(0, 0, 0, 0);\n border-right-color: rgba(0, 0, 0, 0);\n"], ["\n border-radius: 0;\n border-top-color: rgba(0, 0, 0, 0);\n border-left-color: rgba(0, 0, 0, 0);\n border-right-color: rgba(0, 0, 0, 0);\n"]))); function inputVariant(_a) { var _b = _a.variant, variant = _b === void 0 ? null : _b; return (variant === 'underline' && styled.css(templateObject_7 || (templateObject_7 = tslib_es6.__makeTemplateObject(["\n ", ";\n\n &:hover {\n ", ";\n }\n "], ["\n ", ";\n\n &:hover {\n ", ";\n }\n "])), underline, underline)); } var SquareInput = function (size) { return styled.css(templateObject_8 || (templateObject_8 = tslib_es6.__makeTemplateObject(["\n width: ", ";\n height: ", ";\n border-width: ", ";\n border-style: solid;\n border-radius: ", ";\n"], ["\n width: ", ";\n height: ", ";\n border-width: ", ";\n border-style: solid;\n border-radius: ", ";\n"])), polished.rem(size), polished.rem(size), polished.rem(1), polished.rem(2)); }; var RoundInput = function (size) { return styled.css(templateObject_9 || (templateObject_9 = tslib_es6.__makeTemplateObject(["\n ", ";\n border-radius: 50%;\n"], ["\n ", ";\n border-radius: 50%;\n"])), SquareInput(size)); }; var ToggleInput = function (size) { return styled.css(templateObject_10 || (templateObject_10 = tslib_es6.__makeTemplateObject(["\n ", ";\n width: ", ";\n border-radius: 3rem;\n"], ["\n ", ";\n width: ", ";\n border-radius: 3rem;\n"])), SquareInput(size), polished.rem(size * 2)); }; var FauxInput = styled.css(templateObject_11 || (templateObject_11 = tslib_es6.__makeTemplateObject(["\n display: block;\n position: absolute;\n z-index: 3;\n top: 0;\n left: 0;\n"], ["\n display: block;\n position: absolute;\n z-index: 3;\n top: 0;\n left: 0;\n"]))); var FauxMark = function (type, mirror) { return styled.css(templateObject_14 || (templateObject_14 = tslib_es6.__makeTemplateObject(["\n pointer-events: none;\n ", ";\n\n ", ";\n\n &:after {\n content: '';\n display: block;\n background: ", ";\n opacity: 0;\n transition: 200ms ease-in-out;\n transform: scale(0);\n\n ", ";\n }\n "], ["\n pointer-events: none;\n ", ";\n\n ", ";\n\n &:after {\n content: '';\n display: block;\n background: ", ";\n opacity: 0;\n transition: 200ms ease-in-out;\n transform: scale(0);\n\n ", ";\n }\n "])), fauxPositioning(mirror), type === 'toggle' && styled.css(templateObject_12 || (templateObject_12 = tslib_es6.__makeTemplateObject(["\n background: ", ";\n "], ["\n background: ", ";\n "])), function (_a) { var theme = _a.theme; return theme.name === 'dark' ? theme.content.background : theme.formats.alternative; }), color_colors.blue(500), type === 'toggle' && styled.css(templateObject_13 || (templateObject_13 = tslib_es6.__makeTemplateObject(["\n background: ", ";\n opacity: 1;\n transition: 120ms ease-in-out;\n transform: scale(1);\n width: 50%;\n "], ["\n background: ", ";\n opacity: 1;\n transition: 120ms ease-in-out;\n transform: scale(1);\n width: 50%;\n "])), color_colors.white)); }; function fauxPositioning(mirror) { return styled.css(templateObject_15 || (templateObject_15 = tslib_es6.__makeTemplateObject(["\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n ", ";\n "], ["\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n ", ";\n "])), mirror ? 'right: 0' : 'left: 0'); } var Hidden = styled.css(templateObject_16 || (templateObject_16 = tslib_es6.__makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n outline: 0;\n opacity: 0;\n appearance: none;\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n outline: 0;\n opacity: 0;\n appearance: none;\n"]))); function formatStyles(_a) { var theme = _a.theme, _b = _a.format, format = _b === void 0 ? 'basic' : _b; // const { color } = readTheme({ format, ...props }); var color = theme.formats[format]; return styled.css(templateObject_17 || (templateObject_17 = tslib_es6.__makeTemplateObject(["\n color: ", ";\n letter-spacing: 0.01rem;\n "], ["\n color: ", ";\n letter-spacing: 0.01rem;\n "])), color); } var Label = styled__default["default"].label(templateObject_20 || (templateObject_20 = tslib_es6.__makeTemplateObject(["\n display: inline-flex;\n line-height: 1.25rem;\n font-size: 0.875rem;\n padding: 0.5rem;\n width: 100%;\n\n ", ";\n ", ";\n\n ", ";\n"], ["\n display: inline-flex;\n line-height: 1.25rem;\n font-size: 0.875rem;\n padding: 0.5rem;\n width: 100%;\n\n ", ";\n ", ";\n\n ", ";\n"])), typePadding, formatStyles, function (p) { return !p.disabled ? styled.css(templateObject_18 || (templateObject_18 = tslib_es6.__makeTemplateObject(["\n cursor: pointer;\n\n &:hover ~ ", " {\n border: 1px solid\n ", ";\n }\n "], ["\n cursor: pointer;\n\n &:hover ~ ", " {\n border: 1px solid\n ", ";\n }\n "])), p.fauxMark, function (_a) { var theme = _a.theme; return polished.rgba(theme.content.color, 0.5); }) : styled.css(templateObject_19 || (templateObject_19 = tslib_es6.__makeTemplateObject(["\n cursor: not-allowed;\n "], ["\n cursor: not-allowed;\n "]))); }); var paddingSizes = { sm: 12, md: 14, lg: 18, xl: 24, }; function typePadding(_a) { var _b = _a.children, children = _b === void 0 ? null : _b, size = _a.size, type = _a.type, _c = _a.mirror, mirror = _c === void 0 ? null : _c; if (!children) return; switch (type) { case 'toggle': return mirror ? { paddingRight: paddingSizes[size] * 2 + 20 } : { paddingLeft: paddingSizes[size] * 2 + 20 }; default: return mirror ? { paddingRight: paddingSizes[size] * 1.5 + 16 } : { paddingLeft: paddingSizes[size] * 1.5 + 16 }; } } function compareNames(string, comparison) { return string === null || string === void 0 ? void 0 : string.toLowerCase().includes(comparison); } function compareMetas(inputType) { return function (_a) { var _b = _a.type, displayName = _b.displayName, $$iris = _b.$$iris; return compareNames(displayName, inputType) || compareNames($$iris === null || $$iris === void 0 ? void 0 : $$iris.component, inputType); }; } function validate(children, type) { var Name = type.charAt(0).toUpperCase() + type.slice(1); var valid = children.every(compareMetas(type)); if (!valid && isDev) { console.warn("<".concat(Name, "Set /> children must be <").concat(Name, " />."), children); } return valid; } var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20; exports.FauxInput = FauxInput; exports.FauxMark = FauxMark; exports.Hidden = Hidden; exports.Label = Label; exports.RoundInput = RoundInput; exports.SquareInput = SquareInput; exports.ToggleInput = ToggleInput; exports.inputColors = inputColors; exports.inputShape = inputShape; exports.validate = validate;