UNPKG

backpack-ui

Version:

Lonely Planet's Components

198 lines (159 loc) 4.07 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 _font = require("../../utils/font"); var _font2 = _interopRequireDefault(_font); var _color = require("../../utils/color"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var styles = { container: { base: { backfaceVisibility: "hidden", color: _settings.color.titleGray, display: "inline-block", fontFamily: (0, _font2.default)("miller"), fontSize: "1em", height: 36 / 20 + "em", lineHeight: 36 / 20 + "em", position: "relative", textAlign: "center", width: 36 / 20 + "em", zIndex: _settings.zIndex.default }, size: { xSmall: { height: "24px", width: "24px", lineHeight: "24px", fontSize: "12px" }, small: { fontSize: "14px" }, large: { fontSize: "20px" } }, place: { left: "6.7rem", position: "absolute", top: "50%", transform: "translateY(-50%)" }, transparent: { color: _settings.color.white } }, diamond: { base: { backgroundColor: _settings.color.white, borderRadius: 4 / 20 + "em", boxShadow: "2px 2px 2px rgba(" + (0, _color.rgb)(_settings.color.black) + ", .18)", display: "block", height: "100%", marginTop: "-" + 36 / 20 + "em", position: "relative", transform: "rotate(45deg)", width: "100%", zIndex: _settings.zIndex.below }, size: { xSmall: { marginTop: "-" + 36 / 20 + "em", borderRadius: "5px" }, small: { borderRadius: 4 / 14 + "em" }, large: { borderRadius: 6 / 20 + "em" } }, outlined: { boxShadow: "0 0 0 1px #e1eaf0" }, transparent: { backgroundColor: "transparent", border: "1px solid " + _settings.color.white, opacity: "0.5" } } }; function NumberMarker(_ref) { var number = _ref.number; var size = _ref.size; var outlined = _ref.outlined; var place = _ref.place; var transparent = _ref.transparent; var style = { container: [styles.container.base], diamond: [styles.diamond.base] }; if (size) { style.container.push(styles.container.size[size]); style.diamond.push(styles.diamond.size[size]); } if (outlined) { style.diamond.push(styles.diamond.outlined); } if (place) { style.container.push(styles.container.place); } if (transparent) { style.diamond.push(styles.diamond.transparent); style.container.push(styles.container.transparent); } return _react2.default.createElement( "div", { className: "NumberMarker", style: style.container }, number, _react2.default.createElement("span", { className: "NumberMarker-diamond", style: style.diamond }) ); } NumberMarker.propTypes = { /** * Number to show */ number: _react2.default.PropTypes.number.isRequired, /** * How big the marker should be; if size is * undefined, the size will be inherited from * the parent */ size: _react2.default.PropTypes.oneOf(["", "xSmall", "small", "large"]), /** * Changes the box shadow style to look more * like an outline/border */ outlined: _react2.default.PropTypes.bool, /** * If the marker used within a place list; * positions the marker over an 80px wide photo */ place: _react2.default.PropTypes.bool, /** * Show a transparent version of the marker; * */ transparent: _react2.default.PropTypes.bool }; NumberMarker.defaultProps = { number: "", size: "", outlined: false, place: false, transparent: false }; NumberMarker.styles = styles; exports.default = (0, _radium2.default)(NumberMarker);