@mixin __declare($declarations: ()) {
  @if not __is-map($declarations) {
    @error 'Declarations for _declare must be a map.';
  } @else {
    @each $properties, $value in $declarations {
      @each $property in $properties {
        #{$property}: $value;
      }
    }
  }

  @content;
}

///
/// Includes a declaration block for the current selector from a map.
///
///
/// @access public
/// @group Map
/// @param {Map} $declarations [()] The declaration map.
/// @output The declarations as CSS property-value pairs.
/// @example scss
/// .foo {
///     $foo-declarations: ('height': 50px, 'padding': 1rem 5rem);
///
///     @include _declare($foo-declarations);
/// }
///
/// // Output CSS:
/// .foo {
///     height: 50px;
///     padding: 1rem 5rem;
/// }

@mixin _declare($args...) {
  @include __declare($args...);
}

@mixin _declarations($args...) {
  @include __declare($args...);
}
