/*
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_Dialog_title {
        display: flex;

        .mx_BaseAvatar {
            margin-right: 12px;
            align-self: center;
        }

        .mx_BaseAvatar_image {
            border-radius: 8px;
        }

        > div {
            > h1 {
                font-weight: $font-semi-bold;
                font-size: $font-18px;
                line-height: $font-22px;
                margin: 0;
            }

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

    .mx_AccessibleButton_kind_link {
        padding: 0;
        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;
        min-height: 32px;
        align-items: center;
        font-size: $font-15px;
        line-height: $font-24px;
        color: $primary-content;
        margin-bottom: 12px;

        > h4 {
            font-weight: $font-semi-bold;
            margin: 0;
        }

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

            & + .mx_AccessibleButton {
                margin-left: 16px;
            }
        }

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

        > span {
            margin-left: auto;
        }
    }

    .mx_SpaceHierarchy_error {
        position: relative;
        font-weight: $font-semi-bold;
        color: $notice-primary-color;
        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");
        }
    }

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

    .mx_SpaceHierarchy_roomCount {
        > h3 {
            display: inline;
            font-weight: $font-semi-bold;
            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 {
        .mx_BaseAvatar_image {
            border-radius: 8px;
        }
    }

    .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_roomTile {
        position: relative;
        padding: 8px 16px;
        border-radius: 8px;
        box-sizing: border-box;

        display: grid;
        grid-template-columns: 20px auto max-content;
        grid-column-gap: 8px;
        grid-row-gap: 6px;
        align-items: center;

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

        .mx_SpaceHierarchy_roomTile_name {
            font-weight: $font-semi-bold;
            font-size: $font-15px;
            line-height: $font-18px;
            grid-row: 1;
            grid-column: 2;

            .mx_InfoTooltip,
            .mx_SpaceHierarchy_roomTile_joined {
                display: inline;
                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_SpaceHierarchy_roomTile_joined {
                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-color;
                    mask-image: url('$(res)/img/element-icons/roomlist/checkmark.svg');
                }
            }
        }

        .mx_SpaceHierarchy_roomTile_info {
            font-size: $font-14px;
            line-height: $font-18px;
            color: $secondary-content;
            grid-row: 2;
            grid-column: 1/3;
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            overflow: hidden;
        }

        .mx_SpaceHierarchy_actions {
            text-align: right;
            margin-left: 20px;
            grid-column: 3;
            grid-row: 1/3;

            .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;
                vertical-align: middle;
                margin-left: 12px;
            }
        }

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

            .mx_AccessibleButton {
                visibility: visible;
            }
        }

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

    li.mx_SpaceHierarchy_roomTileWrapper {
        list-style: none;
    }

    .mx_SpaceHierarchy_roomTile,
    .mx_SpaceHierarchy_subspace_children {
        &::before {
            content: "";
            position: absolute;
            background-color: $groupFilterPanel-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;
    }
}