// Copyright (C) 2023 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

@import "../theme";

.pf-text-input {
  display: inline-flex;
  align-items: baseline;
  line-height: 1;
  font-family: var(--pf-font-compact);
  font-size: inherit;
  border-bottom: solid 1px var(--pf-color-border); // Thin underline
  background: none;
  padding: 2px 4px;
  transition:
    border $anim-timing,
    box-shadow $anim-timing,
    background $anim-timing;
  gap: 4px;

  &__input {
    font-size: inherit;
    line-height: inherit;
    font-family: inherit;
    padding: 0;
    margin: 0;
    color: inherit;
    flex: 1; // Allow input to grow and shrink to fill available space

    // Disable default styles
    outline: none;
    border: none;
    background: none;
    min-width: 0; // input elements have a default min-width, set to 0 to allow flexbox to work properly
  }

  &__left-icon {
    align-self: center;
    line-height: inherit;
    margin-inline: 2px;
  }

  // Round only the top corners to avoid rounding the edges of the underline
  border-radius: $border-radius $border-radius 0 0;

  // The gentle hover effect indicates this component is interactive
  &:hover {
    background: color_hover(transparent);
  }

  &:has(.pf-text-input__input:focus) {
    background: color_hover(transparent);
    border-bottom: solid 1px var(--pf-color-primary);

    // The box-shadow thickens the bottom border, without adding to the height.
    // This is the same technique used by materializecss:
    // See https://materializecss.com/text-inputs.html
    box-shadow: 0 1px 0 var(--pf-color-primary);
  }

  &:has(.pf-text-input__input[disabled]) {
    opacity: 0.5;
    pointer-events: none;
    cursor: not-allowed;
  }
}
