UNPKG

@vimeo/iris

Version:
87 lines (80 loc) 5.15 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../../../tslib.es6-3ec409b7.js'); var React = require('react'); var styled = require('styled-components'); var polished = require('polished'); var typography_Header_Header = require('../../../typography/Header/Header.js'); var utils_css = require('../../../utils/css.js'); require('../../../typography/Header/Header.style.js'); require('../../../typography/typography.js'); require('../../../typography/Text/Text.js'); require('../../../typography/Text/Text.style.js'); require('../../../tokens/core.js'); require('../../../tokens/color/index.js'); require('../../../tokens/color/background/background.js'); require('../../../tokens/util/readToken.js'); require('../../../color/colors.js'); require('../../../tokens/util/clamp.js'); require('../../../tokens/color/format/format.js'); require('../../../tokens/color/format/primary.js'); require('../../../tokens/color/format/secondary.js'); require('../../../tokens/color/format/tertiary.js'); require('../../../tokens/color/rainbow/rainbow.js'); require('../../../tokens/color/rainbow/conic/index.js'); require('../../../tokens/color/rainbow/conic/sm.js'); require('../../../tokens/color/rainbow/conic/xl.js'); require('../../../tokens/color/rainbow/linear/index.js'); require('../../../tokens/color/rainbow/linear/sm.js'); require('../../../tokens/color/rainbow/linear/xl.js'); require('../../../tokens/color/livestream/livestream.js'); require('../../../tokens/color/status/status.js'); require('../../../tokens/color/status/caution.js'); require('../../../tokens/color/status/negative.js'); require('../../../tokens/color/status/positive.js'); require('../../../tokens/color/stroke/stroke.js'); require('../../../tokens/color/surface/surface.js'); require('../../../tokens/color/text/text.js'); require('../../../tokens/util/round.js'); require('../../../tokens/color/upsell/upsell.js'); require('../../../tokens/color/upsell/sm.js'); require('../../../tokens/color/upsell/xl.js'); require('../../../tokens/color/upsell/new.js'); require('../../../tokens/edge/edge.js'); require('../../../tokens/space/space.js'); require('../../../tokens/typography/index.js'); require('../../../tokens/typography/size/size.js'); require('../../../typography/Text/EditableText.js'); require('../../../utils/HOCs/withIris.js'); require('../../../utils/hooks/useLayoutStyles.js'); require('../../../utils/DOM/geometry.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled); function Presets(_a) { var palette = _a.palette, label = _a.label, onColorClick = _a.onColorClick; var _b = tslib_es6.__read(React.useState(0), 2), index = _b[0], indexSet = _b[1]; var onKeyUp = function (_a) { var key = _a.key; if (key !== 'ArrowRight' && key !== 'ArrowLeft') return; var indexNext; if (key === 'ArrowRight') indexNext = index === 3 ? 0 : index + 1; if (key === 'ArrowLeft') indexNext = index === 0 ? 3 : index - 1; indexSet(indexNext); onColorClick(palette[indexNext]); }; return (React__default["default"].createElement(Swabs, null, label && (React__default["default"].createElement(typography_Header_Header.Header, { size: "6", style: { margin: '0 auto 0 0' } }, label)), palette.map(function (color) { return (React__default["default"].createElement(Swab, { "aria-label": color, color: color, key: color, onClick: function (event) { event.stopPropagation(); onColorClick(color); }, onKeyUp: onKeyUp }, React__default["default"].createElement(utils_css.Focus, { parent: Swab, radius: 12 }))); }))); } var Swabs = styled__default["default"].div(templateObject_1 || (templateObject_1 = tslib_es6.__makeTemplateObject(["\n display: flex;\n align-items: center;\n flex-direction: row;\n"], ["\n display: flex;\n align-items: center;\n flex-direction: row;\n"]))); var Swab = styled__default["default"].button(templateObject_2 || (templateObject_2 = tslib_es6.__makeTemplateObject(["\n height: 1.125rem;\n width: 1.125rem;\n border: ", " solid rgba(0, 0, 0, 0.15);\n border-radius: 50%;\n margin: 0 0 0 0.75rem;\n background-color: ", ";\n position: relative;\n outline: none;\n transition: transform 0.2s ease-in-out;\n cursor: pointer;\n\n &:hover {\n transform: scale(1.2);\n }\n\n &:active {\n transform: scale(1);\n }\n"], ["\n height: 1.125rem;\n width: 1.125rem;\n border: ", " solid rgba(0, 0, 0, 0.15);\n border-radius: 50%;\n margin: 0 0 0 0.75rem;\n background-color: ", ";\n position: relative;\n outline: none;\n transition: transform 0.2s ease-in-out;\n cursor: pointer;\n\n &:hover {\n transform: scale(1.2);\n }\n\n &:active {\n transform: scale(1);\n }\n"])), polished.rem(1), function (p) { return p.color; }); var templateObject_1, templateObject_2; exports.Presets = Presets;