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

@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;
}
