import type { JsxCustomElementAttributes, JsxElementProps, JsxRenderable } from '@ecopages/jsx'; import { type RuiListboxOptionData } from '../listbox'; import type { RuiSelect as RuiSelectElement, RuiSelectProps } from './select.script'; import './select.script'; export type RuiSelectControlProps = JsxElementProps; /** * Trigger row wrapper for the value button and toggle icon. * * @cssclass rui-select__control - Trigger row; bordered, control-height surface. */ export declare function RuiSelectControl({ children, class: className, ...props }: RuiSelectControlProps): JsxRenderable; export type RuiSelectTriggerProps = JsxElementProps & { disabled?: boolean; }; /** * Value button with `role="combobox"`. Place `RuiSelectValue` inside. * * @cssclass rui-select__trigger - Value button; `role="combobox"` set by the controller. */ export declare function RuiSelectTrigger({ children, class: className, disabled, ...props }: RuiSelectTriggerProps): JsxRenderable; export type RuiSelectToggleProps = JsxElementProps & { disabled?: boolean; }; /** Toggle button for opening the listbox popup. */ export declare function RuiSelectToggle({ children, class: className, aria, disabled, ...props }: RuiSelectToggleProps): JsxRenderable; export type RuiSelectValueProps = JsxElementProps; /** * Selected value display inside `RuiSelectTrigger`. * * @remarks When empty, shows the select `placeholder`. For the `options` API, * the view SSRs the resolved label (or placeholder) so the control height does * not collapse before client sync. For multi-select chip UI, provide * `RuiTagGroup` as children instead of relying on the default text. * * @cssclass rui-select__value - Selected value / placeholder text. */ export declare function RuiSelectValue({ children, class: className, ...props }: RuiSelectValueProps): JsxRenderable; export type RuiSelectListboxProps = JsxElementProps; /** * Popup shell composed inside `listbox`. Place an embedded `RuiListbox` inside. * * @cssclass rui-select__listbox - Popup shell; composes `rui-popover` surface roles. */ export declare function RuiSelectListbox({ children, class: className, ...props }: RuiSelectListboxProps): JsxRenderable; export type RuiSelectSearchProps = JsxElementProps & { placeholder?: string; disabled?: boolean; }; /** * Search input for filtering inside `RuiAutocomplete` within a select listbox. * * @cssclass rui-select__search - Filtering input inside the popup. */ export declare function RuiSelectSearch({ placeholder, class: className, disabled, ...props }: RuiSelectSearchProps): JsxRenderable; export type RuiSelectOptionData = RuiListboxOptionData; /** * Select view. Pair with `RuiLabel` (sibling or via `RuiField`) for the visible name — * do not nest a select-specific label. */ export type RuiSelectViewProps = JsxCustomElementAttributes; export declare function RuiSelect({ options, children, ...props }: RuiSelectViewProps): JsxRenderable;