(function (global, factory) {
  if (typeof define === "function" && define.amd) {
    define(['exports', 'styled-components'], factory);
  } else if (typeof exports !== "undefined") {
    factory(exports, require('styled-components'));
  } else {
    var mod = {
      exports: {}
    };
    factory(mod.exports, global.styledComponents);
    global.flex = mod.exports;
  }
})(this, function (exports, _styledComponents) {
  'use strict';

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

  var _styledComponents2 = _interopRequireDefault(_styledComponents);

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

  var _templateObject = _taggedTemplateLiteral(['\n  display: flex;\n\n  \n  ', '\n  ', '\n  ', '\n  ', '\n\n  ', '\n\n  ', '\n  ', '\n  ', '\n\n\n  ', '\n  ', '\n  ', '\n\n  ', '\n  ', '\n\n  ', '\n  ', '\n  ', '\n\n  ', '\n  ', '\n\n  ', '\n\n  ', '\n  ', '\n  ', '\n  ', '\n\n'], ['\n  display: flex;\n\n  \n  ', '\n  ', '\n  ', '\n  ', '\n\n  ', '\n\n  ', '\n  ', '\n  ', '\n\n\n  ', '\n  ', '\n  ', '\n\n  ', '\n  ', '\n\n  ', '\n  ', '\n  ', '\n\n  ', '\n  ', '\n\n  ', '\n\n  ', '\n  ', '\n  ', '\n  ', '\n\n']),
      _templateObject2 = _taggedTemplateLiteral([' flex-direction: row; '], [' flex-direction: row; ']),
      _templateObject3 = _taggedTemplateLiteral([' flex-direction: row-reverse; '], [' flex-direction: row-reverse; ']),
      _templateObject4 = _taggedTemplateLiteral([' flex-direction: column; '], [' flex-direction: column; ']),
      _templateObject5 = _taggedTemplateLiteral([' flex-direction: column-reverse; '], [' flex-direction: column-reverse; ']),
      _templateObject6 = _taggedTemplateLiteral(['display: inline-flex;'], ['display: inline-flex;']),
      _templateObject7 = _taggedTemplateLiteral(['flex-wrap: wrap;'], ['flex-wrap: wrap;']),
      _templateObject8 = _taggedTemplateLiteral(['flex-wrap: wrap-reverse;'], ['flex-wrap: wrap-reverse;']),
      _templateObject9 = _taggedTemplateLiteral(['flex-wrap: nowrap;'], ['flex-wrap: nowrap;']),
      _templateObject10 = _taggedTemplateLiteral(['justify-content: flex-start;'], ['justify-content: flex-start;']),
      _templateObject11 = _taggedTemplateLiteral(['justify-content: center;'], ['justify-content: center;']),
      _templateObject12 = _taggedTemplateLiteral(['justify-content: flex-end;'], ['justify-content: flex-end;']),
      _templateObject13 = _taggedTemplateLiteral(['justify-content: space-between;'], ['justify-content: space-between;']),
      _templateObject14 = _taggedTemplateLiteral(['justify-content: space-around;'], ['justify-content: space-around;']),
      _templateObject15 = _taggedTemplateLiteral(['align-items: flex-start;'], ['align-items: flex-start;']),
      _templateObject16 = _taggedTemplateLiteral(['align-items: center;'], ['align-items: center;']),
      _templateObject17 = _taggedTemplateLiteral(['align-items: flex-end;'], ['align-items: flex-end;']),
      _templateObject18 = _taggedTemplateLiteral(['align-items: stretch;'], ['align-items: stretch;']),
      _templateObject19 = _taggedTemplateLiteral(['align-items: baseline;'], ['align-items: baseline;']),
      _templateObject20 = _taggedTemplateLiteral(['\n    flex: 1;\n  '], ['\n    flex: 1;\n  ']),
      _templateObject21 = _taggedTemplateLiteral(['\n    align-self: flex-start;\n  '], ['\n    align-self: flex-start;\n  ']),
      _templateObject22 = _taggedTemplateLiteral(['\n    align-self: center;\n  '], ['\n    align-self: center;\n  ']),
      _templateObject23 = _taggedTemplateLiteral(['\n    align-self: flex-end;\n  '], ['\n    align-self: flex-end;\n  ']),
      _templateObject24 = _taggedTemplateLiteral(['\n    align-self: baseline;\n  '], ['\n    align-self: baseline;\n  ']);

  function _taggedTemplateLiteral(strings, raw) {
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }

  var Flex = _styledComponents2.default.div(_templateObject, function (props) {
    return props.row && (0, _styledComponents.css)(_templateObject2);
  }, function (props) {
    return props.rowrev && (0, _styledComponents.css)(_templateObject3);
  }, function (props) {
    return props.col && (0, _styledComponents.css)(_templateObject4);
  }, function (props) {
    return props.colrev && (0, _styledComponents.css)(_templateObject5);
  }, function (props) {
    return props.inline && (0, _styledComponents.css)(_templateObject6);
  }, function (props) {
    return props.wrap && (0, _styledComponents.css)(_templateObject7);
  }, function (props) {
    return props.wraprev && (0, _styledComponents.css)(_templateObject8);
  }, function (props) {
    return props.nowrap && (0, _styledComponents.css)(_templateObject9);
  }, function (props) {
    return props.left && (0, _styledComponents.css)(_templateObject10);
  }, function (props) {
    return props.center && (0, _styledComponents.css)(_templateObject11);
  }, function (props) {
    return props.right && (0, _styledComponents.css)(_templateObject12);
  }, function (props) {
    return props.justify && (0, _styledComponents.css)(_templateObject13);
  }, function (props) {
    return props.spaced && (0, _styledComponents.css)(_templateObject14);
  }, function (props) {
    return props.top && (0, _styledComponents.css)(_templateObject15);
  }, function (props) {
    return props.middle && (0, _styledComponents.css)(_templateObject16);
  }, function (props) {
    return props.bottom && (0, _styledComponents.css)(_templateObject17);
  }, function (props) {
    return props.stretch && (0, _styledComponents.css)(_templateObject18);
  }, function (props) {
    return props.baseline && (0, _styledComponents.css)(_templateObject19);
  }, function (props) {
    return props.item && (0, _styledComponents.css)(_templateObject20);
  }, function (props) {
    return props.item && props.top && (0, _styledComponents.css)(_templateObject21);
  }, function (props) {
    return props.item && props.middle && (0, _styledComponents.css)(_templateObject22);
  }, function (props) {
    return props.item && props.bottom && (0, _styledComponents.css)(_templateObject23);
  }, function (props) {
    return props.item && props.baseline && (0, _styledComponents.css)(_templateObject24);
  });

  Flex.displayName = 'Flex';
  exports.default = Flex;
});