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

export default {  
    children:PropTypes.node,
    variant:PropTypes.oneOf([
        ButtonGroupConstants.variant.solid,
        ButtonGroupConstants.variant.light,
        ButtonGroupConstants.variant.text,
    ]),
    direction:PropTypes.oneOf([
        ButtonGroupConstants.direction.horizontal,
        ButtonGroupConstants.direction.vertical
    ]),
    color:PropTypes.oneOf([
        ButtonGroupConstants.colors.primary,
        ButtonGroupConstants.colors.secondary,
        ButtonGroupConstants.colors.danger,
        ButtonGroupConstants.colors.success
    ]),
    gap:PropTypes.oneOf([
        ButtonGroupConstants.gap.none,
        ButtonGroupConstants.gap.sm,
        ButtonGroupConstants.gap.md,
        ButtonGroupConstants.gap.lg
    ]),
    disabled:PropTypes.bool,

    ...buttonAriaProps,
    ...customClassProps,
    ...automationProps,
    ...tagAttributeProps
}

export const defaultProps={
    [automationPropsName] : defaultCustomIds,
    [customClassPropName] : {},
    [tagAttributePropsName] : {}
}

export const propsDescription={
    children:"This defines the children of the component",
    variant: "This defines the Variant of the component",
    color: "This defines the color of of the component",
    gap: "This defines the gap between the child of the component",
    disabled: "This defines the disabled of the component",
    
    customClassName: "This defines the additional ClassName of the component",
    tagAttributeProps: "This defines the tagAttributes of the component",
    
    role : "This defines the role  of the component",

    customId:"This defines the dataId that are used by automation purpose",
}