// Copyright 2017 Palantir Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0.

@import "../../common/variables";
@import "../../common/mixins";
@import "common";

.#{$ns}-form-group {
  display: flex;
  flex-direction: column;
  margin: 0 0 calc(var(--bp-surface-spacing) * 4);

  label.#{$ns}-label {
    margin-bottom: var(--bp-surface-spacing);
  }

  .#{$ns}-control {
    margin-top: calc(var(--bp-surface-spacing) * 2);
  }

  .#{$ns}-form-group-sub-label,
  .#{$ns}-form-helper-text {
    color: var(--bp-typography-color-muted);
    font-size: var(--bp-typography-size-body-small);
  }

  .#{$ns}-form-group-sub-label {
    margin-bottom: var(--bp-surface-spacing);
  }

  .#{$ns}-form-helper-text {
    margin-top: var(--bp-surface-spacing);
  }

  /* stylelint-disable-next-line order/declaration-block-order */
  &.#{$ns}-intent-primary {
    .#{$ns}-form-helper-text {
      color: var(--bp-intent-primary-hover);
    }
  }

  &.#{$ns}-intent-success {
    .#{$ns}-form-helper-text {
      color: var(--bp-intent-success-hover);
    }
  }

  &.#{$ns}-intent-warning {
    .#{$ns}-form-helper-text {
      color: var(--bp-intent-warning-hover);
    }
  }

  &.#{$ns}-intent-danger {
    .#{$ns}-form-helper-text {
      color: var(--bp-intent-danger-hover);
    }
  }

  &.#{$ns}-fill {
    width: 100%;
  }

  &.#{$ns}-inline {
    align-items: flex-start;
    flex-direction: row;

    &.#{$ns}-large label.#{$ns}-label {
      line-height: calc(var(--bp-surface-spacing) * 10);
      margin: 0 calc(var(--bp-surface-spacing) * 3) 0 0;
    }

    label.#{$ns}-label {
      line-height: calc(var(--bp-surface-spacing) * 7.5);
      margin: 0 calc(var(--bp-surface-spacing) * 3) 0 0;
    }
  }

  &.#{$ns}-disabled {
    .#{$ns}-label,
    .#{$ns}-text-muted,
    .#{$ns}-form-group-sub-label,
    .#{$ns}-form-helper-text {
      // disabled state always overrides over styles
      /* stylelint-disable-next-line declaration-no-important */
      color: var(--bp-typography-color-default-disabled) !important;
    }
  }

  .#{$ns}-dark & {
    &.#{$ns}-intent-primary {
      .#{$ns}-form-helper-text {
        color: #{"oklch(from var(--bp-intent-primary-rest) calc(l + 0.22) calc(c - 0.02) h)"};
      }
    }

    &.#{$ns}-intent-success {
      .#{$ns}-form-helper-text {
        color: #{"oklch(from var(--bp-intent-success-rest) calc(l + 0.25) calc(c - 0.03) h)"};
      }
    }

    &.#{$ns}-intent-warning {
      .#{$ns}-form-helper-text {
        color: #{"oklch(from var(--bp-intent-warning-rest) calc(l + 0.18) calc(c - 0.02) h)"};
      }
    }

    &.#{$ns}-intent-danger {
      .#{$ns}-form-helper-text {
        color: #{"oklch(from var(--bp-intent-danger-rest) calc(l + 0.2) calc(c - 0.02) h)"};
      }
    }

    .#{$ns}-form-group-sub-label,
    .#{$ns}-form-helper-text {
      color: #{"oklch(from var(--bp-typography-color-muted) calc(l + 0.24) calc(c - 0.011) h)"};
    }

    &.#{$ns}-disabled {
      .#{$ns}-label,
      .#{$ns}-text-muted,
      .#{$ns}-form-group-sub-label,
      .#{$ns}-form-helper-text {
        // disabled state always overrides over styles
        /* stylelint-disable-next-line declaration-no-important */
        color: var(--bp-typography-color-default-disabled) !important;
      }
    }
  }
}
