/*
 * 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 'sass:map';
@use '@angular/material' as mat;

@mixin generate-theme($supplemental-theme) {
    // Get the color config from the theme.
    $supplemental-theme-color-config: mat.get-color-config($supplemental-theme);

    // Get the color palette from the color-config.
    $supplemental-theme-surface-palette: map.get($supplemental-theme-color-config, 'primary');

    // Get hues from palette
    $is-dark: map-get($supplemental-theme-color-config, is-dark);
    $supplemental-theme-surface-palette-darker: mat.get-color-from-palette($supplemental-theme-surface-palette, darker);
    $supplemental-theme-surface-palette-lighter: mat.get-color-from-palette(
        $supplemental-theme-surface-palette,
        lighter
    );

    div.operation-control {
        box-shadow: 0 1px 6px rgba(0, 0, 0, 0.25);
        background-color: if(
            $is-dark,
            $supplemental-theme-surface-palette-darker,
            $supplemental-theme-surface-palette-lighter
        );

        .operation-control-header {
            &:hover {
                background: linear-gradient(
                    -90deg,
                    var(--mat-menu-item-hover-state-layer-color) 34px,
                    transparent 35px
                );
            }
        }
    }
}
