@vimeo/iris
Version:
Vimeo Design System
139 lines (132 loc) • 11.3 kB
JavaScript
'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;