/*
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.
*/

$SpaceRoomViewInnerWidth: 428px;

@define-mixin SpacePillButton {
    position: relative;
    padding: 16px 32px 16px 72px;
    width: 432px;
    box-sizing: border-box;
    border-radius: 8px;
    border: 1px solid $input-border-color;
    font-size: $font-15px;
    margin: 20px 0;

    > h3 {
        font-weight: $font-semi-bold;
        margin: 0 0 4px;
    }

    > span {
        color: $secondary-content;
    }

    &::before {
        position: absolute;
        content: '';
        width: 32px;
        height: 32px;
        top: 24px;
        left: 20px;
        mask-position: center;
        mask-repeat: no-repeat;
        mask-size: 24px;
        background-color: $tertiary-content;
    }

    &:hover {
        border-color: $accent;

        &::before {
            background-color: $accent;
        }

        > span {
            color: $primary-content;
        }
    }
}

.mx_SpaceRoomView {
    overflow-y: auto;
    flex: 1;

    .mx_MainSplit > div:first-child {
        padding: 80px 60px;
        flex-grow: 1;
        max-height: 100%;
        overflow-y: auto;

        h1 {
            margin: 0;
            font-size: $font-24px;
            font-weight: $font-semi-bold;
            color: $primary-content;
            width: max-content;
        }

        .mx_SpaceRoomView_description {
            font-size: $font-15px;
            color: $secondary-content;
            margin-top: 12px;
            margin-bottom: 24px;
            max-width: $SpaceRoomViewInnerWidth;
        }

        .mx_AddExistingToSpace {
            max-width: $SpaceRoomViewInnerWidth;

            .mx_AddExistingToSpace_content {
                height: calc(100vh - 360px);
                max-height: 400px;
            }
        }

        &:not(.mx_SpaceRoomView_landing) .mx_SpaceFeedbackPrompt {
            width: $SpaceRoomViewInnerWidth;
        }

        .mx_SpaceRoomView_buttons {
            display: block;
            margin-top: 44px;
            width: $SpaceRoomViewInnerWidth;
            text-align: right; // button alignment right

            .mx_AccessibleButton_hasKind {
                padding: 8px 22px;
                margin-left: 16px;
            }

            input.mx_AccessibleButton {
                border: none; // override default styles
            }
        }

        .mx_Field {
            max-width: $SpaceRoomViewInnerWidth;

            & + .mx_Field {
                margin-top: 28px;
            }
        }

        .mx_SpaceRoomView_errorText {
            font-weight: $font-semi-bold;
            font-size: $font-12px;
            line-height: $font-15px;
            color: $alert;
            margin-bottom: 28px;
        }

        .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }
    }

    .mx_SpaceRoomView_landing {
        display: flex;
        flex-direction: column;
        min-width: 0;

        .mx_SpaceRoomView_landing_header {
            display: flex;
            justify-content: space-between;

            .mx_BaseAvatar {
                width: 80px;

                .mx_BaseAvatar_image {
                    border-radius: 12px;
                }
            }

            // XXX: Temporary for the Spaces release only
            .mx_SpaceFeedbackPrompt {
                padding: 7px; // 8px - 1px border
                border: 1px solid rgba($primary-content, .1);
                border-radius: 8px;
                width: max-content;
                height: fit-content;
                margin-left: 24px;
            }
        }

        .mx_SpaceRoomView_landing_name {
            margin: 24px 0 16px;
            font-size: $font-15px;
            color: $secondary-content;

            > span {
                display: flex;
                flex-flow: column;
                gap: 12px 0;

                h1 {
                    display: inline-block;
                }
            }

            .mx_SpaceRoomView_landing_inviter {
                .mx_BaseAvatar {
                    margin-right: 4px;
                    vertical-align: middle;
                }
            }
        }

        .mx_SpaceRoomView_landing_infoBar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            flex-wrap: wrap;
            line-height: $font-24px;

            .mx_SpaceRoomView_landing_infoBar_interactive {
                display: flex;
                flex-wrap: wrap;
                align-items: center;
                gap: 12px 12px;

                .mx_FacePile {
                    display: inline-block;

                    .mx_FacePile_faces {
                        cursor: pointer;
                    }
                }

                .mx_SpaceRoomView_landing_inviteButton,
                .mx_SpaceRoomView_landing_settingsButton {
                    position: relative;

                    &::before {
                        position: absolute;
                        content: "";
                        mask-position: center;
                        mask-repeat: no-repeat;
                    }
                }

                .mx_SpaceRoomView_landing_inviteButton {
                    padding: 4px 18px 4px 40px;
                    height: min-content;

                    &::before {
                        left: 8px;
                        height: 16px;
                        width: 16px;
                        background: #fff; // white icon fill
                        mask-size: 16px;
                        mask-image: url('$(res)/img/element-icons/room/invite.svg');
                    }
                }

                .mx_SpaceRoomView_landing_settingsButton {
                    width: 24px;
                    height: 24px;

                    &::before {
                        left: 0;
                        top: 0;
                        height: 24px;
                        width: 24px;
                        background: $tertiary-content;
                        mask-size: contain;
                        mask-image: url('$(res)/img/element-icons/settings.svg');
                    }
                }
            }
        }

        .mx_SpaceRoomView_landing_topic {
            font-size: $font-15px;
            margin-top: 12px;
            margin-bottom: 16px;
            white-space: pre-wrap;
            word-wrap: break-word;
        }

        .mx_SearchBox {
            margin: 0 0 20px;
            flex: 0;
        }
    }

    .mx_SpaceRoomView_privateScope {
        > .mx_AccessibleButton {
            @mixin SpacePillButton;
        }

        .mx_SpaceRoomView_privateScope_justMeButton::before {
            mask-image: url('$(res)/img/element-icons/room/members.svg');
        }

        .mx_SpaceRoomView_privateScope_meAndMyTeammatesButton::before {
            mask-image: url('$(res)/img/element-icons/group-members.svg');
        }
    }

    .mx_SpaceRoomView_inviteTeammates {
        // XXX remove this when spaces leaves Beta
        .mx_SpaceRoomView_inviteTeammates_betaDisclaimer {
            padding: 16px;
            position: relative;
            border-radius: 8px;
            background-color: $header-panel-bg-color;
            max-width: $SpaceRoomViewInnerWidth;
            margin: 20px 0 30px;
            box-sizing: border-box;

            .mx_BetaCard_betaPill {
                position: absolute;
                left: 16px;
                top: 16px;
            }
        }

        .mx_SpaceRoomView_inviteTeammates_buttons {
            color: $secondary-content;
            margin-top: 28px;

            .mx_AccessibleButton {
                position: relative;
                display: inline-block;
                padding-left: 32px;
                line-height: 24px; // to center icons

                &::before {
                    content: "";
                    position: absolute;
                    height: 24px;
                    width: 24px;
                    top: 0;
                    left: 0;
                    background-color: $secondary-content;
                    mask-repeat: no-repeat;
                    mask-position: center;
                    mask-size: contain;
                }

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

            .mx_SpaceRoomView_inviteTeammates_inviteDialogButton {
                color: $accent;

                &::before {
                    mask-image: url('$(res)/img/element-icons/room/invite.svg');
                    background-color: $accent;
                }
            }
        }
    }
}
