/*! Based on Bootstrap v5.1.3 Copyright (c) 2011-2024 The Bootstrap Authors */
@import "breakpoints";

/* stylelint-disable-next-line scss/dollar-variable-pattern */
$container-max-widths: (
  sm: $nijmegen-container-max-width-sm,
  md: $nijmegen-container-max-width-md,
  lg: $nijmegen-container-max-width-lg,
  xl: $nijmegen-container-max-width-xl,
  xxl: $nijmegen-container-max-width-xxl,
) !default;

@mixin make-container(
  $nijmegen-container-padding-inline-end: $nijmegen-container-padding-inline-end,
  $nijmegen-container-padding-inline-start: $nijmegen-container-padding-inline-start
) {
  margin-inline-end: auto;
  margin-inline-start: auto;
  padding-inline-end: $nijmegen-container-padding-inline-end;
  padding-inline-start: $nijmegen-container-padding-inline-end;
  width: 100%; /* stylelint-disable-line property-disallowed-list */
}

.nijmegen-container,
// 100% wide container at all breakpoints
.nijmegen-container-fluid {
  @include make-container;
}

// Responsive containers that are 100% wide until a breakpoint
@each $breakpoint, $container-max-width in $container-max-widths {
  .nijmegen-container-#{$breakpoint} {
    @extend .nijmegen-container-fluid;
  }

  @include media-breakpoint-up($breakpoint, $nijmegen-grid-breakpoints) {
    // Extend each breakpoint which is smaller or equal to the current breakpoint
    $extend-breakpoint: true; /* stylelint-disable-line scss/dollar-variable-default, scss/dollar-variable-pattern  */
    %responsive-container-#{$breakpoint} {
      max-width: $container-max-width; /* stylelint-disable-line property-disallowed-list */
    }

    @each $name, $width in $nijmegen-grid-breakpoints {
      @if $extend-breakpoint {
        .nijmegen-container#{breakpoint-infix($name, $nijmegen-grid-breakpoints)} {
          @extend %responsive-container-#{$breakpoint};
        }

        // Once the current breakpoint is reached, stop extending
        @if $breakpoint == $name {
          $extend-breakpoint: false; /* stylelint-disable-line scss/dollar-variable-default, scss/dollar-variable-pattern  */
        }
      }
    }
  }
}
