import React, { AriaAttributes, AriaRole } from 'react'; import { Boundary, FloatingContext, Placement, useInteractions } from '@floating-ui/react-dom-interactions'; import { MQ } from '../utils'; import { LogicalPaddingProps } from '../utils/logical-properties'; import { TransitionToken } from '../theme'; export type TriggerType = 'click' | 'hover' | 'focus'; export type FallbackBehaviourType = 'flip' | 'shift'; export type BuildAriaAttributesFn = (args: { floating: { id: string; open?: boolean; }; ref: { id: string; }; }) => AriaAttributes; export interface ReferenceProps extends Record { onClick: (e: React.MouseEvent) => void; onKeyDown: (e: React.KeyboardEvent) => void; onKeyUp: (e: React.KeyboardEvent) => void; onPointerDown: (e: React.MouseEvent) => void; } export interface FloatingElementProps extends Omit, 'title' | 'defaultValue' | 'content'> { children: React.ReactElement & { ref?: React.Ref; }; trigger?: TriggerType | TriggerType[]; content: React.ReactNode | ((referenceProps: ReferenceProps, context: FloatingContext) => React.ReactNode); open?: boolean; placement?: Placement; overrides?: { zIndex?: number; maxWidth?: MQ; minWidth?: MQ; offset?: string; stylePreset?: MQ; panel?: { stylePreset?: MQ; typographyPreset?: MQ; } & LogicalPaddingProps; pointer?: { stylePreset?: MQ; size?: MQ; edgeOffset?: string; }; transitionPreset?: TransitionToken | TransitionToken[]; }; className?: string; onDismiss?: () => void; fallbackBehaviour?: FallbackBehaviourType | FallbackBehaviourType[]; boundary?: Boundary; hidePointer?: boolean; restoreFocusTo?: HTMLElement; focusElementRef?: React.RefObject; disableFocusManagement?: boolean; dismissOnBlur?: boolean; } export interface BaseFloatingElementProps extends FloatingElementProps { role?: AriaRole; useInteractions: (context: FloatingContext) => ReturnType; buildRefElAriaAttributes: BuildAriaAttributesFn; buildFloatingElAriaAttributes: BuildAriaAttributesFn; path: 'tooltip' | 'popover'; } //# sourceMappingURL=types.d.ts.map