@use '../core/styles/common';
@use '../core/styles/common/tokens' as *;
@use '../core/styles/common/vendor-prefixes';

.kbq-tree-option {
    @include vendor-prefixes.user-select(none);

    position: relative;

    box-sizing: border-box;

    display: flex;
    align-items: center;

    min-height: 32px;

    overflow-wrap: break-word;

    border-width: var(--kbq-tree-size-container-focus-outline-width);
    border-style: solid;
    border-color: transparent;
    border-radius: var(--kbq-tree-option-border-radius);

    padding-top: kbq-difference-series-css-variables(
        [tree-size-container-padding-vertical,
        tree-size-container-focus-outline-width]
    );
    padding-right: kbq-difference-series-css-variables(
        [tree-size-container-padding-right,
        tree-size-container-focus-outline-width]
    );
    padding-bottom: kbq-difference-series-css-variables(
        [tree-size-container-padding-vertical,
        tree-size-container-focus-outline-width]
    );

    gap: var(--kbq-tree-size-container-content-gap-horizontal);

    & > *[kbqtreenodetoggle],
    & > .kbq-tree-node-toggle,
    & > .kbq-pseudo-checkbox {
        margin-top: var(--kbq-size-3xs);
        align-self: flex-start;
    }

    & .kbq-option-text {
        @include common.kbq-line-wrapper-base();
        display: inline-block;

        @include common.kbq-truncate-line();

        padding-top: var(--kbq-list-size-text-padding-vertical, 0);
        padding-bottom: var(--kbq-list-size-text-padding-vertical, 0);
    }

    &:focus {
        outline: none;
    }

    &.kbq-disabled .kbq-icon {
        cursor: default;
    }

    &:not(.kbq-disabled) {
        cursor: pointer;

        &:hover,
        &.kbq-hovered,
        &.kbq-action-button-focused {
            & .kbq-action-container {
                display: flex;
            }
        }
    }

    &:is(.kbq-checked, .kbq-selected, .kbq-focused):has(+ :is(.kbq-checked, .kbq-selected, .kbq-focused)) {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    &:is(.kbq-checked, .kbq-selected, .kbq-focused) + :is(.kbq-checked, .kbq-selected, .kbq-focused) {
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }
}
