/*
 * Copyright 2019 dialog LLC <info@dlg.im>
 */

@import '../../styles/variables.css';

:root {
  --message-divider-font-family: var(--default-font-family);
  --message-divider-font-size: var(--default-font-size-small);
  --message-divider-default-color: color-mod(#000 alpha(80%));
  --message-divider-height: 30px;
  --message-divider-background-color: #fff;
  --message-divider-default-line-color: color-mod(#000 alpha(15%));
}

.container {
  all: initial;
  width: 100%;
  height: var(--message-divider-height);
  position: relative;
  display: flex;
  flex-direction: column;
  background-color: var(--message-divider-background-color);
  justify-content: center;
  align-items: center;
  align-content: center;

  &::after {
    position: absolute;
    z-index: 1;
    top: 50%;
    right: 24px;
    left: 24px;
    display: block;
    height: 1px;
    content: '';
  }
}

.text {
  font-family: var(--message-divider-font-family);
  position: relative;
  z-index: 3;
  padding: 0 var(--default-padding);
  cursor: default;
  user-select: none;
  text-align: center;
  letter-spacing: -0.3px;
  background-color: var(--message-divider-background-color);
  font-size: var(--message-divider-font-size);
  font-weight: 500;
  line-height: 22px;
}

/* Themes */
.default {
  &::after {
    background-color: var(--message-divider-default-line-color);
  }

  & .text {
    color: var(--message-divider-default-color);
  }
}

.primary {
  &::after {
    background-color: var(--color-primary);
  }

  & .text {
    color: color-mod(var(--color-primary) alpha(80%));
  }
}

.success {
  &::after {
    background-color: var(--color-success);
  }

  & .text {
    color: color-mod(var(--color-success) alpha(80%));
  }
}

.danger {
  &::after {
    background-color: var(--color-danger);
  }

  & .text {
    color: color-mod(var(--color-danger) alpha(80%));
  }
}

.info {
  &::after {
    background-color: var(--color-info);
  }

  & .text {
    color: color-mod(var(--color-info) alpha(80%));
  }
}

.warning {
  &::after {
    background-color: var(--color-warning);
  }

  & .text {
    color: color-mod(var(--color-warning) alpha(80%));
  }
}

.enter {
  opacity: 0.01;
  height: 0;

  &::after {
    transform: scaleX(0.1);
  }
}

.enterActive {
  transition: opacity 250ms 50ms ease, height 50ms linear;
  opacity: 1;
  height: var(--message-divider-height);

  &::after {
    transition: transform 250ms ease;
    transform: scaleX(1);
  }
}

.leave {
  opacity: 1;
  height: var(--message-divider-height);

  &::after {
    transform: scaleX(1);
  }
}

.leaveActive {
  transition: opacity 150ms 150ms ease, height 50ms 250ms linear;
  opacity: 0.01;
  height: 0;

  &::after {
    transition: transform 250ms ease;
    transform: scaleX(0.1);
  }
}
