//
// BeeGrid
//
//

// stylelint-disable
$white:       #fff !default;

// Layouts default values
$header-height:   minmax(56px, auto) !default;
$footer-height:   minmax(max-content, 50px) !default;
$nav-width:       250px !default;
$nav-height:      minmax(56px, auto) !default;
$aside-width:     200px !default;

// Grid
$grid-columns-number:   12 !default;
$grid-item-padding:     1rem !default;

// Grid breakpoints
//
// Define the maximum dimensions at which your layout will change,
// adapting to different screen sizes, for use in media queries.
$grid-breakpoints: (
  xs: 0px,
  sm: 480px,
  md: 960px,
  lg: 1140px,
  xl: 1280px
) !default;

// Grid widths
$grid-widths: (
  sm: 640px,
  md: 1024px,
  lg: 1280px,
  xl: 1440px
) !default;

// Define the grid gap dimensions at which your layout will change,
// adapting to different screen sizes
$grid-breakpoints-gap: (
  xl: 24px,
  lg: 20px,
  md: 18px,
  sm: 16px,
  xs: 12px
) !default;

// Define the grid default behaviour for each breakpoint.
$grid-breakpoints-grid: (
  xl: $grid-columns-number,
  lg: $grid-columns-number,
  md: ceil($grid-columns-number / 2),
  sm: ceil($grid-columns-number / 3),
  xs: $grid-columns-number / $grid-columns-number
) !default;

// predefined layouts
$grid-layouts: (
  1: (
    grid-template-areas:
      "head head"
      "main main",
    grid-template-rows: $header-height 1fr
  ),
  2: (
    grid-template-areas:
      "head head"
      "nav main",
      grid-template-rows: $header-height 1fr,
      grid-template-columns: $nav-width 1fr
  ),
  3: (
    grid-template-areas:
      "nav head"
      "nav main",
      grid-template-rows: $header-height 1fr,
      grid-template-columns: $nav-width 1fr
  ),
  4: (
    grid-template-areas:
      "head head"
      "nav main"
      "foot foot",
      grid-template-rows: $header-height 1fr $footer-height,
      grid-template-columns: $nav-width 1fr
  ),
  5: (
    grid-template-areas:
      "head head"
      "nav main"
      "nav foot",
      grid-template-rows: $header-height 1fr $footer-height,
      grid-template-columns: $nav-width 1fr
  ),
  6: (
    grid-template-areas:
      "nav head"
      "nav main"
      "nav foot",
      grid-template-rows: $header-height 1fr $footer-height,
      grid-template-columns: $nav-width 1fr
  ),
  7: (
    grid-template-areas:
      "head head head"
      "nav main aside"
      "foot foot foot",
      grid-template-rows: $header-height 1fr $footer-height,
      grid-template-columns: $nav-width 1fr $aside-width
  ),
  8: (
    grid-template-areas:
      "head head head"
      "nav main aside",
      grid-template-rows: $header-height 1fr,
      grid-template-columns: $nav-width 1fr $aside-width
  ),
  9: (
    grid-template-areas:
      "nav head head"
      "nav main aside",
      grid-template-rows: $header-height 1fr,
      grid-template-columns: $nav-width 1fr $aside-width
  ),
  10: (
    grid-template-areas:
      "nav head head"
      "nav main aside"
      "nav foot foot",
      grid-template-rows: $header-height 1fr $footer-height,
      grid-template-columns: $nav-width 1fr $aside-width
  ),
) !default;

$grid-breakpoints-layouts: (
  sm: (
    1: (
      grid-template-areas:
        "head"
        "main",
      grid-template-rows: $header-height 1fr,
      grid-template-columns: 1fr
    ),
    2: (
      grid-template-areas:
        "head"
        "nav"
        "main",
        grid-template-rows: $header-height $nav-height 1fr,
        grid-template-columns: 1fr
    ),
    3: (
      grid-template-areas:
        "head"
        "nav"
        "main",
        grid-template-rows: $header-height $nav-height 1fr,
        grid-template-columns: 1fr
    ),
    4: (
      grid-template-areas:
        "head"
        "nav"
        "main"
        "foot",
        grid-template-rows: $header-height $nav-height 1fr $footer-height,
        grid-template-columns: 1fr
    ),
    5: (
      grid-template-areas:
        "head"
        "nav"
        "main"
        "foot",
        grid-template-rows: $header-height $nav-height 1fr $footer-height,
        grid-template-columns: 1fr
    ),
    6: (
      grid-template-areas:
        "head"
        "nav"
        "main"
        "foot",
        grid-template-rows: $header-height $nav-height 1fr $footer-height,
        grid-template-columns: 1fr
    ),
    7: (
      grid-template-areas:
        "head"
        "nav"
        "main"
        "aside"
        "foot",
        grid-template-rows: $header-height $nav-height 1fr auto $footer-height,
        grid-template-columns: 1fr
    ),
    8: (
      grid-template-areas:
        "head"
        "nav"
        "main"
        "aside",
        grid-template-rows: $header-height $nav-height 1fr auto,
        grid-template-columns: 1fr
    ),
    9: (
      grid-template-areas:
        "head"
        "nav"
        "main"
        "aside",
        grid-template-rows: $header-height $nav-height 1fr auto,
        grid-template-columns: 1fr
    ),
    10: (
      grid-template-areas:
        "head"
        "nav"
        "main"
        "aside"
        "foot",
        grid-template-rows: $header-height $nav-height 1fr auto $footer-height,
        grid-template-columns: 1fr
    )
  )
) !default;

// Check defaults arrays
@include _check-ascending($grid-breakpoints, "$grid-breakpoints");
@include _check-ascending($grid-widths, "$grid-widths");
@include _check-even($grid-columns-number, "$grid-columns-number");
