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

/**
 * JIT View
 */

#jit-optimizations-view {
  width: 350px;
  min-width: 200px;
  white-space: nowrap;
  --jit-tree-row-height: 14;
  --jit-tree-header-height: 16;
}

/* Override layout styles applied by minimal-xul.css */
#jit-optimizations-view div {
  display: block;
}
#jit-optimizations-view span {
  display: inline-block;
}

#jit-optimizations-view > div {
  /* For elements that need to flex to fill the available space and/or
   * scroll on overflow, we need to use the old flexbox model, since the
   * parent nodes are in the XUL namespace. The new flexbox model can't
   * properly compute dimensions and will ignore `flex: ${number}` properties,
   * since no other parent node has a flex display. */
  display: -moz-box;
  -moz-box-flex: 1;
  -moz-box-orient: vertical;
}

#jit-optimizations-view .optimization-header,
#jit-optimizations-view .tree * {
  /* We can, however, display child nodes as flex to take advantage of
   * horizontal/vertical inlining. */
  display: flex;
}

#jit-optimizations-view .optimization-header {
  height: var(--jit-tree-header-height);
  padding: 2px 5px;
  background-color: var(--theme-tab-toolbar-background);
}

#jit-optimizations-view .header-title {
  font-weight: bold;
  padding-inline-end: 7px;
}

#jit-optimizations-view .tree {
  display: -moz-box;
  -moz-box-flex: 1;
  -moz-box-orient: vertical;
  overflow: auto;
  background-color: var(--theme-body-background);
}

#jit-optimizations-view .tree-node {
  height: var(--jit-tree-row-height);
}

#jit-optimizations-view .tree-node button {
  display: none;
}

#jit-optimizations-view .optimization-outcome.success {
  color: var(--theme-highlight-green);
}
#jit-optimizations-view .optimization-outcome.failure {
  color: var(--theme-highlight-red);
}

.theme-dark .opt-icon::before {
  background-image: url(chrome://devtools/skin/images/webconsole.svg);
}
.theme-light .opt-icon::before {
  background-image: url(chrome://devtools/skin/images/webconsole.svg#light-icons);
}

.opt-icon::before {
  display: inline-block;
  content: "";
  background-repeat: no-repeat;
  background-size: 72px 60px;
  /* show grey "i" bubble by default */
  background-position: -36px -36px;
  width: 10px;
  height: 10px;
  max-height: 12px;
}

.opt-icon::before {
  margin: 1px 6px 0 0;
}

.opt-icon.warning::before {
  background-position: -24px -24px;
}

/* Frame Component */
.frame-link {
  margin-inline-start: 7px;
}
