/* eslint-disable import/export */

// Everything related to form in react-icecream, while not changed by react-icecream-form
// Re-exporting them makes react-icecream-form looks the same as react-icecream

export {
  useFormFooterCtx, normalizeFormLayout, FormFooter, FormTip,
  InputGroup, InputGroupItem,
  getTextCount,
  SelectOption, SelectOptionGroup,
  CheckAll
} from 'react-icecream'

export {
  FormLabelAlign, FormLabelColor, FormLabelVerticalAlign, FormLabelOptions, FormLayout, FormLayoutType,
  FormValidateStatus, FormValidateMessage, FormFooterProps, FormTipProps,
  InputGroupProps, InputGroupItemProps,
  TextAreaAutoSizeType,
  SelectValue, SelectOptionGroupStyle, SelectFetchFn,
  SelectOptionInfo, SelectOptionGroupInfo, SelectOptionItem, SelectOptionItems,
  SelectOptionProps, SelectOptionGroupProps,
  CheckboxValue,
  RadioValue,
  DateType
} from 'react-icecream'

export {
  TextInput, PasswordInput, NumberInput, TextArea, DatePicker, RangeDatePicker,
  Select, MultiSelect, CheckboxGroup, Checkbox, RadioGroup, Radio, Switch,
  Cascader, MultiCascader, AutoComplete, TagsInput, Slider, Upload, DragUpload,
  bindInput, bindCheckedInput
} from './Input'

export type {
  TextInputProps, PasswordInputProps, NumberInputProps, TextAreaProps, DatePickerProps, RangeDatePickerProps,
  SelectProps, MultiSelectProps, CheckboxProps, CheckboxGroupProps, RadioProps, RadioGroupProps, SwitchProps,
  CascaderProps, MultiCascaderProps, AutoCompleteProps, TagsInputProps, SliderProps, UploadProps, DragUploadProps
} from './Input'

export { default as Form, ModalForm, DrawerForm, useFormstateX } from './Form'
export type { Props as FormProps, ModalFormProps, DrawerFormProps } from './Form'

export { default as FormItem, bindFormItem, InputWrapper } from './FormItem'
export type { Props as FormItemProps } from './FormItem'
