// Size map for rem-based utilities
// Uses a consistent 8px base scale with aliases
$dif-sizes: (
  "xxs": 0.125rem,    // 2px - Extra extra small
  "xs": 0.25rem,      // 4px - Extra small
  "tiny": 0.25rem,    // 4px - Alias for xs
  "sm": 0.5rem,       // 8px - Small (for .tp--05)
  "small": 0.5rem,    // 8px - Alias for sm
  "md": 1rem,         // 16px - Medium (base size)
  "normal": 1rem,     // 16px - Alias for md
  "lg": 1.5rem,       // 24px - Large
  "big": 1.5rem,      // 24px - Alias for lg
  "xl": 2rem,         // 32px - Extra large
  "bigger": 2rem,     // 32px - Alias for xl
  "xxl": 2.5rem,      // 40px - Extra extra large
  "biggest": 2.5rem,  // 40px - Alias for xxl
  "xxxl": 3rem,       // 48px - Extra extra extra large
  "gient": 3rem       // 48px - Alias for xxxl (typo? should be "giant"?)
);

// Size map for percentage-based utilities
// Starts at 2.5% with consistent increments
$dif-sizes2: (
  "xxs": 2.5%,    // Tiny percentage
  "xs": 5%,       // Extra small (+2.5%)
  "sm": 10%,      // Small (+5%)
  "md": 20%,      // Medium (+10%)
  "lg": 40%,      // Large (+20%)
  "xl": 60%,      // Extra large (+20%)
  "xxl": 80%,     // Extra extra large (+20%)
  "full": 100%    // Full size (+20%)
);

// Define dif-directions with their abbreviations
$dif-directions: (
  "left": "lft",
  "top": "tp",
  "right": "rgt",
  "bottom": "btm"
);

// Mixin to generate position classes
@mixin generate-position-classes($dir-map, $size-map, $is-rem: false) {
  @each $dir, $abbr in $dir-map {
    @each $size, $value in $size-map {
      // Use "--" for rem, "-" for percentages
      $separator: if($is-rem, "--", "-");
      
      // Positive values
      .#{$dir}#{$separator}#{$size},
      .#{$abbr}#{$separator}#{$size} {
        #{$dir}: $value;
      }
      
      // Negative values (append "-" after size)
      .#{$dir}#{$separator}#{$size}-,
      .#{$abbr}#{$separator}#{$size}- {
        #{$dir}: -$value;
      }
    }
  }
}

// Generate rem-based classes with "--"
@include generate-position-classes($dif-directions, $dif-sizes, true);

// Generate percentage-based classes with "-"
@include generate-position-classes($dif-directions, $dif-sizes2, false);