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

@mixin kendo-table--theme() {

    // Table
    .k-table,
    .k-data-table {
        @include fill (
            var( --kendo-table-text, #{$kendo-table-text} ),
            var( --kendo-table-bg, #{$kendo-table-bg} ),
            var( --kendo-table-border, #{$kendo-table-border} )
        );

        .k-table-td-row-span {
            box-shadow: var( --kendo-table-cell-row-span-shadow, #{$kendo-table-cell-row-span-shadow} )
        }
    }

    // Table header
    .k-table-thead,
    .k-table-header {
        @include fill (
            var( --kendo-table-header-text, #{$kendo-table-header-text} ),
            var( --kendo-table-header-bg, #{$kendo-table-header-bg} ),
            var( --kendo-table-header-border, #{$kendo-table-header-border} )
        );
    }

    .k-table-group-sticky-header,
    .k-table-group-header {
        @include fill (
            var( --kendo-table-sticky-header-text, #{$kendo-table-sticky-header-text} ),
            var( --kendo-table-sticky-header-bg, #{$kendo-table-sticky-header-bg} ),
            var( --kendo-table-sticky-header-border, #{$kendo-table-sticky-header-border} )
        );
        @include box-shadow( var( --kendo-table-sticky-header-shadow, #{$kendo-table-sticky-header-shadow} ) );
    }

    // Table footer
    .k-table-tfoot,
    .k-table-footer {
        @include fill (
            var( --kendo-table-footer-text, #{$kendo-table-footer-text} ),
            var( --kendo-table-footer-bg, #{$kendo-table-footer-bg} ),
            var( --kendo-table-footer-border, #{$kendo-table-footer-border} )
        );
    }

    // Group row
    .k-table-group-row {
        @include fill (
            var( --kendo-table-group-row-text, #{$kendo-table-group-row-text} ),
            var( --kendo-table-group-row-bg, #{$kendo-table-group-row-bg} ),
            var( --kendo-table-group-row-border, #{$kendo-table-group-row-border} )
        );
    }
    .k-table-group-td > span {
        @include fill (
            var( --kendo-table-group-text, #{$kendo-table-group-label-text} ),
            var( --kendo-table-group-bg, #{$kendo-table-group-label-bg} ),
        );
    }

    // Alternating row
    .k-table-alt-row {
        @include fill (
            var( --kendo-table-alt-row-text, #{$kendo-table-alt-row-text} ),
            var( --kendo-table-alt-row-bg, #{$kendo-table-alt-row-bg} ),
            var( --kendo-table-alt-row-border, #{$kendo-table-alt-row-border} )
        );
    }

    // Hover state
    .k-table-tbody .k-table-row:hover,
    .k-table-list .k-table-row:hover,
    .k-table-tbody .k-table-row.k-hover,
    .k-table-list .k-table-row.k-hover {
        @include fill (
            var( --kendo-table-hover-text, #{$kendo-table-hover-text} ),
            var( --kendo-table-hover-bg, #{$kendo-table-hover-bg} ),
            var( --kendo-table-hover-border, #{$kendo-table-hover-border} )
        );
    }

    // Focus state
    .k-table-tbody .k-table-row.k-focus,
    .k-table-list .k-table-row.k-focus,
    .k-table-tbody .k-table-td.k-focus,
    .k-table-list .k-table-td.k-focus {
        @include fill (
            var( --kendo-table-focus-text, #{$kendo-table-focus-text} ),
            var( --kendo-table-focus-bg, #{$kendo-table-focus-bg} ),
            var( --kendo-table-focus-border, #{$kendo-table-focus-border} )
        );
        @include box-shadow( var( --kendo-table-focus-shadow, #{$kendo-table-focus-shadow} ) );
        transform: scale(1);
    }

    // Selected state
    @if($kendo-enable-color-system) {
        .k-table-tbody .k-table-row.k-selected > .k-table-td,
        .k-table-list .k-table-row.k-selected {
            @include fill (
                var( --kendo-table-selected-text, #{$kendo-table-selected-text} ),
                var( --kendo-table-selected-bg, #{$kendo-table-selected-bg} ),
                var( --kendo-table-selected-border, #{$kendo-table-selected-border} )
            );
        }
    } @else {
        .k-table-tbody .k-table-row.k-selected,
        .k-table-list .k-table-row.k-selected {
            @include fill (
                var( --kendo-table-selected-text, #{$kendo-table-selected-text} ),
                var( --kendo-table-selected-bg, #{$kendo-table-selected-bg} ),
                var( --kendo-table-selected-border, #{$kendo-table-selected-border} )
            );
        }
    }

}
