@import "../../css/units.css";
@import "../../css/colors.css";

.page-wrapper {
    height: 100%;
}

.body-wrapper {
    height: calc(100% - $menu-bar-height);
    background-color: $ui-primary;
}

.flex-wrapper {
    display: flex;

    /*
        Make 2 columns:
        a) for the blocks + workspace panes, and
        b) for combined stage menu + stage + sprite/stage selectors
    */
    flex-direction: row;
    height: 100%;

    /*
        Stop scrollbar popping in and out from scratch-blocks border issue
        https://github.com/LLK/scratch-gui/issues/318
    */
    overflow-y: hidden;
}

.editor-wrapper {
    flex-basis: 600px;
    flex-grow: 1;
    flex-shrink: 0;
    position: relative;

    display: flex;
    flex-direction: column;
}

.tab-list {
    height: $stage-menu-height;
    width: 250px; /* Match width of the toolbox */
    display: flex;
    align-items: flex-end;
    flex-shrink: 0;

    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 500;
    font-size: 0.80rem;

    /* Overrides for react-tabs styling */
    margin: 0 !important;
    border-bottom: 0 !important;
}

.tab {
    flex-grow: 1;
    height: 80%;
    margin-left: -0.5rem;

    border-radius: 1rem 1rem 0 0;
    border: 1px solid $ui-black-transparent;

    padding: 0.125rem 1.25rem 0;
    font-size: 0.75rem;

    background-color: $ui-tertiary;
    color: $text-primary-transparent;

    display: flex;
    justify-content: center;
    align-items: center;

    user-select: none;
}

/* Use z-indices to force left-on-top for tabs */
.tab:nth-of-type(1) {
    margin-left: 0;
    z-index: 3;
}
.tab:nth-of-type(2) {
    z-index: 2;
}
.tab:nth-of-type(3) {
    z-index: 1;
}

.tab:hover {
  background-color: $ui-primary;
}

.tab.is-selected {
    height: 90%;
    color: $motion-primary;
    background-color: $ui-white;
    z-index: 4; /* Make sure selected is always above */
}

.tab img {
    margin-right: 0.125rem;
    width: 1.375rem;
    filter: grayscale(100%);
}

.tab.is-selected img {
    filter: none;
}

/* Tab style overrides from react-tabs */
.tab.is-selected:after {
    display: none;
}

.tab.is-selected:focus {
    outline: none;
    box-shadow: none;
    border-color: $ui-black-transparent;
}

.tab.is-selected:focus:after {
    display: none;
}

/* Body of the tabs */
.tabs {
    position: relative;
    flex-grow: 1;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
}

.tab-panel {
    position: relative;
    flex-grow: 1;
    flex-shrink: 0;
    display: none;
}

.tab-panel.is-selected {
    display: flex;
}

.blocks-wrapper {
    flex-grow: 1;
    position: relative;
}

.stage-and-target-wrapper {
    /*
        Makes rows for children:
          1) stage menu
          2) stage
          3) sprite/stage selectors
        Only reason we need this, is so .targetWrapper, which holds the selectors,
        goes to full vertical height of the window
    */
    display: flex;
    flex-direction: column;

    /* Fix the max width to max stage size (defined in layout_constants.js) + gutter size */
    max-width: calc(480px + calc($space * 2));
}

.stage-wrapper {
    padding-left: $space;
    padding-right: $space;

    /* Hides negative space between edge of rounded corners + container, when selected */
    user-select: none;
}

.target-wrapper {
    display: flex;
    flex-grow: 1;
    flex-basis: 0;

    padding-top: $space;
    padding-left: $space;
    padding-right: $space;

    /*
        For making the sprite-selector a scrollable pane
        @todo: Not working in Safari
    */
    /* TODO this also breaks the thermometer menu */
    /* overflow: hidden; */
}

.extension-button-container {
    width: 3.25rem;
    height: 3.25rem;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 50; /** Force extension button above the ScratchBlocks flyout. */
    background: $motion-primary;

    border: 1px solid $motion-primary;
    box-sizing: content-box; /* To match scratch-block vertical toolbox borders */
}

$fade-out-distance: 15px;

.extension-button-container:before {
    content: "";
    position: absolute;
    top: calc(calc(-1 * $fade-out-distance) - 1px);
    left: -1px;
    background: linear-gradient(rgba(0, 0, 0, 0),rgba(0, 0, 0, 0.15));
    height: $fade-out-distance;
    width: calc(100% + 0.5px);
}


.extension-button {
    background: none;
    border: none;
    outline: none;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.extension-button-icon {
    width: 1.75rem;
    height: 1.75rem;
}

.extension-button > div {
    margin-top: 0;
}