UNPKG

backpack-ui

Version:
282 lines (239 loc) 8.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = require("babel-runtime/helpers/defineProperty"); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _heading, _center, _rightBottom; var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _propTypes = require("prop-types"); var _propTypes2 = _interopRequireDefault(_propTypes); var _radium = require("radium"); var _radium2 = _interopRequireDefault(_radium); var _colors = require("../../styles/colors"); var _colors2 = _interopRequireDefault(_colors); var _mq = require("../../styles/mq"); var _mq2 = _interopRequireDefault(_mq); var _typography = require("../../styles/typography"); var _zIndex = require("../../styles/zIndex"); var _zIndex2 = _interopRequireDefault(_zIndex); var _color = require("../../utils/color"); var _icon = require("../../utils/icon"); var _icon2 = _interopRequireDefault(_icon); var _propTypes3 = require("../../utils/propTypes"); var _propTypes4 = _interopRequireDefault(_propTypes3); var _bulletDescription = require("../bulletDescription"); var _bulletDescription2 = _interopRequireDefault(_bulletDescription); var _button2 = require("../button"); var _button3 = _interopRequireDefault(_button2); var _container = require("../container"); var _container2 = _interopRequireDefault(_container); var _gradientOverlay = require("../gradientOverlay"); var _gradientOverlay2 = _interopRequireDefault(_gradientOverlay); var _heading2 = require("../heading"); var _heading3 = _interopRequireDefault(_heading2); var _heroImageContainer = require("../heroImageContainer"); var _heroImageContainer2 = _interopRequireDefault(_heroImageContainer); var _link = require("../link"); var _link2 = _interopRequireDefault(_link); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var styles = { base: { width: "100%", height: "100%", transform: "translateZ(0)" }, link: { color: _colors2.default.bgPrimary, cursor: "pointer" }, bullets: (0, _defineProperty3.default)({ color: _colors2.default.bgPrimary, fontSize: "14px", marginBottom: "24px", fontWeight: _typography.fontWeightMedium }, "@media (min-width: " + _mq2.default.min[720] + ")", { marginBottom: "32px" }), adContainer: { marginBottom: "20px" }, heading: (_heading = { color: _colors2.default.bgPrimary, fontSize: "32px", letterSpacing: "0", marginBottom: "16px" }, (0, _defineProperty3.default)(_heading, "@media (min-width: " + _mq2.default.min[600] + ")", { letterSpacing: "-0.56px", fontSize: "calc(11px + 5vw)" }), (0, _defineProperty3.default)(_heading, "@media (min-width: " + _mq2.default.min[720] + ")", { fontSize: "60px", marginBottom: "20px" }), (0, _defineProperty3.default)(_heading, "@media (min-width: " + _mq2.default.min[840] + ")", { fontSize: "68px" }), _heading), graphic: { maxWidth: "100%", marginBottom: "14px" }, button: (0, _defineProperty3.default)({ paddingRight: "30px", paddingLeft: "30px", marginTop: "16px", icon: { fontSize: "18px", marginRight: "16px" } }, "@media (min-width: " + _mq2.default.min[720] + ")", { paddingRight: "46px", paddingLeft: "46px", marginTop: "20px" }), fullOverlay: { position: "absolute", left: 0, right: 0, top: 0, bottom: 0, backgroundColor: "rgba(" + (0, _color.rgb)(_colors2.default.bgOverlay) + ", 0.3)" }, position: { center: (_center = { display: "flex", width: "100%", position: "relative", zIndex: _zIndex2.default.slideshowSlide, textAlign: "center", margin: "0 auto", height: "100%", flexDirection: "column", justifyContent: "center", alignItems: "center" }, (0, _defineProperty3.default)(_center, "@media (min-width: " + _mq2.default.min[720] + ")", { width: "68%" }), (0, _defineProperty3.default)(_center, "@media (min-width: " + _mq2.default.min[1290] + ")", { width: "50%" }), _center), leftBottom: (0, _defineProperty3.default)({ bottom: "5.5em", zIndex: _zIndex2.default.slideshowSlide }, "@media (min-width: " + _mq2.default.min[720] + ")", { bottom: "11em" }), rightBottom: (_rightBottom = { position: "absolute", bottom: "20px", padding: 10, right: 0, zIndex: _zIndex2.default.slideshowSlide }, (0, _defineProperty3.default)(_rightBottom, "@media (max-width: " + _mq2.default.max[480] + ")", { right: "-33px" }), (0, _defineProperty3.default)(_rightBottom, "@media (min-width: " + _mq2.default.min[480] + ") and (max-width: " + _mq2.default.max[768] + ")", { right: "-48px" }), (0, _defineProperty3.default)(_rightBottom, "@media (max-width: " + _mq2.default.max[768] + ")", { transform: "scale(.7)" }), (0, _defineProperty3.default)(_rightBottom, "@media (min-width: " + _mq2.default.min[720] + ")", { bottom: "8.2em" }), _rightBottom) } }; var Slide = function Slide(_ref) { var image = _ref.image, description = _ref.description, fullOverlay = _ref.fullOverlay, fullOverlayStyles = _ref.fullOverlayStyles, headline = _ref.headline, graphic = _ref.graphic, adPosition = _ref.adPosition, gradientColor = _ref.gradientColor, position = _ref.position, callToAction = _ref.callToAction; return _react2.default.createElement( "div", { className: "Slide", style: styles.base }, _react2.default.createElement(_heroImageContainer2.default, { imagePath: image }), _react2.default.createElement(_gradientOverlay2.default, { gradientType: "leftCorner", color: gradientColor }), fullOverlay && _react2.default.createElement("div", { className: "FullOverlay", style: [styles.fullOverlay, fullOverlayStyles && fullOverlayStyles] }), _react2.default.createElement( _container2.default, { style: { height: "100%" } }, _react2.default.createElement( "div", { style: styles.position[position] }, description && _react2.default.createElement(_bulletDescription2.default, { description: description, style: styles.bullets }), _react2.default.createElement( _heading3.default, { level: 1, size: "huge", weight: "thick", override: styles.heading }, _react2.default.createElement( _link2.default, { to: callToAction.link, onClick: callToAction.onClick, style: styles.link }, graphic && _react2.default.createElement("img", { src: graphic, style: styles.graphic, alt: headline }), !graphic && headline ) ), adPosition && _react2.default.createElement("div", { id: adPosition, style: styles.adContainer }), _react2.default.createElement( _link2.default, { to: callToAction.link }, _react2.default.createElement( _button3.default, { rounded: true, color: callToAction.theme, border: callToAction.border, size: "large", customStyles: styles.button, onClick: callToAction.onClick }, callToAction.icon && (0, _icon2.default)(callToAction.icon, { style: styles.button.icon }), callToAction.text ) ) ) ) ); }; Slide.propTypes = { image: _propTypes2.default.string.isRequired, headline: _propTypes2.default.string.isRequired, graphic: _propTypes2.default.string, callToAction: _propTypes2.default.shape({ text: _propTypes2.default.string, theme: _propTypes2.default.string, border: _propTypes2.default.bool, link: _propTypes2.default.string, icon: _propTypes2.default.string, onClick: _propTypes2.default.func }).isRequired, description: _propTypes2.default.arrayOf(_propTypes2.default.string), fullOverlay: _propTypes2.default.bool, fullOverlayStyles: _propTypes4.default.style, adPosition: _propTypes2.default.string, gradientColor: _propTypes2.default.string, position: _propTypes2.default.string }; Slide.defaultProps = { description: [], gradientColor: _colors2.default.bgOverlay, position: "center" }; exports.default = (0, _radium2.default)(Slide);