27 lines
718 B
JavaScript
27 lines
718 B
JavaScript
import { LitElement } from 'lit';
|
|
import { ValidateMixin, InteractionStateMixin, FocusMixin } from '@lion/ui/form-core.js';
|
|
import { ListboxMixin } from './ListboxMixin.js';
|
|
|
|
// TODO: could we extend from LionField?
|
|
|
|
/**
|
|
* LionListbox: implements the wai-aria listbox design pattern and integrates it as a Lion
|
|
* FormControl
|
|
*/
|
|
export class LionListbox extends ListboxMixin(
|
|
FocusMixin(InteractionStateMixin(ValidateMixin(LitElement))),
|
|
) {
|
|
/**
|
|
* @configure InteractionStateMixin, ValidateMixin
|
|
*/
|
|
get _feedbackConditionMeta() {
|
|
return { ...super._feedbackConditionMeta, focused: this.focused };
|
|
}
|
|
|
|
/**
|
|
* @configure FocusMixin
|
|
*/
|
|
get _focusableNode() {
|
|
return this._inputNode;
|
|
}
|
|
}
|