import React from 'react'; import { FlintPopup as FlintPopupElement } from '@getufy/flint-ui/popup/flint-popup'; /** * flint-popup * * @slot (default) - The popup content to be positioned. * @slot anchor - The reference element the popup is positioned relative to. */ export interface FlintPopupProps extends React.HTMLAttributes { /** Activates positioning. When false, Floating UI listeners are torn down. */ active?: boolean; /** * The anchor element. Pass a CSS selector string (resolved from ownerDocument), * Type: `string | Element` */ anchor?: FlintPopupElement['anchor']; /** * Preferred placement of the popup relative to its anchor. * Allowed values: 'top' | 'right' | 'bottom' | 'left' | 'top-start' | 'top-end' | 'right-start' | 'right-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' */ placement?: 'top' | 'right' | 'bottom' | 'left' | 'top-start' | 'top-end' | 'right-start' | 'right-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end'; /** * CSS positioning strategy. Use `'fixed'` to escape overflow containers. * Allowed values: 'absolute' | 'fixed' */ strategy?: 'absolute' | 'fixed'; /** Distance from the anchor on the main axis (px). */ distance?: number; /** Offset along the cross axis (px). */ skidding?: number; /** Flip the popup when it would overflow the boundary. */ flip?: boolean; /** Space-separated fallback placements when flipping (e.g. `"bottom-start bottom-end"`). */ flipFallbackPlacements?: string; /** * Boundary element(s) for the flip middleware. * Type: `Element | Element[] | undefined` */ flipBoundary?: FlintPopupElement['flipBoundary']; /** Padding from the flip boundary (px). */ flipPadding?: number; /** Shift the popup to stay within the boundary. */ shift?: boolean; /** * Boundary element(s) for the shift middleware. * Type: `Element | Element[] | undefined` */ shiftBoundary?: FlintPopupElement['shiftBoundary']; /** Padding from the shift boundary (px). */ shiftPadding?: number; /** * Constrain popup dimensions to available space: `'horizontal'`, `'vertical'`, or `'both'`. * Allowed values: '' | 'horizontal' | 'vertical' | 'both' */ autoSize?: '' | 'horizontal' | 'vertical' | 'both'; /** * Boundary element(s) for auto-size. * Type: `Element | Element[] | undefined` */ autoSizeBoundary?: FlintPopupElement['autoSizeBoundary']; /** Padding from the auto-size boundary (px). */ autoSizePadding?: number; /** * Sync popup width, height, or both to match the anchor element. * Allowed values: '' | 'width' | 'height' | 'both' */ sync?: '' | 'width' | 'height' | 'both'; /** Show the built-in arrow pointing toward the anchor. */ arrow?: boolean; /** Arrow padding from the edges of the popup (px). */ arrowPadding?: number; /** Render a transparent bridge between anchor and popup for safe hover transitions. */ hoverBridge?: boolean; /** * Fired after the popup is repositioned. `detail: { placement }`. * DOM event: `flint-reposition` */ onFlintReposition?: (event: CustomEvent) => void; } export declare const FlintPopup: React.ForwardRefExoticComponent>;