$spacing-classes-map: ();

// -----------------------------
// Spacing
// -----------------------------

$sides-labels-map: (
  (top, t),
  (right, r),
  (bottom, b),
  (left, l),
);

$size-types-map: (
  (margin, m),
  (padding, p),
);

@each $spacing-label, $spacing-value in $steller-spacings {
  @each $type, $type-label in $size-types-map {
    // t, r, b, l
    @each $side, $side-label in $sides-labels-map {
      $spacing-classes-map: map-merge(
        $spacing-classes-map,
        (
          '#{$type-label}#{$side-label}-#{$spacing-label}': (#{$type}-#{$side}: #{$spacing-value})
        )
      );
    }

    // x
    $spacing-classes-map: map-merge(
      $spacing-classes-map,
      (
        '#{$type-label}x-#{$spacing-label}': (
          #{$type}-left: #{$spacing-value},
          #{$type}-right: #{$spacing-value},
        )
      )
    );

    // y
    $spacing-classes-map: map-merge(
      $spacing-classes-map,
      (
        '#{$type-label}y-#{$spacing-label}': (
          #{$type}-top: #{$spacing-value},
          #{$type}-bottom: #{$spacing-value},
        )
      )
    );

    // all
    $spacing-classes-map: map-merge(
      $spacing-classes-map,
      (
        #{$type-label}-#{$spacing-label}: (#{$type}: #{$spacing-value})
      )
    );
  }
}
