UNPKG

bootstrap-styled-provider

Version:

BootstrapProvider and UtilityProvider components help you manage reset, global styles and original bootstrap class utilities

159 lines (114 loc) 7.72 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.propTypes = exports.defaultProps = undefined; var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _styledComponents = require('styled-components'); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _conditional = require('bootstrap-styled-mixins/lib/conditional'); var _align = require('bootstrap-styled-mixins/lib/utilities/align'); var _align2 = _interopRequireDefault(_align); var _background = require('bootstrap-styled-mixins/lib/utilities/background'); var _background2 = _interopRequireDefault(_background); var _borders = require('bootstrap-styled-mixins/lib/utilities/borders'); var _borders2 = _interopRequireDefault(_borders); var _clearfix = require('bootstrap-styled-mixins/lib/utilities/clearfix'); var _clearfix2 = _interopRequireDefault(_clearfix); var _cursor = require('bootstrap-styled-mixins/lib/utilities/cursor'); var _cursor2 = _interopRequireDefault(_cursor); var _display = require('bootstrap-styled-mixins/lib/utilities/display'); var _display2 = _interopRequireDefault(_display); var _flex = require('bootstrap-styled-mixins/lib/utilities/flex'); var _flex2 = _interopRequireDefault(_flex); var _float = require('bootstrap-styled-mixins/lib/utilities/float'); var _float2 = _interopRequireDefault(_float); var _position = require('bootstrap-styled-mixins/lib/utilities/position'); var _position2 = _interopRequireDefault(_position); var _reboot = require('bootstrap-styled-mixins/lib/utilities/reboot'); var _reboot2 = _interopRequireDefault(_reboot); var _screenreaders = require('bootstrap-styled-mixins/lib/utilities/screenreaders'); var _screenreaders2 = _interopRequireDefault(_screenreaders); var _sizing = require('bootstrap-styled-mixins/lib/utilities/sizing'); var _sizing2 = _interopRequireDefault(_sizing); var _spacing = require('bootstrap-styled-mixins/lib/utilities/spacing'); var _spacing2 = _interopRequireDefault(_spacing); var _text = require('bootstrap-styled-mixins/lib/utilities/text'); var _text2 = _interopRequireDefault(_text); var _transition = require('bootstrap-styled-mixins/lib/utilities/transition'); var _transition2 = _interopRequireDefault(_transition); var _visibility = require('bootstrap-styled-mixins/lib/utilities/visibility'); var _visibility2 = _interopRequireDefault(_visibility); var _theme = require('bootstrap-styled/lib/theme'); var _theme2 = _interopRequireDefault(_theme); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var defaultProps = exports.defaultProps = { theme: _theme2.default, utils: { align: true, background: true, border: true, clearfix: true, cursor: true, display: true, flex: true, float: true, position: true, screenreaders: true, sizing: true, spacing: true, text: true, transition: true, visibility: true } }; var propTypes = exports.propTypes = { /** Specified node element will be passed as children of `<UtilityProvider />` component. */ children: _propTypes2.default.node, /** Theme variables. */ theme: _propTypes2.default.object, /** Utilities variables. */ utils: _propTypes2.default.shape({ /** Toggles align theme variables. */ align: _propTypes2.default.bool, /** Toggles background theme variables. */ background: _propTypes2.default.bool, /** Toggles `<A />` link theme variables. */ a: _propTypes2.default.bool, /** Toggles border theme variables. */ border: _propTypes2.default.bool, /** Toggles clearfix theme variables. */ clearfix: _propTypes2.default.bool, /** Toggles display theme variables. */ display: _propTypes2.default.bool, /** Toggles flex theme variables. */ flex: _propTypes2.default.bool, /** Toggles float theme variables. */ float: _propTypes2.default.bool, /** Toggles position theme variables. */ position: _propTypes2.default.bool, /** Toggles screenreaders theme variables. */ screenreaders: _propTypes2.default.bool, /** Toggles sizing theme variables. */ sizing: _propTypes2.default.bool, /** Toggles spacing theme variables. */ spacing: _propTypes2.default.bool, /** Toggles text theme variables. */ text: _propTypes2.default.bool, /** Toggles transition theme variables. */ transition: _propTypes2.default.bool, /** Toggles visibility theme variables. */ visibility: _propTypes2.default.bool }) }; var UtilityProvider = _styledComponents2.default.div.withConfig({ displayName: 'UtilityProvider' })(['', ''], function (props) { return '\n ' + _reboot2.default.body(props.theme['$font-family-base'], props.theme['$font-size-base'], props.theme['$font-weight-base'], props.theme['$line-height-base'], props.theme['$body-color'], props.theme['$body-bg']) + '\n ' + (0, _conditional.ifThen)(props.utils.align, _align2.default.getAlignUtilities()) + '\n ' + (0, _conditional.ifThen)(props.utils.background, _background2.default.getBackgroundUtilities(props.theme['$enable-hover-media-query'], props.theme['$brand-primary'], props.theme['$brand-success'], props.theme['$brand-info'], props.theme['$brand-warning'], props.theme['$brand-danger'], props.theme['$brand-inverse'], props.theme['$gray-lightest'])) + '\n ' + (0, _conditional.ifThen)(props.utils.border, _borders2.default.getBordersUtilities(props.theme['$enable-rounded'], props.theme['$border-radius'])) + '\n ' + (0, _conditional.ifThen)(props.utils.clearfix, _clearfix2.default.getClearfixUtilities()) + '\n ' + (0, _conditional.ifThen)(props.utils.cursor, _cursor2.default.getCursorUtilities()) + '\n ' + (0, _conditional.ifThen)(props.utils.display, _display2.default.getDisplayUtilities(props.theme['$grid-breakpoints'])) + '\n ' + (0, _conditional.ifThen)(props.utils.flex, _flex2.default.getFlexUtilities(props.theme['$grid-breakpoints'])) + '\n ' + (0, _conditional.ifThen)(props.utils.float, _float2.default.getFloatUtilities(props.theme['$grid-breakpoints'])) + '\n ' + (0, _conditional.ifThen)(props.utils.screenreaders, _screenreaders2.default.getScreenReadersUtilities()) + '\n ' + (0, _conditional.ifThen)(props.utils.spacing, _spacing2.default.getSpacingUtilities(props.theme['$grid-breakpoints'], props.theme['$spacers'] // eslint-disable-line dot-notation )) + '\n ' + (0, _conditional.ifThen)(props.utils.text, _text2.default.getTextUtilities(props.theme['$enable-hover-media-query'], props.theme['$grid-breakpoints'], props.theme['$font-weight-normal'], props.theme['$font-weight-bold'], props.theme['$text-muted'], props.theme['$brand-primary'], props.theme['$brand-success'], props.theme['$brand-info'], props.theme['$brand-warning'], props.theme['$brand-danger'], props.theme['$gray-dark'])) + '\n ' + (0, _conditional.ifThen)(props.utils.transition, _transition2.default.getTransitionUtilities(props.theme['$enable-transitions'], props.theme['$transition-fade'], props.theme['$transition-collapse'])) + '\n ' + (0, _conditional.ifThen)(props.utils.visibility, _visibility2.default.getVisibilityUtilities(props.theme['$grid-breakpoints'])) + '\n ' + (0, _conditional.ifThen)(props.utils.position, _position2.default.getPositionUtilities(props.theme['$zindex-fixed'], props.theme['$zindex-sticky'])) + '\n ' + (0, _conditional.ifThen)(props.utils.sizing, _sizing2.default.getSizingUtilities(props.theme.$sizes)) + ' // eslint-disable-line dot-notation\n '; }); UtilityProvider.defaultProps = defaultProps; UtilityProvider.propTypes = propTypes; /** @component */ exports.default = UtilityProvider;