@use "operations" as ops;
@use "sass:math";

.#{$grid-container-prefix}{
  display: grid;
}
[class^='#{$grid-container-prefix}-']{
  display: grid;
  grid-template-rows: auto;
}

@include ops.crossMapping($placement-key, $placement-properties, $placement-map, $breakpoint-map);

@mixin deep-grid($currentTotal, $currentClass, $currentValues, $level){
  @for $k from 1 through $columns{
    $newTotal: $currentTotal + $k;
    @if ($newTotal <= $columns){
      $newValues: unquote($currentValues + ' '+(math.div(100, 12)*($k))+'%');
      $newClass: unquote($currentClass + '-'+ ($k));
      #{$newClass} { grid-template-columns: $newValues }
      @if($level < $items){
        @include deep-grid($newTotal, $newClass, $newValues, $level + 1)
      }
    }
  }
}
@include deep-grid(0,'.#{$grid-container-prefix}','',1);

@each $breakpoint, $value in $breakpoint-map {
  @media (min-width: $value) {
    @include deep-grid(0,'.#{$breakpoint}\\:#{$grid-container-prefix}','',1);
  }
}

