backpack-ui
Version:
Lonely Planet's Components
124 lines (94 loc) • 2.54 kB
JavaScript
"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);