import * as React from "react"; import type { ControlStatusProp, ControlVariantProp, ControlWidthProp, SizeProp } from "../../props/vocabulary/index.js"; import type { FieldA11yProps } from "../../lib/field-a11y.js"; import type { SelectDataProp } from "../../props/components/data-entry.prop.js"; /** Compound-API props — the shape the Radix root had, plus the FormField field-a11y contract that * this component re-routes to the trigger (see {@link SelectFieldA11yContext}). */ export type SelectCompoundProp = FieldA11yProps & { id?: string; value?: string; defaultValue?: string; onValueChange?: (value: string) => void; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; /** * @deprecated Accepted so Radix-era call sites keep compiling. Direction now comes from the * ambient locale (`AppProvider` / `I18nProvider`), which react-aria reads itself. */ dir?: "ltr" | "rtl"; /** Form field name — a hidden native ``), OR the * data-driven (Ant-style) API by passing `options` / `loadOptions`: `showSearch` toggles a * searchable combobox (powered by SearchSelect) vs a plain no-search listbox; supports async, * optgroup grouping, and `renderOption`. */ export declare function Select(props: SelectProp): React.JSX.Element; export declare function SelectGroup({ className, children, ...props }: React.HTMLAttributes): React.JSX.Element; export declare const SelectValue: React.ForwardRefExoticComponent, "children"> & { /** Shown while nothing is selected. */ placeholder?: React.ReactNode; /** Replaces the selected option's label on the trigger while a value is selected. */ children?: React.ReactNode; /** @deprecated Radix-only; has no effect. */ asChild?: boolean; } & React.RefAttributes>; export declare const SelectTrigger: React.ForwardRefExoticComponent & { /** Control height tier — the shared `--control-height` ladder (antd `size`). */ size?: SizeProp; /** Control surface (antd `variant`). Default `outlined`. */ variant?: ControlVariantProp; /** Validation status (antd `status`). `error` also sets `aria-invalid`. */ status?: ControlStatusProp; /** * `full` (default) fills the field column — right inside a FormField. `auto` sizes to the * selected label — right in a PageContainer `extra` slot, a toolbar or a footer row, where a * full-width trigger swallows the row and starves its siblings (text truncated to "UA…"). * `bounded` holds one width from `--control-bounded-width`, for a trigger whose VALUE varies * in length and must not move its neighbours when it changes (gh#375). */ width?: ControlWidthProp; /** * Show the built-in chevron disclosure indicator (default true). Set `false` for specialized * triggers — icon-only, or one that already renders its own affordance — so it isn't * duplicated. */ showIndicator?: boolean; "data-field"?: string; /** * Normally supplied by `Select` itself — the trigger shows the option's LABEL, and this is the * only place the underlying value is readable from the DOM without reaching into the aria-hidden * native `