// // Copyright 2023 Google LLC // SPDX-License-Identifier: Apache-2.0 // // go/keep-sorted start @use 'sass:map'; // go/keep-sorted end // go/keep-sorted start @use '../sass/shape'; @use './md-sys-color'; @use './md-sys-shape'; @use './md-sys-state'; @use './md-sys-typescale'; @use './v0_161/md-comp-text-button'; @use './values'; // go/keep-sorted end $supported-tokens: ( // go/keep-sorted start 'container-height', 'container-shape', 'disabled-label-text-color', 'disabled-label-text-opacity', 'focus-label-text-color', 'focus-state-layer-color', 'focus-state-layer-opacity', 'hover-label-text-color', 'hover-state-layer-color', 'hover-state-layer-opacity', 'label-text-color', 'label-text-type', 'pressed-label-text-color', 'pressed-state-layer-color', 'pressed-state-layer-opacity', 'spacing-leading', 'spacing-trailing', 'with-icon-disabled-icon-color', 'with-icon-disabled-icon-opacity', 'with-icon-focus-icon-color', 'with-icon-hover-icon-color', 'with-icon-icon-color', 'with-icon-icon-size', 'with-icon-pressed-icon-color', 'with-icon-spacing-leading', 'with-icon-spacing-trailing', 'with-trailing-icon-spacing-leading', 'with-trailing-icon-spacing-trailing', // go/keep-sorted end ); $unsupported-tokens: ( // go/keep-sorted start 'label-text-font', 'label-text-line-height', 'label-text-size', 'label-text-tracking', 'label-text-weight', // go/keep-sorted end ); $_default: ( 'md-sys-color': md-sys-color.values-light(), 'md-sys-shape': md-sys-shape.values(), 'md-sys-state': md-sys-state.values(), 'md-sys-typescale': md-sys-typescale.values(), ); @function values($deps: $_default, $exclude-hardcoded-values: false) { $tokens: values.validate( md-comp-text-button.values($deps, $exclude-hardcoded-values), $supported-tokens: $supported-tokens, $unsupported-tokens: $unsupported-tokens, $new-tokens: ( // TODO(b/198759625): Remove once spacing tokens are formally added // go/keep-sorted start 'spacing-leading': if($exclude-hardcoded-values, null, 12px), 'spacing-trailing': if($exclude-hardcoded-values, null, 12px), 'with-icon-spacing-leading': if($exclude-hardcoded-values, null, 12px), 'with-icon-spacing-trailing': if($exclude-hardcoded-values, null, 16px), 'with-trailing-icon-spacing-leading': if($exclude-hardcoded-values, null, 16px), 'with-trailing-icon-spacing-trailing': if($exclude-hardcoded-values, null, 12px), // go/keep-sorted end ) ); @each $token, $value in $tokens { $tokens: map.set( $tokens, $token, var(--md-text-button-#{$token}, #{$value}) ); } $tokens: shape.resolve-tokens($tokens, 'container-shape'); @return $tokens; }