/*
 * Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
 * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
 * This software is released under MIT license.
 * The full license information can be found in LICENSE in the root directory of this project.
 */
@use '../../utils/mixins';
@use 'mixins.forms' as forms-mixins;
@use 'variables.forms' as forms-variables;
@use '../../utils/variables/variables.density' as density;
@use '@cds/core/tokens/tokens.scss';

@include mixins.exports('forms.textarea') {
  // @TODO Fix selectors when old forms are removed to allow better defaults
  .clr-textarea-wrapper {
    white-space: nowrap;
    display: flex;
    .clr-validate-icon {
      margin-left: 0;
    }
  }

  .clr-textarea {
    max-width: calc(100% - forms-variables.$clr-forms-baseline);
    height: auto;
    resize: vertical;
    border: tokens.$cds-alias-object-border-width-100 solid forms-variables.$clr-forms-border-color;
    background: forms-variables.$clr-forms-textarea-background-color;
    color: forms-variables.$clr-forms-text-color;
    border-radius: forms-variables.$clr-forms-textarea-border-radius;
    padding: density.$clr-base-vertical-offset-xl density.$clr-base-horizontal-offset-xl;
    @include mixins.generate-typography-token('SECONDARY-13-RG-STD');

    &:focus {
      // TODO(CDE-863) - Remove outline mixin and convert this component to just use border-color to avoid the white
      // outline in addition to the intended color on focus
      @include mixins.include-slim-outline-style-form-fields();
      outline-color: forms-variables.$clr-forms-focused-color;
      border-color: forms-variables.$clr-forms-focused-color;
    }

    &:disabled {
      @include forms-mixins.disabled-form-fields();
      background-color: forms-variables.$clr-forms-textarea-disabled-background;
      border-color: forms-variables.$clr-forms-border-disabled-color;
    }
  }

  .clr-success .clr-textarea {
    border-color: forms-variables.$clr-forms-valid-color;
    outline-color: forms-variables.$clr-forms-valid-color;
  }

  .clr-error .clr-textarea {
    border-color: forms-variables.$clr-forms-invalid-color;
    outline-color: forms-variables.$clr-forms-invalid-color;
  }

  .clr-control-container textarea {
    width: auto; // @TODO remove when removing old forms - forced 100% width by old forms
  }

  .clr-form-control.row .clr-textarea-wrapper {
    max-width: calc(100% - forms-variables.$clr-forms-baseline);
  }

  .clr-form-compact .clr-textarea-wrapper .clr-textarea {
    @include forms-mixins.form-flatten-compact-adjustments();
  }
}
