@import '../../../shared-styles/partials/prutech-list.theme';
@import '../../../shared-styles/partials/prutech-snack-bar-theme';
@import '../../../shared-styles/partials/prutech-dialog-theme';
@import '../../../shared-styles/partials/prutech-filter.theme';
@import '../../../shared-styles/partials/prutech-dynamic-autocomplete.theme';
@import '../../../shared-styles/partials/prutech-dynamic-file-input.theme';
@import '../../../shared-styles/partials/prutech-dynamic-form.theme';
@import '../../../shared-styles/partials/prutech-dynamic-input.theme';
@import '../../../shared-styles/partials/prutech-dynamic-select.theme';
@import '../../../shared-styles/partials/prutech-dynamic-slider.theme';
@import '../../../shared-styles/partials/prutech-dynamic-textarea.theme';
@import '../../../shared-styles/partials/prutech-dynamic-radio-button.theme';
@import '../../../shared-styles/partials/prutech-dynamic-datepicker';
@import '../../../shared-styles/partials/prutech-breadcrumb';
@import '../../../shared-styles/partials/prutech-ag-grid-theme';
@import '../../../../../../../seams-ui/src/theme/mixins/prutech-user-info.theme';
@import '../../../shared-styles/partials/prutech-toolbar.theme';
@import '../../../shared-styles/partials/prutech-footer.theme';
@import '../../../shared-styles/partials/prutech-case-summary-header.theme';
@import '../../../shared-styles/partials/prutech-layout.theme';
@import '../../../shared-styles/partials/prutech-context-menu.theme';
@import '../../../shared-styles/partials/prutech-progress-icon.theme';
@import '../../../shared-styles/partials/prutech-case-notes.theme';
@import '../../../shared-styles/partials/prutech-form-footer.theme';
@import '../../../shared-styles/partials/prutech-loader.theme';
@import '../../../shared-styles/partials/prutech-validation-error-modal';
@import '../../../shared-styles/partials/prutech-toastr.theme';

@mixin prutech-components-theme($theme: null, $config: null, $colors: null) {
  $primary: mat-palette($mat-blue, A700, 100, 700);
  $accent: mat-palette($mat-green, A700, A200, 700);
  $warn: mat-palette($mat-red, A400, A100, 700);
  $material-theme: mat-light-theme($primary, $accent, $warn);
  $banner: mat-palette($mat-yellow, 200, A100, A400);

  $prutech-theme: $material-theme;
  @if $theme != null {
    $prutech-theme: $theme;
  }

  $typography: mat-typography-config(
    $font-family: 'Roboto, "Helvetica Neue", sans-serif',
    $display-4: mat-typography-level(60px, 80px, 300),
    $display-3: mat-typography-level(48px, 64px, 400),
    $display-2: mat-typography-level(36px, 48px, 500),
    $display-1: mat-typography-level(24px, 32px, 400),
    $headline: mat-typography-level(20px, 24px, 500, $letter-spacing: .25em),
    $title: mat-typography-level(18px, 24px, 500, $letter-spacing: .4em),
    $subheading-2: mat-typography-level(16px, 28px, 500, $letter-spacing: .1em),
    $subheading-1: mat-typography-level(14px, 20px, 500, $letter-spacing: .2em),
    $body-2: mat-typography-level(16px, 28px, 400, $letter-spacing: .5em),
    $body-1: mat-typography-level(14px, 24px, 400, $letter-spacing: .25em),
    $caption: mat-typography-level(13px, 20px, 400),
    $button: mat-typography-level(14px, 16px, 500, $letter-spacing: 1em),
      // Line-height must be unit-less fraction of the font-size.
    $input: mat-typography-level(inherit, 1.125, 400)
  );

  @if $config == null {
    $config: mat-typography-config();
  }

  @if $colors == null {
    $colors: (
      primary: $primary,
      warn: $warn,
      error: $warn,
    );

  }
  .hidden {
    display: none !important;
  }
  .readonly {
    pointer-events: none;
  }
  .highlight {
    font-size: 12px;
  }

  @include prutech-filter-theme($prutech-theme, $config);
  @include prutech-list-theme($prutech-theme, $config);
  @include prutech-snack-bar-theme($prutech-theme);
  @include prutech-dialog-theme($prutech-theme, $colors);
  @include prutech-dynamic-form-theme($prutech-theme, $config);
  @include prutech-dynamic-datepicker-theme($prutech-theme, $config);
  @include prutech-dynamic-autocomplete-theme($prutech-theme, $config);
  @include prutech-dynamic-select-theme($prutech-theme, $config);
  @include prutech-dynamic-input-theme($prutech-theme, $config);
  @include prutech-dynamic-file-input-theme($prutech-theme, $config);
  @include prutech-dynamic-radio-button-theme($prutech-theme, $config);
  @include prutech-dynamic-slider-theme($prutech-theme, $config);
  @include prutech-dynamic-textarea-theme($prutech-theme, $config);
  @include prutech-dynamic-datepicker-theme($prutech-theme, $config);
  @include prutech-breadcrumb-theme($prutech-theme, $config);
  @include prutech-ag-grid-theme($prutech-theme);
  @include prutech-user-info-theme($prutech-theme);
  @include prutech-toolbar-theme($prutech-theme);
  @include prutech-footer-theme($theme);
  @include prutech-case-summary-header($theme);
  @include prutech-layout-theme($theme, $config);
  @include prutech-context-menu-theme($theme);
  @include prutech-progress-icon-theme($theme);
  @include prutech-case-notes($theme);
  @include prutech-form-footer;
  @include prutech-loader-theme($theme);
  @include prutech-validation-error-modal($theme);
  @include prutech-toastr-theme($theme);
}
