import React from 'react'; import { FontStyleTypeModel, ThemeTypesModel } from '../../../Themes/theme_types'; interface DateElementProps { fixedWidth: boolean; view: 'mobile' | 'desktop'; isCurrentMonth: boolean; isButton: boolean; isRange?: boolean; isDayOfWeek?: boolean; type: 'smRect' | 'bigRect'; inverse?: boolean; ariaLabel?: string; selected?: boolean; allowFocusBorder?: boolean; isToday?: boolean; icon?: string; children?: JSX.Element; isAvailable: boolean; changeFocus?: (val: 'ArrowRight' | 'ArrowLeft' | 'ArrowUp' | 'ArrowDown') => void; isFocused?: boolean; isDisabled?: boolean; aria?: React.AriaAttributes; theme?: ThemeTypesModel; keyDown?: (e: React.KeyboardEvent) => void; hoverElement?: () => void; hoverLeave?: () => void; className?: string; clicked?: () => void; } interface themeItem { fontColor: { currentMonth: string; selected: string; dayOfWeek: string; }; border: { currentDate: string; }; background: { default: { initial: string; hover: string; pressed: string; }; inRange: { initial: string; hover: string; pressed: string; }; selected: { initial: string; hover: string; pressed: string; }; }; } interface Rect { desktop: { paddingTop: number; paddingBottom: number; paddingLeft: number; paddingRight: number; width: number; height: number; }; mobile: { paddingTop: number; paddingBottom: number; paddingLeft: number; paddingRight: number; width: number; height: number; }; } interface ModelView { style: { day: themeItem; night: themeItem; }; size: { font: FontStyleTypeModel; smRect: Rect; bigRect: Rect; }; } interface WrapperBtnProps { isFocused?: boolean; available: boolean; view: 'mobile' | 'desktop'; size: 'bigRect' | 'smRect'; isCurrentMonth?: boolean; allowFocusBorder?: boolean; isToday?: boolean; inverse?: boolean; styled: ModelView; isRange?: boolean; selected?: boolean; fixedWidth: boolean; dayTime: 'day' | 'night'; } interface WrapperDivProps { view: 'mobile' | 'desktop'; styled: ModelView; size: 'bigRect' | 'smRect'; fixedWidth: boolean; } interface TextProps { size: 'bigRect' | 'smRect'; view: 'mobile' | 'desktop'; styled: ModelView; inverse?: boolean; isIcon?: boolean; selected?: boolean; dayOfWeek?: boolean; isRange?: boolean; dayTime: 'day' | 'night'; } export type { DateElementProps, ModelView, WrapperBtnProps, TextProps, WrapperDivProps };