// -----------------------------
// Typography
// -----------------------------

$typography-classes-map: (
  // font style / decoration
  'italic': (font-style: italic),
  'underline': (text-decoration: underline),
  'no-underline': (text-decoration: none),
  'lowercase': (text-transform: lowercase),
  'uppercase': (text-transform: uppercase),
  'capitalize': (text-transform: capitalize),

  // lists
  'list-reset': (list-style: none, padding: 0),

  // whitespace
  'whitespace-normal': (white-space: normal),
  'whitespace-no-wrap': (white-space: nowrap),
  'whitespace-pre': (white-space: pre),
  'whitespace-pre-line': (white-space: pre-line),
  'whitespace-pre-wrap': (white-space: pre-wrap),

  // word wrap
  'break-word': (word-wrap: break-word),
  'break-normal': (word-wrap: normal),
  'truncate': (overflow: hidden, text-overflow: ellipses, white-space: nowrap),
);

// font famailies
@each $steller-font-family-name, $steller-font-family-value in $steller-font-families {
  $typography-classes-map: map-merge(
    $typography-classes-map,
    (
      'font-#{$steller-font-family-name}': (
        font-family: inspect($steller-font-family-value)
      ),
    )
  );
}

// font sizes
@each $steller-font-size-name, $steller-font-size-value in $steller-font-sizes {
  $typography-classes-map: map-merge(
    $typography-classes-map,
    (
      'font-size-#{$steller-font-size-name}': (
        font-size: inspect($steller-font-size-value)
      ),
    )
  );
}

// font weights
@each $steller-font-weight-name, $steller-font-weight-value in $steller-font-weights {
  $typography-classes-map: map-merge(
    $typography-classes-map,
    (
      'font-weight-#{$steller-font-weight-name}': (
        font-weight: inspect($steller-font-weight-value)
      ),
    )
  );
}

// leadings
@each $steller-leading-name, $steller-leading-value in $steller-leadings {
  $typography-classes-map: map-merge(
    $typography-classes-map,
    (
      'leading-#{$steller-leading-name}': (
        line-height: inspect($steller-leading-value)
      ),
    )
  );
}

// letter spacing
@each $steller-letter-spacing-name, $steller-letter-spacing-value in $steller-letter-spacings {
  $typography-classes-map: map-merge(
    $typography-classes-map,
    (
      'letter-spacing-#{$steller-letter-spacing-name}': (
        letter-spacing: inspect($steller-letter-spacing-value)
      ),
    )
  );
}
