import React from 'react'; import type { AriaSearchFieldProps } from 'react-aria'; export type SearchFieldSize = 'sm' | 'md' | 'lg'; type SearchFieldDOMProps = Omit, keyof AriaSearchFieldProps | 'size' | 'type' | 'disabled' | 'autoCapitalize'>; export interface SearchFieldProps extends AriaSearchFieldProps, SearchFieldDOMProps { /** Input's sizes: Small, Medium, Large. */ size?: SearchFieldSize; /** Class names for the control box (`.ion-input`). */ className?: string; /** Class names for the `.ion-field` wrapper when a label or helper is shown. */ wrapperClassName?: string; } /** * SearchField — a text field for a search query. * * NOT ``. That gets the right input type and nothing * else. `useSearchField` adds what a search box owes its user: * * `role="searchbox"`, so a screen reader announces a search field, not a * text field. Enter calls `onSubmit` with the query. Escape clears it — a * second Escape then reaches whatever the field sits in, so a search inside * a dialog clears first and closes second. A clear button appears once there * is something to clear, named in the user's language by React Aria. * * The clear button is out of the tab order on purpose, as React Aria sets it: * Escape is the keyboard's way to clear, and an extra tab stop in every search * box costs every keyboard user a keystroke. Pressing it puts focus back in the * field. * * The box IS Input's — the component renders `.ion-input` and its size and * state classes, so a search field beside an Input in a toolbar matches it * exactly and cannot drift. Same arrangement as NumberInput. */ export declare const SearchField: React.ForwardRefExoticComponent>; export {}; //# sourceMappingURL=SearchField.d.ts.map