// --------------------------------------------------------------------
// Helper -------------------------------------------------------------
// --------------------------------------------------------------------
@function map-deep-get($map, $keys...) {
  @each $key in $keys {
    $map: map-get($map, $key);
  }

  @return $map;
}

@function map-deep-merge($parent-map, $child-map) {
  $result: $parent-map;
  @each $key, $child in $child-map {
    $parent-has-key: map-has-key($result, $key);
    $parent-value: map-get($result, $key);
    $parent-type: type-of($parent-value);
    $child-type: type-of($child);
    $parent-is-map: $parent-type == map;
    $child-is-map: $child-type == map;
    @if not $parent-has-key or $parent-type != $child-type or not ($parent-is-map and $child-is-map) {
      $result: map-merge($result, ($key: $child));
    }
    @else {
      $result: map-merge($result, ($key: map-deep-merge($parent-value, $child)));
    }
  }
  @return $result;
}
// --------------------------------------------------------------------
// Retrieve Sizes ----------------------------------------------------
// --------------------------------------------------------------------
@function get-size($type, $elem, $screen_size) {
  @return map-deep-get($sizes, $type, $screen_size, $elem);
}
// --------------------------------------------------------------------
// Retrieve Font Weight -----------------------------------------------
// --------------------------------------------------------------------
@function get-font-weight($elem) {
	@return map-get($font__weight, $elem);
}
// --------------------------------------------------------------------
// Retrieve Colors ----------------------------------------------------
// Usage: color(primary, 1) --------------------------------------------
// --------------------------------------------------------------------
@function color($elem, $variant) {
	@return map-get(map-get($color, $elem), $variant);
}
// --------------------------------------------------------------------
// Retrieve Border Radius ---------------------------------------------
// --------------------------------------------------------------------
@function get-border-radius($elem) {
	@return map-get($border__radius, $elem);
}
// --------------------------------------------------------------------
// Animation ---------------------------------------------------------
// --------------------------------------------------------------------
@function get-easing($elem) {
	@return map-get($easing, $elem);
}

