UNPKG

wix-style-react

Version:
127 lines (109 loc) 6.14 kB
import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; import _inherits from "@babel/runtime/helpers/inherits"; import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; var _overline, _title, _subtitle, _content; function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } import React from 'react'; import PropTypes from 'prop-types'; import { st, classes } from './MarketingPageLayoutContent.st.css'; import { dataHooks, size } from './constants'; import Divider from '../Divider'; import Text, { SIZES as TEXT_SIZES } from '../Text'; import Heading, { APPEARANCES } from '../Heading'; import Box from '../Box'; import { isString } from '../utils/StringUtils'; var sizesMap = { overline: (_overline = {}, _defineProperty(_overline, size.medium, TEXT_SIZES.small), _defineProperty(_overline, size.large, TEXT_SIZES.medium), _overline), title: (_title = {}, _defineProperty(_title, size.medium, APPEARANCES.H2), _defineProperty(_title, size.large, APPEARANCES.H1), _title), subtitle: (_subtitle = {}, _defineProperty(_subtitle, size.medium, APPEARANCES.H4), _defineProperty(_subtitle, size.large, APPEARANCES.H3), _subtitle), content: (_content = {}, _defineProperty(_content, size.medium, TEXT_SIZES.small), _defineProperty(_content, size.large, TEXT_SIZES.medium), _content) }; /** This component is used in the MarketingPageLayout component. It includes all the content of the page. */ var MarketingPageLayoutContent = /*#__PURE__*/function (_React$PureComponent) { _inherits(MarketingPageLayoutContent, _React$PureComponent); var _super = _createSuper(MarketingPageLayoutContent); function MarketingPageLayoutContent() { _classCallCheck(this, MarketingPageLayoutContent); return _super.apply(this, arguments); } _createClass(MarketingPageLayoutContent, [{ key: "render", value: function render() { var _this$props = this.props, dataHook = _this$props.dataHook, className = _this$props.className, size = _this$props.size, overline = _this$props.overline, title = _this$props.title, subtitle = _this$props.subtitle, content = _this$props.content, actions = _this$props.actions; return /*#__PURE__*/React.createElement("div", { "data-hook": dataHook, className: st(classes.root, className) }, overline && /*#__PURE__*/React.createElement("div", { "data-hook": dataHooks.overlineContainer }, /*#__PURE__*/React.createElement(Box, { color: "D20" }, isString(overline) ? /*#__PURE__*/React.createElement(Text, { dataHook: dataHooks.overline, size: sizesMap.overline[size], skin: "standard", secondary: true }, overline) : overline), /*#__PURE__*/React.createElement("div", { className: classes.overlineDividerContainer }, /*#__PURE__*/React.createElement(Divider, null))), title && /*#__PURE__*/React.createElement(Box, { dataHook: dataHooks.titleContainer }, isString(title) ? /*#__PURE__*/React.createElement(Heading, { dataHook: dataHooks.title, appearance: sizesMap.title[size] }, title) : title), subtitle && /*#__PURE__*/React.createElement(Box, { dataHook: dataHooks.subtitleContainer, marginTop: "SP2" }, isString(subtitle) ? /*#__PURE__*/React.createElement(Heading, { dataHook: dataHooks.subtitle, appearance: sizesMap.subtitle[size] }, subtitle) : subtitle), content && /*#__PURE__*/React.createElement(Box, { dataHook: dataHooks.contentContainer, marginTop: "SP4", color: "D10" }, isString(content) ? /*#__PURE__*/React.createElement(Text, { dataHook: dataHooks.content, size: sizesMap.content[size], skin: "standard" }, content) : content), actions && /*#__PURE__*/React.createElement(Box, { dataHook: dataHooks.actions, marginTop: "SP7", children: actions })); } }]); return MarketingPageLayoutContent; }(React.PureComponent); MarketingPageLayoutContent.displayName = 'MarketingPageLayoutContent'; MarketingPageLayoutContent.propTypes = { /** Applies a data-hook HTML attribute that can be used in tests */ dataHook: PropTypes.string, /** Specifies a CSS class name to be appended to the component’s root element */ className: PropTypes.string, /** Controls the size of the marketing page layout content */ size: PropTypes.oneOf(['medium', 'large']), /** Set overline content. Accepts text string or a custom element. */ overline: PropTypes.node, /** Set the page layout title. Accepts text string or a custom element. */ title: PropTypes.node, /** Set pages layout subtitle. Accepts text string or a custom element. */ subtitle: PropTypes.node, /** Sets the main content. Accepts a text paragraph or any custom elements. */ content: PropTypes.node, /** Adds a container for page actions. Accepts single or multiple components. Most commonly contains `<Button/>` and `<TextButton/>`. */ actions: PropTypes.node }; MarketingPageLayoutContent.defaultProps = { size: 'large' }; export default MarketingPageLayoutContent;