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

@use './button-toggle-theme' as *;

.kbq-button-toggle-group {
    box-sizing: border-box;
    display: inline-flex;
    flex-direction: row;
    align-items: center;

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

    border-radius: var(--kbq-button-toggle-size-container-border-radius);

    padding: var(--kbq-button-toggle-size-container-padding-vertical)
        var(--kbq-button-toggle-size-container-padding-horizontal);

    .kbq-button-toggle {
        display: flex;
        overflow: hidden;
        justify-content: flex-start;
        align-items: center;

        height: var(--kbq-button-toggle-size-item-height);
        min-height: var(--kbq-button-toggle-size-item-height);

        border-radius: var(--kbq-button-toggle-size-item-border-radius);
        border: var(--kbq-size-border-width) solid transparent;

        &.cdk-keyboard-focused {
            outline: 1px solid var(--kbq-states-line-focus-theme);
            border-color: var(--kbq-states-line-focus-theme);
        }

        > .kbq-button,
        > .kbq-button-icon {
            height: inherit;
            min-height: inherit;
            border-radius: var(--kbq-button-toggle-size-item-border-radius);
            border-width: 0;

            padding: kbq-difference-series-css-variables(
                    [button-toggle-size-item-padding-vertical,
                    button-toggle-size-item-focus-outline-width]
                )
                kbq-difference-series-css-variables(
                    [button-toggle-size-item-padding-horizontal,
                    button-toggle-size-item-focus-outline-width]
                );

            & .kbq-button-wrapper {
                width: 100%;
            }

            .kbq-button-toggle-wrapper {
                display: inline-flex;

                text-overflow: ellipsis;
                overflow: hidden;
                white-space: nowrap;
                align-items: center;

                width: 100%;

                gap: var(--kbq-button-toggle-size-item-content-gap-horizontal);
            }

            &.cdk-keyboard-focused {
                outline: none;
            }
        }
    }

    &:not(.kbq-button-toggle_vertical) {
        .kbq-button-toggle {
            > .kbq-button,
            > .kbq-button-icon {
                max-width: 100%;

                height: var(--kbq-button-toggle-size-item-height);
            }
        }
    }
}

.kbq-button-toggle_vertical {
    flex-direction: column;

    .kbq-button-toggle {
        width: 100%;

        > .kbq-button,
        > .kbq-button-icon {
            width: 100%;

            border-radius: var(--kbq-button-toggle-size-item-border-radius);
        }
    }
}

@include kbq-button-toggle-theme();
@include kbq-button-toggle-typography();
