/*
* Button theme
*
*/

@use '../../../../style/core/utilities.scss' as utilities;

// Because the tertiary button has so much code,
// we slice the shareable parts out in a separate file
@use '../button--tertiary.scss';

.dnb-button {
  // global
  --button-background--focus: var(--sb-color-blue-light-3);
  --button-border-radius--control-button: 3rem;
  --button-padding--large: 1.5rem;

  // primary
  --button-primary-shadow: var(--sb-shadow-medium);
  --button-primary-shadow--hover: var(--sb-shadow-medium);
  --button-primary-color: var(--sb-color-white);
  --button-primary-color--hover: var(--sb-color-purple-alternative);
  --button-primary-color--disabled: var(--sb-color-gray-dark-2);
  --button-primary-background--hover: var(--sb-color-green);
  --button-primary-background--active: var(--sb-color-purple-alternative);
  --button-primary-background--disabled: var(--sb-color-gray-light);
  --button-primary-border--hover: transparent;

  // secondary
  --button-secondary-color: var(--sb-color-purple-alternative);
  --button-secondary-color--hover: var(--sb-color-purple-alternative);
  --button-secondary-color--active: var(--sb-color-purple-alternative);
  --button-secondary-color--disabled: var(--sb-color-gray-dark);
  --button-secondary-background: var(--sb-color-white);
  --button-secondary-background--hover: var(--sb-color-green);
  --button-secondary-background--active: var(--sb-color-white);
  --button-secondary-border: var(--button-secondary-border--default);
  --button-secondary-border--default: var(--sb-color-purple-alternative);
  --button-secondary-border--hover: var(
    --button-secondary-border--default
  );
  --button-secondary-border--active: var(
    --button-secondary-border--default
  );
  --button-secondary-border--disabled: var(--sb-color-gray-light);

  // tertiary
  --button-tertiary-border: var(--sb-color-violet);

  border: none;

  &--has-text#{&}--size-large {
    --button-padding-icon: 1rem;
  }

  // Icon button
  &--secondary:not(#{&}--has-text)#{&}--control-before,
  &--secondary:not(#{&}--has-text)#{&}--control-after {
    box-shadow: none;
    border: none;
    @include utilities.hover() {
      box-shadow: none;
      border: none;
    }
  }

  // Secondary button
  &--secondary {
    // Input-button
    .dnb-button--input-button:not(&--has-text) {
      &::after {
        display: none;
      }
    }
  }
  &--tertiary {
    --button-tertiary-focus-overflow--icon-top: 0;
    --button-tertiary-underline-overflow: -0.5rem;
    // prettier-ignore
    --button-tertiary-underline-overflow--icon: calc(
      (var(--button-icon-gutter) + var(--button-icon-size) - var(--button-tertiary-underline-overflow)) * -1
    );
    --button-tertiary-underline-bottom: -0.5rem;
    --button-tertiary-text-bottom--icon: 0.5rem;
    --button-tertiary-text-top--icon: 0;

    .dnb-button__text::after {
      height: 0.0625rem;
      bottom: var(--button-tertiary-underline-bottom);
    }

    &.dnb-button--has-text {
      &.dnb-button--icon-position-top {
        --button-padding-left: calc(
          var(--button-tertiary-underline-overflow) * -1
        );
        --button-padding-right: calc(
          var(--button-tertiary-underline-overflow) * -1
        );
        .dnb-button__text {
          margin-top: var(--button-tertiary-text-top--icon);
          margin-bottom: var(--button-tertiary-text-bottom--icon);
          font-size: var(--button-font-size);
        }
      }
    }

    &.dnb-button--size-large {
      --button-tertiary-underline-bottom: -0.75rem;
      --button-tertiary-underline-overflow: -1.5rem;
      --button-tertiary-text-bottom--icon: 0.75rem;
      --button-tertiary-text-top--icon: 0.25rem;
    }
  }
}
