@import "mixins/mixins";
@import "common/var";

@include b(tooltip) {
    &:focus:not(.focusing), &:focus:hover {
        outline-width: 0;
    }
    @include e(popper) {
        position: absolute;
        border-radius: 4px;
        padding: $--tooltip-padding;
        z-index: $--index-popper;
        font-size: $--tooltip-font-size;
        line-height: 1.2;
        min-width: 10px;
        max-width: 85vw;
        background: $--tooltip-fill;
        color: $--tooltip-color;

        .popper__arrow,
        .popper__arrow::after {
            position: absolute;
            display: block;
            width: 0;
            height: 0;
            border-color: transparent;
            border-style: solid;
        }

        .popper__arrow {
            border-width: $--tooltip-arrow-size;
        }

        .popper__arrow::after {
            content: " ";
            border-width: 5px;
        }

        &[x-placement^="top"] {
            margin-bottom: #{$--tooltip-arrow-size + 6px};
        }

        &[x-placement^="top"] .popper__arrow {
            bottom: -$--tooltip-arrow-size;
            border-top-color: $--tooltip-border-color;
            border-bottom-width: 0;

            &::after {
                bottom: 1px;
                margin-left: -5px;
                border-top-color: $--tooltip-fill;
                border-bottom-width: 0;
            }
        }

        &[x-placement^="bottom"] {
            margin-top: #{$--tooltip-arrow-size + 6px};
        }

        &[x-placement^="bottom"] .popper__arrow {
            top: -$--tooltip-arrow-size;
            border-top-width: 0;
            border-bottom-color: $--tooltip-border-color;

            &::after {
                top: 1px;
                margin-left: -5px;
                border-top-width: 0;
                border-bottom-color: $--tooltip-fill;
            }
        }

        &[x-placement^="right"] {
            margin-left: #{$--tooltip-arrow-size + 6px};
        }

        &[x-placement^="right"] .popper__arrow {
            left: -$--tooltip-arrow-size;
            border-right-color: $--tooltip-border-color;
            border-left-width: 0;

            &::after {
                bottom: -5px;
                left: 1px;
                border-right-color: $--tooltip-fill;
                border-left-width: 0;
            }
        }

        &[x-placement^="left"] {
            margin-right: #{$--tooltip-arrow-size + 6px};
        }

        &[x-placement^="left"] .popper__arrow {
            right: -$--tooltip-arrow-size;
            border-right-width: 0;
            border-left-color: $--tooltip-border-color;

            &::after {
                right: 1px;
                bottom: -5px;
                margin-left: -5px;
                border-right-width: 0;
                border-left-color: $--tooltip-fill;
            }
        }
    }
}

@media (max-width: $screen-sm-min) {
    .el-tooltip__popper {
        max-width: 90vw !important; // on smaller screens, force this to prevent overflow
    }
}
