import { CSSObject } from 'styled-components'; import { CSSProperties } from 'react'; import { DefaultTheme } from 'styled-components'; import { DetailedHTMLProps } from 'react'; import { HTMLAttributes } from 'react'; import { IStyledComponentBase } from 'styled-components/dist/types'; import { JSX } from 'react/jsx-runtime'; import { LinkComponent } from '@tanstack/react-router'; import { LinkProps } from '@tanstack/react-router'; import { MemoExoticComponent } from 'react'; import { Placement } from '@floating-ui/react'; import { PropsWithChildren } from 'react'; import { ReactNode } from 'react'; import { Ref } from 'react'; import { RuleSet } from 'styled-components'; import { Substitute } from 'styled-components/dist/types'; declare type AddDollarSign = { [K in keyof T as `$${string & K}`]: T[K]; }; declare type AddDollarSign_2 = { [K in keyof T as `$${string & K}`]: T[K]; }; declare type addFontProps = { font?: FontSizeStylesProps; }; declare type addOutlineProps = { isReadOnly?: boolean; isDisabledOutline?: boolean; isOutlineBoxShadow?: boolean; }; declare type addOutlinePropsDollar = AddDollarSign_2; declare interface addSXProps { sx?: SXProps; } export declare const addSXTypography: RuleSet>; export declare type addSXTypographyProps = { sxTypography?: TypographySXProps; }; export declare type addSXTypographyStyleProps = AddDollarSign_2; declare type FontSizeStylesProps = { size?: TypographyDataProps['size']; weight?: TypographyDataProps['weight']; family?: TypographyDataProps['family']; height?: TypographyDataProps['height']; }; export declare const getFontSizeStyles: (size: TypographyDataProps["size"], weight: TypographyDataProps["weight"], family: TypographyDataProps["family"], height?: TypographyDataProps["height"]) => RuleSet; declare type IThemeDevice = 'default' | 'tablet' | 'mobile'; declare type IThemeFontFamily = '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 IThemeSize = 'large' | 'largeMedium' | 'medium' | 'mediumSmall' | 'small'; declare type IThemeTypographyHeading = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'h7' | 'h8' | 'h9'; declare type IThemeTypographyWeight = 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 type SXProps = ({ default: CSSObject; } & { [K in IThemeDevice]?: CSSObject; }) | ((theme: DefaultTheme) => { default: CSSObject; } & { [K in IThemeDevice]?: CSSObject; }); declare type TButtonGenre = keyof IThemeGenre; export declare const Title: IStyledComponentBase<"web", Substitute, HTMLSpanElement>, TypographyCSSProps>> & string; declare type TooltipProps = PropsWithChildren & Pick & { content: ReactNode; isDisabled?: boolean; } & addSXProps & addSXTypographyProps & Pick; export declare const Typography: (props: TypographyProps) => JSX.Element; export declare type TypographyAllProps = TypographyDataProps | TypographyVariantProps; export declare type TypographyCSSProps = AddDollarSign_2<{ sxTypography: TypographySXProps; sx?: SXProps; isTransitionFontSize?: boolean; }> & addOutlinePropsDollar; export declare type TypographyDataProps = TypographyDefaultProps & { 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; }; export declare const TypographyLink: LinkComponent< { (props: TypographyProps & LinkProps): JSX.Element; displayName: string; }, string>; export declare type TypographyProps = PropsWithChildren & { onClick?: () => void; className?: string; style?: CSSProperties; href?: string; isParagraph?: boolean; isAnchor?: boolean; isSpan?: boolean; isTransitionFontSize?: boolean; ref?: Ref; sx: TypographySXProps; sxStandard?: SXProps; } & addOutlineProps; export declare type TypographySXProps = { default: TypographyAllProps; } & { [K in IThemeDevice]?: TypographyAllProps; }; export declare const TypographyTooltip: MemoExoticComponent<(props: TypographyTooltipProps) => JSX.Element>; export declare type TypographyTooltipProps = { typography: TypographyProps; tooltip: Omit; } & PropsWithChildren; 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 { }