.d-editor-container {
  display: flex;
  flex-grow: 1;
  max-width: 100%;
}

.d-editor {
  display: flex;
  flex-grow: 1;
  min-height: 0;
}

.d-editor-textarea-wrapper,
.d-editor-preview-wrapper {
  flex: 1;
}

.d-editor-textarea-wrapper {
  display: flex;
  flex-direction: column;
  background-color: $secondary;
  position: relative;
  border: 1px solid $primary-medium;

  textarea {
    background: transparent;
  }

  &.disabled {
    cursor: not-allowed;
    .d-editor-button-bar {
      visibility: hidden;
    }
  }
}

.d-editor-preview-wrapper {
  max-width: 49%;
  margin-left: 1%;
  display: flex;
  flex-direction: column;
}

.d-editor-button-bar {
  display: flex;
  align-items: center;
  min-height: 30px;
  border-bottom: 1px solid $primary-low;

  .btn,
  .btn-default {
    background-color: transparent;
    display: inline-block;
    .d-icon {
      color: $primary-medium;
    }

    svg {
      -webkit-transform: translate3d(
        0,
        0,
        0
      ); // Hack: Reduces composer icon jitter while scrolling in Safari on iOS12
    }
  }

  .d-editor-spacer {
    height: 1em;
    display: inline-block;
    border-left: 1px solid $primary-low-mid;
  }

  .btn:not(.no-text) {
    font-size: $font-up-1;
  }

  .btn.bold {
    font-weight: bolder;
  }

  .btn.italic {
    font-style: italic;
  }
}

.d-editor-preview-wrapper {
  overflow: auto;
  cursor: default;
  -webkit-overflow-scrolling: touch;
}

.d-editor-input,
.d-editor-preview {
  box-sizing: border-box;
  flex: 1 1 100%;
  width: 100%;
  margin: 0;
  min-height: auto;
  word-wrap: break-word;
  -webkit-appearance: none;
  border-radius: 0;
  &:focus {
    box-shadow: none;
    border: 0;
    outline: 0;
  }
}

.d-editor-input {
  border: 0;
  padding: 10px;
  height: 100%;
  overflow-x: hidden;
  resize: none;
}

.d-editor-preview {
  height: auto;
}

.d-editor-plugin {
  display: flex;
  flex: 1 1;
  overflow: auto;
}

.composing-whisper .d-editor-preview {
  font-style: italic;
  color: $primary-medium !important;
}

.d-editor-preview > *:first-child {
  margin-top: 0;
}

.hide-preview .d-editor-preview-wrapper {
  display: none;
  flex: 0;
}

.edit-category-tab-topic-template {
  .emoji.btn {
    display: none;
  }
}

.user-preferences .bio-composer,
.group-form-bio,
.edit-category-tab-topic-template {
  textarea {
    width: 100%;
    height: 100%;
    min-height: 10em;
  }
  .local-dates.btn {
    display: none;
  }
  .d-editor-container {
    display: block;
  }
  .d-editor-textarea-wrapper {
    border: 1px solid $primary-low;
  }
  .d-editor-preview-wrapper {
    max-width: 100%;
    margin: 10px 0 0 0;
  }
  .d-editor-preview {
    background-color: $primary-very-low;
    padding: 5px;
    &:empty {
      padding: 0;
    }
  }
}

.user-preferences .bio-composer,
.group-form-bio {
  padding: 10px;
  border: 1px solid $primary-low;
}

.d-editor-preview img {
  padding-bottom: 1.4em;
  &.emoji,
  &.avatar,
  &.site-icon {
    padding-bottom: 0;
  }
  &.resizable {
    object-fit: cover;
    object-position: top;
  }
}

.d-editor-preview .image-wrapper {
  position: relative;
  display: inline-block;
  padding-bottom: 1.4em;

  img {
    padding-bottom: 0;
  }

  &:hover {
    .button-wrapper {
      opacity: 0.9;
    }
  }
  .button-wrapper {
    opacity: 0;
    position: absolute;
    transition: all 0.25s;
    display: flex;
    align-items: center;
    bottom: 0;
    left: 0;
    .separator {
      color: $primary-low-mid;
    }

    .scale-btn {
      color: $tertiary;
      padding: 0 0.4em;
      &:first-of-type {
        padding-left: 0;
      }

      &.active {
        font-weight: bold;
        color: $primary;
      }

      &:not(.active):hover {
        text-decoration: underline;
        cursor: pointer;
      }
    }
  }
}

.mobile-view .d-editor-preview .image-wrapper .button-wrapper {
  opacity: 1;
}

// d-editor bar button sizing for all editors - this is kept seprate to keep
// everything in one place
.d-editor-button-bar {
  margin: 0.25em;

  // shared styles for all font sizes
  .btn,
  .btn-default {
    padding: 0 0.5em;
  }
  .d-editor-spacer {
    margin: 0 0.25em;
  }

  // small text size
  .text-size-smaller & {
    @include breakpoint(mobile-large) {
      .btn,
      .btn-default {
        padding: 0 0.4em;
      }
    }
    @include breakpoint(mobile-medium) {
      .btn,
      .btn-default {
        padding: 0 0.3em;
      }
      .d-editor-spacer {
        margin: 0 0.25em;
      }
    }
  }

  // normal text size
  .text-size-normal & {
    @include breakpoint(mobile-large) {
      .btn,
      .btn-default {
        padding: 0 0.35em;
      }
    }
    @include breakpoint(mobile-medium) {
      .btn,
      .btn-default {
        padding: 0 0.25em;
      }
    }
  }

  // larger text size
  .text-size-larger & {
    @include breakpoint(mobile-large) {
      .btn,
      .btn-default {
        padding: 0 0.3em;
      }
    }
    @include breakpoint(mobile-medium) {
      .btn,
      .btn-default {
        padding: 0 0.2em;
      }
    }
  }

  // largest text size
  .text-size-largest & {
    .btn,
    .btn-default {
      font-size: $font-down-1;
    }

    @include breakpoint(mobile-large) {
      .btn,
      .btn-default {
        padding: 0 0.3em;
      }
    }
    @include breakpoint(mobile-medium) {
      .btn,
      .btn-default {
        padding: 0 0.2em;
      }
    }
  }
}
