@import '../../common/styles/_abstract-icon';
@import '../../common/styles/button-base';
@import '../../common/styles/rounded-corner-base';
@import './colors';

.bloko-icon-react-root {
    display: inline-flex;
}

/* stylelint-disable-next-line selector-pseudo-class-no-unknown */
:local(.bloko-icon) {
    /* stylelint-disable property-no-unknown, declaration-block-no-duplicate-properties */
    composes: bloko-icon from '../controlGroup/controlGroup.less';
    composes: bloko-icon from '../inputText/inputText.less';
    composes: bloko-icon from '../tagList/tag.less';
    composes: bloko-icon from '../link/link.less';
    composes: bloko-icon from '../button/button.less';
    composes: bloko-icon from '../textarea/textarea.less';
    /* stylelint-enable */
}

.bloko-icon {
    --bloko-icon-color-default: @color-gray-80;

    .abstract-icon-default-rules();
    .bloko-icon-colors();
}

.bloko-icon_loader {
    .abstract-icon-spin();
}

/* stylelint-disable-next-line selector-pseudo-class-no-unknown */
:local(.bloko-icon-link) {
    /* stylelint-disable property-no-unknown, declaration-block-no-duplicate-properties */
    composes: bloko-icon-link from '../controlGroup/controlGroup.less';
    composes: bloko-icon-link from '../inputText/inputText.less';
    composes: bloko-icon-link from '../tabs/tabs.less';
    /* stylelint-enable */
}

.bloko-icon-link {
    .bloko-button-base();

    border: 0;
    padding: @icon-padding-link;
    margin: -@icon-padding-link;
    background: transparent;
    line-height: normal;

    &:global(.focus-visible) {
        .abstract-control-focus-visible-inset();

        border-radius: @rounded-corner-default;
    }

    &:hover,
    &:focus {
        outline: none;
        text-decoration: none;
    }
}

/* stylelint-disable-next-line selector-max-universal */
*[disabled] .bloko-icon-link,
.bloko-icon-link[disabled] {
    cursor: default;
    opacity: @icon-opacity-disabled;
    pointer-events: none;
}

/* stylelint-disable-next-line selector-pseudo-class-no-unknown */
:local(.bloko-icon-dynamic) {
    /* stylelint-disable property-no-unknown, declaration-block-no-duplicate-properties */
    composes: bloko-icon-dynamic from '../controlGroup/controlGroup.less';
    composes: bloko-icon-dynamic from '../inputText/inputText.less';
    composes: bloko-icon-dynamic from '../tagList/tag.less';
    /* stylelint-enable */
}

.bloko-icon-dynamic {
    display: inline-block;
}

/* stylelint-disable-next-line selector-pseudo-class-no-unknown */
:local(.bloko-icon-dynamic_full-width) {
    /* stylelint-disable-next-line property-no-unknown */
    composes: bloko-icon-dynamic_full-width from '../button/button.less';
}

.bloko-icon-dynamic_full-width {
    width: 100%;
}

.bloko-icon-vertical-alignment {
    display: inline-block;
    vertical-align: text-bottom;
    line-height: 0;
}
