/*
Copyright 2021 The Matrix.org Foundation C.I.C.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

.mx_SpaceRoomView_landing {
    .mx_AccessibleButton_kind_link {
        font-size: inherit;
    }

    .mx_SearchBox {
        margin: 24px 0 16px;
    }

    .mx_SpaceHierarchy_noResults {
        text-align: center;

        > div {
            font-size: $font-15px;
            line-height: $font-24px;
            color: $secondary-content;
        }
    }

    .mx_SpaceHierarchy_listHeader {
        display: flex;
        flex-flow: wrap;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        font-size: $font-15px;
        line-height: $font-24px;
        color: $primary-content;
        margin-bottom: 12px;

        .mx_SpaceHierarchy_listHeader_header {
            grid-column-start: 1;
            font-weight: var(--cpd-font-weight-semibold);
            margin: 0;
        }

        .mx_SpaceHierarchy_listHeader_buttons {
            grid-column-start: 2;
            display: flex;
            flex-flow: wrap;
            gap: 12px;
            min-height: 32px;

            .mx_AccessibleButton {
                padding: 4px 12px;
                font-weight: normal;
            }
        }

        .mx_AccessibleButton_kind_danger_outline,
        .mx_AccessibleButton_kind_primary_outline {
            padding: 3px 12px; /* to account for the 1px border */
        }
    }

    .mx_SpaceHierarchy_error {
        position: relative;
        font-weight: var(--cpd-font-weight-semibold);
        color: $alert;
        font-size: $font-15px;
        line-height: $font-18px;
        margin: 20px auto 12px;
        padding-left: 24px;
        width: max-content;

        &::before {
            content: "";
            position: absolute;
            height: 16px;
            width: 16px;
            left: 0;
            background-image: url("$(res)/img/element-icons/warning-badge.svg");
            background-size: cover;
            background-repeat: no-repeat;
        }
    }

    .mx_SpaceHierarchy_roomCount {
        > h3 {
            display: inline;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: $font-18px;
            line-height: $font-22px;
            color: $primary-content;
        }

        > span {
            margin-left: 8px;
            font-size: $font-15px;
            line-height: $font-24px;
            color: $secondary-content;
        }
    }

    .mx_SpaceHierarchy_subspace_toggle {
        position: absolute;
        left: -1px;
        top: 10px;
        height: 16px;
        width: 16px;
        border-radius: 4px;
        background-color: $background;

        &::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            height: 16px;
            width: 16px;
            mask-repeat: no-repeat;
            mask-position: center;
            background-color: $tertiary-content;
            mask-size: 16px;
            transform: rotate(270deg);
            mask-image: url("$(res)/img/feather-customised/chevron-down.svg");
        }

        &.mx_SpaceHierarchy_subspace_toggle_shown::before {
            transform: rotate(0deg);
        }
    }

    .mx_SpaceHierarchy_subspace_children {
        position: relative;
        padding-left: 12px;
    }

    .mx_SpaceHierarchy_list {
        list-style: none;
        padding: 0;
        margin: 0;

        li.mx_SpaceHierarchy_roomTileWrapper {
            list-style: none;

            .mx_SpaceHierarchy_roomTile {
                position: relative;
                padding: 8px 16px;
                border-radius: 8px;
                box-sizing: border-box;

                display: flex;
                flex-wrap: wrap;
                gap: 6px 12px;

                .mx_SpaceHierarchy_roomTile_item {
                    font-weight: var(--cpd-font-weight-semibold);
                    font-size: $font-15px;
                    line-height: $font-18px;
                    display: grid;
                    grid-template-columns: 20px auto;
                    gap: 6px 8px;
                    align-items: center;
                    flex: 1; /* wrap action buttons */

                    .mx_SpaceHierarchy_roomTile_avatar {
                        grid-row: 1;
                        grid-column: 1;
                    }

                    .mx_SpaceHierarchy_roomTile_name {
                        grid-row: 1;
                        grid-column: 2;

                        .mx_InfoTooltip,
                        .mx_SpaceHierarchy_roomTile_joined {
                            margin-left: 12px;
                            color: $tertiary-content;
                            font-size: $font-12px;
                            line-height: $font-15px;

                            .mx_InfoTooltip_icon {
                                margin-right: 4px;
                                position: relative;
                                vertical-align: text-top;

                                &::before {
                                    position: absolute;
                                    top: 0;
                                    left: 0;
                                }
                            }
                        }

                        .mx_InfoTooltip {
                            display: inline-block;
                        }

                        .mx_SpaceHierarchy_roomTile_joined {
                            display: inline;
                            position: relative;
                            padding-left: 16px;

                            &::before {
                                content: "";
                                width: 20px;
                                height: 20px;
                                top: -2px;
                                left: -4px;
                                position: absolute;
                                mask-position: center;
                                mask-size: contain;
                                mask-repeat: no-repeat;
                                background-color: $accent;
                                mask-image: url("$(res)/img/element-icons/roomlist/checkmark.svg");
                            }
                        }
                    }

                    .mx_SpaceHierarchy_roomTile_info {
                        grid-row: 2;
                        grid-column: 2;
                        font: var(--cpd-font-body-md-regular);
                        font-weight: initial;
                        line-height: $font-18px;
                        color: $secondary-content;
                        display: -webkit-box;
                        -webkit-box-orient: vertical;
                        -webkit-line-clamp: 2;
                        overflow: hidden;
                    }
                }

                .mx_SpaceHierarchy_actions {
                    display: flex;
                    align-items: center;
                    column-gap: 12px;
                    margin-left: auto;

                    .mx_AccessibleButton {
                        line-height: $font-24px;
                        padding: 4px 16px;
                        display: inline-block;
                        visibility: hidden;
                    }

                    .mx_AccessibleButton_kind_danger_outline,
                    .mx_AccessibleButton_kind_primary_outline {
                        padding: 3px 16px; /* to account for the 1px border */
                    }

                    .mx_Checkbox {
                        display: inline-flex;

                        label {
                            width: 16px;
                            height: 16px;
                        }
                    }
                }

                &:hover,
                &:focus-within {
                    background-color: $spacePanel-bg-color;

                    .mx_AccessibleButton {
                        visibility: visible;
                    }
                }

                &.mx_SpaceHierarchy_joining {
                    .mx_AccessibleButton {
                        visibility: visible;
                        padding: 4px 18px;
                    }
                }
            }
        }
    }

    .mx_SpaceHierarchy_roomTile,
    .mx_SpaceHierarchy_subspace_children {
        &::before {
            content: "";
            position: absolute;
            background-color: $spacePanel-bg-color;
            width: 1px;
            height: 100%;
            left: 6px;
            top: 0;
        }
    }

    .mx_SpaceHierarchy_actions {
        .mx_SpaceHierarchy_actionsText {
            font-weight: normal;
            font-size: $font-12px;
            line-height: $font-15px;
            color: $secondary-content;
        }
    }

    > hr {
        border: none;
        height: 1px;
        background-color: rgba(141, 151, 165, 0.2);
        margin: 20px 0;
    }

    .mx_SpaceHierarchy_createRoom {
        display: block;
        margin: 16px auto 0;
        width: max-content;
    }
}
