import { TColors, TModalSizes, TSizes } from "../types/global"; import { IButtonThemeProps } from "../components/button/types"; import { IIconButtonThemeProps } from "../components/iconButton/types"; import { IInputThemeProps } from "../components/input/types"; import { IChipThemeProps } from "../components/chip/types"; import { ICodeInputThemeProps } from "../components/codeInput/types"; import { ITextareaThemeProps } from "../components/textarea/types"; import { IHintThemeProps } from "../components/hint/types"; import { ITooltipThemeProps } from "../components/tooltip/types"; import { IDropdownThemeProps } from "../components/dropdown/types"; import { ISwitchThemeProps } from "../components/switch/types"; import { IModalThemeProps } from "../components/modal/types"; export interface IThemeContext { global?: { color?: TColors; direction?: "ltr" | "rtl" | null; transition?: string; borderRadius?: string; }; button?: { defaultProps?: IButtonThemeProps; styles?: { base?: string; colors?: Partial>; sizes?: Partial>; variants?: Partial>; }; }; chip?: { defaultProps?: IChipThemeProps; styles?: { base?: string; colors?: Partial>; sizes?: Partial>; variants?: Partial>; }; }; codeInput?: { defaultProps?: ICodeInputThemeProps; styles?: { base?: string; colors?: Partial>; sizes?: Partial>; variants?: Partial>; }; }; dropdown?: { defaultProps?: IDropdownThemeProps; styles?: { base?: string; colors?: Partial>; sizes?: Partial>; }; }; hint?: { defaultProps?: IHintThemeProps; styles?: { base?: string; colors?: Partial>; }; }; iconButton?: { defaultProps?: IIconButtonThemeProps; styles?: { base?: string; colors?: Partial>; sizes?: Partial>; variants?: Partial>; }; }; input?: { defaultProps?: IInputThemeProps; styles?: { base?: string; colors?: Partial>; sizes?: Partial>; variants?: Partial>; }; }; modal?: { defaultProps?: IModalThemeProps; styles?: { base?: string; sizes?: Partial>; }; }; passwordInput?: { defaultProps?: IInputThemeProps; }; switch?: { defaultProps?: ISwitchThemeProps; styles?: { base?: string; colors?: Partial>; sizes?: Partial>; }; }; textarea?: { defaultProps?: ITextareaThemeProps; styles?: { base?: string; colors?: Partial>; sizes?: Partial>; variants?: Partial>; }; }; tooltip?: { defaultProps?: ITooltipThemeProps; styles?: { base?: string; }; }; } export type TThemeAction = (data: IThemeContext) => void;