//
// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0
//

@use 'sass:map';
@use './internal/validate';
@use './md-sys-color';
@use './md-sys-typescale';
@use './v0_192/md-comp-list';

$supported-tokens: (
    'label-text-color',
    'label-text-font',
    'label-text-line-height',
    'label-text-size',
    'label-text-weight',
    'overline-color',
    'overline-font',
    'overline-line-height',
    'overline-size',
    'overline-weight',
    'supporting-text-color',
    'supporting-text-font',
    'supporting-text-line-height',
    'supporting-text-size',
    'supporting-text-weight',
    'trailing-supporting-text-color',
    'trailing-supporting-text-font',
    'trailing-supporting-text-line-height',
    'trailing-supporting-text-size',
    'trailing-supporting-text-weight'
);

$_default: (
    'md-sys-color': md-sys-color.values-light(),
    'md-sys-typescale': md-sys-typescale.values(),
);

@function values($deps: $_default, $exclude-hardcoded-values: false) {
    // Note: <md-item> does not provide `--md-item-*` custom properties.
    $list-tokens: md-comp-list.values($deps, $exclude-hardcoded-values);

    $tokens: (
        'label-text-color': map.get($list-tokens, 'list-item-label-text-color'),
        'label-text-font': map.get($list-tokens, 'list-item-label-text-font'),
        'label-text-line-height': map.get($list-tokens, 'list-item-label-text-line-height'),
        'label-text-size': map.get($list-tokens, 'list-item-label-text-size'),
        'label-text-weight': map.get($list-tokens, 'list-item-label-text-weight'),
        'overline-color': map.get($list-tokens, 'list-item-overline-color'),
        'overline-font': map.get($list-tokens, 'list-item-overline-font'),
        'overline-line-height': map.get($list-tokens, 'list-item-overline-line-height'),
        'overline-size': map.get($list-tokens, 'list-item-overline-size'),
        'overline-weight': map.get($list-tokens, 'list-item-overline-weight'),
        'supporting-text-color': map.get($list-tokens, 'list-item-supporting-text-color'),
        'supporting-text-font': map.get($list-tokens, 'list-item-supporting-text-font'),
        'supporting-text-line-height': map.get($list-tokens, 'list-item-supporting-text-line-height'),
        'supporting-text-size': map.get($list-tokens, 'list-item-supporting-text-size'),
        'supporting-text-weight': map.get($list-tokens, 'list-item-supporting-text-weight'),
        'trailing-supporting-text-color': map.get($list-tokens, 'list-item-trailing-supporting-text-color'),
        'trailing-supporting-text-font': map.get($list-tokens, 'list-item-trailing-supporting-text-font'),
        'trailing-supporting-text-line-height': map.get($list-tokens, 'list-item-trailing-supporting-text-line-height'),
        'trailing-supporting-text-size': map.get($list-tokens, 'list-item-trailing-supporting-text-size'),
        'trailing-supporting-text-weight': map.get($list-tokens, 'list-item-trailing-supporting-text-weight'),
    );

    @return validate.values($tokens, $supported-tokens: $supported-tokens);
}
