////
///
/// Gap Mixins
/// ===========================================================================
///
/// Gap utility mixins for controlling spacing in flex and grid containers.
///
/// @group Mixins.HeadLayout.Spacing
/// @author Scape Agency
/// @link https://scape.style
/// @since 0.1.0 initial release
/// @access public
///
////

@use "../../../dev" as *;
@use "../../../variables" as *;

// ============================================================================
// Base Gap Mixins
// ============================================================================

/// Sets both `gap` and `grid-gap` properties for a container.
/// @param {String | Number} $val - The gap size to be applied.
@mixin gap($val) {
    gap: $val;
    grid-gap: $val;
}

/// Sets both `row-gap` and `grid-row-gap` for vertical spacing.
/// @param {String | Number} $val - The row gap size.
@mixin gap--row($val) {
    row-gap: $val;
    grid-row-gap: $val;
}

/// Sets both `column-gap` and `grid-column-gap` for horizontal spacing.
/// @param {String | Number} $val - The column gap size.
@mixin gap--col($val) {
    column-gap: $val;
    grid-column-gap: $val;
}

/// Generic mixin to set a gap-related CSS property dynamically.
/// @param {String} $property - The gap property.
/// @param {String | Number} $val - The value to apply.
@mixin gap_set($property, $val) {
    #{$property}: $val;
}
