@use 'sass:map';
@use '@angular/material' as mat;
@use '../core/tokens/m3-utils';
@use '../core/tokens/m3';

/// Generates custom tokens for the mtx-alert.
@function get-tokens($theme: m3.$sys-theme) {
  $system: m3-utils.get-system($theme);
  $is-dark: map.get($system, md-sys-type) == dark;

  $tokens: (
    base: (
      alert-container-shape: map.get($system, corner-small),
    ),
    color: (
      alert-outline-color: map.get($system, outline-variant),
      alert-background-color: map.get($system, surface-container),
      alert-text-color: map.get($system, on-surface),

      alert-info-outline-color: light-dark(map.get(mat.$azure-palette, 80), map.get(mat.$azure-palette, 40)),
      alert-info-background-color: light-dark(map.get(mat.$azure-palette, 90), map.get(mat.$azure-palette, 20)),
      alert-info-text-color: light-dark(map.get(mat.$azure-palette, 20), map.get(mat.$azure-palette, 90)),

      alert-success-outline-color: light-dark(map.get(mat.$green-palette, 80), map.get(mat.$green-palette, 40)),
      alert-success-background-color: light-dark(map.get(mat.$green-palette, 95), map.get(mat.$green-palette, 20)),
      alert-success-text-color: light-dark(map.get(mat.$green-palette, 20), map.get(mat.$green-palette, 95)),

      alert-warning-outline-color: light-dark(map.get(mat.$yellow-palette, 80), map.get(mat.$yellow-palette, 40)),
      alert-warning-background-color: light-dark(map.get(mat.$yellow-palette, 98), map.get(mat.$yellow-palette, 20)),
      alert-warning-text-color: light-dark(map.get(mat.$yellow-palette, 20), map.get(mat.$yellow-palette, 98)),

      alert-danger-outline-color: light-dark(map.get(mat.$red-palette, 80), map.get(mat.$red-palette, 40)),
      alert-danger-background-color: light-dark(map.get(mat.$red-palette, 90), map.get(mat.$red-palette, 20)),
      alert-danger-text-color: light-dark(map.get(mat.$red-palette, 20), map.get(mat.$red-palette, 90)),
    ),
    typography: (),
    density: (),
  );

  @return $tokens;
}
