/// export declare type ElementPropValueMethod = (value: any, theme: MoTheme) => string; export declare type EPV = T | [T, boolean]; export declare type JSXChild = string | JSX.Element; export declare type JSXChildren = JSXChild | JSXChild[]; export declare type Value = string | number; export declare type ValueMix = Value | Value[]; export declare type SetValue = ((value: T) => void) | React.Dispatch>; export interface ThemeVariable { [key: string]: T; } export interface JSXElementProps { [key: string]: any; } export interface Keys { [key: string]: string | ElementPropValueMethod; } export interface VariantOptions { util?: boolean; alert?: boolean; breadcrumb?: boolean; button?: boolean; dropdown?: boolean; form?: boolean; pagination?: boolean; popover?: boolean; progressBar?: boolean; table?: boolean; waveEffect?: boolean; } export interface ColorObject { color: number[]; valpha: number; isDark: () => boolean; isLight: () => boolean; hex: () => ColorObject; rgb: () => ColorObject; hsl: () => ColorObject; darken: (value: number) => ColorObject; alpha: (value: number) => ColorObject; } export interface Grid { small: number; medium: number; large: number; xlarge: number; } export interface Variant { main: string; font?: string; dark?: string; darker?: string; darkest?: string; light?: string; lighter?: string; lightest?: string; shadow?: string; alert?: { background?: string; border?: string; font?: string; fontFill?: string; linkFont?: string; hr?: string; }; breadcrumb?: { background?: string; font?: string; fontFill?: string; }; button?: { background?: string; placeholder?: string; placeholderFill?: string; }; dropdown?: { background?: string; font?: string; }; form?: { radioColor?: string; radioBorder?: string; inputBackground?: string; inputBorder?: string; inputFont?: string; inputPlaceholder?: string; inputPlaceholderFill?: string; }; pagination?: { background?: string; border?: string; font?: string; }; popover?: { background?: string; border?: string; headerBackground?: string; headerBorder?: string; }; progressBar?: { background?: string; backgroundFill?: string; backgroundAlt?: string; }; table?: { background?: string; border?: string; font?: string; stripedBackground?: string; stripedFont?: string; hoverBackground?: string; hoverFont?: string; }; waveEffect?: { color?: string; }; } export interface Coordinator { x: T; y: T; } export interface MoTheme { variant: { [key: string]: Variant; }; isMobile: boolean; zIndex: ThemeVariable; length: ThemeVariable; radius: ThemeVariable; color: ThemeVariable; fontFamily: ThemeVariable; fontWeight: ThemeVariable; fontSize: ThemeVariable; iconSize: ThemeVariable; alert: { padding: ThemeVariable & { xHalf: string; }>; radius: string; fontSize: ThemeVariable; linkFontWeight: string; }; badge: { fixedSize: ThemeVariable; padding: ThemeVariable>; margin: Coordinator; radius: ThemeVariable; fontSize: ThemeVariable; }; breadcrumb: { padding: Coordinator; radius: ThemeVariable; fontSize: string; disabledOpacity: number; transition: string; }; button: { fixedSize: ThemeVariable; padding: ThemeVariable & { xHalf: string; }>; radius: ThemeVariable; fontSize: ThemeVariable; disabledOpacity: number; transition: string; }; colorPicker: { colorLight: string; colorDark: string; pickerBoxShadow: string; draggerBoxShadow: string; paletteIconColor: string; paletteBorderColor: string; }; datePicker: { background: string; font: string; inactive: string; arrowActive: string; }; dropdown: { padding: ThemeVariable; margin: ThemeVariable>; radius: ThemeVariable; fontSize: ThemeVariable; disabledOpacity: number; }; fixedBox: { boxShadow: string; }; form: { disabledOpacity: number; radioSpanSpace: string; radioSpanFontSize: ThemeVariable; inputPadding: ThemeVariable>; inputRadius: ThemeVariable; inputFontSize: ThemeVariable; optionPadding: ThemeVariable; optionMargin: ThemeVariable>; optionFontSize: ThemeVariable; }; grid: { breakpoint: Grid; containerWidth: Grid; columnGap: string; }; loading: { size: ThemeVariable; animation: string; }; modal: { width: ThemeVariable; borderColor: string; borderRadius: string; backgroundColor: string; fontColor: string; modalContentPadding: Coordinator; modalContentBorderColor: string; modalFooterPadding: Coordinator; modalFooterContentMargin: Coordinator; }; overlay: { space: string; background: string; }; pagination: { padding: Coordinator; margin: Coordinator; fixedSize: string; radius: ThemeVariable; fontSize: string; disabledOpacity: number; transition: string; }; popover: { radius: string; fontSize: ThemeVariable; headerPadding: ThemeVariable>; bodyPadding: ThemeVariable>; }; progressBar: { radius: ThemeVariable; transitionType: string; stripedAnimationType: string; }; table: { padding: ThemeVariable; fontSize: ThemeVariable; stripedOrientation: string; hoverTransition: string; }; tooltip: { padding: ThemeVariable>; radius: string; fontSize: ThemeVariable; }; waveEffect: { transition: string; }; } export interface SizeStrictProps { size: string; sizeSm: string; sizeMd: string; sizeLg: string; sizeXl: string; }