UNPKG

pouncejs

Version:

A collection of UI components from Panther labs

56 lines (41 loc) 2.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = exports.Heading = exports.HeadingLevelContext = exports.DEFAULT_HEADING_LEVEL = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _react = _interopRequireDefault(require("react")); var _Box = _interopRequireDefault(require("../Box")); var _useHeadingStyles = _interopRequireDefault(require("./useHeadingStyles")); // Default heading levels to `h2`: // // This is so that you can drop `<Heading>` on a page _anywhere_ and it will be // semantically correct. Since you should _usually_ only have 1 `h1` on the page, // that can be done by explicitly overriding the `as` prop (`<Heading as="h1">`). var DEFAULT_HEADING_LEVEL = 2; exports.DEFAULT_HEADING_LEVEL = DEFAULT_HEADING_LEVEL; var HeadingLevelContext = /*#__PURE__*/_react.default.createContext(null); exports.HeadingLevelContext = HeadingLevelContext; /** * Responsive typographic component. Anywhere you want to add a title to something * then you can use this * */ var Heading = /*#__PURE__*/_react.default.forwardRef(function Heading(_ref, ref) { var _ref$size = _ref.size, size = _ref$size === void 0 ? 'medium' : _ref$size, as = _ref.as, rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["size", "as"]); var styles = (0, _useHeadingStyles.default)({ size: size }); var level = _react.default.useContext(HeadingLevelContext); // `Math.min` makes sure that the heading level is never above a h6 var hTag = 'h' + Math.min(level || DEFAULT_HEADING_LEVEL, 6); return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({ as: as || hTag, ref: ref, fontWeight: "normal" }, styles, rest)); }); exports.Heading = Heading; var _default = Heading; exports.default = _default;