@use "../../mixins/index.import.scss" as *;
@use "../../color-system/_swatch-legacy.scss" as *;
@use "./variables.scss" as *;
@use "../button/_variables.scss" as *;
@use "../list/_variables.scss" as *;

@mixin kendo-spreadsheet--theme-base() {

    // Spreadsheet
    .k-spreadsheet {
        @include fill(
            $kendo-spreadsheet-text,
            $kendo-spreadsheet-bg,
            $kendo-spreadsheet-border
        );
    }

    // Header
    .k-spreadsheet-header {
        @include fill(
            $kendo-spreadsheet-header-text,
            $kendo-spreadsheet-header-bg,
            $kendo-spreadsheet-header-border,
            $kendo-spreadsheet-header-gradient
        );
    }

    // Row / Column Headers
    .k-spreadsheet-top-corner,
    .k-spreadsheet-row-header,
    .k-spreadsheet-column-header {
        @include fill(
            $kendo-spreadsheet-table-header-text,
            $kendo-spreadsheet-table-header-bg,
            $kendo-spreadsheet-table-header-border,
            $kendo-spreadsheet-table-header-gradient
        );
    }

    // Cell editor
    .k-spreadsheet-cell-editor {
        @include fill(
            $kendo-spreadsheet-cell-editor-text,
            $kendo-spreadsheet-cell-editor-bg,
            $kendo-spreadsheet-cell-editor-border
        )
    }

    // Cells
    .k-spreadsheet-merged-cell {
        @include fill( $bg: $kendo-spreadsheet-bg );
    }
    .k-spreadsheet-disabled-mask {
        @include fill( $bg: $kendo-spreadsheet-bg );
    }

    // Selection
    .k-spreadsheet .k-selection-full,
    .k-spreadsheet .k-selection-partial {
        @include fill( $bg: $kendo-spreadsheet-partial-selection-bg );
    }
    .k-spreadsheet-selection {
        @include fill(
            $kendo-spreadsheet-selection-text,
            $kendo-spreadsheet-selection-bg,
            $kendo-spreadsheet-selection-border
        );
        @include box-shadow( $kendo-spreadsheet-selection-shadow );
    }
    .k-spreadsheet-selection-highlight {
        @include fill( $border: $kendo-spreadsheet-selection-border );
    }
    .k-spreadsheet .k-single-selection::after {
        @include fill(
            $kendo-spreadsheet-single-selection-text,
            $kendo-spreadsheet-single-selection-bg,
            $kendo-spreadsheet-single-selection-border
        )
    }
    .k-spreadsheet-active-cell {
        @include fill ( $bg: $kendo-spreadsheet-active-cell-bg );
        @include box-shadow( $kendo-spreadsheet-active-cell-shadow );
    }

    .k-spreadsheet .k-auto-fill {
        @include fill(
            $kendo-spreadsheet-auto-fill-text,
            $kendo-spreadsheet-auto-fill-bg,
            $kendo-spreadsheet-auto-fill-border
        );
        @include box-shadow( $kendo-spreadsheet-auto-fill-shadow );
    }
    .k-spreadsheet .k-auto-fill-punch {
        @include fill( $bg: $kendo-spreadsheet-auto-fill-punch-bg );
    }

    // Resize handle
    .k-spreadsheet .k-resize-handle,
    .k-spreadsheet .k-resize-hint-handle,
    .k-spreadsheet .k-resize-hint-marker {
        @include fill( $bg: $kendo-spreadsheet-resize-handle-bg );
    }

    // Comments
    .k-spreadsheet-has-comment::after {
        border-block-color: $kendo-spreadsheet-cell-comment-border transparent;
        border-inline-color: transparent $kendo-spreadsheet-cell-comment-border;
    }

    // Validation
    .k-spreadsheet-cell .k-dirty {
        border-block-color: $kendo-spreadsheet-cell-dirty-border transparent;
        border-inline-color: $kendo-spreadsheet-cell-dirty-border transparent;
    }

    // Filter button
    .k-spreadsheet .k-filter-range {
        border-color: $kendo-color-primary;
    }
    .k-spreadsheet-filter {
        @include fill(
            $kendo-button-text,
            $kendo-button-bg,
            $kendo-button-border,
            $kendo-button-gradient
        );
        box-shadow: inset 0 0 0 1px $kendo-button-border;

        &:hover {
            @include fill(
                $kendo-button-hover-text,
                $kendo-button-hover-bg,
                $kendo-button-hover-border,
                $kendo-button-hover-gradient
            );
        }

        &.k-active {
            @include fill(
                $kendo-button-active-text,
                $kendo-button-active-bg,
                $kendo-button-active-border,
                $kendo-button-active-gradient
            );
        }
    }

    // Filter menu legacy - delete after new rendering adoption R3 23
    .k-spreadsheet-filter-menu {
        > .k-menu,
        > .k-menu:not(.k-context-menu) {

            .k-item:hover,
            .k-item.k-hover {
                @include fill(
                    $kendo-list-item-hover-text,
                    $kendo-list-item-hover-bg
                );
            }
        }

        .k-spreadsheet-value-treeview-wrapper {
            @include fill(
                $kendo-spreadsheet-text,
                $kendo-spreadsheet-bg,
                $kendo-spreadsheet-border
            );
        }
    }

    // Delete after new rendering adoption R3 23
    .k-spreadsheet-insert-image-dialog {
        border-color: $kendo-spreadsheet-insert-image-dialog-preview-border;

        .k-spreadsheet-has-image {
            &:hover,
            &.k-hover {
                box-shadow: $kendo-spreadsheet-insert-image-dialog-preview-overlay-shadow;
            }

            &:hover div,
            &.k-hover div {
                color: $kendo-spreadsheet-insert-image-dialog-overlay-hover-text;
            }
        }
    }

    // Drawing
    .k-spreadsheet-drawing {
        &.k-spreadsheet-active-drawing {
            outline-color: $kendo-spreadsheet-drawing-handle-outline-color;
        }

        .k-spreadsheet-drawing-handle {
            border-color: $kendo-spreadsheet-drawing-handle-border-color;
            background-color: $kendo-spreadsheet-drawing-handle-bg;
        }
    }

    .k-spreadsheet-drawing-anchor-cell {
        background: $kendo-spreadsheet-drawing-anchor-bg;
    }

    // Formula bar
    .k-spreadsheet-formula-list {}
    .k-syntax-ref { color: #ff8822; }
    .k-syntax-num { color: #0099ff; }
    .k-syntax-str { color: #38b714; }
    .k-syntax-error { color: red; }
    .k-syntax-bool { color: #a9169c; }
    .k-syntax-paren-match { background-color: #caf200; }

}

@mixin kendo-spreadsheet--theme() {
    @include kendo-spreadsheet--theme-base();
}
