@use "sass:list";
@use "sass:math";
@use "sass:meta";
@use "../../variables";
@use "../variables" as bootstrap-variables;

// stylelint-disable property-blacklist
// Single side border-radius

// Helper function to replace negative values with 0
@function valid-radius($radius) {
    $return: ();
    @each $value in $radius {
        @if meta.type-of($value) == number {
            $return: list.append($return, math.max($value, 0));
        } @else {
            $return: list.append($return, $value);
        }
    }
    @return $return;
}

@mixin border-radius($radius: variables.$border-radius, $fallback-border-radius: false) {
    @if bootstrap-variables.$enable-rounded {
        border-radius: valid-radius($radius);
    } @else if $fallback-border-radius != false {
        border-radius: $fallback-border-radius;
    }
}

@mixin border-top-radius($radius) {
    @if bootstrap-variables.$enable-rounded {
        border-top-left-radius: valid-radius($radius);
        border-top-right-radius: valid-radius($radius);
    }
}

@mixin border-right-radius($radius) {
    @if bootstrap-variables.$enable-rounded {
        border-top-right-radius: valid-radius($radius);
        border-bottom-right-radius: valid-radius($radius);
    }
}

@mixin border-bottom-radius($radius) {
    @if bootstrap-variables.$enable-rounded {
        border-bottom-right-radius: valid-radius($radius);
        border-bottom-left-radius: valid-radius($radius);
    }
}

@mixin border-left-radius($radius) {
    @if bootstrap-variables.$enable-rounded {
        border-top-left-radius: valid-radius($radius);
        border-bottom-left-radius: valid-radius($radius);
    }
}

@mixin border-top-left-radius($radius) {
    @if bootstrap-variables.$enable-rounded {
        border-top-left-radius: valid-radius($radius);
    }
}

@mixin border-top-right-radius($radius) {
    @if bootstrap-variables.$enable-rounded {
        border-top-right-radius: valid-radius($radius);
    }
}

@mixin border-bottom-right-radius($radius) {
    @if bootstrap-variables.$enable-rounded {
        border-bottom-right-radius: valid-radius($radius);
    }
}

@mixin border-bottom-left-radius($radius) {
    @if bootstrap-variables.$enable-rounded {
        border-bottom-left-radius: valid-radius($radius);
    }
}
