/**
 * Copyright IBM Corp. 2019, 2023
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
 */
'use strict';

var iconHelpers = require('@carbon/icon-helpers');
var PropTypes = require('prop-types');
var React = require('react');

function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);

/**
 * Copyright IBM Corp. 2019, 2023
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */
const Icon = /*#__PURE__*/React__default["default"].forwardRef(function Icon({
  className,
  children,
  tabIndex,
  xmlns = 'http://www.w3.org/2000/svg',
  preserveAspectRatio = 'xMidYMid meet',
  ...rest
}, ref) {
  const {
    tabindex,
    ...attrs
  } = iconHelpers.getAttributes({
    ...rest,
    tabindex: tabIndex
  });
  const props = attrs;
  if (className) {
    props.className = className;
  }
  if (tabindex !== undefined && tabindex !== null) {
    if (typeof tabindex === 'number') {
      props.tabIndex = tabindex;
    } else {
      props.tabIndex = Number(tabIndex);
    }
  }
  if (ref) {
    props.ref = ref;
  }
  if (xmlns) {
    props.xmlns = xmlns;
  }
  if (preserveAspectRatio) {
    props.preserveAspectRatio = preserveAspectRatio;
  }
  return /*#__PURE__*/React__default["default"].createElement('svg', props, children);
});
Icon.displayName = 'Icon';
Icon.propTypes = {
  'aria-hidden': PropTypes__default["default"].oneOfType([PropTypes__default["default"].bool, PropTypes__default["default"].oneOf(['true', 'false'])]),
  'aria-label': PropTypes__default["default"].string,
  'aria-labelledby': PropTypes__default["default"].string,
  children: PropTypes__default["default"].node,
  className: PropTypes__default["default"].string,
  height: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]),
  preserveAspectRatio: PropTypes__default["default"].string,
  tabIndex: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]),
  viewBox: PropTypes__default["default"].string,
  width: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]),
  xmlns: PropTypes__default["default"].string
};

module.exports = Icon;
