import PropTypes from 'prop-types'

const propTypes ={
  children : PropTypes.any,
  bindEvent : PropTypes.string,
  cassName : PropTypes.object,
  defaultAriaShortCut : PropTypes.bool,
  customAriaShortCut : PropTypes.bool,
  isKeyNavigation : PropTypes.bool,
  autoFocus : PropTypes.bool,
  focusLoop : PropTypes.bool
}

const defaultPropTypes ={
  bindEvent : 'document',
  defaultAriaShortCut : true,
  customAriaShortCut : true,
  isKeyNavigation : true
}

const propsDescription={
  children : "All the children inside the whole App will be present here.",
  bindEvent : `If you give it like this 'document' All events used within the component will be bind in the document.
               If you give it like this 'customName' All events used within the component will be bind in the particular Element`,  
  defaultAriaShortCut : `If you give it like this 'True' = All non-semantic element's clicks below this component will be activated by the 'Enter' key on the keyboard (div & span Tag). 
                         If you give it like this 'False' = All non-semantic element's clicks below this component will not be activated by the keyboard.`,
  customAriaShortCut : `If you give it like this 'True' = All the children under this having the attribute 'data-aria-shortcut' will be Enabled
                        If you give it like this 'False' = All the children under this having the attribute 'data-aria-shortcut' will not be Enabled`,
  isKeyNavigation : `Which allows using the left & right & top & bottom arrow keys to move focus to the previous and next Elements.
                     If you give it like this 'True' = All the children under this having the attribute 'data-aria-navigation' will be Enabled
                     If you give it like this 'False' = All the children under this having the attribute 'data-aria-navigation' will not be Enabled`,
  autoFocus : "Whether to auto focus the first focusable element in the component on mount.",
  focusLoop : "The 'Tab' and 'Shift+Tab' keys will cycle through the focus loop tabbable elements but will not leave the focus loop",
  customClassNames : "The CustomClassName defines the classnames that can be directly given to the component"
}

export default propTypes;
export { defaultPropTypes,propsDescription };
