@use '../core/styles/common/list';

@use '../core/styles/common/tokens' as *;

@use 'navbar-item_vertical';
@use 'navbar-item_horizontal';

.kbq-navbar-item {
    box-sizing: border-box;

    position: relative;

    display: flex;
    align-items: center;

    border-radius: var(--kbq-navbar-item-size-content-border-radius);

    & .kbq-icon {
        min-width: var(--kbq-size-l);
        min-height: var(--kbq-size-l);
    }

    // Filled fade-contrast only: its background is a semi-transparent tint, so the
    // navbar icon shows through. Composite the tint over an opaque bg-tertiary substrate.
    // The outline variant is intentionally left untouched — it stays a clean transparent outline.
    & .kbq-badge-filled.kbq-badge_fade-contrast {
        background:
            linear-gradient(var(--kbq-background-contrast-fade), var(--kbq-background-contrast-fade)),
            var(--kbq-background-bg-tertiary);
    }

    & .kbq-button-icon {
        position: absolute;
        padding-left: var(--kbq-size-xs);
        padding-right: var(--kbq-size-xs);
        top: 50%;
        transform: translateY(-50%);
    }

    &:before {
        position: absolute;
        content: '';
    }

    &:after {
        position: absolute;
        content: '';

        display: none;

        border-radius: var(--kbq-navbar-item-size-content-border-radius);
    }

    &.kbq-horizontal {
        /* stylelint-disable-next-line scss/at-extend-no-missing-placeholder */
        @extend navbar-item_horizontal !optional;
    }

    &.kbq-vertical {
        /* stylelint-disable-next-line scss/at-extend-no-missing-placeholder */
        @extend navbar-item_vertical !optional;
    }
}

.kbq-navbar-title {
    display: inline-block;

    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}

.kbq-navbar-item__title {
    display: flex;

    flex-direction: column;

    align-self: center;

    min-width: 0;
}

.kbq-navbar-item__container {
    display: flex;
    flex-direction: row;

    flex: 1 1 auto;
    justify-content: space-between;

    min-width: 0;

    & .kbq-icon {
        align-self: center;
    }
}

.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button {
    flex: 1;

    & .kbq-button-wrapper {
        justify-content: center;

        & .kbq-icon.kbq-icon_left {
            margin-left: unset;
        }

        & .kbq-icon.kbq-icon_right {
            margin-right: unset;
        }
    }
}

a.kbq-navbar-item,
a.kbq-navbar-title {
    text-decoration: none;
}

.kbq-navbar-item,
.kbq-navbar-brand,
.kbq-navbar-toggle {
    & [kbq-button] {
        z-index: 1;
    }
}
