@use 'sass:list';
@use 'sass:map';
@use '../variables';
@use 'functions';
@forward '../variables.scss';

$enable-caret: true !default;
$enable-rounded: true !default;
$enable-transitions: true !default;
$enable-prefers-reduced-motion-media-query: true !default;
$enable-grid-classes: true !default;
$enable-deprecation-messages: true !default;

$spacer: 1rem !default;
$spacers: () !default;
$spacers: map.merge(
    (
        0: 0,
        1: (
            $spacer * 0.25
        ),
        2: (
            $spacer * 0.5
        ),
        3: (
            $spacer * 0.75
        ),
        4: (
            $spacer * 1
        ),
        5: (
            $spacer * 1.25
        ),
        6: (
            $spacer * 1.5
        ),
        7: (
            $spacer * 1.75
        ),
        8: (
            $spacer * 2
        ),
        9: (
            $spacer * 2.25
        ),
        10: (
            $spacer * 2.5
        )
    ),
    $spacers
);

// This variable affects the `.h-*` and `.w-*` classes.
$sizes: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$sizes: map.merge(
    (
        25: 25%,
        50: 50%,
        75: 75%,
        100: 100%,
        auto: auto
    ),
    $sizes
);

$body-bg: variables.$bg-default !default;

$emphasized-link-hover-darken-percentage: 15% !default;
$paragraph-margin-bottom: 1rem !default;

$grid-breakpoints: (
    xs: 0,
    sm: 576px,
    md: 768px,
    lg: 992px,
    xl: 1200px
) !default;

@include functions.assert-ascending($grid-breakpoints, '$grid-breakpoints');
@include functions.assert-starts-at-zero($grid-breakpoints, '$grid-breakpoints');

$container-max-widths: (
    sm: 540px,
    md: 720px,
    lg: 960px,
    xl: 1140px
) !default;

@include functions.assert-ascending($container-max-widths, '$container-max-widths');

$grid-columns: 12 !default;
$grid-gutter-width: 30px !default;
$grid-row-columns: 6 !default;

$border-width: 1px !default;
$border-color: variables.$gray-200 !default;

$rounded-pill: 50rem !default;

$box-shadow-sm: 0 0.125rem 0.25rem rgba(variables.$black, 0.075) !default;
$box-shadow-lg: 0 1rem 3rem rgba(variables.$black, 0.175) !default;

$caret-width: 0.3em !default;
$caret-vertical-align: $caret-width * 0.85 !default;
$caret-spacing: $caret-width * 0.85 !default;

$embed-responsive-aspect-ratios: () !default;
$embed-responsive-aspect-ratios: list.join(((21 9), (16 9), (4 3), (1 1)), $embed-responsive-aspect-ratios);

$font-weight-lighter: lighter !default;
$font-weight-light: 300 !default;
$font-weight-normal: 400 !default;
$font-weight-bold: 700 !default;
$font-weight-bolder: bolder !default;
$font-weight-base: $font-weight-normal !default;

$h1-font-size: variables.$font-size-base * 2.5 !default;
$h2-font-size: variables.$font-size-base * 2 !default;
$h3-font-size: variables.$font-size-base * 1.75 !default;
$h4-font-size: variables.$font-size-base * 1.5 !default;
$h5-font-size: variables.$font-size-base * 1.25 !default;
$h6-font-size: variables.$font-size-base !default;

$headings-margin-bottom: $spacer * 0.5 !default;
$headings-font-family: null !default;
$headings-font-weight: 500 !default;
$headings-line-height: 1.2 !default;
$headings-color: null !default;

$display1-size: 6rem !default;
$display2-size: 5.5rem !default;
$display3-size: 4.5rem !default;
$display4-size: 3.5rem !default;

$display1-weight: 300 !default;
$display2-weight: 300 !default;
$display3-weight: 300 !default;
$display4-weight: 300 !default;
$display-line-height: $headings-line-height !default;

$lead-font-size: variables.$font-size-base * 1.25 !default;
$lead-font-weight: 300 !default;

$small-font-size: 80% !default;

$blockquote-small-color: variables.$gray-600 !default;
$blockquote-small-font-size: $small-font-size !default;
$blockquote-font-size: variables.$font-size-base * 1.25 !default;

$hr-border-color: rgba(variables.$black, 0.1) !default;
$hr-border-width: $border-width !default;

$mark-padding: 0.2em !default;

$dt-font-weight: $font-weight-bold !default;

$kbd-box-shadow: inset 0 -0.1rem 0 rgba(variables.$black, 0.25) !default;
$nested-kbd-font-weight: $font-weight-bold !default;

$list-inline-padding: 0.5rem !default;

$mark-bg: #fcf8e3 !default;

$hr-margin-y: $spacer !default;

$input-btn-border-width: $border-width !default;
$btn-border-width: $input-btn-border-width !default;
$btn-font-weight: $font-weight-normal !default;
$btn-block-spacing-y: 0.5rem !default;
$btn-transition:
    color 0.15s ease-in-out,
    background-color 0.15s ease-in-out,
    border-color 0.15s ease-in-out,
    box-shadow 0.15s ease-in-out !default;

$input-line-height: variables.$input-btn-line-height !default;
$input-bg: variables.$bg-default !default;
$input-border-width: $input-btn-border-width !default;
$input-border-radius: variables.$border-radius !default;
$input-border-radius-lg: variables.$border-radius-lg !default;
$input-border-radius-sm: variables.$border-radius-sm !default;
$input-focus-color: variables.$input-color !default;
$input-focus-width: variables.$input-btn-focus-width !default;
$input-height-border: $input-border-width * 2 !default;
$input-height: functions.add($input-line-height * 1em, functions.add(variables.$input-padding-y * 2, $input-height-border, false)) !default;
$input-group-addon-border-color: variables.$input-border-color !default;
$input-transition:
    border-color 0.15s ease-in-out,
    box-shadow 0.15s ease-in-out !default;

$form-check-input-margin-y: 0.3rem !default;
$form-check-input-margin-x: 0.25rem !default;
$form-group-margin-bottom: 1rem !default;
$form-feedback-margin-top: variables.$form-text-margin-top !default;
$form-feedback-invalid-color: functions.theme-color('danger') !default;

$zindex-sticky: 1020 !default;
$zindex-fixed: 1030 !default;

$pagination-focus-outline: 0 !default;

$alert-border-radius: variables.$border-radius !default;
$alert-link-font-weight: $font-weight-bold !default;
$alert-border-width: $border-width !default;

$progress-font-size: variables.$font-size-base * 0.75 !default;
$progress-bg: variables.$gray-200 !default;
$progress-bar-color: variables.$white !default;
$progress-bar-animation-timing: 1s linear infinite !default;
$progress-bar-transition: width 0.6s ease !default;

$kbd-padding-y: 0.2rem !default;
$kbd-padding-x: 0.4rem !default;
$kbd-font-size: variables.$code-font-size !default;
$kbd-color: variables.$white !default;
$kbd-bg: variables.$gray-900 !default;

$pre-color: variables.$gray-800 !default;
$pre-scrollable-max-height: 340px !default;

$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, contents, inline-flex !default;
$overflows: auto, hidden !default;
$positions: static, relative, absolute, fixed, sticky !default;
$user-selects: all, auto, none !default;
