@use 'sass:map';
@use 'breakpoints' as *;

@mixin media-query-min($min: null) {
  @if map.has-key($breakpoints, $min) {
    @media (min-width: #{map.get($breakpoints, $min)}px) {
      @content;
    }
  } @else {
    @error "[STIHL Design System] - [ds.media-query-min()]: Passed '#{$min}' breakpoint is not available in ds.media-query-min() mixin.";
  }
}

@mixin media-query-max($max: null) {
  @if map.has-key($breakpoints, $max) {
    @media (max-width: #{map.get($breakpoints, $max) - 1}px) {
      @content;
    }
  } @else {
    @error "[STIHL Design System] - [ds.media-query-max()]: Passed '#{$max}' breakpoint is not available in ds.media-query-max() mixin.";
  }
}

@mixin media-query-min-max($min: null, $max: null) {
  @if map.has-key($breakpoints, $min) and map.has-key($breakpoints, $max) {
    @media (min-width: #{map.get($breakpoints, $min)}px) and (max-width: #{map.get($breakpoints, $max) - 1}px) {
      @content;
    }
  } @else {
    @error "[STIHL Design System] - [ds.media-query-min-max()]: Passed '#{$min}' and/or '#{$max}' breakpoint is not available in ds.media-query-min-max() mixin.";
  }
}
