import React from "react"; import { PlusSelect as PlusSelectElement } from "../dist/components/select/index.js"; export type { PlusSelectElement }; export interface PlusSelectProps extends Pick< React.AllHTMLAttributes, | "children" | "dir" | "hidden" | "id" | "lang" | "slot" | "style" | "title" | "translate" | "onClick" | "onFocus" | "onBlur" > { /** Indicates if the select is in an error state. */ error?: boolean; /** Disables the select, preventing interaction. */ disabled?: boolean; /** Marks the select as required. */ required?: boolean; /** Makes the select read-only, preventing changes. */ readonly?: boolean; /** Enables a clear button to reset the selection. */ clearable?: boolean; /** Makes the select full width. */ fullWidth?: boolean; /** Sets the size of the select button. */ size?: PlusSelectElement["size"]; /** Placeholder text for the select trigger input. */ placeholder?: PlusSelectElement["placeholder"]; /** Label text for the select. */ label?: PlusSelectElement["label"]; /** Caption text displayed below the select. */ caption?: PlusSelectElement["caption"]; /** A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the class selectors or functions like the method `Document.getElementsByClassName()`. */ className?: string; /** Contains a space-separated list of the part names of the element that should be exposed on the host element. */ exportparts?: string; /** Used for labels to link them with their inputs (using input id). */ htmlFor?: string; /** Used to help React identify which items have changed, are added, or are removed within a list. */ key?: number | string; /** Contains a space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the ::part pseudo-element. */ part?: string; /** A mutable ref object whose `.current` property is initialized to the passed argument (`initialValue`). The returned object will persist for the full lifetime of the component. */ ref?: any; /** Allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the `Tab` key, hence the name) and determine their relative ordering for sequential focus navigation. */ tabIndex?: number; /** Emitted when the select is opened */ onPlusSelectOpen?: (event: CustomEvent) => void; /** Emitted when the select is closed */ onPlusSelectClose?: (event: CustomEvent) => void; /** Emitted when an item is selected, with the selected item in detail */ onPlusSelectSelectedItem?: (event: CustomEvent) => void; } /** * A select component that provides a collapsible menu with selectable options. * Uses Floating UI for intelligent positioning of the select menu. * --- * * * ### **Events:** * - **plus-select-open** - Emitted when the select is opened * - **plus-select-close** - Emitted when the select is closed * - **plus-select-selected-item** - Emitted when an item is selected, with the selected item in detail * * ### **Slots:** * - _default_ - The default slot for the select trigger button content * - **suffix** - Slot for adding content to the right side of the trigger button * - **select-item** - Slot for select menu items * * ### **CSS Parts:** * - **base** - The component's base wrapper * - **select** - The select trigger input * - **select-box** - The select list container */ export const PlusSelect: React.ForwardRefExoticComponent;