import { EventEmitter } from "../../stencil-public-runtime"; export declare class SignetSelect { /** * The `select` component is a custom dropdown menu that allows users to select one or more options from a list. * It can be configured with various properties such as size, label, default value, and whether it supports multiple selections. * The component also includes features like search functionality and event handling for option selection. */ $selectContent: HTMLElement; /** * The `$selectContent` property is a reference to the select component's content area. * It is used to manage the visibility and behavior of the dropdown menu. */ $contents: HTMLElement; /** * The `$contents` property is a reference to the contents of the select component. * It is used to manage the visibility and behavior of the dropdown menu. */ $focusableEls: HTMLElement[]; /** * The `$focusableEls` property is an array of references to the focusable elements within the select component. * It is used to manage keyboard navigation and selection of options. */ $control: HTMLElement; /** * The `titleId` is a unique identifier for the select component, used for accessibility purposes. * It is generated dynamically to ensure uniqueness across multiple instances of the component. */ titleId: string; /** * The `size` property determines the size of the select component. * It can be set to 'sm', 'md', 'lg', 'small', 'medium', or 'large' to adjust the appearance of the component accordingly. * The default size is 'md'. */ size: 'sm' | 'md' | 'lg' | 'small' | 'medium' | 'large'; private get normalizedSize(); /** * The `label` property is a string that represents the label for the select component. * It is displayed above the selected value and can be used to provide context to the user. */ label: string; /** * The `defaultValue` property is a string that represents the default value of the select component. * It is used to initialize the selected value when the component is first rendered. */ defaultValue: string; /** * The `modelValue` property enables two-way binding with v-model in Vue. */ modelValue?: string; handleModelValueChange(newValue: string): void; handleDefaultValueChange(newValue: string): void; /** * The `value` property is added for Vue 2 v-model compatibility. */ value?: string; /** * The `value` property is a string that represents the currently selected value of the select component. * It is used to display the selected option and can be updated when an option is selected. */ handleValueChange(newVal: string): void; /** * The `multiple` property is a boolean that determines whether the select component allows multiple selections. * If set to true, users can select more than one option from the list. */ multiple: boolean; /** * The `placeholder` property is a string that represents the placeholder text for the select component. * It is displayed when no option is selected and can be used to provide guidance to the user on what to select. */ placeholder: string; /** * The `disabled` property is a boolean that determines whether the select component is disabled. * If set to true, users cannot interact with the component or select any options. */ disabled: boolean; /** * The `readonly` property is a boolean that determines whether the select component is read-only. * If set to true, users cannot change the selected value, but can still interact with the component. */ readonly: boolean; /** * The `options` property is an array or JSON string representing the options available in the select component. * It can be an array of objects or a JSON string. Each object can contain properties such as `value`, `label`, and `disabled` to customize the appearance and behavior of each option. * This single prop replaces the previous `items` prop for all option data. */ options: string | any[]; /** * The `items` property is an alias for the `options` property, allowing users to pass options as an array or JSON string. * It is maintained for backward compatibility but should be replaced with the `options` prop in new implementations. */ items: any; syncLegacyItems(): void; /** * The `hasSearch` property is a boolean that determines whether the select component includes a search functionality. * If set to true, users can search for options within the dropdown menu. */ hasSearch: boolean; /** * The `hasOnlySearch` property is a boolean that determines whether the select component only includes a search functionality. * If set to true, users can only search for options within the dropdown menu, without selecting any options. */ hasOnlySearch: boolean; /** * The `searchPlaceholder` property is a string that represents the placeholder text for the search input within the select component. * It is displayed when no search term is entered and can be used to provide guidance to the user on what to search for. */ selectedOption: string; /** * The `optionLabel` property is a string that represents the label of the currently selected option. * It is used to display the selected value in the select component. */ optionLabel: string; /** * The `isExpanded` property is a boolean that determines whether the dropdown menu of the select component is currently expanded. * If set to true, the dropdown menu is visible; if set to false, it is hidden. */ isExpanded: boolean; /** * The `focusIndex` property is a number that represents the index of the currently focused option within the dropdown menu. * It is used to manage keyboard navigation and selection of options. */ focusIndex: number; labelBgColor: string; /** * The `hidden` event is emitted when the select component is hidden. * It can be used to trigger actions or updates in other parts of the application when the dropdown menu is closed. */ hidden: EventEmitter; /** * The `shown` event is emitted when the select component is shown. * It can be used to trigger actions or updates in other parts of the application when the dropdown menu is opened. */ shown: EventEmitter; /** * The `selectedValue` event is emitted when an option is selected from the dropdown menu. * It can be used to trigger actions or updates in other parts of the application based on the selected value. */ selectedValue: EventEmitter; /** * The `optionSelected` event is emitted when an option is selected from the dropdown menu. * It can be used to trigger actions or updates in other parts of the application based on the selected option. */ $el: HTMLElement; /** * The `optionSelected` event is emitted when an option is selected from the dropdown menu. * It can be used to trigger actions or updates in other parts of the application based on the selected option. */ optionSelected: EventEmitter; /** * The `updateModelValue` event is emitted for v-model compatibility in Vue. */ updateModelValue: EventEmitter; /** * The `hide` method is used to hide the select component's dropdown menu. * It sets the `isExpanded` state to false and emits the `hidden` event. * This method can be called programmatically to close the dropdown menu. * @returns {Promise} A promise that resolves when the dropdown menu is hidden. */ hide(): Promise; /** * The `show` method is used to display the select component's dropdown menu. * It sets the `isExpanded` state to true and emits the `shown` event. * This method can be called programmatically to open the dropdown menu. * @returns {Promise} A promise that resolves when the dropdown menu is shown. */ show(): Promise; private computeEffectiveBackground; /** * The `componentWillRender` lifecycle method is called before the component is rendered. * It emits the `selectedValue` event with the default value of the select component. * This method can be used to perform any necessary setup or initialization before rendering the component. */ componentWillRender(): void; /** * The `componentDidLoad` lifecycle method is called after the component has been loaded. * It adds an event listener to the window to handle clicks outside the select component, * preventing the dropdown menu from closing if the click is inside the component or on a prevent-close element. * It also registers a listener for option selection events. */ componentWillLoad(): void; private toggleSelect; private getOptions; handleCloseSelect(): void; handleOptionSelected(event: CustomEvent): void; /** * The `required` property determines if the select is required. If true, a colored asterisk will be shown in the label. */ required: boolean; /** * The `requiredAsteriskColor` property allows customizing the color of the required asterisk in the label. * Defaults to 'red' if not specified. */ requiredAsteriskColor: string; render(): any; }