import React from 'react'; import { FontStyleTypeModel, ThemeTypesModel } from '../../Themes/theme_types'; import { Color } from '../../types'; interface onChangeObject { label: string; value: boolean; } interface ToggleType { value: boolean; color?: Color.green | Color.blue | Color.dark; theme?: ThemeTypesModel; label?: string; avoidFocus?: boolean; className?: string; isInverse?: boolean; isProcessing?: boolean; isDisabled?: boolean; isError?: boolean; isGrouped?: boolean; isRequired?: boolean; errorState?: 'default' | 'focus out'; onFocus?: (e: React.FocusEvent) => void; onBlur?: (e: React.FocusEvent) => void; onChangeHandler?: (val: onChangeObject) => void; onProcessing?: () => Promise; } interface ContainerTypes { theme: ThemeTypesModel; styled: ModelView; color: Color.green | Color.blue | Color.dark; label?: string; daytime: 'night' | 'day'; focused: boolean; isError?: boolean; selected: boolean; processing?: boolean; disabled?: boolean; } interface ToggleTypes { styled: ModelView; } interface ToggleButtonTypes { styled: ModelView; selected: boolean; } interface LabelTypes { isGrouped?: boolean; theme: ThemeTypesModel; styled: ModelView; isRequired?: ToggleType['isRequired']; } interface argFunc { default: string; hover: string; border?: number; } interface colorParams { backgroundColor: string; borderColor: string; fontColor: string; } interface sizeParams { defaultBorder?: number; selectedBorder?: number; width: number; height: number; } interface colorStateType { default: colorParams; hover: colorParams; selected: colorParams; hoverSelected: colorParams; processing: { stroke: string; }; } interface colorType { day: { blue: colorStateType; dark: colorStateType; green: colorStateType; error: { default: colorParams; hover: colorParams; }; }; night: { blue: colorStateType; dark: colorStateType; green: colorStateType; error: { default: colorParams; hover: colorParams; }; }; } interface ModelView { style: colorType; size: { label: sizeParams; toggle: sizeParams; }; font: FontStyleTypeModel; } export type { ToggleType, ContainerTypes, ToggleTypes, ToggleButtonTypes, LabelTypes, argFunc, ModelView, };