/**
 * Copyright IBM Corp. 2016, 2023
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */

@use 'sass:list';

@use '@carbon/styles/scss/utilities/convert' as *;

//-----------------------------
// Button (expressive)
//-----------------------------

/// Button styles (expressive)
/// @access private
/// @group button-expressive
@mixin button-expressive {
  .#{$prefix}--btn {
    padding-block: calc(
      list.slash(
          #{$button-md-height} - #{map-get($body-compact-01, 'line-height')},
          2
        ) - #{$button-outline-width}
    );

    .#{$prefix}--btn__icon {
      block-size: $icon-size-01;
      inline-size: $icon-size-01;
    }

    &.#{$prefix}--btn--field {
      min-block-size: $button-field-height;
      padding-block: calc(
        list.slash(
            #{$button-field-height} - #{map-get(
                $body-compact-01,
                'line-height'
              )},
            2
          ) - #{$button-outline-width}
      );
    }

    &.#{$prefix}--btn--sm {
      min-block-size: $button-sm-height;
      padding-block: calc(
        list.slash(
            #{$button-sm-height} - #{map-get($body-compact-01, 'line-height')},
            2
          ) - #{$button-outline-width}
      );
    }
  }

  .#{$prefix}--btn--icon-only {
    padding: calc(
      list.slash(#{$button-md-height} - #{$icon-size-01}, 2) - #{$button-outline-width}
    );
    min-inline-size: $button-md-height;

    &.#{$prefix}--btn--field {
      padding: calc(
        list.slash(#{$button-field-height} - #{$icon-size-01}, 2) - #{$button-outline-width}
      );
      min-inline-size: $button-field-height;
    }

    &.#{$prefix}--btn--sm {
      padding: calc(
        list.slash(#{$button-sm-height} - #{$icon-size-01}, 2) - #{$button-outline-width}
      );
      min-inline-size: $button-sm-height;
    }
  }
}
