/**
 *
 * @ai-apps/angular v2.152.0 | _tokens.scss
 *
 * Copyright 2014, 2023 IBM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0

 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


//
// Copyright IBM Corp. 2018, 2018
//
// This source code is licensed under the Apache-2.0 license found in the
// LICENSE file in the root directory of this source tree.
//

@use 'sass:color';
@use "sass:map";
@use "sass:list";
@use '../../colors';
@use '../../themes';
@use '../../theme';
@use '../../utilities/component-tokens';
@use '../button/tokens' as button-tokens;

$notification-background-error: (
  fallback: colors.$red-10,
  values: (
    (
      theme: themes.$white,
      value: colors.$red-10,
    ),
    (
      theme: themes.$g10,
      value: colors.$red-10,
    ),
    (
      theme: themes.$g90,
      value: theme.$layer,
    ),
    (
      theme: themes.$g100,
      value: theme.$layer,
    ),
  ),
) !default;

$notification-background-success: (
  fallback: colors.$green-10,
  values: (
    (
      theme: themes.$white,
      value: colors.$green-10,
    ),
    (
      theme: themes.$g10,
      value: colors.$green-10,
    ),
    (
      theme: themes.$g90,
      value: theme.$layer,
    ),
    (
      theme: themes.$g100,
      value: theme.$layer,
    ),
  ),
) !default;

$notification-background-info: (
  fallback: colors.$blue-10,
  values: (
    (
      theme: themes.$white,
      value: colors.$blue-10,
    ),
    (
      theme: themes.$g10,
      value: colors.$blue-10,
    ),
    (
      theme: themes.$g90,
      value: theme.$layer,
    ),
    (
      theme: themes.$g100,
      value: theme.$layer,
    ),
  ),
) !default;

$notification-background-warning: (
  fallback: color.mix(colors.$yellow-30, colors.$white-0, 15%),
  values: (
    (
      theme: themes.$white,
      value: color.mix(colors.$yellow-30, colors.$white-0, 15%),
    ),
    (
      theme: themes.$g10,
      value: color.mix(colors.$yellow-30, colors.$white-0, 15%),
    ),
    (
      theme: themes.$g90,
      value: theme.$layer,
    ),
    (
      theme: themes.$g100,
      value: theme.$layer,
    ),
  ),
) !default;

$notification-action-hover: (
  fallback: colors.$white-0,
  values: (
    (
      theme: themes.$white,
      value: colors.$white-0,
    ),
    (
      theme: themes.$g10,
      value: colors.$white-0,
    ),
    (
      theme: themes.$g90,
      value: theme.$layer-hover,
    ),
    (
      theme: themes.$g100,
      value: theme.$layer-hover,
    ),
  ),
) !default;

$notification-action-tertiary-inverse: (
  fallback: map.get(button-tokens.$button-tokens, button-tertiary, fallback),
  values:
    component-tokens.get-inverse-theme-values(
      map.get(button-tokens.$button-tokens, button-tertiary)
    ),
) !default;

$notification-action-tertiary-inverse-active: (
  fallback:
    map.get(button-tokens.$button-tokens, button-tertiary-active, fallback),
  values:
    component-tokens.get-inverse-theme-values(
      map.get(button-tokens.$button-tokens, button-tertiary-active)
    ),
) !default;

$notification-action-tertiary-inverse-hover: (
  fallback:
    map.get(button-tokens.$button-tokens, button-tertiary-hover, fallback),
  values:
    component-tokens.get-inverse-theme-values(
      map.get(button-tokens.$button-tokens, button-tertiary-hover)
    ),
) !default;

$notification-action-tertiary-inverse-text: (
  fallback: map.get(themes.$white, text-inverse),
  values: (
    (
      theme: themes.$white,
      value: map.get(themes.$g100, text-inverse),
    ),
    (
      theme: themes.$g10,
      value: map.get(themes.$g90, text-inverse),
    ),
    (
      theme: themes.$g90,
      value: map.get(themes.$g10, text-inverse),
    ),
    (
      theme: themes.$g100,
      value: map.get(themes.$white, text-inverse),
    ),
  ),
) !default;

$notification-action-tertiary-inverse-text-on-color-disabled: (
  fallback: map.get(themes.$white, text-on-color-disabled),
  values: (
    (
      theme: themes.$white,
      value: map.get(themes.$g100, text-on-color-disabled),
    ),
    (
      theme: themes.$g10,
      value: map.get(themes.$g90, text-on-color-disabled),
    ),
    (
      theme: themes.$g90,
      value: map.get(themes.$g10, text-on-color-disabled),
    ),
    (
      theme: themes.$g100,
      value: map.get(themes.$white, text-on-color-disabled),
    ),
  ),
) !default;

$notification-tokens: (
  notification-background-error: $notification-background-error,
  notification-background-success: $notification-background-success,
  notification-background-info: $notification-background-info,
  notification-background-warning: $notification-background-warning,
  notification-action-hover: $notification-action-hover,
  notification-action-tertiary-inverse: $notification-action-tertiary-inverse,
  notification-action-tertiary-inverse-active:
    $notification-action-tertiary-inverse-active,
  notification-action-tertiary-inverse-hover:
    $notification-action-tertiary-inverse-hover,
  notification-action-tertiary-inverse-text:
    $notification-action-tertiary-inverse-text,
  notification-action-tertiary-inverse-text-on-color-disabled:
    $notification-action-tertiary-inverse-text-on-color-disabled,
);

$notification-background-error: component-tokens.get-var(
  $notification-background-error,
  'notification-background-error'
);

$notification-background-success: component-tokens.get-var(
  $notification-background-success,
  'notification-background-success'
);

$notification-background-info: component-tokens.get-var(
  $notification-background-info,
  'notification-background-info'
);

$notification-background-warning: component-tokens.get-var(
  $notification-background-warning,
  'notification-background-warning'
);

$notification-action-hover: component-tokens.get-var(
  $notification-action-hover,
  'notification-action-hover'
);

$notification-action-tertiary-inverse: component-tokens.get-var(
  $notification-action-tertiary-inverse,
  'notification-action-tertiary-inverse'
);

$notification-action-tertiary-inverse-active: component-tokens.get-var(
  $notification-action-tertiary-inverse-active,
  'notification-action-tertiary-inverse-active'
);

$notification-action-tertiary-inverse-hover: component-tokens.get-var(
  $notification-action-tertiary-inverse-hover,
  'notification-action-tertiary-inverse-hover'
);

$notification-action-tertiary-inverse-text: component-tokens.get-var(
  $notification-action-tertiary-inverse-text,
  'notification-action-tertiary-inverse-text'
);

$notification-action-tertiary-inverse-text-on-color-disabled: component-tokens.get-var(
  $notification-action-tertiary-inverse-text-on-color-disabled,
  'notification-action-tertiary-inverse-text-on-color-disabled'
);
