import React from 'react'; import { FontStyleTypeModel, ThemeTypesModel } from '../../Themes/theme_types'; import { Color, Size } from '../../types'; interface ContextMenuItemProps { isActive: boolean; size: Size.s | Size.m | Size.l; label: string; className?: string; isMouseClicked?: boolean; controlType: 'checkbox' | 'toggle' | 'radio' | 'icon' | 'none'; isIndeterminate?: boolean; counter?: string; focusOutline?: boolean; color?: Color.green | Color.blue | Color.dark; image?: string; aria?: React.AriaAttributes; tabIndex?: number; role?: React.AriaRole; icon?: string; children?: React.ReactElement; theme?: ThemeTypesModel; isInverse: boolean; isDisabled?: boolean; selectedItem: () => void; mouseDown?: () => void; } interface PictureContainerProps { styled: ModelView; size: Size.s | Size.m | Size.l; } interface ControlContainerProps { styled: ModelView; size: Size.s | Size.m | Size.l; } interface ContextElementProps { styled: ModelView; size: Size.s | Size.m | Size.l; higlightBg: boolean; focusOutline: boolean; themeType: 'day' | 'night'; byMouseClicked: boolean; color: Color.green | Color.blue | Color.dark | 'defaultGray'; } interface CounterContainerProps { size: Size.s | Size.m | Size.l; } interface stateInterface { backgroundColor: string; fontColor: string; } interface styleParams { green: { default: stateInterface; hover: stateInterface; click: stateInterface; selected: stateInterface; }; blue: { default: stateInterface; hover: stateInterface; click: stateInterface; selected: stateInterface; }; dark: { default: stateInterface; hover: stateInterface; click: stateInterface; selected: stateInterface; }; defaultGray: { default: stateInterface; hover: stateInterface; click: stateInterface; selected: stateInterface; }; } interface controlInterface { top: number; marginLeft: number; marginRight: number; } interface itemInterface { height: number; paddingTop: number; paddingBottom: number; paddingRight: number; paddingLeft: number; } interface sizeInterface { frontElements: controlInterface; icon: { top: number; width: number; height: number; }; item: itemInterface; font: FontStyleTypeModel; } interface ModelView { style: { day: styleParams; night: styleParams; }; size: { s: sizeInterface; m: sizeInterface; l: sizeInterface; }; } export type { ContextMenuItemProps, PictureContainerProps, ControlContainerProps, ContextElementProps, CounterContainerProps, ModelView, };