/* Copyright 2026 The Chromium Authors
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file. */

/* #css_wrapper_metadata_start
 * #type=style-lit
 * #scheme=relative
 * #import=//resources/cr_elements/cr_shared_vars.css.js
 * #css_wrapper_metadata_end */

:host {
  --compose-textarea-input-height: calc(
      4lh + (2 * var(--compose-textarea-input-padding)));
  --compose-textarea-input-padding: 10px;
  --compose-textarea-readonly-height: 48px;
  --compose-textarea-readonly-padding: 16px;
  --compose-textarea-readonly-background:
      var(--color-compose-dialog-textarea-readonly-background);

  display: grid;
  grid-template-areas: 'content';
  align-items: start;
  grid-auto-columns: 100%;
}

#inputContainer,
#readonlyContainer {
  grid-area: content;
  width: 100%;
  box-sizing: border-box;
}

#inputContainer {
  display: flex;
  flex-direction: column;
  height: 100%;
}

textarea {
  appearance: none;
  background: transparent;
  border: none;
  outline: solid 1px var(--color-compose-dialog-textarea-outline);
  outline-offset: -1px;
  border-radius: 8px;
  color: var(--color-compose-dialog-textarea);
  font: inherit;
  font-size: 12px;
  line-height: 16px;
  resize: none;
  width: 100%;
  height: var(--compose-textarea-input-height);
  box-sizing: border-box;
  padding: 10px;
  scroll-padding-block: 10px;
}

:host([readonly]) textarea {
  overflow: hidden;
}

textarea::placeholder {
  color: var(--color-compose-dialog-textarea-placeholder);
}

#input:focus::placeholder  {
  color: transparent;
}

:host([invalid-input_]) textarea {
  outline: solid 2px var(--color-compose-dialog-error);
  outline-offset: -2px;
}

.error {
  margin: 4px 10px 0;
  color: var(--color-compose-dialog-error);
  font-size: 11px;
  line-height: 16px;
  user-select: text;
}

textarea:focus {
  outline: solid 2px var(--cr-focus-outline-color);
  outline-offset: -2px;
}

#readonlyContainer {
  border-radius: 8px;
  display: flex;
  padding: 16px;
  background: var(--color-compose-dialog-textarea-readonly-background);
  color: var(--color-compose-dialog-textarea-readonly-foreground);
}

#readonlyText {
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 100%;
  user-select: text;
}

#editButtonContainer {
  --cr-icon-button-icon-size: var(--cr-icon-size);
  width: var(--cr-icon-size);
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline-start: 16px;
}

cr-icon-button {
  --cr-icon-button-fill-color: var(--color-compose-dialog-foreground-subtle);
  margin: 0;
}

/**
 * cr-hidden-style stamps an !important on [hidden] elements, which prevents
 * any animations/transitions from applying. Instead of using cr-hidden-style,
 * list all the [hidden] elements below. Not all elements need this, just
 * the ones that override the default 'display' property.
 */
#inputContainer[hidden],
#readonlyContainer[hidden],
#editButtonContainer[hidden] {
  display: none;
}
