/* stylelint-disable @stylistic/block-opening-brace-space-before */
@use 'sass:map';
@use './tokens';

@mixin breakpoint($breakpoint) {
  @if map.has-key(tokens.$breakpoints, $breakpoint) {
    $breakpoint-value: map.get(tokens.$breakpoints, $breakpoint);

    @media screen and (min-width: #{$breakpoint-value}) {
      @content;
    }
  } @else {
    @error 'Unknown minimum breakpoint of #{$breakpoint}. Accepted arguments are: "xxl", "xl", "lg", "md", "sm", "xs".';
  }
}

@mixin breakpoint-max($breakpoint) {
  @if map.has-key(tokens.$max-breakpoints, $breakpoint) and $breakpoint != 'xs'
  {
    $breakpoint-value: map.get(tokens.$max-breakpoints, $breakpoint);
    $calc-max-width: calc($breakpoint-value - 0.01em);

    @media screen and (max-width: #{$calc-max-width}) {
      @content;
    }
  } @else {
    @error 'Unknown maximum breakpoint of #{$breakpoint}. Accepted arguments are: "xxl", "xl", "lg", "md", and "sm"';
  }
}
