import { Placement } from '@floating-ui/react'; import { default as React } from 'react'; import { BreakpointSupport } from '../../../helpers'; type DropdownBreakpointProps = { /** * When `true` there is a border between the dropdown items * @default false */ divided?: boolean; /** * Controls the width of the dropdown menu. * - `'auto'` – width is determined by content (default) * - `'trigger'` – matches the width of the trigger element * - `'full'` – spans the full width of the containing block * - `number` – fixed width in pixels * - `string` – any valid CSS width value (e.g. `'16rem'`, `'100%'`) * @default auto */ width?: 'auto' | 'trigger' | 'full' | number | string; /** * Controls where the dropdown is positioned relative to its trigger. * Accepts any Floating UI placement value, such as: * `'bottom-start'`, `'bottom-end'`, `'top-start'`, `'right-end'`, etc. * * @default bottom-start */ placement?: Placement; /** * Controls the visual and structural variant of the dropdown. * - `'default'` – standard flat list of items * - `'tree'` – hierarchical (tree-style) list with indented items and connector lines * Tree visuals are only applied when this prop is set to `'tree'`. * Ignored by default. * @default 'default' */ variant?: 'default' | 'tree'; }; export interface DropdownProps extends BreakpointSupport { /** * Child elements — must include exactly one `Dropdown.Trigger` and one `Dropdown.Content` */ children: React.ReactNode; /** * When `true`, the dropdown behaves like a modal: * - Traps focus inside the dropdown * - Shows a visually hidden "Close" button for screen readers * - Usually used for menus that require explicit dismissal * * @default false */ modal?: boolean; /** * Controlled open state */ open?: boolean; /** * Uncontrolled default state */ defaultOpen?: boolean; /** * Change handler (fires for both modes) */ onOpenChange?: (open: boolean) => void; /** * Index of the item that should be focused when the dropdown opens. * * Pass the index of the "current selection" so the user can arrow-key or * Enter/Space to reconfirm without first pressing an arrow. Omit (or pass * `undefined`) to keep the default behaviour — no item is pre-focused and * the user has to press an arrow key to start navigating. */ defaultActiveIndex?: number; className?: string; } export declare const Dropdown: { (props: DropdownProps): import("react/jsx-runtime").JSX.Element; Trigger: ({ children }: import('.').DropdownTriggerProps) => React.ReactElement>; Content: ({ children }: { children: React.ReactNode; }) => null; Item: ({ children, onClick, disabled, active, index, indent, asChild, closeOnSelect, isParent, className, role, ...aria }: import('.').DropdownItemProps) => import("react/jsx-runtime").JSX.Element; Separator: () => import("react/jsx-runtime").JSX.Element; }; export {};