@use "sass:map";
@use "../core/_index.scss" as *;
@use "./_variables.scss" as *;
@use "@progress/kendo-theme-core/scss/components/menu/_layout.scss" as *;

@mixin kendo-menu--layout() {
    @include kendo-menu--layout-base();

    // Menu bar
    .k-menu-bar {
        > .k-separator {
            border-width: 0;
        }
    }

    // Menu item focus outline
    .k-menu-item {
        &:focus,
        &:focus-visible,
        &.k-focus {
            outline-offset: $kendo-menu-item-focus-outline-offset;
            outline-width: $kendo-menu-item-focus-outline-width;
            outline-style: $kendo-menu-item-focus-outline-style;
            border-radius: k-border-radius(md);
        }
    }

    // Horizontal separator styling
    .k-menu-horizontal {
        > .k-separator {
            border-inline-start-width: $kendo-menu-separator-width;
        }
    }

    .k-menu-group {
        padding: k-spacing(1);
        gap: k-spacing(0.5);
    }

    // Sub menu group focus styles
    .k-menu-group,
    .k-menu.k-context-menu {
        .k-item {
            &:focus,
            &:focus-visible,
            &.k-focus {
                > .k-link {
                    outline-offset: $kendo-menu-item-focus-outline-offset;
                    outline-width: $kendo-menu-item-focus-outline-width;
                    outline-style: $kendo-menu-item-focus-outline-style;
                    border-radius: k-border-radius(md);
                }
            }
        }
    }

    // Sub menu group separator styling
    .k-menu-group {
        .k-separator {
            border-block-start-width: $kendo-menu-separator-width;
        }
    }

    .k-menu-vertical {

        > .k-menu-item > .k-menu-link {
            padding-inline: $kendo-menu-item-padding-x;
            padding-block: $kendo-menu-item-padding-y;
            padding-inline-end: $kendo-menu-popup-md-item-padding-end;
        }

        > .k-separator {
            margin-block: $kendo-menu-separator-margin-inline;
            border-width: 1px 0 0;
        }
    }

    .k-menu-expand-arrow {
        margin: 0;
    }
}

@mixin kendo-menu--extended-layout() {}
