/// Returns an the same map only flipped in reverse.
///
/// ### Map
/// ```scss
/// $map: (
///   test: 50%,
///   test2: 30%,
///   test3: 20%,
/// );
/// ```
///
/// ### Output
/// ```scss
/// $map: (
///   test3: 20%,
///   test2: 30%,
///   test: 50%,
/// );
///
/// @access public
/// @author Ivan Ruzevic
/// @param {string} $map - Map to flip.
///
/// @example
/// $test: map-reverse($map);
///


@function map-reverse($map) {
	$result: null;

	@if type-of($map) == 'map' {
		$keys: map-keys($map);
		$map-reversed: ();

		@for $i from length($keys) through 1 {
			$map-reversed: map-merge($map-reversed, (nth($keys, $i): map-get($map, nth($keys, $i))));
		}

		@if type-of($map-reversed) == 'map' {
			$result: $map-reversed;
		}
		@else {
			@warn 'There was an error reversing the order of "#{$map}"';
		}
	}
	@else {
		@warn '"#{$map}" is not a valid map';
	}

	@return $result;
}

// Short alias.
@function mapR($map) {
	@return map-reverse($map);
}
