import * as React from 'react'; import type { AnchorHTMLAttributesOnly, HasDataAttribute, HasRootRef, LiteralUnion } from '../../types'; import { ImageBaseBadge, type ImageBaseBadgeProps } from './ImageBaseBadge/ImageBaseBadge'; import { type FloatElementIndentation, type FloatElementPlacement, ImageBaseFloatElement, type ImageBaseFloatElementProps } from './ImageBaseFloatElement/ImageBaseFloatElement'; import { ImageBaseOverlay, type ImageBaseOverlayProps } from './ImageBaseOverlay/ImageBaseOverlay'; import { ImageBaseContext } from './context'; import type { ImageBaseContextProps, ImageBaseExpectedIconProps, ImageBaseSize } from './types'; export type { ImageBaseSize, ImageBaseExpectedIconProps, ImageBaseBadgeProps, ImageBaseOverlayProps, ImageBaseContextProps, ImageBaseFloatElementProps, FloatElementPlacement, FloatElementIndentation, }; export { getBadgeIconSizeByImageBaseSize, getFallbackIconSizeByImageBaseSize, getOverlayIconSizeByImageBaseSize, } from './helpers'; export { ImageBaseContext }; export interface ImageBaseProps extends React.ImgHTMLAttributes, AnchorHTMLAttributesOnly, HasRootRef { /** * Задаёт размер картинки. * * Используйте размеры заданные дизайн-системой `16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 56 | 64 | 72 | 80 | 88 | 96`. * * > ⚠️ Использование кастомного размера – это пограничный кейс. */ size?: LiteralUnion; /** * Ширина изображения. */ widthSize?: number | string; /** * Высота изображения. */ heightSize?: number | string; /** * Отключает обводку. */ noBorder?: boolean; /** * Фолбек на случай, если картинка не прогрузилась. * * > 📝 Нужный для `` размер можно узнать из функции `getFallbackIconSizeByImageBaseSize()`. * * > Предпочтительней использовать иконки из `@vkontakte/icons`. * * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon`. Или же * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы * > использовали иконку. * * > ⚠️ Может перекрывать `children`. */ fallbackIcon?: React.ReactElement; /** * Отключает фон, заданный по умолчанию. Полезен для отображения картинок с прозрачностью. * @since 5.10.0 */ withTransparentBackground?: boolean; /** * Пользовательское значения стиля object-fit * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-fit). */ objectFit?: React.CSSProperties['objectFit']; /** * Пользовательское значения стиля object-position * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-position). */ objectPosition?: React.CSSProperties['objectPosition']; /** * Флаг для сохранения пропорций картинки. * Для корректной работы необходимо задать размеры хотя бы одной стороны картинки. */ keepAspectRatio?: boolean; /** * Смотри https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/elementtiming. */ elementTiming?: string; /** * Пользовательское значения стиля filter * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/filter). */ filter?: React.CSSProperties['filter']; /** * Свойства, которые можно прокинуть внутрь компонента: * - `img`: свойства для прокидывания в тег ``;. */ slotProps?: { img?: React.ComponentProps<'img'> & HasRootRef & HasDataAttribute; }; /** * @deprecated Since 7.9.0. Будет удалено в v9. Используйте `slotProps={ img: { getRootRef: ... } }`. */ getRef?: React.Ref; } /** * @see https://vkui.io/components/image-base */ export declare const ImageBase: React.FC & { Badge: typeof ImageBaseBadge; Overlay: typeof ImageBaseOverlay; FloatElement: typeof ImageBaseFloatElement; }; //# sourceMappingURL=ImageBase.d.ts.map