UNPKG

suomifi-ui-components

Version:
104 lines (98 loc) 4.5 kB
'use strict'; var tslib = require('tslib'); var React = require('react'); var styled = require('styled-components'); var classnames = require('classnames'); var logger = require('../../utils/log/logger.js'); var SuomifiThemeProvider = require('../theme/SuomifiThemeProvider/SuomifiThemeProvider.js'); require('../theme/SuomifiTheme/SuomifiTheme.js'); var SpacingProvider = require('../theme/SpacingProvider/SpacingProvider.js'); var spacing = require('../theme/utils/spacing.js'); var Heading_baseStyles = require('./Heading.baseStyles.js'); require('../../reset/HtmlA/HtmlA.js'); require('../../reset/HtmlButton/HtmlButton.js'); require('../../reset/HtmlDiv/HtmlDiv.js'); require('../../reset/HtmlFieldSet/HtmlFieldSet.js'); var HtmlH = require('../../reset/HtmlH/HtmlH.js'); require('../../reset/HtmlInput/HtmlInput.js'); require('../../reset/HtmlLabel/HtmlLabel.js'); require('../../reset/HtmlLegend/HtmlLegend.js'); require('../../reset/HtmlLi/HtmlLi.js'); require('../../reset/HtmlNav/HtmlNav.js'); require('../../reset/HtmlOl/HtmlOl.js'); require('../../reset/HtmlSpan/HtmlSpan.js'); require('../../reset/HtmlTextarea/HtmlTextarea.js'); require('../../reset/HtmlUl/HtmlUl.js'); require('../../reset/HtmlTable/HtmlTable.js'); require('../../reset/HtmlTable/HtmlTableCaption.js'); require('../../reset/HtmlTable/HtmlTableHeader.js'); require('../../reset/HtmlTable/HtmlTableRow.js'); require('../../reset/HtmlTable/HtmlTableBody.js'); require('../../reset/HtmlTable/HtmlTableHeaderCell.js'); require('../../reset/HtmlTable/HtmlTableCell.js'); var common = require('../../utils/common/common.js'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefault(React); var classnames__default = /*#__PURE__*/_interopDefault(classnames); var baseClassName = 'fi-heading'; var smallScreenClassName = "".concat(baseClassName, "--small-screen"); var getSemanticVariant = function getSemanticVariant(variant) { if (variant === 'h1hero') return 'h1'; return variant; }; var StyledHeading = styled.styled(function (_a) { var _b; var smallScreen = _a.smallScreen, className = _a.className; _a.globalMargins; _a.theme; var variant = _a.variant; _a.color; var asProp = _a.asProp, rest = tslib.__rest(_a, ["smallScreen", "className", "globalMargins", "theme", "variant", "color", "asProp"]); var _c = spacing.separateMarginProps(rest), passProps = _c[1]; return /*#__PURE__*/React__default.default.createElement(HtmlH.HtmlH, tslib.__assign({}, passProps, { className: classnames__default.default(baseClassName, className, ["".concat(baseClassName, "--").concat(variant)], (_b = {}, _b[smallScreenClassName] = smallScreen, _b)), as: !!asProp ? asProp : getSemanticVariant(variant), style: tslib.__assign({}, passProps === null || passProps === void 0 ? void 0 : passProps.style) })); }).withConfig({ componentId: "sc-6ha6oi-0" })(templateObject_1 || (templateObject_1 = tslib.__makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (_a) { var theme = _a.theme, color = _a.color, globalMargins = _a.globalMargins, rest = tslib.__rest(_a, ["theme", "color", "globalMargins"]); var _b = spacing.separateMarginProps(rest), marginProps = _b[0]; var cleanedGlobalMargins = common.filterDuplicateKeys(globalMargins.heading, marginProps); return Heading_baseStyles.baseStyles(theme, color, cleanedGlobalMargins, marginProps); }); var Heading = /*#__PURE__*/React.forwardRef(function (props, ref) { var as = props.as, variant = props.variant, passProps = tslib.__rest(props, ["as", "variant"]); if (!variant) { logger.getLogger().warn("Does not contain heading level (variant): ".concat(passProps.children)); return null; } return /*#__PURE__*/React__default.default.createElement(SpacingProvider.SpacingConsumer, null, function (_a) { var margins = _a.margins; return /*#__PURE__*/React__default.default.createElement(SuomifiThemeProvider.SuomifiThemeConsumer, null, function (_a) { var suomifiTheme = _a.suomifiTheme; return /*#__PURE__*/React__default.default.createElement(StyledHeading, tslib.__assign({ theme: suomifiTheme, globalMargins: margins, forwardedRef: ref, asProp: as }, passProps, { variant: variant })); }); }); }); Heading.displayName = 'Heading'; var templateObject_1; exports.Heading = Heading; //# sourceMappingURL=Heading.js.map