backpack-ui
Version:
Lonely Planet's Components
142 lines (108 loc) • 3.36 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _keys = require("babel-runtime/core-js/object/keys");
var _keys2 = _interopRequireDefault(_keys);
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _colors = require("../../styles/colors");
var _colors2 = _interopRequireDefault(_colors);
var _font = require("../../utils/font");
var _font2 = _interopRequireDefault(_font);
var _timing = require("../../styles/timing");
var _timing2 = _interopRequireDefault(_timing);
var _grid = require("../../utils/grid");
var _icon = require("../../utils/icon");
var _icon2 = _interopRequireDefault(_icon);
var _icon3 = require("../icon");
var _icon4 = _interopRequireDefault(_icon3);
var _heading = require("../heading");
var _heading2 = _interopRequireDefault(_heading);
var _createQAHook = require("../../utils/createQAHook");
var _createQAHook2 = _interopRequireDefault(_createQAHook);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var containerMaxWidth = (0, _grid.add)([(0, _grid.span)(2, "static"), (0, _grid.gutter)("static")], "static");
var styles = {
container: {
display: "flex",
flexGrow: 1,
fontFamily: (0, _font2.default)("benton"),
justifyContent: "center",
maxWidth: containerMaxWidth,
textAlign: "center"
},
anchor: {
display: "block",
textDecoration: "none"
},
icon: {
color: _colors2.default.linkPrimary,
fontSize: "96px",
transition: "transform " + _timing2.default.default + " ease-in-out"
},
heading: {
fontSize: "20px",
marginTop: "33px",
transition: "color " + _timing2.default.default + " ease-in-out"
},
copy: {
color: _colors2.default.textSecondary,
fontSize: "16px",
lineHeight: 24 / 16,
marginBottom: "23px",
marginLeft: "auto",
marginRight: "auto",
marginTop: "11px"
}
};
function IconCallout(_ref) {
var iconName = _ref.iconName,
title = _ref.title,
copy = _ref.copy,
url = _ref.url,
qaHook = _ref.qaHook;
return _react2.default.createElement(
"div",
{ className: "IconCallout", style: styles.container },
_react2.default.createElement(
"a",
{ href: url, style: styles.anchor, "data-testid": qaHook ? (0, _createQAHook2.default)(title, "callout", "link") : null },
(0, _icon2.default)(iconName, {
style: styles.icon,
ariaHidden: true,
className: "IconCallout-icon"
}),
_react2.default.createElement(
_heading2.default,
{
level: 3,
weight: "thick",
override: styles.heading
},
title
),
_react2.default.createElement(
"p",
{
className: "IconCallout-copy",
style: styles.copy
},
copy
)
)
);
}
IconCallout.propTypes = {
iconName: _propTypes2.default.oneOf((0, _keys2.default)(_icon4.default)).isRequired,
title: _propTypes2.default.string.isRequired,
copy: _propTypes2.default.string.isRequired,
url: _propTypes2.default.string.isRequired,
qaHook: _propTypes2.default.bool
};
IconCallout.defaultProps = {
qaHook: false
};
exports.default = IconCallout;