/*!
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You 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.
 */

@use '@angular/material' as mat;
@use 'sass:map';

$surface-palette: (
    50: #ffffff,
    100: #fafafa,
    200: #f4f4f4,
    300: #e3e3e3,
    400: #d8d8d8,
    500: #acacac,
    600: #666666,
    700: #444444,
    800: #303030,
    900: #121212,
    contrast: (
        50: rgba(#000000, 0.87),
        100: rgba(#000000, 0.87),
        200: rgba(#000000, 0.87),
        300: rgba(#000000, 0.87),
        400: rgba(#000000, 0.87),
        500: rgba(#000000, 0.87),
        600: #ffffff,
        700: #ffffff,
        800: #ffffff,
        900: #ffffff
    )
);

$success-palette: (
    50: #e5ebed, // Used for the grid lines on the canvas in light mode
    100: #c3e8d0,
    200: #9dd9b2,
    300: #73ca94,
    400: #52bf7e,
    500: #2cb367,
    600: #2cb367,
    700: #1A9964,
    800: #016131,
    900: #0d1411, // Used for the grid lines on the canvas in dark mode
    contrast: (
        50: rgba(#000000, 0.87),
        100: rgba(#000000, 0.87),
        200: rgba(#000000, 0.87),
        300: rgba(#000000, 0.87),
        400: rgba(#000000, 0.87),
        500: rgba(#000000, 0.87),
        600: rgba(#000000, 0.87),
        700: rgba(#000000, 0.87),
        800: #ffffff,
        900: #ffffff
    )
);

$caution-palette: (
    50: #fffce9,
    100: #fff8c8,
    200: #fff3a2,
    300: #ffee7b,
    400: #fee95c,
    500: #fce43e,
    600: #fdd53d,
    700: #fabd36,
    800: #f7a52f,
    900: #f27d22,
    A100: #ffef85,
    A200: #f8bf47,
    A400: #cf9f5d,
    A700: #ffcc00,
    contrast: (
        50: rgba(#000000, 0.87),
        100: rgba(#000000, 0.87),
        200: rgba(#000000, 0.87),
        300: rgba(#000000, 0.87),
        400: rgba(#000000, 0.87),
        500: rgba(#000000, 0.87),
        600: rgba(#000000, 0.87),
        700: rgba(#000000, 0.87),
        800: rgba(#000000, 0.87),
        900: rgba(#000000, 0.87),
        A100: rgba(#000000, 0.87),
        A200: rgba(#000000, 0.87),
        A400: rgba(#000000, 0.87),
        A700: rgba(#000000, 0.87),
    )
);

// surface palette default color hue must have enough contrast on top of the mat-app-background. For light mode this is a minimum of 600 up to 900.
// For the lighter and darker hues these are used as the surface colors for canvas components, the birdseye, navigate/operate palettes etc. When the theme is in light mode the lighter hue is used as the surface color and the darker hue sets the contrast color hue.
$surface-light-palette: mat.define-palette($surface-palette, 600, 100, 900);
$success-light-palette: mat.define-palette($success-palette, 400, 200, 800);
$caution-light-palette: mat.define-palette($caution-palette, A400, A200, A700);

$nifi-theme-light: mat.define-light-theme(
        (
            color: (
                primary: $surface-light-palette,
                accent: $success-light-palette,
                warn: $caution-light-palette
            ),
            density: -3
        )
);

// surface palette default color hue must have enough contrast on top of the mat-app-background. For light mode this is a minimum of 300 up to 500.
// For the lighter and darker hues these are used as the surface colors for canvas components, the birdseye, navigate/operate palettes etc. When the theme is in dark mode the darker hue is used as the surface color and the lighter hue sets the contrast color hue.
$surface-dark-palette: mat.define-palette($surface-palette, 500, 200, 800);
$success-dark-palette: mat.define-palette($success-palette, 400, 200, 800);
$caution-dark-palette: mat.define-palette($caution-palette, A400, A200, A700);

$nifi-theme-dark: mat.define-dark-theme(
        (
            color: (
                primary: $surface-dark-palette,
                accent: $success-dark-palette,
                warn: $caution-dark-palette,
            ),
            density: -3
        )
);
