@use "../base/mixins/breakpoints" as bp;
@use "../base/mixins/meta-class" as mc;

// Text alignment
@include mc.meta("qo-text-start", (text-align: left));
@include mc.meta("qo-text-end", (text-align: right));
@include mc.meta("qo-text-center", (text-align: center));
@include mc.meta("qo-text-justify", (text-align: justify));

// Text wrapping
@include mc.meta("qo-text-nowrap", (white-space: nowrap));
@include mc.meta("qo-text-wrap", (white-space: normal));
@include mc.meta("qo-text-truncate", (overflow: hidden, text-overflow: ellipsis, white-space: nowrap));
@include mc.meta("qo-text-break", (word-wrap: break-word, word-break: break-word));

// Text transform
@include mc.meta("qo-text-uppercase", (text-transform: uppercase));
@include mc.meta("qo-text-lowercase", (text-transform: lowercase));
@include mc.meta("qo-text-capitalize", (text-transform: capitalize));

// Text decoration
@include mc.meta("qo-text-decoration-none", (text-decoration: none));
@include mc.meta("qo-text-decoration-underline", (text-decoration: underline));
@include mc.meta("qo-text-decoration-line-through", (text-decoration: line-through));

// Font style
@include mc.meta("qo-fst-italic", (font-style: italic));
@include mc.meta("qo-fst-normal", (font-style: normal));

// Line height
@include mc.meta("qo-lh-1", (line-height: 1));
@include mc.meta("qo-lh-sm", (line-height: 1.25));
@include mc.meta("qo-lh-base", (line-height: 1.5));
@include mc.meta("qo-lh-lg", (line-height: 2));

// Responsive text alignment
@each $bp-name, $bp-value in bp.$breakpoints {
  @media (min-width: $bp-value) {
    @include mc.meta("qo-text-#{$bp-name}-start", (text-align: left));
    @include mc.meta("qo-text-#{$bp-name}-end", (text-align: right));
    @include mc.meta("qo-text-#{$bp-name}-center", (text-align: center));
  }
}
