////
/// @group button
////

@import '@react-md/theme/dist/scss/helpers';
@import './variables';

/// This function is used to quickly get one of the button's theme values. This
/// is really just for the `rmd-button-theme` mixin to provide some validation
/// that a correct style key is used, but might be useful in other cases.
///
/// @param {String} theme-style - One of the `$rmd-button-theme-values` map keys
/// to get a value for.
/// @return {Color|String|Number} one of the button's theme values.
@function rmd-button-theme($theme-style) {
  @return rmd-theme-get-var-value(
    $theme-style,
    $rmd-button-theme-values,
    button
  );
}

/// This function is used to get one of the button's theme variables as a CSS
/// Variable to be applied as a style attribute. By default, the CSS Variable
/// will have a fallback of the current `$rmd-button-theme-values`
///
/// This function is used to create a CSS Variable declaration with an optional
/// fallback value if the CSS Variable has not been declared somehow.
///
/// @param {String} theme-style - One of the `$rmd-button-theme-values` map keys
/// to set a value for.
/// @param {Color|String|Number} fallback [null] - An optional fallback color to
/// apply. This is set to `null` by default and not used since the link's theme
/// variables should always exist.
/// @return {String} one of the button's theme values as a css variable.
@function rmd-button-theme-var($theme-style, $fallback: null) {
  @return rmd-theme-get-var(
    $theme-style,
    $rmd-button-theme-values,
    button,
    $fallback
  );
}
