/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

:host([scrolledtostart])::part(overflow-start-indicator),
:host([scrolledtoend])::part(overflow-end-indicator),
:host(:not([overflowing])) > toolbarbutton {
  visibility: collapse;
}

scrollbox {
  min-width: 0;
  min-height: 0;
}

slot {
  display: flex;
  flex: 1 0 0;
  flex-direction: inherit;
}

/* Scroll arrows */

toolbarbutton {
  color: inherit;
  list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg");
  -moz-context-properties: fill, fill-opacity;
  fill: currentColor;
  fill-opacity: 1;
  padding: 2px;
  /* Make sure we draw on top of our scrollbox, since otherwise the up button
   * won't be hittable */
  position: relative;

  &[disabled] {
    fill-opacity: var(--toolbarbutton-disabled-opacity);
  }

  :host([orient="horizontal"]) > & {
    list-style-image: url("chrome://global/skin/icons/arrow-left.svg");
  }

  @media not (-moz-platform: macos) {
    :host(:not([clicktoscroll])) > & {
      appearance: none;
    }
  }

  > .toolbarbutton-text {
    display: none;
  }
}

#scrollbutton-up > .toolbarbutton-icon {
  transform: scaleY(-1);
}

:host([orient="horizontal"]) > #scrollbutton-down:-moz-locale-dir(ltr) > .toolbarbutton-icon,
:host([orient="horizontal"]) > #scrollbutton-up:-moz-locale-dir(rtl) > .toolbarbutton-icon {
  transform: scaleX(-1);
}

/* replace scrollbuttons with scrollbars for vertical scrollboxes.
this works best with the overlay scrollbars from userChrome.ag.css */
:host([orient="vertical"]) > #scrollbutton-up,
:host([orient="vertical"]) > #scrollbutton-down,
:host([orient="vertical"])::part(overflow-end-indicator),
:host([orient="vertical"])::part(overflow-start-indicator) {
  visibility: collapse;
}

/* reveal the vertical scrollbar */
:host(.menupopup-arrowscrollbox[orient="vertical"])::part(scrollbox) {
  overflow-y: auto;
  padding-block: 0 !important;
  margin-block: 0 !important;
  scroll-behavior: smooth;
  scrollbar-width: var(--content-select-scrollbar-width, auto);
}
