UNPKG

react-color

Version:

A Collection of Color Pickers from Sketch, Photoshop, Chrome & more

87 lines (70 loc) 2.5 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.Swatch = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactcss = require('reactcss'); var _reactcss2 = _interopRequireDefault(_reactcss); var _interaction = require('../../helpers/interaction'); var _Checkboard = require('./Checkboard'); var _Checkboard2 = _interopRequireDefault(_Checkboard); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var ENTER = 13; var Swatch = exports.Swatch = function Swatch(_ref) { var color = _ref.color, style = _ref.style, _ref$onClick = _ref.onClick, onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, onHover = _ref.onHover, _ref$title = _ref.title, title = _ref$title === undefined ? color : _ref$title, children = _ref.children, focus = _ref.focus, _ref$focusStyle = _ref.focusStyle, focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle; var transparent = color === 'transparent'; var styles = (0, _reactcss2.default)({ default: { swatch: _extends({ background: color, height: '100%', width: '100%', cursor: 'pointer', position: 'relative', outline: 'none' }, style, focus ? focusStyle : {}) } }); var handleClick = function handleClick(e) { return onClick(color, e); }; var handleKeyDown = function handleKeyDown(e) { return e.keyCode === ENTER && onClick(color, e); }; var handleHover = function handleHover(e) { return onHover(color, e); }; var optionalEvents = {}; if (onHover) { optionalEvents.onMouseOver = handleHover; } return _react2.default.createElement( 'div', _extends({ style: styles.swatch, onClick: handleClick, title: title, tabIndex: 0, onKeyDown: handleKeyDown }, optionalEvents), children, transparent && _react2.default.createElement(_Checkboard2.default, { borderRadius: styles.swatch.borderRadius, boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)' }) ); }; exports.default = (0, _interaction.handleFocus)(Swatch);