@use "../core/_index.scss" as *;
@use "./_variables.scss" as *;

@mixin kendo-listgroup--layout() {

    .k-listgroup {
        @include border-radius( var( --kendo-listgroup-border-radius, #{$kendo-listgroup-border-radius} ) );
        margin: 0;
        padding: 0;
        border-width: var( --kendo-listgroup-border-width, #{$kendo-listgroup-border-width} );
        border-style: solid;
        font-size: var( --kendo-listgroup-font-size, #{$kendo-listgroup-font-size} );
        line-height: var( --kendo-listgroup-line-height, #{$kendo-listgroup-line-height} );
        list-style: none;
        display: flex;
        flex-direction: column;
        position: relative;
        overflow: hidden;

        > ul {
            margin: 0;
            padding: 0;
            list-style: none;
            display: flex;
            flex-direction: column;
        }

        // Borders of items
        .k-listgroup-item + .k-listgroup-item {
            border-top-width: var( --kendo-listgroup-item-border-width, #{$kendo-listgroup-item-border-width} );
        }
    }
    .k-listgroup-flush {
        @include border-radius( 0 );
        border-left-width: 0;
        border-right-width: 0;
    }


    .k-listgroup-item {
        padding-inline: var( --kendo-listgroup-item-padding-x, #{$kendo-listgroup-item-padding-x} );
        padding-block: var( --kendo-listgroup-item-padding-y, #{$kendo-listgroup-item-padding-y} );
        border-width: 0;
        border-style: solid;
        border-color: inherit;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        flex: 0 0 auto;
        position: relative;

        > .k-link {
            margin-inline: var( --kendo-listgroup-item-padding-x, calc( #{$kendo-listgroup-item-padding-x} * -1 ) );
            margin-block: var( --kendo-listgroup-item-padding-y, calc( #{$kendo-listgroup-item-padding-y} * -1 ) );
            padding-inline: var( --kendo-listgroup-item-padding-x, #{$kendo-listgroup-item-padding-x} );
            padding-block: var( --kendo-listgroup-item-padding-y, #{$kendo-listgroup-item-padding-y} );
            color: inherit;
            text-decoration: none;
            outline: 0;
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: flex-start;
            flex: 1 1 auto;
            position: relative;

            > .k-select {
                padding-inline: var( --kendo-listgroup-item-padding-y, #{$kendo-listgroup-item-padding-y} );
                padding-block: var( --kendo-listgroup-item-padding-y, #{$kendo-listgroup-item-padding-y} );
                display: flex;
                align-items: center;
                flex: 0 0 auto;
                position: absolute;
                top: 50%;
                right: 0;
                transform: translateY(-50%);
            }
        }
    }
    .k-listgroup-item-segmented {
        align-items: stretch;

        > .k-link {
            margin-inline-end: 0;
        }

        > .k-select {
            margin-inline-start: 0;
            margin-inline-end: var( --kendo-listgroup-item-padding-x, calc( #{$kendo-listgroup-item-padding-x} * -1 ) );
            margin-block: var( --kendo-listgroup-item-padding-y, calc( #{$kendo-listgroup-item-padding-y} * -1 ) );
            padding-inline: var( --kendo-listgroup-item-padding-y, #{$kendo-listgroup-item-padding-y} );
            padding-block: var( --kendo-listgroup-item-padding-y, #{$kendo-listgroup-item-padding-y} );
            border-width: 0 0 0 1px;
            border-style: solid;
            border-color: inherit;
            cursor: pointer;
        }
    }


    // Forms in listgroup
    .k-listgroup-form-row {
        margin-inline: var( --kendo-listgroup-item-padding-x, calc( #{$kendo-listgroup-item-padding-x} * -1 ) );
        margin-block: var( --kendo-listgroup-item-padding-y, calc( #{$kendo-listgroup-item-padding-y} * -1) );
        padding-inline: var( --kendo-listgroup-item-padding-x, #{$kendo-listgroup-item-padding-x} );
        padding-block: var( --kendo-listgroup-item-padding-y, #{$kendo-listgroup-item-padding-y} );
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex: 1 1 auto;
        position: relative;

        .k-listgroup-form-field-label {
            width: 40%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .k-listgroup-form-field-wrapper {
            width: 50%;
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: flex-end;
            text-align: end;
            position: relative;

            select,
            input[type="text"],
            input[type="password"],
            input[type="date"],
            input[type="time"],
            input[type="datetime-local"],
            input[type="number"],
            textarea {
                width: 100%;
                box-sizing: border-box;
                flex: 1 1 100%;
            }

            textarea {
                min-height: 4em;
                resize: vertical;
            }
        }
    }
    .k-listgroup-item.k-listgroup-form-row {
        margin: 0;
    }


    // RTL Styles
    [dir="rtl"] {

        .k-listgroup-item {

            > .k-link {

                > .k-select {
                    right: auto;
                    left: 0;
                }

            }

        }
        .k-listgroup-item-segmented {

            > .k-select {
                border-right-width: 1px;
                border-left-width: 0;
            }

        }
    }

}
