import PropTypes from 'prop-types';
import tagAriaProps from './Tag.ariaPropTypes';
import tagAttributeProps,{tagAttributePropsName} from "../../propTypes/htmlAttributes.propTypes"
import automationProps, {automationPropsName} from '../../propTypes/automation.propTypes';
import customClassProps, {customClassPropName} from '../../propTypes/customClassName.propTypes';
import defaultCustomIds from "./Tag.customIds";
import constantProps from "./Tag.constantProps"

export default {
  text : PropTypes.string,
  title : PropTypes.string,
  children : PropTypes.any,
  textEllipsis : PropTypes.bool,

  variant :PropTypes.oneOf(
    [
      constantProps.variant.contained,
      constantProps.variant.outlined
    ]
  ),

  color : PropTypes.oneOf(
    [
      constantProps.color.primary,
      constantProps.color.secondary,
      constantProps.color.success,
      constantProps.color.warning,
      constantProps.color.danger
    ]
  ),

  size : PropTypes.oneOf(
    [
      constantProps.size.small,
      constantProps.size.medium,
      constantProps.size.large,
      constantProps.size.xLarge,
      constantProps.size.stretch
    ]
  ),
  shape : PropTypes.oneOf(
    [
      constantProps.shape.rectangle,
      constantProps.shape.rounded,
      constantProps.shape.oval
    ]
  ),

  disabled : PropTypes.bool,

  startIcon : PropTypes.any,
  endIcon : PropTypes.any,

  ...customClassProps,
  ...automationProps,

  ...tagAriaProps,
  ...tagAttributeProps

};

export const defaultProps = {
  size : constantProps.size.medium,
  shape : constantProps.shape.rounded,
  color : constantProps.color.primary,
  variant : constantProps.variant.contained,

  disabled : false,

  [automationPropsName]: defaultCustomIds,
  [customClassPropName]: {},
  [tagAttributePropsName] : {}
}

export const propsDescription={}