/**
 * Copyright (c) Enalean, 2018-Present. All Rights Reserved.
 *
 * This file is a part of Tuleap.
 *
 * Tuleap is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Tuleap is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Tuleap. If not, see <http://www.gnu.org/licenses/>.
 */

@use "sass:map";
@use "../global-variables";
@use "pkg:@tuleap/tlp-swatch-colors";

/* stylelint-disable selector-class-pattern */
.select2-selection.item-labels-box-select2
    > .select2-selection__rendered
    > .select2-selection__choice {
    color: var(--tlp-main-color);

    @each $color-name, $colors in tlp-swatch-colors.$color-map {
        &.select-item-label-color-#{$color-name} {
            border-color: map.get($colors, "primary");
            background: map.get($colors, "primary");
            color: var(--tlp-white-color);

            > .select2-selection__choice__remove {
                &::before {
                    color: var(--tlp-white-color);
                }
            }

            &.select-item-label-outline {
                background: transparent;
                color: map.get($colors, "primary");

                > .select2-selection__choice__remove {
                    // stylelint-disable-next-line max-nesting-depth
                    &::before {
                        color: map.get($colors, "primary");
                    }
                }
            }
        }
    }
}

.labels-box-select-hidden {
    display: none;
}

.item-labels-box-select2-results
    > .select2-results
    > .select2-results__options
    > .select2-results__option {
    @each $color-name, $colors in tlp-swatch-colors.$color-map {
        &.select-item-label-color-#{$color-name} {
            color: map.get($colors, "primary");
        }
    }

    &.select2-results__option--highlighted {
        @each $color-name, $colors in tlp-swatch-colors.$color-map {
            &.select-item-label-color-#{$color-name} {
                background: map.get($colors, "primary");
                color: var(--tlp-white-color);
            }
        }
    }
}

.select-item-label-bullet {
    margin: 0 5px 0 0;
}

.select2 {
    &.select2-container--disabled > .selection > .item-labels-box-select2 {
        min-height: 32px;
        padding: 0;
        border: 0;
        background: none;

        > .select2-selection__rendered {
            > .select2-selection__choice {
                margin: 0 5px 5px 0;
            }

            // stylelint-disable-next-line selector-max-compound-selectors
            > .select2-search > .select2-search__field {
                display: none;
            }
        }
    }

    &:not(.select2-container--disabled) {
        // stylelint-disable-next-line selector-max-compound-selectors
        &.select2-container--focus
            > .selection
            > .item-labels-box-select2
            > .select2-selection__rendered
            > .select2-search
            > .select2-search__field {
            width: 200px !important;
        }

        &:not(.select2-container--focus) > .selection > .item-labels-box-select2 {
            border-color: transparent;
            background: none;

            > .select2-selection__rendered > .select2-search {
                &::after {
                    content: "\f067"; // fa-plus
                    position: relative;
                    top: 2px;
                    color: #888888;
                    font-family: "Font Awesome 6 Free";
                    font-weight: 900;
                }

                // stylelint-disable-next-line selector-max-compound-selectors
                &:not(:only-child) > .select2-search__field {
                    display: none;
                    pointer-events: none;
                }

                &:only-child {
                    // stylelint-disable-next-line max-nesting-depth
                    &::after {
                        content: "\f02c"; // fa-tags
                        right: 5px;
                        left: auto;
                    }

                    // stylelint-disable-next-line selector-max-compound-selectors, max-nesting-depth
                    > .select2-search__field {
                        width: 200px !important;
                        padding: 0 10px 0 0;
                        text-align: right;
                        cursor: pointer;
                    }
                }
            }
        }
    }
}

/* stylelint-disable selector-no-qualifying-type */
span.select2 {
    // stylelint-disable-next-line selector-max-compound-selectors
    > .selection
        > .item-labels-box-select2
        > .select2-selection__rendered
        > .select2-selection__choice
        > .select2-selection__choice__remove {
        margin: 0 5px 0 0;

        // stylelint-disable-next-line selector-max-compound-selectors
        &::before {
            content: "\f02b"; // fa-tag
            font-family: "Font Awesome 6 Free";
            font-weight: 900;
        }

        // stylelint-disable-next-line selector-max-compound-selectors
        &:hover::before {
            color: inherit;
        }
    }

    &:not(.select2-container--disabled)
        > .selection
        > .item-labels-box-select2
        > .select2-selection__rendered
        > .select2-selection__choice {
        // stylelint-disable-next-line selector-max-compound-selectors
        &:hover > .select2-selection__choice__remove::before {
            content: "\f057"; // fa-times-circle
            font-family: "Font Awesome 6 Free";
            font-weight: 900;
        }
    }
}
/* stylelint-enable */
