@use '../../../styles/typography';

:host {
  display: block;
  height: 100%;

  svg {
    @extend %body-medium-01;
    cursor: grab;

    &.panning {
      cursor: grabbing;
    }

    ::ng-deep {
      .legend {
        background: var(--primary-contrast);
      }

      .sub-label {
        background-color: #fff;
        padding: 1px 4px;
        bottom: -8px;
        right: -2px;
        font-size: 14px;
        position: absolute;
        border-radius: 50px;
        color: #000;
        outline: 1px solid #000;
      }

      .arrow {
        fill: var(--full-contrast);
      }

      .legend-router-tree {
        fill: var(--full-contrast) !important;
      }

      .link {
        stroke: var(--quaternary-contrast);
        stroke-width: 3px;
        fill: none;

        &.highlighted {
          stroke: var(--blue-02);
        }
      }

      .node-wrapper {
        overflow: visible;
      }

      .node {
        cursor: pointer;
        border: 1px solid var(--quaternary-contrast);
        background: white;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
        color: black;
        font-size: 16px;
        box-sizing: border-box;
        border-radius: 2px;
        border-style: solid;
        border-width: 2px;
        font-weight: 300;

        &.node-environment {
          border: 1px solid var(--red-05);
          background: var(--red-06);

          &:hover {
            background: var(--red-05);
          }
        }

        &.node-imported-module {
          border-color: var(--purple-02);
          background: var(--purple-03);

          &:hover {
            background: var(--purple-02);
          }
        }

        &.node-lazy {
          border-color: var(--blue-02);
          background: var(--blue-03);

          &:hover {
            background: var(--blue-02);
          }
        }

        &.node-element {
          border-color: var(--green-02);
          background: var(--green-03);

          &:hover {
            background: var(--green-02);
          }
        }

        &.node-null {
          border: 1px solid var(--quaternary-contrast);
          background: white;

          &:hover {
            color: black;
          }
        }

        &.node-search {
          outline: 4px solid
            color-mix(in srgb, var(--quaternary-contrast) 80%, var(--full-contrast) 20%);
        }

        &.node-faded {
          opacity: 0.3;
        }

        &.highlighted,
        &.highlighted:hover {
          background: var(--blue-02);
          border-color: white;
          color: white;
        }

        &.selected,
        &.selected:hover {
          color: var(--blue-02);
          background: white;
          border-width: 3px;
          border-color: var(--blue-02);
          font-weight: 600;
        }
      }
    }
  }
}
