UNPKG

@nuralyui/select

Version:

A comprehensive select component with advanced features including multi-selection, keyboard navigation, validation, and accessibility support.

133 lines 4.73 kB
/** * @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