UNPKG

backpack-ui

Version:

Lonely Planet's Components

124 lines (94 loc) 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _radium = require("radium"); var _radium2 = _interopRequireDefault(_radium); var _settings = require("../../../settings.json"); var _color = require("../../utils/color"); var _font = require("../../utils/font"); var _font2 = _interopRequireDefault(_font); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var baseFontSize = 12; var tagColor = "#e1eaf0"; var hoverStyles = { base: { backgroundColor: "rgba(" + (0, _color.rgb)(tagColor) + ", .3)" }, selected: { backgroundColor: tagColor } }; var styles = { base: { border: 1 / baseFontSize + "em solid " + tagColor, borderRadius: 16 / baseFontSize + "em", color: _settings.color.darkGray, display: "inline-block", fontFamily: (0, _font2.default)("benton"), fontSize: baseFontSize + "px", lineHeight: 1, padding: 10 / baseFontSize + "em " + 25 / baseFontSize + "em " + 8 / baseFontSize + "em", textDecoration: "none", textOverflow: "ellipsis", transition: "background-color " + _settings.timing.default, whiteSpace: "nowrap", ":hover": hoverStyles.base, ":active": hoverStyles.base, ":focus": hoverStyles.base }, selected: { backgroundColor: tagColor, ":hover": hoverStyles.selected, ":active": hoverStyles.selected, ":focus": hoverStyles.selected } }; /** * Tag component * @usage * <Tag label="Europe" slug="/europe" /> */ function Tag(_ref) { var label = _ref.label; var slug = _ref.slug; var selected = _ref.selected; var style = _ref.style; return _react2.default.createElement( "a", { className: "Tag", style: [styles.base, selected && styles.selected, style], href: slug }, label ); } Tag.propTypes = { /** * Text label which is the tag name */ label: _react2.default.PropTypes.string.isRequired, /** * Slug URL of the tag */ slug: _react2.default.PropTypes.string.isRequired, /** * Should the tag appear to have been selected */ selected: _react2.default.PropTypes.bool, /** * Style object */ style: _react2.default.PropTypes.objectOf(_react2.default.PropTypes.string, _react2.default.PropTypes.number) }; Tag.defaultProps = { label: "", slug: "", selected: false, style: null }; Tag.styles = styles; exports.default = (0, _radium2.default)(Tag);