/*
  Utilities Added or Modified:
  1. Add 90, 180, 270 to rotate- utility classes
  2. Add sub and super to align- utility
  3. Add 25%, 50%, 75%, 100% to rounded- utility
  4. Add dotted, solid, dashed, wavy to text-decoration- utility
  5. Add sm, md, lg to font-size- utility
  6. Add default, pointer, grab, crosshair to cursor- utility classes
  7. Add height 0 and width 0 to utility classes
  7. Add min-vh 0 and min-vw 0 to utility classes
*/
$utilities: () !default;

$rounded: map-get($utilities, 'rounded');
$rounded_values: map-merge(
  map-get($rounded, 'values' ),
  (
    25: 25%,
    50: 50%,
    75: 75%,
    100: 100%,
  )
);

$height: map-get($utilities, 'height');
$min-height: map-get($utilities, 'min-viewport-height');

$height-values: map-merge(
  map-get($height, 'values' ),
  (
    0: 0,
  )
);

$min-height-values: map-merge(
  map-get($min-height, 'values' ),
  (
    0: 0,
  )
);

$width: map-get($utilities, 'width');
$min-width: map-get($utilities, 'min-viewport-width');

$width-values: map-merge(
  map-get($width, 'values' ),
  (
    0: 0,
  )
);

$min-width-values: map-merge(
  map-get($min-width, 'values' ),
  (
    0: 0,
  )
);

$font-size: map-get($utilities, 'font-size');
$font-sizes: map-merge(
  map-get($font-size, 'values' ),
  (
    sm: $font-size-sm,
    md: $font-size-base,
    lg: $font-size-lg,
  )
);

$utilities:  map-merge(
  $utilities,
  (
    "rotate": (
      property: transform,
      class: rotate,
      values: (
        90: rotate(90deg),
        180: rotate(180deg),
        270: rotate(270deg)
      )
    ),
    "align": map-merge(
      map-get($utilities, 'align'),
      (
        values: baseline top middle bottom text-bottom text-top super sub
      )
    ),
    "text-style": (
      class: text-decoration,
      property: text-decoration-style,
      values: dotted solid dashed wavy
    ),    
    "rounded": map-merge(
      $rounded,
      (
        values: $rounded_values
      )
    ),
    "font-size": map-merge(
      $font-size,
      (
        values: $font-sizes
      )
    ),
    "cursor": (
      property: cursor,
      class: cursor,
      values: default pointer grab crosshair
    ),
    "height": map-merge(
      $height,
      (
        values: $height-values
      )
    ),
    "min-viewport-height": map-merge(
      $min-height,
      (
        values: $min-height-values
      )
    ),
    "width": map-merge(
      $width,
      (
        values: $width-values
      )
    ),
    "min-width-height": map-merge(
      $min-width,
      (
        values: $min-width-values
      )
    ),
  )
);

