import { Component } from 'react'; import { CSSObject } from 'styled-components'; import { CSSProperties } from 'react'; import { DefaultTheme } from 'styled-components'; import { DragEvent as DragEvent_2 } from 'react'; import { DragEventHandler } from 'react'; import { FastOmit } from 'styled-components'; import { FC } from 'react'; import { IStyledComponentBase } from 'styled-components/dist/types'; import { Placement } from '@floating-ui/react'; import { PropsWithChildren } from 'react'; import { ReactNode } from 'react'; import { Ref } from 'react'; import { RuleSet } from 'styled-components'; declare type addFontProps = { font?: FontSizeStylesProps; }; declare type addFontProps_2 = { font?: FontSizeStylesProps_2; }; declare interface addSXProps { sx?: SXProps; } declare interface addSXProps_2 { sx?: SXProps_2; } declare type addSXTypographyProps = { sxTypography?: TypographySXProps; }; export declare const addTooltipBoxSize: RuleSet; export declare const addTooltipBoxSizeConstructor: (props: IThemeSizePropertyDefault) => RuleSet; export declare const DEFAULT_TOOLTIP_OFFSET_FALLBACK: number; export declare const DEFAULT_TOOLTIP_PLACEMENT_FALLBACK: Placement; declare type FontSizeStylesProps = { size?: TypographyDataProps['size']; weight?: TypographyDataProps['weight']; family?: TypographyDataProps['family']; height?: TypographyDataProps['height']; }; declare type FontSizeStylesProps_2 = { size?: TypographyDataProps_2['size']; weight?: TypographyDataProps_2['weight']; family?: TypographyDataProps_2['family']; height?: TypographyDataProps_2['height']; }; declare type IThemeDevice = 'default' | 'tablet' | 'mobile'; declare type IThemeDevice_2 = 'default' | 'tablet' | 'mobile'; declare type IThemeFontFamily = 'Inter' | 'Roboto' | 'Work Sans' | 'Roboto Mono' | 'Manrope'; declare type IThemeFontFamily_2 = 'Inter' | 'Roboto' | 'Work Sans' | 'Roboto Mono' | 'Manrope'; declare type IThemeGenre = Record, IThemeGenreTypeDefault>; declare type IThemeGenreName = 'gray' | 'grayBorder' | 'black' | 'blackBorder' | 'product' | 'productBorder' | 'white' | 'greenTransparent' | 'redTransparent' | 'yellowTransparent' | 'realebail-product' | 'realebail-gray' | 'realebail-white' | 'bustmarket-gray-violet' | 'bustmarket-gray' | 'bustmarket-violet' | 'bustmarket-white-violet'; declare interface IThemeGenreTypeDefault { background: { rest: string; hover: string; }; border: { rest: string; hover: string; }; color: { rest: string; hover: string; placeholder: string; }; } declare type IThemePaletteKeys = 'transparent' | 'black100' | 'black80' | 'black60' | 'black50' | 'black40' | 'black10' | 'black05' | 'black04' | 'blackHelena' | 'blackJanice' | 'grayJanice' | 'grayKaren' | 'grayMonica' | 'graySandra' | 'grayPatricia' | 'graySarah' | 'grayStassie' | 'grayAdriana' | 'greenGoogle' | 'grayBarbara' | 'grayStephanie' | 'grayFrances' | 'grayTina' | 'green100' | 'green50' | 'green25' | 'green10' | 'green10Background' | 'whiteStandard' | 'whiteJanice' | 'yellowGoogle' | 'yellow100' | 'yellow50' | 'yellow25' | 'yellow10' | 'yellow10Background' | 'redGoogle' | 'red100' | 'red50' | 'red25' | 'red10' | 'red10Background' | 'blueGoogle' | 'blueRest' | 'blueActive' | 'blueHover' | 'blueFocus' | 'blueBr' | 'blueKaren' | 'blueMonica' | 'violetStephanie' | 'violetJanice' | 'amnezia' | 'inherit' | 'currentColor'; declare type IThemePaletteKeys_2 = 'transparent' | 'black100' | 'black80' | 'black60' | 'black50' | 'black40' | 'black10' | 'black05' | 'black04' | 'blackHelena' | 'blackJanice' | 'grayJanice' | 'grayKaren' | 'grayMonica' | 'graySandra' | 'grayPatricia' | 'graySarah' | 'grayStassie' | 'grayAdriana' | 'greenGoogle' | 'grayBarbara' | 'grayStephanie' | 'grayFrances' | 'grayTina' | 'green100' | 'green50' | 'green25' | 'green10' | 'green10Background' | 'whiteStandard' | 'whiteJanice' | 'yellowGoogle' | 'yellow100' | 'yellow50' | 'yellow25' | 'yellow10' | 'yellow10Background' | 'redGoogle' | 'red100' | 'red50' | 'red25' | 'red10' | 'red10Background' | 'blueGoogle' | 'blueRest' | 'blueActive' | 'blueHover' | 'blueFocus' | 'blueBr' | 'blueKaren' | 'blueMonica' | 'violetStephanie' | 'violetJanice' | 'amnezia' | 'inherit' | 'currentColor'; declare type IThemeSize = 'large' | 'largeMedium' | 'medium' | 'mediumSmall' | 'small'; declare interface IThemeSizePropertyDefault { font: number; height: number; heightIcon: number; padding: number; radius: number; } declare type IThemeTypographyHeading = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'h7' | 'h8' | 'h9'; declare type IThemeTypographyWeight = 100 | 300 | 400 | 500 | 700 | 900; declare type IThemeTypographyWeight_2 = 100 | 300 | 400 | 500 | 700 | 900; /** * Props for the Popover component. / Свойства компонента Popover. */ declare type PopoverProps = PropsWithChildren & { /** * Additional class name for the popover root element. * Дополнительный CSS-класс для корневого элемента поповера. */ className?: string; /** * Maximum width of the popover (CSS value, e.g. '300px' or '100%'). * Максимальная ширина поповера (CSS-значение, например, '300px' или '100%'). */ maxWidth?: string; /** * Maximum height of the popover (CSS value, e.g. '400px' or '100%'). * Максимальная высота поповера (CSS-значение, например, '400px' или '100%'). */ maxHeight?: string; /** * Controls whether the popover is open (visible). * Управляет открытием поповера (видимостью). */ isOpen: boolean; /** * If true, always show the outline (for accessibility/debug). * Если true — всегда показывать обводку (для доступности/отладки). */ isShowAlwaysOutline?: boolean; /** * Styles for the floating popover element (from floating-ui). * Стили для плавающего элемента поповера (от floating-ui). */ floatingStyles: CSSProperties; /** * Callback fired when the popover should close (e.g. click outside). * Колбэк, вызываемый при необходимости закрыть поповер (например, при клике вне). */ onClose?: () => void; /** * Ref to the popover root element. * Ref на корневой элемент поповера. */ ref?: Ref; /** * Size of the popover (affects padding, font, etc.). * Размер поповера (влияет на отступы, шрифт и т.д.). */ size?: IThemeSize; /** * Visual genre/style of the popover (e.g. 'black', 'primary'). * Визуальный стиль поповера (например, 'black', 'primary'). */ genre?: TButtonGenre; } & addSXProps & addFontProps & addSXTypographyProps; declare interface StackProps extends addSXProps, PropsWithChildren { className?: string; isHover?: boolean; isRipple?: boolean; onClick?: () => void; onDragOver?: DragEventHandler; onDrop?: (e: DragEvent_2) => void; ref?: Ref; } declare type SXProps = ({ default: CSSObject; } & { [K in IThemeDevice]?: CSSObject; }) | ((theme: DefaultTheme) => { default: CSSObject; } & { [K in IThemeDevice]?: CSSObject; }); declare type SXProps_2 = ({ default: CSSObject; } & { [K in IThemeDevice_2]?: CSSObject; }) | ((theme: DefaultTheme) => { default: CSSObject; } & { [K in IThemeDevice_2]?: CSSObject; }); declare type TButtonGenre = keyof IThemeGenre; export declare const Tooltip: FC; /****************************************** TooltipBox *************************************************/ export declare const TooltipBox: IStyledComponentBase<"web", FastOmit< { children?: ReactNode | undefined; } & { className?: string; maxWidth?: string; maxHeight?: string; isOpen: boolean; isShowAlwaysOutline?: boolean; floatingStyles: CSSProperties; onClose?: () => void; ref?: Ref; size?: IThemeSize; genre?: TButtonGenre; } & addSXProps_2 & addFontProps_2 & addSXTypographyProps, never>> & string & Omit, keyof Component>; export declare const TooltipContainer: IStyledComponentBase<"web", FastOmit> & string & Omit, keyof Component>; export declare const TooltipContent: FC; export declare type TooltipProps = PropsWithChildren & Pick & { content: ReactNode; isDisabled?: boolean; } & addSXProps & addSXTypographyProps & Pick; declare type TypographyAllProps = TypographyDataProps | TypographyVariantProps; declare type TypographyDataProps = TypographyDefaultProps & { size?: number; }; declare type TypographyDataProps_2 = TypographyDefaultProps_2 & { size?: number; }; declare type TypographyDefaultProps = { align?: CSSProperties['textAlign']; color?: IThemePaletteKeys; cursor?: CSSProperties['cursor']; decoration?: CSSProperties['textDecoration']; family?: IThemeFontFamily; flex?: string; height?: number | string; isHoverUnderlining?: boolean; letterSpacing?: CSSProperties['letterSpacing']; line?: number; overflow?: CSSProperties['overflow']; shadow?: 'shadowPulse'; transform?: CSSProperties['textTransform']; weight?: IThemeTypographyWeight; wrap?: CSSProperties['textWrap']; isNoUserSelect?: boolean; }; declare type TypographyDefaultProps_2 = { align?: CSSProperties['textAlign']; color?: IThemePaletteKeys_2; cursor?: CSSProperties['cursor']; decoration?: CSSProperties['textDecoration']; family?: IThemeFontFamily_2; flex?: string; height?: number | string; isHoverUnderlining?: boolean; letterSpacing?: CSSProperties['letterSpacing']; line?: number; overflow?: CSSProperties['overflow']; shadow?: 'shadowPulse'; transform?: CSSProperties['textTransform']; weight?: IThemeTypographyWeight_2; wrap?: CSSProperties['textWrap']; isNoUserSelect?: boolean; }; declare type TypographySXProps = { default: TypographyAllProps; } & { [K in IThemeDevice]?: TypographyAllProps; }; declare type TypographyVariantProps = TypographyDefaultProps & { variant: IThemeTypographyHeading; }; /** * Props for the usePopover hook (popover logic and behavior). * Свойства для хука usePopover (логика и поведение поповера). */ declare type UsePopoverProps = { /** * Поддержка фокуса внутри поповера (если true, фокус будет удерживаться внутри поповера). */ isFocusTrap?: boolean; /** * Delay in ms before closing popover on hover out (default: 100). * Задержка в мс перед закрытием поповера при уходе мыши (по умолчанию: 100). */ hoverCloseDelay?: number; /** * Offset in px for hover zone around popover (default: 8). * Отступ в пикселях для hover-зоны вокруг поповера (по умолчанию: 8). */ hoverOffset?: number; /** * If true, popover closes when clicking outside. * Если true — поповер закрывается при клике вне его. */ isClickOutside?: boolean; /** * If true, disables all popover logic and interaction. * Если true — отключает всю логику и взаимодействие поповера. */ isDisabled?: boolean; /** * If true, enables floating hover mode (popover stays open while mouse is near). * Если true — включает режим плавающего hover (поповер открыт, пока мышь рядом). */ isFloatingHover?: boolean; /** * If true, popover width matches reference element. * Если true — ширина поповера совпадает с reference-элементом. */ isWidthAsContent?: boolean; /** * Popover open/close mode: 'click', 'hover', 'clickOpen', or 'independence'. * Режим открытия/закрытия поповера: 'click', 'hover', 'clickOpen', 'independence'. */ mode?: 'click' | 'hover' | 'clickOpen' | 'independence'; /** * Offset in px between reference and popover (default: 8). * Отступ в пикселях между reference и поповером (по умолчанию: 8). */ offset?: number; /** * Placement of the popover relative to reference (from floating-ui). * Положение поповера относительно reference (из floating-ui). */ placement: Placement; /** * Refs to elements that should not trigger click outside close. * Массив ref'ов, которые не должны вызывать закрытие при клике вне. */ refsExcludeClickOutside?: Ref[]; /** * Refs to elements that should not trigger blur close. * Массив ref'ов, которые не должны вызывать закрытие при потере фокуса. */ refsExcludeBlur?: Ref[]; /** * Callback fired when popover is focused/opened. * Колбэк, вызываемый при открытии/фокусе поповера. */ onFocus?: () => void; /** * Callback fired when popover is blurred/closed. * Колбэк, вызываемый при закрытии/потере фокуса поповера. */ onBlur?: () => void; /** * Callback fired when reference element loses focus (not to excluded refs). * Колбэк, вызываемый при потере фокуса reference-элемента (не на исключённые ref'ы). */ onBlurReference?: () => void; }; export { }