@use "../../core/jkl";
@use "../icon/base-styles" as icon;

@layer jokul.components {
    .jkl-link-list {
        --border: 1px solid var(--jkl-color-border-separator);
        --text-color: var(--jkl-color-text-default);

        @include jkl.text-style("paragraph-medium");

        .jkl-link-list-title {
            margin-block-end: var(--jkl-unit-10);

            @include jkl.text-style("paragraph-small");
        }

        & ul {
            display: flex;
            flex-direction: column;
            width: 100%;
            padding: 0;
            margin: 0;
            height: min-content;
            border-radius: var(--jkl-unit-05);
            background: var(--jkl-color-background-container-low);

            .jkl-link-list-link {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: var(--jkl-unit-20);
                width: 100%;
                text-decoration: none;
                color: var(--text-color);
                text-wrap: balance;
                box-sizing: border-box;
                padding: var(--jkl-unit-20);

                @include jkl.text-style("text-medium");
                @include jkl.motion("standard", "productive");
                transition-property: background;

                &::after {
                    content: "arrow_forward" / "";

                    @include icon.base-styles;
                    @include jkl.motion("standard", "productive");
                    transition-property: translate;
                }

                &:is(:hover, :focus-visible) {
                    background: var(--jkl-color-background-interactive-selected);

                    &::after {
                        translate: 4px 0;
                    }
                }

                &:focus-visible {
                    @include jkl.focus-outline();
                }
            }
        }

        & .jkl-link-list-item {
            display: flex;

            &:not(:last-of-type) {
                .jkl-link-list-link {
                    border-block-end: var(--border);
                }
            }
        }

        &:has(ul) {
            .jkl-link-list-title {
                margin-inline-start: var(--jkl-unit-05);
            }
        }
    }
}
