@use 'sass:color';
@use 'variables';

.dg-toc {
    flex: 1;
    position: sticky;
    top: 20px;
    margin: 20px 0 20px 20px;

    .dg-toc-container {
        font-size: 13px;
        width: 19%;
        padding-left: 10px;
        box-sizing: border-box;
        display: inline-flex;
        flex-direction: column;
        width: 100%;

        & + .docs-toc-container {
            padding-top: 8px;
        }
    }

    .dg-toc-heading {
        margin: 0;
        padding: 6px 12px 6px 12px;
        font-size: 13px;
        font-weight: bold;
        text-transform: capitalize;
    }

    ul {
        margin: 0;
        padding: 0;
        list-style: none;
        li {
            list-style: none;
            position: relative;
            padding: 0px;
            &[data-level='1'] {
                padding-left: 12px;
            }

            &[data-level='2'] {
                padding-left: 24px;
            }

            &[data-level='3'] {
                padding-left: 36px;
            }

            &[data-level='4'] {
                padding-left: 48px;
            }

            a {
                color: variables.$dg-gray-700;
            }
        }
    }

    .dg-link {
        padding: 6px 0px;
        color: variables.$dg-gray-700;
        line-height: 16px;
        text-decoration: none;
        display: block;
        text-overflow: ellipsis;
        width: 100%;
        box-sizing: border-box;
        word-break: break-all;

        &::before {
            border-left: 2px solid variables.$dg-gray-300;
            bottom: 0;
            content: '';
            left: 0;
            position: absolute;
            top: 0;
        }

        &.active {
            color: color.adjust(variables.$dg-primary, $lightness: -10%);
            &::before {
                border-color: variables.$dg-primary;
                border-width: 2px;
            }
        }
    }

    &-menu {
        .dg-toc-container {
            padding-left: 20px;
        }
        .dg-link {
            position: relative;
            &::before {
                border-width: 0px;
            }
            &.active {
                &::before {
                    border-width: 0px;
                    height: 5px;
                    width: 5px;
                    border-radius: 50%;
                    background: variables.$dg-primary;
                    top: 12px;
                    left: -10px;
                }
            }
        }
    }
}
