@import "colors";
@import "typography";

.styleguide {
  display: flex;

  .styleguide-note {
    padding: 1em;
    background-color: var(--tertiary);
    margin-bottom: 1em;
  }

  .styleguide-menu {
    margin-top: 1em;
    flex: 1 0 0;

    ul {
      list-style: none;
      margin-bottom: 1.5em;
      margin-left: 0;

      li.styleguide-heading {
        color: var(--primary-medium);
        text-transform: uppercase;
        font-size: 14px;
      }

      li {
        margin-bottom: 0.25em;

        a {
          color: var(--primary);
          font-size: 14px;
        }

        a.active {
          font-weight: bold;
        }
      }
    }
  }

  .styleguide-contents {
    flex: 4 0 0;
  }

  .styleguide-section {
    .section-title {
      font-size: var(--font-up-5);
      font-weight: normal;
      margin-bottom: 0.5em;
    }

    .section-description {
      margin-bottom: 2em;
    }

    .description {
      margin: 1em 0;
    }

    .half-size {
      width: 50%;
    }

    .styleguide-example {
      .example-title {
        color: var(--primary-medium);
        font-size: var(--font-down-1);
        border-bottom: 1px solid var(--content-border-color);
        margin-bottom: 1em;
      }

      .rendered {
        width: 100%;
        position: relative;

        .component-properties {
          width: 100%;

          &__row {
            align-items: center;
            display: flex;
          }

          &__cell {
            padding: 0.5rem 0;
            width: 70%;
            box-sizing: border-box;

            &:first-child {
              width: 30%;
              box-sizing: border-box;
            }

            textarea,
            input {
              box-sizing: border-box;
              margin: 0;
              width: 100%;
            }

            textarea {
              height: 100px;
            }
          }
        }
      }
      margin-bottom: 2em;
    }

    &.colors-examples {
      .styleguide-example {
        display: flex;

        .example-title {
          min-width: 15%;
          margin-right: 1em;
          border-bottom: none;

          &-text {
            color: var(--primary);
            text-transform: capitalize;
          }

          &-use-case {
            font-size: var(--font-down-1);
            display: block;
          }
        }

        .color-row {
          display: flex;

          .color-example {
            flex: 1;
            display: flex;
            flex-direction: column;
            height: 120px;
            margin: 0.5em 0.5em 0.5em 0;
            border: 1px solid var(--primary-300);

            .color-bg {
              flex: 4;
              border-bottom: 1px solid var(--primary-300);
            }

            .color-name {
              flex: 1;
              display: flex;
              align-items: center;
              padding: 0.25em 0.5em;
              font-weight: 700;
              font-size: var(--font-down-1);
            }
          }
        }
      }
    }
  }

  pre {
    background: var(--primary-very-low);
    white-space: pre-wrap;

    &.pre-inline {
      display: inline-block;
      margin: 0;
      vertical-align: bottom;
    }

    span {
      color: var(--primary-medium);

      &.hljs-attribute {
        color: teal;
      }
    }
  }

  p.reason {
    display: inline;
    color: var(--primary-medium);
    margin: 0 0 0 10px;
  }

  &--char-counter {
    display: block;
    width: 100%;
    margin-bottom: 0;
  }
}

.buttons-examples {
  button {
    margin-right: 0.5em;
    margin-bottom: 0.5em;
  }

  .d-toggle-switch {
    display: inline-block;
  }
}

.icons-examples,
.topic-statuses-examples .d-icon {
  margin-right: 0.5em;
  margin-bottom: 0.5em;
}

.dropdowns-examples {
  .select-kit.is-hidden {
    display: inline-block;
  }
}

.styleguide-icons {
  display: grid;
  grid-template-columns: 150px 150px 150px 150px 150px;
  grid-gap: 10px;

  .styleguide-icon {
    background-color: var(--primary-low);
    margin: 3px;
    text-align: center;
    padding: 10px;
    overflow: hidden;

    svg {
      display: block;
      font-size: 3em;
      margin: 5px auto;
    }

    span {
      font-size: var(--font-down-1);
      word-wrap: break-word;
    }
  }
}

.styleguide__component {
  border: 2px dotted var(--primary-low);
  margin-bottom: 2rem;
  position: relative;

  &-tag {
    position: absolute;
    top: 0;
    right: 0;
    padding: 3px 6px;
    background: var(--primary-low);
    max-width: 25%;

    @include ellipsis;
  }

  &-sample {
    display: flex;
    padding: 2rem;
  }

  &-actions {
    display: flex;
    align-items: center;
    padding: 1rem 2rem;
  }

  &-code {
    display: flex;

    .ember-view {
      width: 100%;
    }

    pre {
      margin: 0;
    }
  }
}

.styleguide-example {
  .d-header-wrap {
    position: relative;
    z-index: 0;
  }
}
