/*!
 * ---------------------------------------------------------------------
 *
 * GLPI - Gestionnaire Libre de Parc Informatique
 *
 * http://glpi-project.org
 *
 * @copyright 2015-2025 Teclib' and contributors.
 * @copyright 2003-2014 by the INDEPNET Development Team.
 * @licence   https://www.gnu.org/licenses/gpl-3.0.html
 *
 * ---------------------------------------------------------------------
 *
 * LICENSE
 *
 * This file is part of GLPI.
 *
 * This program 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 3 of the License, or
 * (at your option) any later version.
 *
 * This program 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 this program.  If not, see <https://www.gnu.org/licenses/>.
 *
 * ---------------------------------------------------------------------
 */

/**
Override the override of mixins by tabler over bootstrap
which broke styles of btn-group > .btn-check
*/
// TODO Can this mixin be removed yet?
@mixin button-check(
    $color,
    $color-hover: color-contrast($color),
    $active-background: $color,
    $active-border: $color,
    $active-color: color-contrast($active-background)
) {
    .btn-check:checked + &,
    .btn-check:active + & {
        color: $active-color;
        background-color: $active-background;
        border-color: $active-border;
    }
}

@each $color, $value in $theme-colors {
    .btn-#{$color} {
        @include button-check($value, $value);
    }
}

@each $color, $value in $theme-colors {
    .btn-outline-#{$color} {
        @include button-check($value);
    }
}

// Make border color of secondary outline buttons match input border
.btn-group {
    @each $color, $value in $theme-colors {
        .btn-outline-secondary {
            border: var(--tblr-border-width) solid var(--tblr-border-color);
        }
    }
}

// Reverse border radius for flex-row-reverse
.btn-group.flex-row-reverse {
    // !important are set for buttons in the middle (not first, not last) to have both radius neutralized
    // (and avoid the inheritance)
    .btn:not(:last-child, .dropdown-toggle),
    .btn.dropdown-toggle-split:first-child,
    .btn-group:not(:last-child) > .btn {
        border-top-right-radius: inherit;
        border-bottom-right-radius: inherit;
        border-top-left-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
    }

    .btn:nth-child(n+3),
    :not(.btn-check) + .btn,
    .btn-group:not(:first-child) > .btn {
        border-top-left-radius: inherit;
        border-bottom-left-radius: inherit;
        border-top-right-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }
}
