import React, { ReactNode } from 'react'; import { PopoverOrigin } from '../silke-popover'; import { SilkeTextFieldProps } from '../silke-text-field'; import { AutocompleteRenderItemProps } from './autocomplete-item'; import { AutocompleteTagsProps } from './autocomplete-tags'; import { Entry, MultiProps, SingleProps } from './autocomplete-types'; /** * Props for autocomplete field */ export type SilkeAutocompleteFieldNativeProps = any> = (MultiProps | SingleProps) & Omit & { disableSearch?: boolean; disableAddFromList?: boolean; noReset?: boolean; hideListArrow?: boolean; isVariable?: boolean; maxDisplayedItems?: number; maxDisplayedItemsLabel?: React.ReactNode; showAddIcon?: boolean; selectedVariableKey?: string; /** What point of the target should be used for centering default center-center */ targetOrigin?: PopoverOrigin; /** What point of the anchor should be used for centering default center-center */ anchorOrigin?: PopoverOrigin; dropDownMinWidth?: number; dropDownMaxWidth?: number; /** * Possible values */ items: U[]; /** * Minimum number of characters in search for results to show */ minChars?: number; buttonRight?: ReactNode; /** Cypress tag */ 'data-cy'?: string; /** * If a function is passed, an "Add item" entry will be shown in the list if nothing matches text search. This function will be the callback. * @param value The value entered */ onAdd?: (value: string) => void; /** * Use custom component for rendering the autocomplete items */ renderItem?: (props: AutocompleteRenderItemProps) => React.ReactElement | null; /** * Use custom component for rendering autocomplete tags */ renderTags?: (props: AutocompleteTagsProps) => React.ReactElement | null; /** * Custom sort of items (default sorts by label) */ sort?: (one: Entry, other: Entry) => number; onSearch?: (value: string) => void; /** * Called when dropdown closes for any reason */ onClose?: () => void; }; export declare function SilkeAutocompleteFieldNative(props: SilkeAutocompleteFieldNativeProps): import("react/jsx-runtime").JSX.Element;