////
///
/// Layout Mixins Module
/// ===========================================================================
///
/// @group Layout
/// @author Scape Agency
/// @link https://scape.style
/// @since 0.1.0 initial release
/// @todo None
/// @access public
///
////
///

@use "sass:map";
@use "../../mixins/head_layout/spacing/margin" as *;
@use "../../dev" as *;

// ============================================================================
// Margin Layout | Utility Classes (Map Based)
// ============================================================================
@each $name, $space in $object_margin_map {
    $val: q($space);

    // all
    .margin--#{$name} {
        @include margin($val);
    }

    // sides
    .margin--#{$name}_top {
        @include margin--top($val);
    }
    .margin--#{$name}_right {
        @include margin--right($val);
    }
    .margin--#{$name}_bottom {
        @include margin--bottom($val);
    }
    .margin--#{$name}_left {
        @include margin--left($val);
    }

    // axes
    .margin--#{$name}_vertical {
        @include margin--vertical($val);
    }
    .margin--#{$name}_horizontal {
        @include margin--horizontal($val);
    }
}

// ============================================================================
// Margin Layout | Utility Classes (Numeric)
// ============================================================================
@for $i from 0 through 250 {
    $val: q($i);

    // all
    .margin--#{$i} {
        @include margin($val);
    }

    // sides
    .margin--#{$i}_top {
        @include margin--top($val);
    }
    .margin--#{$i}_right {
        @include margin--right($val);
    }
    .margin--#{$i}_bottom {
        @include margin--bottom($val);
    }
    .margin--#{$i}_left {
        @include margin--left($val);
    }

    // axes
    .margin--#{$i}_vertical {
        @include margin--vertical($val);
    }
    .margin--#{$i}_horizontal {
        @include margin--horizontal($val);
    }
}
