/*
 * @copyright   Copyright (C) 2022 AesirX. All rights reserved.
 * @license     GNU General Public License version 3, see LICENSE.
 */

$utilities: (
  'opacity': (
    property: opacity,
    values: (
      0: 0,
      25: 0.25,
      50: 0.5,
      75: 0.75,
      80: 0.8,
      100: 1,
    ),
  ),
  'color': (
    property: color,
    class: text,
    values:
      map-merge(
        $theme-colors,
        (
          'white': $white,
          'body': $body-color,
          'muted': $text-muted,
          'black-50': rgba($black, 0.5),
          'white-50': rgba($white, 0.5),
          'reset': inherit,
          'black': $black,
          'green': $green,
          'blue-0': $color-blue,
          'red-1': $color-red,
          'blue-3': $color-blue-3,
          'red-2': $color-red-4,
        )
      ),
  ),
  'background-color': (
    property: background-color,
    class: bg,
    values:
      map-merge(
        $theme-colors,
        (
          'body': $body-bg,
          'white': $white,
          'black': $body-color,
          'orange': $orange,
          'green': $green,
          'yellow': $yellow,
          'red': $red,
          'blue': $color-blue-4,
          'blue-1': $color-blue-5,
          'blue-2': $color-blue-3,
          'blue-3': $color-blue-6,
          'blue-4': $color-blue-8,
          'blue-5': $color-blue,
          'gray-2': rgba($color-gray-2, 0.7),
          'gray-3': $color-gray-3,
          'green-2': rgba($green, 0.15),
          'red-2': rgba($red, 0.15),
          'transparent': transparent,
        )
      ),
  ),
  'flex': (
    responsive: true,
    property: flex,
    values: (
      fill: 1 1 auto,
      1: 1,
    ),
  ),
  'border': (
    property: border,
    values: (
      null: $border-width solid $border-color,
      0: 0,
      1: 1px solid $border-color,
      'da-1': 1px dashed $border-color,
    ),
  ),
  'border-top': (
    property: border-top,
    values: (
      null: $border-width solid $border-color,
      0: 0,
      1: 1px solid $border-color,
    ),
  ),
  'border-bottom': (
    property: border-bottom,
    values: (
      null: $border-width solid $border-color,
      0: 0,
      1: 1px solid $border-color,
    ),
  ),
  'border-end': (
    property: border-right,
    class: border-end,
    values: (
      null: $border-width solid $border-color,
      0: 0,
      1: 1px solid $border-color,
    ),
  ),
  'border-start': (
    property: border-left,
    class: border-start,
    values: (
      null: $border-width solid $border-color,
      0: 0,
      1: 1px solid $border-color,
      5: 5px solid $border-color,
    ),
  ),
  'border-color': (
    property: border-color,
    class: border,
    values:
      map-merge(
        $theme-colors,
        (
          'white': $white,
          'gray': $border-color,
          'green': $green,
          'red': $color-red,
          'transparent': transparent,
        )
      ),
  ),
  'overflow-y': (
    property: overflow-y,
    values: (
      auto: auto,
    ),
  ),
  'font-weight': (
    property: font-weight,
    class: fw,
    values: (
      light: $font-weight-light,
      lighter: $font-weight-lighter,
      normal: $font-weight-normal,
      bold: $font-weight-bold,
      bolder: $font-weight-bolder,
      medium: 500,
      semibold: 600,
    ),
  ),
  'width': (
    property: width,
    class: w,
    values: (
      25: 25%,
      40: 40%,
      50: 50%,
      60: 60%,
      75: 75%,
      100: 100%,
      fit: fit-content,
      max: max-content,
      auto: auto,
    ),
  ),
  'object-fit': (
    property: object-fit,
    class: object-fit,
    values: cover contain,
  ),
  'cursor': (
    property: cursor,
    class: cursor,
    values: none auto pointer,
  ),
  'zindex': (
    property: z-index,
    class: zindex,
    values: (
      n1: -1,
      0: 0,
      1: 1,
      2: 2,
      3: 3,
      5: 5,
    ),
  ),
  'min-height': (
    property: z-index,
    class: minh,
    values: (
      auto: auto,
      100: 100%,
      80: 80%,
    ),
  ),
  'max-width': (
    property: max-width,
    class: mw,
    values: (
      100: 100%,
      80: 80%,
      120: 120px,
    ),
  ),
  'max-height': (
    property: max-height,
    class: mh,
    values: (
      100: 100%,
      80: 80%,
      80vh: 80vh,
    ),
  ),
  'rounded-top-start': (
    property: border-top-left-radius,
    class: rounded-top-start,
    values: (
      null: $border-radius,
      0: 0,
      1: $border-radius-sm,
      2: $border-radius,
      3: $border-radius-lg,
      circle: 50%,
      pill: $border-radius-pill,
    ),
  ),
  'rounded-top-end': (
    property: border-top-right-radius,
    class: rounded-top-end,
    values: (
      null: $border-radius,
      0: 0,
      1: $border-radius-sm,
      2: $border-radius,
      3: $border-radius-lg,
      circle: 50%,
      pill: $border-radius-pill,
    ),
  ),
);
