import React from 'react'; import { type VariantProps } from 'class-variance-authority'; import { type ComponentSize } from '../../../lib/utils'; import { type GlassVariant } from '../../../lib/glass'; import type { SegmentedTabItem } from '../SegmentedTabs'; declare const dropdownFieldVariants: (props?: ({ size?: "xxs" | "xs" | "sm" | "md" | "lg" | "xl" | "xxl" | null | undefined; state?: "default" | "disabled" | "error" | null | undefined; type?: "normal" | "search" | "groups" | null | undefined; } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string; export interface DropdownProps extends VariantProps { /** * Selected value */ value?: string | number; /** * Placeholder text */ placeholder?: string; /** * Component size * @default 'md' */ size?: ComponentSize; /** * Component state * @default 'default' */ state?: 'default' | 'error' | 'disabled'; /** * Dropdown type * @default 'normal' */ type?: 'normal' | 'search' | 'groups'; /** * Additional CSS classes */ className?: string; /** * Change handler */ onChange?: (value: string | number) => void; /** * Search handler */ onSearch?: (query: string) => void; /** * Label mandatory indicator */ labelMandatory?: boolean; /** * Label optional indicator */ labelOptional?: boolean; /** * Label suffix icon */ labelSuffixIcon?: boolean; /** * Label icon */ labelIcon?: React.ReactNode; /** * Label position * @default 'top' */ labelPosition?: 'top' | 'left'; /** * Error message */ error?: string; /** * Helper text */ helperText?: string; /** * Required indicator */ required?: boolean; /** * Segments for segmented search */ segments?: SegmentedTabItem[]; /** * Selected segment */ selectedSegment?: string; /** * Segment change handler */ onSegmentChange?: (value: string) => void; /** * Dropdown content (for composable API) */ children?: React.ReactNode; /** * Custom portal container for the dropdown menu. * Use this when you need deterministic positioning (e.g., app-level portal node). */ portalContainer?: HTMLElement; /** * Optional ID assigned to the portal container. */ portalId?: string; /** * Extra class name applied to the portal wrapper. */ portalClassName?: string; /** * Additional inline styles applied to the portal wrapper. */ portalStyle?: React.CSSProperties; /** * Additional class name applied to the `DropdownMenu`. */ menuClassName?: string; /** * Additional inline styles applied to the `DropdownMenu`. */ menuStyle?: React.CSSProperties; /** * Glass morphism variant */ glass?: GlassVariant; } /** * Dropdown Component * * A dropdown select component with menu popup. * Uses composable API for maximum control over layout and rendering. * * @public * * @example * ```tsx * * * * * * * * * * * ``` * * @remarks * - Composable API: Full control over layout, supports `asChild` prop * - Supports search, groups, and segmented tabs * * @important * DropdownTrigger and DropdownContent sub-components MUST be wrapped * in a parent . */ export declare const Dropdown: React.ForwardRefExoticComponent>; export default Dropdown; export { dropdownFieldVariants }; export type { DropdownOption } from './DropdownTypes'; //# sourceMappingURL=Dropdown.d.ts.map