@import '~terra-mixins/lib/Mixins';

// Themes
@import './clinical-lowlight-theme/SearchField.module';
@import './orion-fusion-theme/SearchField.module';

:local {
  .search-field {
    display: inline-flex;
    min-width: 0;
    vertical-align: middle;
    width: var(--terra-search-field-max-width, 16.5rem);

    *:focus {
      outline: var(--terra-search-field-focus-keyboard-outline, 2px dashed #000);
      outline-offset: var(--terra-search-field-focus-keyboard-outline-offset, 1px);
    }

    .input-group {
      display: inline-flex;
      flex: 1 1 auto;
      margin: 0;
      padding: 0;
      position: relative;
    }

    .input::-ms-clear,
    .input::-ms-reveal {
      display: none;
    }

    .input::-webkit-search-cancel-button {
      // Remove webkit search clear functionality
      display: none;
    }

    .input::-webkit-search-decoration {
      // Get rid of extra left-padding getting added in Safari for search fields
      appearance: none;
    }

    .clear {
      display: block;
      flex: 0 0 auto;
      margin: 0;
      position: absolute;
      right: 0;
      top: 0;

      &:active {
        background-color: var(--terra-search-field-clear-active-background-color, transparent);
      }

      &:focus {
        border-color: var(--terra-search-field-button-focus-border-color, transparent);
        box-shadow: var(--terra-search-field-button-focus-box-shadow, none);
        z-index: 1;
      }
    }

    .clear-icon {
      background-image: var(--terra-search-field-clear-icon-background-image, inline-svg("<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'><path fill='#909496' d='M24 0C10.7 0 0 10.7 0 24s10.7 24 24 24 24-10.7 24-24S37.3 0 24 0zm13.9 33.8l-2.1 2.1-1.2 1.2-1 .9-9.6-9.7-9.6 9.7-2.2-2.1-1.1-1.1-1-1 9.7-9.8-9.7-9.8 1-1 1.1-1.1 2.2-2.1 9.6 9.7 9.6-9.7 1 .9 1.2 1.2 2.1 2.1-9.7 9.8 9.7 9.8z'/></svg>"));
      display: inline-block;
      height: var(--terra-search-field-clear-icon-height, 1.14286rem);
      margin-top: var(--terra-search-field-clear-icon-margin-top, -0.214285rem);
      vertical-align: middle;
      width: var(--terra-search-field-clear-icon-width, 1.14286rem);
    }

    .button {
      border: var(--terra-search-field-button-border, 1px solid #dedfe0);
      border-bottom-left-radius: 0;
      border-bottom-right-radius: var(--terra-search-field-button-border-bottom-right-radius, 3px);
      border-top-left-radius: 0;
      border-top-right-radius: var(--terra-search-field-button-border-top-right-radius, 3px);
      box-shadow: var(--terra-search-field-button-box-shadow);
      color: var(--terra-search-field-button-icon-color);
      display: inline-block;
      flex: 0 0 auto;
      margin-bottom: var(--terra-search-field-button-margin-bottom, 0);
      margin-left: var(--terra-search-field-button-margin-left, -1px);
      margin-right: var(--terra-search-field-button-margin-right, 0);
      margin-top: var(--terra-search-field-button-margin-top, 0);

      &:focus {
        border-color: var(--terra-search-field-button-focus-border-color, transparent);
        box-shadow: var(--terra-search-field-button-focus-box-shadow, none);
        z-index: 1;
      }
    }

    &.block {
      display: flex;
      width: 100%;
    }
  }

  .label {
    color: var(--terra-search-field-label-color, #1c1f21);
    display: block;
    font-size: var(--terra-search-field-label-font-size, 1rem);
    font-weight: var(--terra-search-field-label-font-weight, bold);
    margin-bottom: var(--terra-search-field-label-margin-bottom, 0.357em);
    text-align: left;
  }

  .search-container,
  .search-role-container {
    display: inline;
  }

  .input {
    appearance: none;
    background-color: var(--terra-search-field-input-background-color, #fff);
    background-image: none;
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: auto;
    border: var(--terra-search-field-input-border, 1px solid #dedfe0);
    border-bottom-left-radius: var(--terra-search-field-input-border-bottom-left-radius, 3px);
    border-bottom-right-radius: 0;
    border-top-left-radius: var(--terra-search-field-input-border-top-left-radius, 3px);
    border-top-right-radius: 0;
    box-shadow: none;
    color: var(--terra-search-field-input-color, #1c1f21);
    flex: 1 1 auto;
    font-family: inherit;
    font-size: var(--terra-search-field-input-font-size, 1.142857rem);
    height: var(--terra-search-field-input-height, 2.142857rem);
    line-height: 1.25;
    margin-bottom: var(--terra-search-field-input-margin-bottom, 0);
    margin-left: var(--terra-search-field-input-margin-left, 0);
    margin-right: var(--terra-search-field-input-margin-right, 0);
    margin-top: var(--terra-search-field-input-margin-top, 0);
    min-width: 0;
    outline-offset: -0.143em;  // Adjust the outline offset for search input in Safari.
    padding-bottom: var(--terra-search-field-input-padding-bottom, 0.28571rem);
    padding-left: var(--terra-search-field-input-padding-left, 0.28571rem);
    padding-right: var(--terra-search-field-input-padding-right, 2.28571rem); // Match the padding to width of the clear button
    padding-top: var(--terra-search-field-input-padding-top, 0.28571rem);
    transition-duration: 0s;
    transition-property: background-size;
    transition-timing-function: ease;
    width: 100%;

    &::placeholder {
      color: var(--terra-search-field-input-placeholder-color, rgba(21, 33, 41, 0.62));
      font-style: var(--terra-search-field-input-placeholder-font-style, italic);
      opacity: 1;
    }

    &:hover {
      background-color: var(--terra-search-field-input-hover-background-color, #fff);
      border: var(--terra-search-field-input-hover-border, 1px solid #dedfe0);
      color: var(--terra-search-field-input-hover-color);
    }

    &[disabled] {
      background-color: var(--terra-search-field-input-disabled-background-color, rgba(111, 116, 119, 0.2));
      border: var(--terra-search-field-input-disabled-border, 1px solid #868a8c);
      color: var(--terra-search-field-input-disabled-color, #1c1f21);
      cursor: default;
      opacity: var(--terra-search-field-input-disabled-opacity, 0.25);
      pointer-events: none;
    }

    &[disabled]::placeholder {
      color: var(--terra-search-field-input-placeholder-disabled-color, rgba(21, 33, 41, 0.62));
      font-style: var(--terra-search-field-input-placeholder-disabled-font-style, italic);
    }

    &:focus {
      background-color: var(--terra-search-field-input-focus-background-color, #fff);
      background-size: auto;
      border: var(--terra-search-field-input-focus-border, 1px solid #dedfe0);
      box-shadow: var(--terra-search-field-input-focus-box-shadow, none);
      color: var(--terra-search-field-input-focus-color);
    }
  }
}
