@nuralyui/select
Version:
A comprehensive select component with advanced features including multi-selection, keyboard navigation, validation, and accessibility support.
133 lines • 4.73 kB
TypeScript
/**
* @license
* Copyright 2023 Nuraly, Laabidi Aymen
* SPDX-License-Identifier: MIT
*/
/**
* Constants for the select component
*/
/**
* Event names fired by the select component
*/
export declare const SELECT_EVENTS: {
/** Fired when selection changes */
readonly CHANGE: "nr-change";
/** Fired when component receives focus */
readonly FOCUS: "nr-focus";
/** Fired when component loses focus */
readonly BLUR: "nr-blur";
/** Fired when dropdown opens */
readonly DROPDOWN_OPEN: "nr-dropdown-open";
/** Fired when dropdown closes */
readonly DROPDOWN_CLOSE: "nr-dropdown-close";
/** Fired when validation state changes */
readonly VALIDATION: "nr-validation";
/** Fired when validation error occurs */
readonly ERROR: "nr-select-error";
};
/**
* CSS class names used throughout the select component
*/
export declare const SELECT_CLASSES: {
/** Main wrapper element class */
readonly WRAPPER: "wrapper";
/** Select container class */
readonly SELECT: "select";
/** Clickable trigger area class */
readonly TRIGGER: "select-trigger";
/** Dropdown options container class */
readonly OPTIONS: "options";
/** Individual option class */
readonly OPTION: "option";
/** Selected option state class */
readonly SELECTED: "selected";
/** Focused option state class */
readonly FOCUSED: "focused";
/** Disabled state class */
readonly DISABLED: "disabled";
/** Selected option tag class (multiple mode) */
readonly TAG: "tag";
/** Tag label text class */
readonly TAG_LABEL: "tag-label";
/** Tag close button class */
readonly TAG_CLOSE: "tag-close";
/** Icons container class */
readonly ICONS_CONTAINER: "icons-container";
/** Dropdown arrow icon class */
readonly ARROW_ICON: "arrow-icon";
/** Clear selection icon class */
readonly CLEAR_ICON: "clear-icon";
/** Status/validation icon class */
readonly STATUS_ICON: "status-icon";
/** Selected option check mark class */
readonly CHECK_ICON: "check-icon";
/** Validation message class */
readonly VALIDATION_MESSAGE: "validation-message";
/** Placeholder text class */
readonly PLACEHOLDER: "placeholder";
/** No options available message class */
readonly NO_OPTIONS: "no-options";
/** No options content wrapper class */
readonly NO_OPTIONS_CONTENT: "no-options-content";
/** No options icon class */
readonly NO_OPTIONS_ICON: "no-options-icon";
/** No options text class */
readonly NO_OPTIONS_TEXT: "no-options-text";
/** Search container class */
readonly SEARCH_CONTAINER: "search-container";
/** Search input class */
readonly SEARCH_INPUT: "search-input";
/** Search icon class */
readonly SEARCH_ICON: "search-icon";
/** Search clear button class */
readonly SEARCH_CLEAR: "search-clear";
};
/**
* ARIA roles and attributes for accessibility compliance
*/
export declare const SELECT_ARIA: {
/** ARIA role for the main select element */
readonly COMBOBOX: "combobox";
/** ARIA role for the options container */
readonly LISTBOX: "listbox";
/** ARIA role for individual options */
readonly OPTION: "option";
/** ARIA attribute indicating dropdown expanded state */
readonly EXPANDED: "aria-expanded";
/** ARIA attribute indicating popup presence */
readonly HASPOPUP: "aria-haspopup";
/** ARIA attribute for multiple selection capability */
readonly MULTISELECTABLE: "aria-multiselectable";
/** ARIA attribute for selected state */
readonly SELECTED: "aria-selected";
/** ARIA attribute for disabled state */
readonly DISABLED: "aria-disabled";
/** ARIA attribute for required field */
readonly REQUIRED: "aria-required";
/** ARIA attribute for validation state */
readonly INVALID: "aria-invalid";
/** ARIA attribute linking to description */
readonly DESCRIBEDBY: "aria-describedby";
readonly LABELLEDBY: "aria-labelledby";
};
export declare const SELECT_DEFAULTS: {
readonly PLACEHOLDER: "Select an option";
readonly MAX_HEIGHT: "200px";
readonly DROPDOWN_OFFSET: 4;
readonly TAG_MAX_WIDTH: "150px";
readonly TRANSITION_DURATION: 200;
readonly DEBOUNCE_DELAY: 300;
};
export declare const SELECT_KEYS: {
readonly ENTER: "Enter";
readonly SPACE: " ";
readonly ESCAPE: "Escape";
readonly ARROW_DOWN: "ArrowDown";
readonly ARROW_UP: "ArrowUp";
readonly HOME: "Home";
readonly END: "End";
readonly TAB: "Tab";
};
export declare const EMPTY_STRING = "";
export declare const MULTIPLE_OPTIONS_SEPARATOR = ", ";
//# sourceMappingURL=select.constant.d.ts.map