import React from 'react'; import { StyleProp, ViewStyle, TextStyle } from 'react-native'; export type Ux4gDropdownFilterType = 'contains' | 'startsWith' | 'startsWithPerTerm'; export type Ux4gDropdownSize = 's' | 'm' | 'l'; export type Ux4gDropdownMode = 'single' | 'multi'; export type Ux4gDropdownStatus = 'defaultStatus' | 'error' | 'disabled'; export interface Ux4gDropdownOption { id: string; label: string; leadingIcon?: React.ReactNode; } export interface Ux4gActionDropdownOption { id: string; label: string; showTrailingArrow?: boolean; } export type Ux4gDropdownTriggerBuilder = (toggleDropdown: () => void) => React.ReactNode; export interface Ux4gActionDropdownProps { /** * List of action options available inside the dropdown overlay menu. */ options: Ux4gActionDropdownOption[]; /** * Callback triggered when an action option is selected (`onOptionClick` matching Flutter exact name). */ onOptionClick: (option: Ux4gActionDropdownOption) => void; /** * Callback triggered when an action option is selected (React Native standard alias for `onOptionClick`). */ onOptionPress?: (option: Ux4gActionDropdownOption) => void; /** * Builder function to render the trigger element (e.g. icon or button) that toggles the dropdown overlay menu. */ triggerBuilder: Ux4gDropdownTriggerBuilder; /** * Optional ID of the currently active/selected action option. */ selectedOptionId?: string; /** * Custom container style override. */ containerStyle?: StyleProp; /** * Optional testID for automated testing. */ testID?: string; } /** * **Ux4gActionDropdown** (`ActionDropdown`) * * Direct React Native port of Flutter `dropdown.dart` (`Ux4gActionDropdown`). * Wraps any trigger element created by `triggerBuilder` and displays a floating overlay action menu when toggled. */ export declare const Ux4gActionDropdown: React.FC; export interface Ux4gSelectionDropdownProps { /** * List of selectable options inside the dropdown list. */ options: Ux4gDropdownOption[]; /** * Array of currently selected option IDs. Pass `[singleId]` for single mode, or multiple IDs for `multi` mode. */ selectedOptionIds: string[]; /** * Callback triggered whenever selection changes (`onSelectionChange`). */ onSelectionChange: (selectedOptionIds: string[]) => void; /** * Optional label text displayed above the selection box. */ label?: string; /** * Optional helper or error description text displayed below the selection box. */ description?: string; /** * Placeholder string displayed inside the selection box when no items are selected. * @default "Please select.." */ placeholder?: string; /** * Size of the selection dropdown box (`s` 32px height, `m` 40px height, or `l` 48px height). * @default 'm' */ size?: Ux4gDropdownSize; /** * Selection mode (`single` selection or `multi` chip selection). * @default 'single' */ mode?: Ux4gDropdownMode; /** * Status state (`defaultStatus`, `error`, or `disabled`). * @default 'defaultStatus' */ status?: Ux4gDropdownStatus; /** * Whether to display an interactive search/filter field at the top of the dropdown menu overlay. * @default false */ searchEnabled?: boolean; /** * Filtering mode when `searchEnabled = true` (`contains`, `startsWith`, or `startsWithPerTerm`). * @default 'contains' */ filterType?: Ux4gDropdownFilterType; /** * Custom style for the label text. */ labelTextStyle?: StyleProp; /** * Custom style for the selected value text. */ valueTextStyle?: StyleProp; /** * Optional leading icon/widget rendered inside the selection box before the text/placeholder. */ leadingIcon?: React.ReactNode; /** * Custom container style override. */ containerStyle?: StyleProp; /** * Optional testID for automated testing. */ testID?: string; } /** * **Ux4gSelectionDropdown** (`SelectionDropdown`) * * Direct React Native port of Flutter `dropdown.dart` (`Ux4gSelectionDropdown`). * Full-featured form selection component supporting sizes (`s`, `m`, `l`), selection modes (`single`, `multi` with chips), * status validation (`defaultStatus`, `error`, `disabled`), search query filtering, labels, and helper descriptions. */ export declare const Ux4gSelectionDropdown: React.FC; //# sourceMappingURL=Dropdown.d.ts.map