import { css } from '@emotion/css';

export const workflowPageClass = css`
  .workflow-toolbar{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 1rem;
    background: #fff;

    header{
      display: flex;
      align-items: center;
      min-height: 2rem;
    }

    aside{
      display: flex;
      align-items: center;
      gap: .5em;
    }

    .workflow-versions{
      label{
        margin-right: .5em;
      }
    }
  }

  .workflow-canvas{
    width: min-content;
    min-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2em;
  }
`;

export const workflowVersionDropdownClass = css`
  .ant-dropdown-menu-item{

    strong{
      font-weight: normal;
    }

    &.enabled{
      strong{
        font-weight: bold;
      }
    }

    &.unexecuted{
      strong{
        font-style: italic;
      }
    }

    .ant-dropdown-menu-title-content{
      text-align: right;

      time{
        margin-left: 0.5rem;
        color: #999;
        font-size: 80%;
      }
    }
  }
`;

export const branchBlockClass = css`
  display: flex;
  position: relative;

  :before{
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(50% - .5px);
    width: 1px;
    background-color: #f0f2f5;
  }
`;

export const branchClass = css`
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  padding: 0 2em;

  .workflow-node-list{
    flex-grow: 1;
    min-width: 20em;
  }

  .workflow-branch-lines{
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background-color: #ddd;
  }

  :before,:after{
    content: "";
    position: absolute;
    height: 1px;
    background-color: #ddd;
  }

  :before{
    top: 0;
  }

  :after{
    bottom: 0;
  }

  :not(:first-child):not(:last-child){
    :before,:after{
      left: 0;
      width: 100%;
    }
  }

  :last-child:not(:first-child){
    :before,:after{
      right: 50%;
      width: 50%;
    }
  }

  :first-child:not(:last-child){
    :before,:after{
      left: 50%;
      width: 50%;
    }
  }
`;

export const nodeBlockClass = css`
  flex-grow: 1;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
`;

export const nodeClass = css`
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
`;

export const nodeCardClass = css`
  position: relative;
  width: 20em;
  background: #fff;
  padding: 1em;
  box-shadow: 0 .25em .5em rgba(0, 0, 0, .1);
  border-radius: .5em;
  cursor: pointer;
  transition: box-shadow .3s ease;

  &.configuring{
    box-shadow: 0 .25em 1em rgba(0, 100, 200, .25);
  }

  .workflow-node-remove-button,
  .workflow-node-job-button{
    position: absolute;
  }

  .workflow-node-remove-button{
    right: .5em;
    top: .5em;
    color: #999;
    opacity: 0;
    transition: opacity .3s ease;

    &[disabled]{
      display: none;
    }

    &:hover {
      color: red;
    }
  }

  .workflow-node-job-button{
    display: flex;
    top: 1em;
    right: 1em;
    width: 1.25rem;
    height: 1.25rem;
    min-width: 1.25rem;
    justify-content: center;
    align-items: center;
    font-size: 0.8em;
    color: #fff;

    &[type="button"]{
      border: none;
    }
  }

  .ant-input{
    font-weight: bold;

    &:not(:focus){
      transition: background-color .3s ease, border-color .3s ease;
      border-color: #f7f7f7;
      background-color: #f7f7f7;

      &:not(:disabled):hover{
        border-color: #eee;
        background-color: #eee;
      }

      &:disabled:hover{
        border-color: #f7f7f7;
      }
    }
  }

  .workflow-node-config-button{
    padding: 0;
  }

  &:hover{
    box-shadow: 0 .25em .5em rgba(0, 0, 0, .25);

    .workflow-node-remove-button{
      opacity: 1;
    }
  }
`;

export const nodeHeaderClass = css`
  position: relative;
`;

export const nodeMetaClass = css`
  margin-bottom: .5em;

  .workflow-node-id{
    color: #999;

    &:before{
      content: "#"
    }
  }
`;

export const nodeTitleClass = css`
  display: flex;
  align-items: center;
  font-weight: normal;
  .workflow-node-id{
    color: #999;
  }
`;

export const nodeSubtreeClass = css`
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
`;

export const addButtonClass = css`
  flex-shrink: 0;
  padding: 2em 0;

  > .ant-btn{
    &:disabled{
      visibility: hidden;
    }
  }
`;
