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

/// @access private
/// @author <a href="https://github.com/desig9stein" target="_blank">Marin Popov</a>
@mixin component {
    @include b(igx-stepper) {
        $block: bem--selector-to-string(&);
        @include register-component(string.slice($block, 2, -1));

        @extend %stepper-display !optional;

        @include e(header) {
            @extend %igx-stepper__header !optional;
        }

        @include e(body) {
            @extend %igx-stepper__body !optional;
        }

        @include e(step) {
            @extend %igx-stepper__step !optional;
        }

        @include e(step, $m: simple) {
            @extend %igx-stepper__step--simple !optional;
        }

        @include e(step, $m: completed) {
            @extend %igx-stepper__step--completed !optional;
        }

        @include e(step, $m: disabled) {
            @extend %igx-stepper__step--disabled !optional;
        }

        @include e(step-header) {
            @extend %igx-stepper__step-header !optional;
        }

        @include e(step-header, $m: current) {
            @extend %igx-stepper__step-header--current !optional;
        }

        @include e(step-header, $m: invalid) {
            @extend %igx-stepper__step-header--invalid !optional;
        }

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

        @include e(step-content-wrapper) {
            @extend %igx-stepper__step-content-wrapper !optional;
        }

        @include e(step-indicator) {
            @extend %igx-stepper__step-indicator !optional;
        }

        @include e(step-title-wrapper) {
            @extend %igx-stepper__step-title-wrapper !optional;
        }

        @include e(step-title) {
            @extend %igx-stepper__step-title !optional;
        }

        @include e(step-subtitle) {
            @extend %igx-stepper__step-subtitle !optional;
        }

        @include e(step, $m: top) {
            @extend %igx-stepper__step--top !optional;
        }

        @include e(step, $m: bottom) {
            @extend %igx-stepper__step--bottom !optional;
        }

        @include e(step, $m: start) {
            @extend %igx-stepper__step--start !optional;
        }

        @include e(step, $m: end) {
            @extend %igx-stepper__step--end !optional;
        }

        @include m(horizontal) {
            @extend %igx-stepper--horizontal !optional;

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

            @include e(body-content, $m: active) {
                @extend %igx-stepper__body-content--active !optional;
            }
        }
    }
}
