import { ChangeEvent, ImgHTMLAttributes, ReactElement } from 'react'; /** * Props for the 'Thumbnail' component. * * @author Malik Alimoekhamedov * @interface */ interface ThumbnailProps extends Omit, 'src'> { /** * When TRUE, will cast a shadow which will dynamically replicate * the main image instead of casting a blunt dark color. This provides * a feeling of subtle transparency and elevates the entire style of * this component. * * Default: FALSE */ readonly castBlurredShadow?: boolean; /** * When TRUE, will show a button that can trigger browser file uploading dialog. * * Default: FALSE */ readonly isInEditMode?: boolean; readonly uploadProps?: { readonly button?: { readonly icon?: ReactElement; readonly label?: string; }; readonly instructions?: string; readonly onUpload?: (event: ChangeEvent) => void; readonly progress?: number; }; /** * Accepts one image URL or an object containing low quality image URL * to be loaded first and a high quality image URL to load next. */ readonly src?: string | { lowQuality?: string; highQuality?: string; }; } interface LazyImageProps extends Omit, 'src'>, Pick { readonly placeholder?: string; } export type { ThumbnailProps, LazyImageProps };