import _keys from "lodash/fp/keys";
import PropTypes from 'prop-types';
import { ICONS } from '../../util/button-icons';
const faIconPropTypes = {
  name: PropTypes.string.isRequired,
  color: PropTypes.string,
  backgroundColor: PropTypes.string,
  size: PropTypes.number,
  customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))
};
export const iconPropTypes = {
  position: PropTypes.oneOf(['right', 'left']),
  type: PropTypes.oneOf(_keys(ICONS)),
  faIcon: PropTypes.shape(faIconPropTypes)
};
const propTypes = {
  type: PropTypes.oneOf(['primary', 'secondary', 'tertiary', 'text', 'dangerous']),
  usage: PropTypes.oneOf(['button', 'submit', 'reset']),
  label: PropTypes.string,
  content: PropTypes.node,
  'aria-label': PropTypes.string,
  tooltipText: PropTypes.string,
  tooltipPlacement: PropTypes.oneOf(['left', 'right', 'top', 'bottom']),
  'data-name': PropTypes.string,
  'data-testid': PropTypes.string,
  icon: PropTypes.shape(iconPropTypes),
  onClick: PropTypes.func,
  link: PropTypes.shape({
    href: PropTypes.string,
    download: PropTypes.bool,
    target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])
  }),
  hoverBackgroundColor: PropTypes.string,
  hoverColor: PropTypes.string,
  disabled: PropTypes.bool,
  className: PropTypes.string,
  customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))
};
export default propTypes;
//# sourceMappingURL=types.js.map