@use '../../base' as *;
@use 'sass:string';

/// @access private
@mixin component {
    @include b(igx-combo) {
        @include sizable();

        $this: bem--selector-to-string(&);
        @include register-component(
            $name: string.slice($this, 2, -1),
            $deps: (
                igx-checkbox,
                igx-drop-down,
                igx-input-group,
                igx-icon,
            )
        );

        @extend %igx-combo !optional;

        @include e(drop-down) {
            @extend %igx-combo__drop-down !optional;
        }

        @include e(case-icon) {
            @extend %igx-combo__case-icon !optional;
        }

        @include e(case-icon, $m: active) {
            @extend %igx-combo__case-icon--active !optional;
        }

        @include e(search) {
            @extend %igx-combo__search !optional;
        }

        @include e(checkbox) {
            @extend %igx-combo__checkbox !optional;
        }

        @include e(content) {
            @extend %igx-combo__content !optional;
        }

        @include e(add) {
            @extend %igx-combo__add !optional;
        }

        @include e(add-item) {
            @extend %igx-combo__add-item !optional;
        }

        @include e(empty) {
            @extend %igx-combo__empty !optional;
        }

        @include e(clear-button) {
            @extend %igx-combo__clear-button !optional;
        }

        @include e(toggle-button) {
            @extend %igx-combo__toggle-button !optional;
        }
    }
}
