'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _propTypes = require('prop-types');

var _propTypes2 = _interopRequireDefault(_propTypes);

var _styledComponents = require('styled-components');

var _styledComponents2 = _interopRequireDefault(_styledComponents);

var _cleanTag = require('clean-tag');

var _cleanTag2 = _interopRequireDefault(_cleanTag);

var _themeGet = require('../../extensions/themeGet');

var _themeGet2 = _interopRequireDefault(_themeGet);

var _userSpacing = require('../../extensions/userSpacing');

var _userSpacing2 = _interopRequireDefault(_userSpacing);

var _H = require('./H2');

var _H2 = _interopRequireDefault(_H);

var _H3 = require('./H3');

var _H4 = _interopRequireDefault(_H3);

var _H5 = require('./H4');

var _H6 = _interopRequireDefault(_H5);

var _H7 = require('./H5');

var _H8 = _interopRequireDefault(_H7);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var H1 = (0, _styledComponents2.default)(_cleanTag2.default.h1).withConfig({ displayName: 'H1' }).attrs({
  spacing: _userSpacing2.default.text
}).withConfig({
  displayName: 'H1'
})(['color:', ';font-weight:100;font-family:', ';font-size:2.5em;margin:', ';overflow:hidden;padding:0;'], (0, _themeGet2.default)('colors.primary.default'), (0, _themeGet2.default)('fonts.brand'), function (props) {
  return props.spacing;
});

H1.propTypes = {
  /**
   * Specify a CSS value or an object { top, right, bottom, left } or { vertical, horizontal } to
   * control the spacing around the heading. Defaults to a large space below the element.
   */
  spacing: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),
  /**
   * Adds a class name to the element.
   */
  className: _propTypes2.default.string,
  /**
   * Adds an id to the element.
   */
  id: _propTypes2.default.string
};

H1.defaultProps = {
  spacing: { bottom: 'lg' },
  className: null,
  id: null
};

H1.H2 = _H2.default;
H1.H3 = _H4.default;
H1.H4 = _H6.default;
H1.H5 = _H8.default;

/**
 * @component
 */
exports.default = H1;