text: "use strict";
  
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  
  exports.__esModule = true;
  exports.default = void 0;
  
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  
  var _classnames = _interopRequireDefault(require("classnames"));
  
  var _react = _interopRequireDefault(require("react"));
  
  var _createWithBsPrefix = _interopRequireDefault(require("./createWithBsPrefix"));
  
  var _ThemeProvider = require("./ThemeProvider");
  
  var _excluded = ["bsPrefix", "size", "hasValidation", "className", "as"];
  var InputGroupAppend = (0, _createWithBsPrefix.default)('input-group-append');
  var InputGroupPrepend = (0, _createWithBsPrefix.default)('input-group-prepend');
  var InputGroupText = (0, _createWithBsPrefix.default)('input-group-text', {
    Component: 'span'
  });
  
  var InputGroupCheckbox = function InputGroupCheckbox(props) {
    return /*#__PURE__*/_react.default.createElement(InputGroupText, null, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
      type: "checkbox"
    }, props)));
  };
  
  var InputGroupRadio = function InputGroupRadio(props) {
    return /*#__PURE__*/_react.default.createElement(InputGroupText, null, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
      type: "radio"
    }, props)));
  };
  
  /**
   *
   * @property {InputGroupAppend} Append
   * @property {InputGroupPrepend} Prepend
   * @property {InputGroupText} Text
   * @property {InputGroupRadio} Radio
   * @property {InputGroupCheckbox} Checkbox
   */
  var InputGroup = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
    var bsPrefix = _ref.bsPrefix,
        size = _ref.size,
        hasValidation = _ref.hasValidation,
        className = _ref.className,
        _ref$as = _ref.as,
        Component = _ref$as === void 0 ? 'div' : _ref$as,
        props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
    bsPrefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'input-group');
    return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
      ref: ref
    }, props, {
      className: (0, _classnames.default)(className, bsPrefix, size && bsPrefix + "-" + size, hasValidation && 'has-validation')
    }));
  });
  
  InputGroup.displayName = 'InputGroup';
  var InputGroupWithExtras = (0, _extends2.default)({}, InputGroup, {
    Text: InputGroupText,
    Radio: InputGroupRadio,
    Checkbox: InputGroupCheckbox,
    Append: InputGroupAppend,
    Prepend: InputGroupPrepend
  });
  var _default = InputGroupWithExtras;
  exports.default = _default;
  module.exports = exports["default"];