]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10671 Reduce render-blocking stylesheets (#297)
authorStas Vilchik <stas.vilchik@sonarsource.com>
Thu, 31 May 2018 10:25:25 +0000 (12:25 +0200)
committerSonarTech <sonartech@sonarsource.com>
Thu, 31 May 2018 18:20:46 +0000 (20:20 +0200)
47 files changed:
server/sonar-web/public/index.html
server/sonar-web/src/main/js/app/index.js
server/sonar-web/src/main/js/app/styles/components/alerts.css
server/sonar-web/src/main/js/app/styles/components/columns.css
server/sonar-web/src/main/js/app/styles/components/graphics.css
server/sonar-web/src/main/js/app/styles/components/issues.css
server/sonar-web/src/main/js/app/styles/components/list-groups.css
server/sonar-web/src/main/js/app/styles/components/modals.css
server/sonar-web/src/main/js/app/styles/components/panels.css
server/sonar-web/src/main/js/app/styles/components/search-navigator.css [deleted file]
server/sonar-web/src/main/js/app/styles/components/side-tabs.css [deleted file]
server/sonar-web/src/main/js/app/styles/components/ui.css
server/sonar-web/src/main/js/app/styles/sonar.css
server/sonar-web/src/main/js/app/utils/exposeLibraries.ts
server/sonar-web/src/main/js/apps/account/account.css
server/sonar-web/src/main/js/apps/coding-rules/components/App.tsx
server/sonar-web/src/main/js/apps/component-measures/components/App.js
server/sonar-web/src/main/js/apps/issues/components/App.tsx
server/sonar-web/src/main/js/apps/portfolio/components/ReleasabilityBox.tsx
server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/ReleasabilityBox-test.tsx.snap
server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx
server/sonar-web/src/main/js/apps/quality-gates/components/QualityGatesApp.tsx
server/sonar-web/src/main/js/apps/settings/components/App.js
server/sonar-web/src/main/js/apps/settings/side-tabs.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/AdvancedTimeline.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/AdvancedTimeline.js
server/sonar-web/src/main/js/components/charts/BarChart.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/BubbleChart.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/BubbleChart.tsx
server/sonar-web/src/main/js/components/charts/ColorBoxLegend.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/ColorBoxLegend.tsx
server/sonar-web/src/main/js/components/charts/ColorGradientLegend.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/ColorGradientLegend.tsx
server/sonar-web/src/main/js/components/charts/ColorRatingsLegend.tsx
server/sonar-web/src/main/js/components/charts/Histogram.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/Histogram.tsx
server/sonar-web/src/main/js/components/charts/LineChart.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/LineChart.tsx
server/sonar-web/src/main/js/components/charts/TreeMap.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/TreeMap.tsx
server/sonar-web/src/main/js/components/charts/ZoomTimeLine.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/charts/ZoomTimeLine.js
server/sonar-web/src/main/js/components/controls/GlobalMessages.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/controls/GlobalMessages.tsx
server/sonar-web/src/main/js/components/issue/Issue.css [new file with mode: 0644]
server/sonar-web/src/main/js/components/issue/Issue.js
server/sonar-web/src/main/js/components/search-navigator.css [new file with mode: 0644]

index 71b679d96f480fd8dc25d479a4fa4ebe63d5f7cb..4da3597a841e3166c1436f925820f7e589405635 100644 (file)
   <meta name="msapplication-TileColor" content="#FFFFFF" />
   <meta name="msapplication-TileImage" content="%WEB_CONTEXT%/mstile-512x512.png" />
 
-  <% for (var css in htmlWebpackPlugin.files.css) { %>
-    <link href="%WEB_CONTEXT%/<%= htmlWebpackPlugin.files.css[css] %>" rel="stylesheet">
-    <% } %>
-      <title>Loading...</title>
+  <title>Loading...</title>
+  
+  <% for (let css of htmlWebpackPlugin.files.css) { %>
+    <style><%= compilation.assets[css].source() %></style>
+  <% } %>
 </head>
 
 <body>
@@ -37,9 +38,9 @@
     </div>
   </div>
   <script>window.baseUrl = '%WEB_CONTEXT%';</script>
-  <% for (var chunk in htmlWebpackPlugin.files.chunks) { %>
+  <% for (let chunk in htmlWebpackPlugin.files.chunks) { %>
     <script src="%WEB_CONTEXT%/<%= htmlWebpackPlugin.files.chunks[chunk].entry %>"></script>
-    <% } %>
+  <% } %>
 </body>
 
 </html>
index 01521b77b915a62c943a9583de96a9867744aa9e..ee6cfb479d74788aadf1694910c3905e3fa404ec 100644 (file)
@@ -22,8 +22,6 @@ import startReactApp from './utils/startReactApp';
 import installExtensionsHandler from './utils/installExtensionsHandler';
 import { installGlobal } from '../helpers/l10n';
 // styles
-import '../components/ui/Level.css';
-import '../components/ui/Rating.css';
 import './styles/sonar.css';
 
 installGlobal();
index aa8e515e341e94e523fc2e539c283236559b8c2d..c8a9efd700c2531fe77febfbbcf899c99f995241 100644 (file)
   display: none;
 }
 
-.alert-inline {
-  display: inline-block;
-  vertical-align: middle;
-}
-
 .modal-alert {
   margin: -10px -10px 16px;
   padding: 10px;
index c966d1560a47596b34f33fe1821dd146d4156420..c544a67056f5cc8ef833ffaa236948ec38b99a92 100644 (file)
   clear: both;
 }
 
-.columns-overflow-visible {
-  overflow: visible !important;
-}
-
 .column-half {
   float: left;
   width: 50%;
   margin: 0 25%;
 }
 
-.column-third {
-  float: left;
-  width: 33.3333333333%;
-  padding: 0 10px;
-  box-sizing: border-box;
-}
-
-.column-two-thirds {
-  float: left;
-  width: 66.6666666667%;
-  padding: 0 10px;
-  box-sizing: border-box;
-}
-
 .flex-columns {
   display: flex;
 }
@@ -78,7 +60,3 @@
 .flex-column-third {
   width: calc(100% / 3);
 }
-
-.flex-column-two-thirds {
-  width: calc(100% / 3 * 2);
-}
index 03128aa2a68161153a80c9a92fd0ed18e25324dd..8c637486fdd514879d4ccec78bbf36c965264078 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-.sonar-d3 .treemap-container {
-  position: relative;
-}
-
-.sonar-d3 .treemap-cell {
-  position: absolute;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  box-sizing: border-box;
-  text-align: center;
-}
-
-.sonar-d3 .treemap-cell:focus {
-  outline: none;
-}
-
-.sonar-d3 .treemap-inner {
-  display: inline-flex;
-  vertical-align: middle;
-  align-items: center;
-  justify-content: center;
-  flex-wrap: wrap;
-  padding: 0 4px;
-  box-sizing: border-box;
-  line-height: 1.2;
-}
-
-.sonar-d3 .treemap-inner .treemap-icon {
-  flex-shrink: 0;
-}
 
-.sonar-d3 .treemap-inner .treemap-icon svg {
-  margin-top: 2px;
-}
-
-.sonar-d3 .treemap-inner .treemap-text {
-  flex-shrink: 1;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  text-align: left;
-}
-
-.sonar-d3 .treemap-link {
-  position: absolute;
-  z-index: var(--normalZIndex);
-  top: 5px;
-  right: 5px;
-  line-height: 14px;
-  font-size: var(--smallFontSize);
-  border-bottom: none;
-}
-
-.sonar-d3 .treemap-link:hover {
-  color: #d1eafb;
-}
-
-.sonar-d3 .treemap-link i,
-.sonar-d3 .treemap-link i:before {
-  vertical-align: top;
-  font-size: inherit;
-  line-height: inherit;
-}
-
-.word-cloud {
-  display: flex;
-  flex-wrap: wrap;
-  justify-content: space-around;
-  align-items: center;
-}
-
-.word-cloud a {
-  padding: 5px;
-  border-bottom: none;
-}
-
-/*
- * Line Chart
- */
-
-.line-chart-path {
-  fill: none;
-  stroke: var(--blue);
-  stroke-width: 2px;
-}
-
-.line-chart-path.line-chart-path-1 {
-  stroke: var(--darkBlue);
-}
-
-.line-chart-path.line-chart-path-2 {
-  stroke: #24c6e0;
-}
-
-.line-chart-area {
-  fill: rgba(75, 159, 213, 0.3);
-  stroke-width: 0;
-}
-
-.line-chart-area.line-chart-area-1 {
-  fill: rgba(35, 106, 151, 0.3);
-}
-
-.line-chart-area.line-chart-area-2 {
-  fill: rgba(36, 198, 224, 0.3);
-}
+/* TODO remove this file */
 
 .line-chart-legend {
   color: var(--blue);
 .line-chart-legend.line-chart-legend-2 {
   color: #24c6e0;
 }
-
-.line-chart-dot {
-  fill: var(--blue);
-}
-
-.line-chart-dot.line-chart-dot-1 {
-  fill: var(--darkBlue);
-}
-
-.line-chart-dot.line-chart-dot-2 {
-  fill: #24c6e0;
-}
-
-.line-chart-point {
-  fill: #fff;
-  stroke: var(--blue);
-  stroke-width: 2px;
-}
-
-.line-chart-event {
-  fill: #fff;
-  stroke: var(--blue);
-  stroke-width: 2px;
-}
-
-.line-chart-event.VERSION {
-  stroke: var(--blue);
-}
-
-.line-chart-event.QUALITY_GATE {
-  stroke: var(--green);
-}
-
-.line-chart-event.QUALITY_PROFILE {
-  stroke: var(--orange);
-}
-
-.line-chart-event.OTHER {
-  stroke: var(--purple);
-}
-
-.line-chart-tick {
-  fill: var(--secondFontColor);
-  font-size: var(--smallFontSize);
-  text-anchor: middle;
-}
-
-.line-chart-tick-x {
-  text-anchor: end;
-}
-
-.line-chart-tick-x-right {
-  text-anchor: start;
-}
-
-.line-chart-grid {
-  shape-rendering: crispedges;
-  stroke: #eee;
-}
-
-/*
- * Bubble Chart
- */
-
-.bubble-chart.is-moving {
-  cursor: move;
-}
-
-.bubble-chart text {
-  user-select: none;
-}
-
-.bubble-chart-bubble {
-  fill: var(--blue);
-  fill-opacity: 0.2;
-  stroke: var(--blue);
-  cursor: pointer;
-  transition: fill-opacity 0.2s ease;
-}
-
-.bubble-chart-bubble:hover {
-  fill-opacity: 0.8;
-}
-
-.bubble-chart-grid {
-  shape-rendering: crispedges;
-  stroke: #eee;
-}
-
-.bubble-chart-tick {
-  fill: var(--secondFontColor);
-  font-size: var(--smallFontSize);
-  text-anchor: middle;
-}
-
-.bubble-chart-tick-y {
-  text-anchor: end;
-}
-
-.bubble-chart-zoom {
-  position: absolute;
-  right: 20px;
-  top: 20px;
-  z-index: var(--aboveNormalZIndex);
-}
-
-/*
- * Legends
- */
-
-.color-box-legend {
-  display: flex;
-  justify-content: center;
-}
-
-.color-box-legend > *:not(:first-child) {
-  margin-left: 24px;
-}
-
-.color-box-legend .color-box-legend-rect {
-  display: inline-block;
-  margin-top: 1px;
-  margin-right: 4px;
-  border: 1px solid;
-}
-
-.color-box-legend .color-box-legend-rect-inner {
-  display: block;
-  width: 8px;
-  height: 8px;
-  opacity: 0.2;
-}
-
-.color-box-legend.color-box-full .color-box-legend-rect-inner {
-  opacity: 1;
-}
-
-.gradient-legend-text,
-.gradient-legend-na {
-  text-anchor: middle;
-  fill: var(--secondFontColor);
-  font-size: 10px;
-}
-
-.gradient-legend-text:first-of-type {
-  text-anchor: start;
-}
-
-.gradient-legend-text:last-of-type {
-  text-anchor: end;
-}
-
-/*
- * Bar Chart
- */
-
-.bar-chart-bar {
-  fill: var(--blue);
-}
-
-.bar-chart-tick {
-  fill: var(--secondFontColor);
-  font-size: var(--smallFontSize);
-  text-anchor: middle;
-}
-
-.histogram-tick {
-  text-anchor: end;
-}
-
-.histogram-tick-start {
-  text-anchor: start;
-}
-
-.histogram-value {
-  text-anchor: start;
-}
-
-/*
- * Charts zooming
- */
-
-.chart-zoomed .line-chart-area {
-  clip-path: url(#chart-clip);
-}
-
-.chart-zoomed .line-chart-path {
-  clip-path: url(#chart-clip);
-}
-
-.chart-zoomed .leak-chart-rect {
-  clip-path: url(#chart-clip);
-}
-
-.chart-zoom-tick {
-  fill: var(--secondFontColor);
-  font-size: 10px;
-  text-anchor: middle;
-  user-select: none;
-}
-
-.chart-mouse-events-overlay {
-  fill: none;
-  stroke: none;
-  pointer-events: all;
-}
-
-.chart-zoom .zoom-overlay {
-  fill: none;
-  stroke: none;
-  cursor: crosshair;
-  pointer-events: all;
-}
-
-.chart-zoom .zoom-selection {
-  fill: var(--secondFontColor);
-  fill-opacity: 0.2;
-  stroke: var(--secondFontColor);
-  shape-rendering: crispEdges;
-  cursor: move;
-}
-
-.chart-zoom .zoom-selection-handle {
-  cursor: ew-resize;
-  fill-opacity: 0;
-  stroke: none;
-}
-
-/*
- * Charts tooltips
- */
-
-.line-tooltip {
-  fill: none;
-  stroke: var(--secondFontColor);
-  stroke-width: 1px;
-  shape-rendering: crispEdges;
-}
index 3e1635acf1d341e5ba19829d54e0e21eb8ade237..baad1f72ba329246edd409c07563267f10ec6c78 100644 (file)
   margin: 10px 0;
 }
 
-.issue {
-  position: relative;
-  padding-top: 8px;
-  padding-bottom: 8px;
-  background-color: #ffeaea;
-  box-shadow: inset 0px 0px 0px 1px #ffeaea;
-  transition: all 0.3s ease, border 0 ease;
-}
-
 .issue-list,
 .issue {
   max-width: 980px;
 }
-
-.issue.selected {
-  box-shadow: none;
-  border: 1px solid #dd4040 !important;
-}
-
-.issue + .issue,
-.issue-container + .issue-container {
-  margin-top: 5px;
-}
-
-.issue.selected + .issue {
-  border-top-color: transparent;
-}
-
-.issue-inner {
-  overflow-x: auto;
-  overflow-y: hidden;
-}
-
-.issue-table {
-  width: 100%;
-}
-
-.issue-table td {
-  vertical-align: top;
-}
-
-.issue-row {
-  display: flex;
-  margin-bottom: 5px;
-}
-
-.issue-row-meta {
-  flex-grow: 0;
-  padding-right: 5px;
-  white-space: nowrap;
-}
-
-.issue-table-meta-cell {
-  width: 1px;
-  padding-right: 5px;
-  white-space: nowrap;
-}
-
-.issue-message {
-  flex-grow: 1;
-  padding-left: 10px;
-  padding-right: 10px;
-  line-height: 1.5;
-  font-size: var(--baseFontSize);
-  font-weight: 600;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-
-.issue-message .button-link {
-  height: 16px;
-}
-
-.issue-rule {
-  vertical-align: top;
-  margin-top: 2px;
-  padding: 0 3px;
-  background: rgba(75, 159, 213, 0.3);
-  opacity: 0.5;
-}
-
-.issue-rule:hover {
-  background: rgba(75, 159, 213, 0.3);
-}
-
-.issue-component {
-  margin-top: 5px;
-  padding-left: 10px;
-  padding-right: 10px;
-  line-height: 1.5;
-  font-size: var(--smallFontSize);
-}
-
-.issue-age {
-  position: relative;
-  float: right;
-  margin-top: -19.5px;
-  padding-right: 10px;
-  line-height: 1.5;
-  font-size: var(--smallFontSize);
-}
-
-.issue-age:before {
-  content: ' ';
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: 100%;
-  width: 10px;
-  background-image: linear-gradient(to right, rgba(255, 255, 255, 0), #fff 75%);
-}
-
-.issue-meta-list {
-  display: flex;
-  align-items: center;
-  padding-left: 10px;
-}
-
-.issue-meta {
-  line-height: 16px;
-  font-size: var(--smallFontSize);
-}
-
-.issue-meta + .issue-meta {
-  margin-left: var(--gridSize);
-}
-
-.issue-meta-in-corner {
-  position: absolute;
-  top: 8px;
-  right: 10px;
-  margin: 0 !important;
-}
-
-.issue-meta-label {
-  display: inline-block;
-  vertical-align: top;
-  max-width: 180px;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-.issue-changelog {
-  width: 450px;
-  max-height: 320px;
-  overflow: auto;
-  white-space: normal;
-}
-
-.issue-comments {
-  margin-top: 5px;
-  padding-left: 10px;
-  padding-right: 10px;
-  font-size: var(--smallFontSize);
-}
-
-.issue-comment {
-  display: table;
-  width: 100%;
-}
-
-.issue-comment + .issue-comment {
-  margin-top: 4px;
-}
-
-.issue-comment-author {
-  display: table-cell;
-  vertical-align: top;
-  max-width: 130px;
-  width: 1px;
-  line-height: 18px;
-  color: var(--secondFontColor);
-  font-weight: 600;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-.issue-comment-age {
-  display: table-cell;
-  vertical-align: top;
-  width: 1px;
-  line-height: 18px;
-  white-space: nowrap;
-  color: var(--secondFontColor);
-}
-
-.issue-comment-text {
-  display: table-cell;
-  vertical-align: top;
-  padding-left: 5px;
-  padding-right: 5px;
-  line-height: 18px;
-  line-height: 1.5;
-  outline: none;
-  word-break: break-all;
-}
-
-.issue-comment-text p,
-.issue-comment-text ul,
-.issue-comment-text ol,
-.issue-comment-text pre,
-.issue-comment-text blockquote,
-.issue-comment-text table,
-.issue-comment-text h2,
-.issue-comment-text h3,
-.issue-comment-text h4,
-.issue-comment-text h5,
-.issue-comment-text h6 {
-  margin: 1em 0;
-}
-
-.issue-comment-text h2 {
-  font-size: var(--bigFontSize);
-  font-weight: 400;
-}
-
-.issue-comment-text h3,
-.issue-comment-text h4,
-.issue-comment-text h5,
-.issue-comment-text h6 {
-  font-size: var(--baseFontSize);
-  font-weight: 600;
-}
-
-.issue-comment-text pre,
-.issue-comment-text code {
-  font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
-  font-size: var(--smallFontSize);
-}
-
-.issue-comment-text pre {
-  padding: 10px;
-  border-top: 1px solid var(--barBorderColor);
-  border-bottom: 1px solid var(--barBorderColor);
-  line-height: 18px;
-  overflow: auto;
-}
-
-.issue-comment-text code {
-  padding: 0.2em 0.45em;
-  margin: 0;
-  background-color: rgba(0, 0, 0, 0.06);
-  border-radius: 3px;
-  white-space: nowrap;
-}
-
-.issue-comment-text pre > code {
-  padding: 0;
-  background-color: transparent;
-  white-space: pre;
-}
-
-.issue-comment-text blockquote {
-  line-height: 1.5;
-  padding-left: 15px;
-  padding-right: 15px;
-}
-
-.issue-comment-text ul {
-  padding-left: 40px;
-  list-style: disc;
-}
-
-.issue-comment-text li > ul {
-  margin: 0.3em 0;
-}
-
-.issue-comment-text ol {
-  padding-left: 40px;
-  list-style: decimal;
-}
-
-.issue-comment-text table {
-  min-width: 50%;
-  border-collapse: collapse;
-  border: 1px solid var(--barBorderColor);
-}
-
-.issue-comment-text th {
-  padding: 5px 10px;
-  border: 1px solid var(--barBorderColor);
-  background-color: var(--barBackgroundColor);
-  font-weight: 600;
-  text-align: center;
-}
-
-.issue-comment-text td {
-  padding: 5px 10px;
-  border: 1px solid var(--barBorderColor);
-}
-
-.issue-comment-actions {
-  display: table-cell;
-  vertical-align: top;
-  width: 1px;
-  padding-left: 5px;
-  line-height: 18px;
-  white-space: nowrap;
-}
-
-input.issue-action-options-search {
-  padding: 0 10px 0 30px;
-  border: none;
-}
-
-.issue-action-options-search-icon {
-  position: absolute;
-  top: 3px;
-  left: 10px;
-  color: var(--secondFontColor);
-}
-
-.issue-action-options-search-icon:before {
-  font-size: var(--mediumFontSize);
-}
-
-.issue-comment-bubble-popup {
-  width: 440px;
-  font-size: var(--smallFontSize);
-}
-
-.issue-edit-comment-bubble-popup {
-  width: 440px;
-  font-size: var(--smallFontSize);
-}
-
-.issue-comment-form-text textarea {
-  width: 100%;
-  max-width: 100%;
-}
-
-.issue-comment-form-footer {
-  margin-top: 5px;
-  line-height: 22px;
-}
-
-.issue-comment-form-footer:before,
-.issue-comment-form-footer:after {
-  display: table;
-  content: '';
-  line-height: 0;
-}
-
-.issue-comment-form-footer:after {
-  clear: both;
-}
-
-.issue-comment-form-actions {
-  float: right;
-}
-
-.issue-comment-form-tips {
-  float: left;
-}
-
-.issue-more-actions {
-  line-height: 1.5;
-  font-size: var(--smallFontSize);
-}
-
-.issue-with-checkbox {
-  padding-left: 24px;
-}
-
-.issue-with-checkbox .issue-checkbox-container {
-  display: block;
-}
-
-.issue-checkbox-container {
-  display: none;
-  position: absolute;
-  width: 29px;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  border: none;
-}
-
-.issue-checkbox-container:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-
-.issue-checkbox {
-  position: absolute;
-  top: 50%;
-  left: 50%;
-  margin: -8px 0 0 -8px;
-}
-
-.issue:not(.selected) .location-index {
-  background-color: #ccc;
-}
-
-.issue .menu:not(.issues-similar-issues-menu):not(.issue-changelog) {
-  max-height: 120px;
-  overflow: auto;
-}
index 69045097a541a6ea07fd2c014ab67741bf65dd8c..4b21cc570ae3981f67428a37dc739480664ab0b2 100644 (file)
@@ -67,8 +67,3 @@ a.list-group-item {
   display: table;
   clear: both;
 }
-
-.list-group-item-text {
-  margin-bottom: 0;
-  line-height: 1.3;
-}
index 84cf5bb023047b9c018bfb740e948346d0dfb257..1e958e4b5267328fe8262484f9665b75b52ab9ef 100644 (file)
   min-height: 30px;
 }
 
-ul.modal-head-metadata {
-  overflow: hidden;
-  padding: 0 0 5px 0;
-}
-
-ul.modal-head-metadata li {
-  float: left;
-  position: relative;
-  font-size: 85%;
-  color: var(--secondFontColor);
-}
-
 .modal-body {
   padding: 10px;
 }
 
-.modal-body .notes {
-  height: auto;
-}
-
 .modal-field,
 .modal-large-field,
 .modal-validation-field {
@@ -150,17 +134,6 @@ ul.modal-head-metadata li {
   text-overflow: ellipsis;
 }
 
-.modal-field label.simple-label,
-.modal-validation-field label.simple-label {
-  display: inline-block;
-  vertical-align: middle;
-  float: none;
-  position: static;
-  margin: 0 0 0 -5px;
-  padding: 0;
-  text-align: left;
-}
-
 .modal-large-field label {
   display: inline-block;
   padding-bottom: 15px;
index 9147f410c7fbd9a757c0976a060857fabb441d93..19f96a5f043aa162f888f23cbb647860c7c776cd 100644 (file)
   background-color: #fff;
 }
 
-.panel-info {
-  border: 1px solid var(--blue);
-  background-color: var(--lightBlue);
-}
-
 .panel-warning {
   border: 1px solid #faebcc;
   background-color: #fcf8e3;
   color: #8a6d3b;
 }
-
-.panel-danger {
-  border-color: transparent !important;
-  background-color: #f2dede;
-  color: #a94442;
-}
diff --git a/server/sonar-web/src/main/js/app/styles/components/search-navigator.css b/server/sonar-web/src/main/js/app/styles/components/search-navigator.css
deleted file mode 100644 (file)
index b661a70..0000000
+++ /dev/null
@@ -1,819 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-.search-navigator.sticky .search-navigator-workspace-header {
-  position: fixed;
-  z-index: 50;
-  top: 0;
-  left: 300px;
-  right: 0;
-}
-
-.search-navigator.sticky .search-navigator-workspace-list,
-.search-navigator.sticky .search-navigator-workspace-details {
-  padding-top: 43px;
-}
-
-.search-navigator.sticky .search-navigator-side {
-  position: fixed;
-  z-index: 51;
-  bottom: 0;
-  overflow-y: auto;
-}
-
-.search-navigator-side {
-  position: fixed;
-  z-index: 51;
-  width: 300px;
-  left: 0;
-  bottom: 0;
-  border-right: 1px solid var(--barBorderColor);
-  box-sizing: border-box;
-  background-color: var(--barBorderColor);
-  overflow-x: hidden;
-}
-
-.search-navigator-side-light {
-  background-color: var(--barBackgroundColor);
-}
-
-.search-navigator-facet-box {
-  background-color: var(--barBackgroundColor);
-  font-size: var(--baseFontSize);
-}
-
-.search-navigator-facet-box.leak-facet-box {
-  background-color: var(--leakColor);
-  border: 1px solid var(--leakBorderColor);
-}
-
-.leak-facet-box:not(.hidden) + .leak-facet-box {
-  border-top: none;
-}
-
-.search-navigator-facet-box-collapsed {
-  background-color: transparent;
-}
-
-.search-navigator-facet-box-collapsed .search-navigator-facet-list,
-.search-navigator-facet-box-collapsed .search-navigator-facet-empty,
-.search-navigator-facet-box-collapsed .search-navigator-facet-container {
-  display: none;
-}
-
-.search-navigator-facet-box-collapsed .search-navigator-facet-header {
-  color: var(--secondFontColor);
-  font-weight: 400;
-}
-
-.search-navigator-facet-box-collapsed .search-navigator-facet-header:hover {
-  color: var(--blue);
-}
-
-.search-navigator-facet-box-forbidden {
-  background-color: transparent;
-  opacity: 0.5;
-}
-
-.search-navigator-facet-box-forbidden .search-navigator-facet-list,
-.search-navigator-facet-box-forbidden .search-navigator-facet-empty,
-.search-navigator-facet-box-forbidden .search-navigator-facet-container {
-  display: none;
-}
-
-.search-navigator-facet-box-forbidden .search-navigator-facet-header {
-  color: var(--secondFontColor);
-}
-
-.search-navigator-facet-box-forbidden .search-navigator-facet-header:hover {
-  color: var(--blue);
-}
-
-.search-navigator-facet-box-forbidden .search-navigator-facet-header {
-  cursor: default;
-}
-
-.search-navigator-facet-box-forbidden .search-navigator-facet-header:hover {
-  color: var(--secondFontColor);
-}
-
-.search-navigator-facet {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  width: 100%;
-  margin: 0 0 1px 0;
-  padding: 4px 6px;
-  border: none;
-  border-radius: 2px;
-  box-sizing: border-box;
-  white-space: normal;
-  overflow: hidden;
-  font-size: 0;
-  opacity: 0.3;
-  cursor: not-allowed;
-  transition: none;
-}
-
-a.search-navigator-facet {
-  opacity: 1;
-  cursor: pointer;
-}
-
-a.search-navigator-facet .facet-name {
-  color: var(--baseFontColor);
-}
-
-a.search-navigator-facet:hover,
-a.search-navigator-facet:focus {
-  border: 1px solid var(--blue);
-  padding: 3px 5px;
-}
-
-a.search-navigator-facet:hover .facet-stat,
-a.search-navigator-facet:focus .facet-stat {
-  top: -1px;
-  right: -1px;
-}
-
-.search-navigator-facet.facet-category {
-  opacity: 1;
-  cursor: default;
-}
-
-.search-navigator-facet.facet-category .facet-name {
-  color: var(--secondFontColor);
-}
-
-.search-navigator-facet .facet-name {
-  line-height: 16px;
-  background-color: var(--barBackgroundColor);
-  color: var(--secondFontColor);
-  font-size: var(--smallFontSize);
-  white-space: nowrap;
-}
-
-.search-navigator-facet .facet-stat {
-  position: absolute;
-  top: 0;
-  right: 0;
-  margin-left: 5px;
-  padding: 5px 5px;
-  background-color: var(--barBackgroundColor);
-  color: var(--secondFontColor);
-  font-size: var(--smallFontSize);
-}
-
-.search-navigator-facet .facet-stat:before {
-  content: ' ';
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: 100%;
-  width: 10px;
-  background-image: linear-gradient(
-    to right,
-    rgba(243, 243, 243, 0),
-    var(--barBackgroundColor) 75%
-  );
-}
-
-.search-navigator-facet .facet-toggle {
-  display: none;
-  float: left;
-  height: 16px;
-  line-height: 16px;
-  margin-top: -1px;
-  padding: 0 5px;
-  border-radius: 2px;
-  font-size: 11px;
-  text-transform: lowercase;
-}
-
-.search-navigator-facet .facet-toggle:hover {
-  color: var(--baseFontColor);
-}
-
-.search-navigator-facet .facet-toggle-active.facet-toggle-green {
-  background-color: var(--green);
-  color: #ffffff;
-}
-
-.search-navigator-facet .facet-toggle-active.facet-toggle-red {
-  background-color: var(--red);
-  color: #ffffff;
-}
-
-.leak-facet-box .search-navigator-facet .facet-name {
-  background-color: var(--leakColor);
-}
-
-.leak-facet-box .search-navigator-facet .facet-stat {
-  background-color: var(--leakColor);
-}
-
-.leak-facet-box .search-navigator-facet .facet-stat:before {
-  background-image: linear-gradient(to right, rgba(251, 243, 213, 0), var(--leakColor) 75%);
-}
-
-.search-navigator-facet.active {
-  border: 1px solid var(--blue);
-  padding: 3px 5px;
-  background-color: var(--lightBlue);
-  text-decoration: none;
-}
-
-.search-navigator-facet.active .facet-name {
-  background-color: var(--lightBlue);
-}
-
-.search-navigator-facet.active .facet-stat {
-  border-color: var(--blue);
-  background-color: var(--lightBlue);
-  top: -1px;
-  right: -1px;
-}
-
-.search-navigator-facet.active .facet-stat:before {
-  background-image: linear-gradient(to right, rgba(202, 227, 242, 0), var(--lightBlue) 75%);
-}
-
-.search-navigator-facet.active .facet-toggle {
-  display: inline;
-}
-
-.search-navigator-facet.compare .facet-toggle {
-  cursor: not-allowed;
-  opacity: 0.5;
-}
-
-.search-navigator-facet.compare .facet-toggle.facet-toggle-green {
-  background-color: var(--green);
-  color: #ffffff;
-}
-
-.search-navigator-facet.compare .facet-toggle.facet-toggle-red {
-  background-color: transparent;
-  color: var(--secondFontColor);
-}
-
-.search-navigator-facet-indent {
-  width: calc(100% - 30px);
-  margin-left: 30px;
-}
-
-.search-navigator-facet-half {
-  width: 45%;
-}
-
-.search-navigator-facet-half:nth-child(odd) {
-  margin-right: 10%;
-}
-
-.search-navigator-facet-highlight-under-container {
-  margin-bottom: 1px;
-}
-
-.search-navigator-facet-highlight-under-container .search-navigator-facet {
-  margin-bottom: 0;
-}
-
-.search-navigator-facet-highlight-under-container .search-navigator-facet:hover,
-.search-navigator-facet-highlight-under-container .search-navigator-facet.active {
-  border-bottom: none;
-  padding-bottom: 4px;
-  border-radius: 2px 2px 0 0;
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet:hover
-  ~ .search-navigator-facet,
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet {
-  padding-left: 5px;
-  padding-right: 5px;
-  border-left: 1px solid var(--blue);
-  border-right: 1px solid var(--blue);
-  border-radius: 0;
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet:hover
-  ~ .search-navigator-facet
-  .facet-stat,
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet
-  .facet-stat {
-  right: -1px;
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet:hover
-  ~ .search-navigator-facet:last-of-type,
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:last-of-type {
-  padding-bottom: 3px;
-  border-bottom: 1px solid var(--blue);
-  border-radius: 0 0 2px 2px;
-}
-
-.search-navigator-facet-highlight-under-container .search-navigator-facet:hover:last-of-type,
-.search-navigator-facet-highlight-under-container .search-navigator-facet.active:last-of-type {
-  padding-bottom: 3px;
-  border-bottom: 1px solid var(--blue);
-  border-radius: 2px;
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet {
-  background-color: var(--lightBlue);
-  text-decoration: none;
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet
-  .facet-name {
-  background-color: var(--lightBlue);
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet
-  .facet-stat {
-  border-color: var(--blue);
-  background-color: var(--lightBlue);
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet
-  .facet-stat:before {
-  background-image: linear-gradient(to right, rgba(202, 227, 242, 0), var(--lightBlue) 75%);
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet
-  .facet-toggle {
-  display: inline;
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover,
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover
-  ~ .search-navigator-facet {
-  background-color: #a1cde8;
-  text-decoration: none;
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover
-  .facet-name,
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover
-  ~ .search-navigator-facet
-  .facet-name {
-  background-color: #a1cde8;
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover
-  .facet-stat,
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover
-  ~ .search-navigator-facet
-  .facet-stat {
-  border-color: var(--blue);
-  background-color: #a1cde8;
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover
-  .facet-stat:before,
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover
-  ~ .search-navigator-facet
-  .facet-stat:before {
-  background-image: linear-gradient(to right, rgba(161, 205, 232, 0), #a1cde8 75%);
-}
-
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover
-  .facet-toggle,
-.search-navigator-facet-highlight-under-container
-  .search-navigator-facet.active
-  ~ .search-navigator-facet:hover
-  ~ .search-navigator-facet
-  .facet-toggle {
-  display: inline;
-}
-
-.search-navigator-facet-header {
-  display: block;
-  flex-shrink: 0;
-  padding: 8px 0;
-  color: var(--baseFontColor);
-  font-weight: 600;
-  overflow: hidden;
-  white-space: nowrap;
-}
-
-.search-navigator-facet-header > a {
-  border-bottom: none;
-  color: var(--baseFontColor);
-}
-
-.search-navigator-facet-header > a:hover {
-  color: var(--blue);
-}
-
-.search-navigator-facet-header > .note {
-  font-weight: 400;
-}
-
-.search-navigator-facet-header-value {
-  display: block;
-  overflow: hidden;
-}
-
-.search-navigator-facet-header-value > .badge {
-  display: block;
-}
-
-.search-navigator-facet-header-button {
-  flex-shrink: 0;
-  margin-left: auto;
-}
-
-.search-navigator-facet-header-wrapper {
-  display: flex;
-  align-items: center;
-}
-
-.search-navigator-facet-list {
-  padding-bottom: var(--gridSize);
-  font-size: 0;
-}
-
-.search-navigator-facet-empty {
-  margin: 0 0 0 0;
-  padding: 0 10px 10px;
-  color: var(--baseFontColor);
-  font-size: var(--smallFontSize);
-  white-space: nowrap;
-}
-
-.search-navigator-facet-footer {
-  display: block;
-  padding-bottom: var(--gridSize);
-  border-bottom: none;
-}
-
-.search-navigator-facet-list-align-right .facet-name {
-  float: right;
-}
-
-.search-navigator-facet-list-align-right .facet-name:before {
-  content: ' ';
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  width: 10px;
-  background-image: linear-gradient(to left, rgba(243, 243, 243, 0), var(--barBackgroundColor) 75%);
-}
-
-.search-navigator-facet-list-align-right .facet-stat:before {
-  display: none;
-}
-
-.search-navigator-facet-list-align-right .facet.active .facet-name:before {
-  background-image: linear-gradient(to left, rgba(202, 227, 242, 0), var(--lightBlue) 75%);
-}
-
-.search-navigator-facet-container {
-  margin-top: 6px;
-  padding: 0 10px 16px;
-}
-
-.search-navigator-facet-container-center {
-  text-align: center;
-}
-
-.search-navigator-facet-query {
-  padding: 7px 0 27px;
-}
-
-.search-navigator-facet-custom-value {
-  padding: 0 0 5px;
-  font-size: var(--baseFontSize);
-}
-
-.search-navigator-facet-input {
-  width: 120px;
-}
-
-.search-navigator-facet-histogram {
-  font-size: 0;
-}
-
-.search-navigator-facet-histogram > li {
-  display: inline-block;
-  vertical-align: bottom;
-  width: 24px;
-  font-size: var(--smallFontSize);
-}
-
-.search-navigator-facet-histogram > li > a {
-  display: block;
-  padding-bottom: 3px;
-  border-bottom: none;
-  transition: none;
-}
-
-.search-navigator-facet-histogram > li > a:hover,
-.search-navigator-facet-histogram > li > a:focus,
-.search-navigator-facet-histogram > li > a:hover .search-navigator-facet-histogram-bar-inner,
-.search-navigator-facet-histogram > li > a:focus .search-navigator-facet-histogram-bar-inner {
-  background-color: var(--barBorderColor);
-}
-
-.search-navigator-facet-histogram > li > a:hover .search-navigator-facet-histogram-bar,
-.search-navigator-facet-histogram > li > a:focus .search-navigator-facet-histogram-bar {
-  background-color: var(--blue);
-}
-
-.search-navigator-facet-histogram-large > li {
-  width: 48px;
-}
-
-.search-navigator-facet-histogram-bar {
-  display: block;
-  height: 60px;
-  background-color: var(--darkBlue);
-}
-
-.search-navigator-facet-histogram-bar-inner {
-  display: block;
-  max-height: 59px;
-  background-color: var(--barBackgroundColor);
-}
-
-.search-navigator-facet-histogram-label {
-  display: block;
-  text-align: center;
-}
-
-.search-navigator-date-facet-selection {
-  position: relative;
-  padding-left: var(--gridSize);
-  font-size: var(--smallFontSize);
-}
-
-.search-navigator-date-facet-selection:before,
-.search-navigator-date-facet-selection:after {
-  display: table;
-  content: '';
-  line-height: 0;
-}
-
-.search-navigator-date-facet-selection:after {
-  clear: both;
-}
-
-.search-navigator-date-facet-selection .date-input-control-input {
-  width: 115px !important;
-}
-
-.search-navigator-date-facet-selection-dropdown-left {
-  float: left;
-  border-bottom: none;
-}
-
-.search-navigator-date-facet-selection-dropdown-right {
-  float: right;
-  border-bottom: none;
-}
-
-.search-navigator-date-facet-selection-input-left {
-  position: absolute;
-  left: 0;
-  width: 100px;
-  visibility: hidden;
-}
-
-.search-navigator-date-facet-selection-input-right {
-  position: absolute;
-  right: 0;
-  width: 100px;
-  visibility: hidden;
-}
-
-.search-navigator-date-facet-selection
-  .date-input-control:not(:nth-of-type(1))
-  .date-input-calendar {
-  left: auto;
-  right: 0;
-}
-
-.search-navigator-filters {
-  position: relative;
-  padding: 5px 10px;
-  background-color: var(--barBackgroundColor);
-}
-
-.search-navigator-filters:before,
-.search-navigator-filters:after {
-  display: table;
-  content: '';
-  line-height: 0;
-}
-
-.search-navigator-filters:after {
-  clear: both;
-}
-
-.search-navigator-filters-selected {
-  margin-bottom: 5px;
-}
-
-.search-navigator-filters-selected .search-navigator-filters-header {
-  float: none;
-}
-
-.search-navigator-filters-selected .search-navigator-filters-actions {
-  float: none;
-  margin-top: 5px;
-}
-
-.search-navigator-filters-list {
-  display: none;
-  position: absolute;
-  z-index: var(--dropdownMenuZIndex);
-  top: 31px;
-  left: 0;
-  right: 10px;
-  margin-bottom: 8px;
-  padding: 5px 10px;
-  border: 1px solid #e8e8e8;
-  box-sizing: border-box;
-  line-height: 1.5;
-  background-color: #ffffff;
-  box-shadow: var(--defaultShadow);
-}
-
-.search-navigator-filters-header {
-  margin-bottom: 12px;
-  padding-bottom: 11px;
-  border-bottom: 1px solid var(--barBorderColor);
-}
-
-.search-navigator-filters-name {
-  vertical-align: top;
-  font-size: var(--bigFontSize);
-}
-
-.search-navigator-filters-description {
-  margin: 4px 0;
-  font-size: var(--smallFontSize);
-  font-style: italic;
-}
-
-.search-navigator-filters-show-list {
-  margin-right: 4px;
-  border-bottom: none;
-  color: var(--baseFontColor);
-}
-
-.search-navigator-filters-actions {
-  float: right;
-}
-
-.search-navigator-filters-manage {
-  display: inline-block;
-  margin-top: 4px;
-  border-bottom: none;
-}
-
-.search-navigator-workspace {
-  padding-left: 300px;
-}
-
-.search-navigator-workspace-header {
-  position: relative;
-  margin-bottom: 10px;
-  padding: 5px 0;
-  line-height: var(--controlHeight);
-  border-bottom: 1px solid var(--barBorderColor);
-  background-color: var(--barBackgroundColor);
-  font-size: var(--smallFontSize);
-}
-
-.search-navigator-header-component {
-  margin-left: 10px;
-  white-space: nowrap;
-}
-
-.search-navigator-header-actions {
-  position: absolute;
-  top: 0;
-  right: 0;
-  padding: 5px 10px;
-  background-color: var(--barBackgroundColor);
-  white-space: nowrap;
-}
-
-.search-navigator-header-actions:before {
-  content: ' ';
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: 100%;
-  width: 10px;
-  background-image: linear-gradient(
-    to right,
-    rgba(243, 243, 243, 0),
-    var(--barBackgroundColor) 75%
-  );
-}
-
-.search-navigator-header-pagination {
-  display: inline-block;
-  vertical-align: top;
-}
-
-.search-navigator-header-buttons {
-  vertical-align: top;
-}
-
-.search-navigator-workspace-list {
-  padding: 0 5px;
-}
-
-.search-navigator-workspace-list .issue {
-  max-width: none;
-}
-
-.search-navigator-workspace-details {
-  display: none;
-  min-height: 100vh;
-  padding: 0 10px;
-}
-
-.search-navigator-workspace-list-more {
-  margin-top: 10px;
-  margin-bottom: 10px;
-  padding: 5px 10px;
-  text-align: center;
-}
-
-.search-navigator-no-results {
-  padding-top: 10%;
-  color: var(--secondFontColor);
-  text-align: center;
-}
-
-.search-navigator-extended-view .search-navigator-workspace-list {
-  display: none;
-}
-
-.search-navigator-extended-view .search-navigator-workspace-details {
-  display: block;
-}
-
-.search-navigator-intro {
-  width: 500px;
-  margin: 0 auto;
-  padding-top: 100px;
-}
diff --git a/server/sonar-web/src/main/js/app/styles/components/side-tabs.css b/server/sonar-web/src/main/js/app/styles/components/side-tabs.css
deleted file mode 100644 (file)
index 5c36733..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-.side-tabs-layout {
-  display: flex;
-  justify-content: space-between;
-  align-items: stretch;
-}
-
-.modal .side-tabs-layout {
-  padding-left: 10px;
-  background-color: var(--barBackgroundColor);
-}
-
-.side-tabs-main {
-  position: relative;
-  z-index: var(--normalZIndex);
-  flex-grow: 1;
-  padding: 15px 20px;
-  border: 1px solid var(--barBorderColor);
-  box-sizing: border-box;
-  background-color: #fff;
-  overflow: auto;
-}
-
-.modal .side-tabs-main {
-  border-top: none;
-  border-bottom: none;
-  border-right: none;
-}
-
-.side-tabs-side {
-  position: relative;
-  z-index: var(--aboveNormalZIndex);
-  width: 160px;
-  flex-shrink: 0;
-  padding: 10px 0;
-  box-sizing: border-box;
-  transform: translateX(1px);
-}
-
-.side-tabs-menu > li {
-  margin-bottom: 4px;
-}
-
-.side-tabs-menu > li > a {
-  display: block;
-  padding: 10px 10px;
-  line-height: 1.5;
-  border-top-left-radius: 3px;
-  border-bottom-left-radius: 3px;
-  border: 1px solid var(--barBorderColor);
-  border-right: none;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  transition: color 0.3s ease, background-color 0.3s ease;
-}
-
-.side-tabs-menu > li > a:hover,
-.side-tabs-menu > li > a:focus,
-.side-tabs-menu > li > a.active {
-  background-color: #fff;
-}
-
-.side-tabs-menu > li > a.active {
-  color: var(--baseFontColor);
-  cursor: default;
-}
index 537ffc19b728471d7dcca1c2c5c99b1b2a412273..00752456ad30b4531e9391f2a1ff5b70e7d6e89e 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-.processes-container {
-  position: fixed;
-  z-index: var(--processContainerZIndex);
-  top: 0;
-  left: 50%;
-  width: 350px;
-  margin-left: -175px;
-  word-break: break-all;
-}
-
-.process-spinner {
-  position: relative;
-  padding: 0 10px;
-  line-height: var(--controlHeight);
-  border-radius: 0 0 3px 3px;
-  box-sizing: border-box;
-  background-color: #f0e8ac;
-  text-align: center;
-  opacity: 0;
-  transition: all 0.2s ease;
-}
-
-.process-spinner.shown {
-  opacity: 1;
-}
-
-.process-spinner + .process-spinner {
-  margin-top: 5px;
-  border-radius: 3px;
-}
-
-.process-spinner-failed {
-  padding-right: 30px;
-  background-color: var(--red);
-  color: #ffffff;
-}
-
-.process-spinner-success {
-  padding-right: 30px;
-  background-color: var(--green);
-  color: #ffffff;
-}
-
-.process-spinner-close {
-  position: absolute;
-  top: 2px;
-  right: 2px;
-}
-
-.process-spinner-close:hover path,
-.process-spinner-close:focus path {
-  fill: var(--red) !important;
-}
-
-.shortcuts-section + .shortcuts-section {
-  margin-top: 20px;
-}
-
-.shortcuts-section-title {
-  margin-bottom: 5px;
-}
-
-.shortcuts-list > li + li {
-  margin-top: 5px;
-}
-
 .shortcut-button {
   display: inline-block;
   min-width: 24px;
index eaef6aa0909ff035b57a2e311e0861c976d3a797..c36014e07fbc50beb8278bd2364d9611a39bdc29 100644 (file)
@@ -32,7 +32,6 @@
 @import './components/modals.css';
 @import './components/alerts.css';
 @import './components/issues.css';
-@import './components/search-navigator.css';
 @import './components/dropdowns.css';
 @import './components/menu.css';
 @import './components/page.css';
@@ -42,7 +41,6 @@
 @import './components/panels.css';
 @import './components/badges.css';
 @import './components/columns.css';
-@import './components/side-tabs.css';
 @import './components/boxed-group.css';
 
 @import './style.css';
index 602bf2b85833b92d545841d644a14373ca719761..995a9b15aa780c797a0d759f228ba925290cde92 100644 (file)
@@ -52,6 +52,7 @@ import DropdownIcon from '../../components/icons-components/DropdownIcon';
 import HelpIcon from '../../components/icons-components/HelpIcon';
 import LockIcon from '../../components/icons-components/LockIcon';
 import QualifierIcon from '../../components/icons-components/QualifierIcon';
+import Rating from '../../components/ui/Rating';
 
 const exposeLibraries = () => {
   const global = window as any;
@@ -86,6 +87,7 @@ const exposeLibraries = () => {
     LockIcon,
     Modal,
     QualifierIcon,
+    Rating,
     ReloadButton,
     ResetButtonLink,
     SearchBox,
index bc735c47b1f8f9ca22180c15aed855339b293048..245f03c8d50b66bba2d7e7ea1f9cf2a0d999f956 100644 (file)
   border-top: 1px solid var(--barBorderColor);
 }
 
-.account-bar-chart .bar-chart-bar {
-  fill: var(--blue);
-}
-
-.account-bar-chart .bar-chart-tick {
-  fill: var(--secondFontColor);
-  font-size: var(--smallFontSize);
-  text-anchor: middle;
-}
-
-.account-bar-chart .histogram-tick {
-  text-anchor: end;
-}
-
-.account-bar-chart .histogram-value {
-  text-anchor: start;
-}
-
 .account-projects-list {
   margin-left: -20px;
   margin-right: -20px;
index f9ad0c2eafdac2245c57898787e565d8a481d1d1..8a4bba330b8a64d74ea7c4c10d67635fe3d099c8 100644 (file)
@@ -53,8 +53,8 @@ import FiltersHeader from '../../../components/common/FiltersHeader';
 import SearchBox from '../../../components/controls/SearchBox';
 import { searchQualityProfiles, Profile } from '../../../api/quality-profiles';
 import { scrollToElement } from '../../../helpers/scrolling';
-
 import '../styles.css';
+import '../../../components/search-navigator.css';
 
 const PAGE_SIZE = 100;
 const LIMIT_BEFORE_LOAD_MORE = 5;
index 03e0dd641ec1dcd5fa037ff0be0da8994ad6d509..e08fcd60aed804faf8146f22d2d68a756f48a46d 100644 (file)
@@ -39,6 +39,7 @@ import { getDisplayMetrics } from '../../../helpers/measures';
 /*:: import type { Metric } from '../../../store/metrics/actions'; */
 /*:: import type { MeasureEnhanced } from '../../../components/measure/types'; */
 import '../style.css';
+import '../../../components/search-navigator.css';
 
 /*:: type Props = {|
   branchLike?: { id?: string; name: string },
index 1fdf6a39c5631b62e808c5f726e5a3cc565bc422..ec8f1ccd38ace9c2185c514ce99fd96773db54d6 100644 (file)
@@ -71,6 +71,7 @@ import EmptySearch from '../../../components/common/EmptySearch';
 import Checkbox from '../../../components/controls/Checkbox';
 import DropdownIcon from '../../../components/icons-components/DropdownIcon';
 import '../styles.css';
+import '../../../components/search-navigator.css';
 
 interface FetchIssuesPromise {
   components: ReferencedComponent[];
index 3dd30c8354176e2548efefabe2dcbb6764cc6880..dc805cf0433ceb20f2ba7478ab19e26f69e2926d 100644 (file)
@@ -22,6 +22,7 @@ import { Link } from 'react-router';
 import RatingFreshness from './RatingFreshness';
 import Rating from '../../../components/ui/Rating';
 import Measure from '../../../components/measure/Measure';
+import Level from '../../../components/ui/Level';
 import { translate } from '../../../helpers/l10n';
 import { getComponentDrilldownUrl } from '../../../helpers/urls';
 
@@ -64,7 +65,7 @@ export default function ReleasabilityBox({ component, measures }: Props) {
                 {Number(effort) === 1 ? 'project' : 'projects'}
               </span>
             </Link>{' '}
-            <span className="level level-ERROR level-small">{translate('metric.level.ERROR')}</span>
+            <Level level="ERROR" small={true} />
           </div>
         )}
     </div>
index 9374965500cbbe516006ba582dd0030e78a3449e..4ab3d79f9089b63c20bd7ae216d7ed617b93bf89 100644 (file)
@@ -58,11 +58,10 @@ exports[`renders 1`] = `
       </span>
     </Link>
      
-    <span
-      className="level level-ERROR level-small"
-    >
-      metric.level.ERROR
-    </span>
+    <Level
+      level="ERROR"
+      small={true}
+    />
   </div>
 </div>
 `;
index 2f164bcc17094b1fe88709f2ff0fc573fa8b3743..af1e89e5ed568d78b4f6af20b41ffdc0d69b92c6 100644 (file)
@@ -33,10 +33,11 @@ import ListFooter from '../../../components/controls/ListFooter';
 import { translate } from '../../../helpers/l10n';
 import { get, save } from '../../../helpers/storage';
 import { RawQuery } from '../../../helpers/query';
-import '../styles.css';
 import { Project, Facets } from '../types';
 import { fetchProjects, parseSorting, SORTING_SWITCH } from '../utils';
 import { parseUrlQuery, Query } from '../query';
+import '../styles.css';
+import '../../../components/search-navigator.css';
 
 export interface Props {
   currentUser: CurrentUser;
index 70d7b20703202341a25013c332e127a32e686e2d..d70310416085a32f0ed895f5be171ee1f2f492e8 100644 (file)
@@ -29,6 +29,7 @@ import { translate } from '../../../helpers/l10n';
 import { getQualityGateUrl } from '../../../helpers/urls';
 import { Organization, QualityGate } from '../../../app/types';
 import '../styles.css';
+import '../../../components/search-navigator.css';
 
 interface Props {
   children: React.ReactElement<{
index ad96321df754af37ca17dfea1dccb64dd9641931..21f8d383e5d91335d1562e08049576fd0a6fdc1b 100644 (file)
@@ -27,6 +27,7 @@ import WildcardsHelp from './WildcardsHelp';
 import Suggestions from '../../../app/components/embed-docs-modal/Suggestions';
 import { translate } from '../../../helpers/l10n';
 import '../styles.css';
+import '../side-tabs.css';
 
 /*::
 type Props = {
diff --git a/server/sonar-web/src/main/js/apps/settings/side-tabs.css b/server/sonar-web/src/main/js/apps/settings/side-tabs.css
new file mode 100644 (file)
index 0000000..5c36733
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.side-tabs-layout {
+  display: flex;
+  justify-content: space-between;
+  align-items: stretch;
+}
+
+.modal .side-tabs-layout {
+  padding-left: 10px;
+  background-color: var(--barBackgroundColor);
+}
+
+.side-tabs-main {
+  position: relative;
+  z-index: var(--normalZIndex);
+  flex-grow: 1;
+  padding: 15px 20px;
+  border: 1px solid var(--barBorderColor);
+  box-sizing: border-box;
+  background-color: #fff;
+  overflow: auto;
+}
+
+.modal .side-tabs-main {
+  border-top: none;
+  border-bottom: none;
+  border-right: none;
+}
+
+.side-tabs-side {
+  position: relative;
+  z-index: var(--aboveNormalZIndex);
+  width: 160px;
+  flex-shrink: 0;
+  padding: 10px 0;
+  box-sizing: border-box;
+  transform: translateX(1px);
+}
+
+.side-tabs-menu > li {
+  margin-bottom: 4px;
+}
+
+.side-tabs-menu > li > a {
+  display: block;
+  padding: 10px 10px;
+  line-height: 1.5;
+  border-top-left-radius: 3px;
+  border-bottom-left-radius: 3px;
+  border: 1px solid var(--barBorderColor);
+  border-right: none;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  transition: color 0.3s ease, background-color 0.3s ease;
+}
+
+.side-tabs-menu > li > a:hover,
+.side-tabs-menu > li > a:focus,
+.side-tabs-menu > li > a.active {
+  background-color: #fff;
+}
+
+.side-tabs-menu > li > a.active {
+  color: var(--baseFontColor);
+  cursor: default;
+}
diff --git a/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.css b/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.css
new file mode 100644 (file)
index 0000000..9976420
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.line-tooltip {
+  fill: none;
+  stroke: var(--secondFontColor);
+  stroke-width: 1px;
+  shape-rendering: crispEdges;
+}
+
+.chart-mouse-events-overlay {
+  fill: none;
+  stroke: none;
+  pointer-events: all;
+}
+
+.chart-zoomed .line-chart-area {
+  clip-path: url(#chart-clip);
+}
+
+.chart-zoomed .line-chart-path {
+  clip-path: url(#chart-clip);
+}
+
+.chart-zoomed .leak-chart-rect {
+  clip-path: url(#chart-clip);
+}
+
+.line-chart-dot {
+  fill: var(--blue);
+}
+
+.line-chart-dot.line-chart-dot-1 {
+  fill: var(--darkBlue);
+}
+
+.line-chart-dot.line-chart-dot-2 {
+  fill: #24c6e0;
+}
+
+.line-chart-event {
+  fill: #fff;
+  stroke: var(--blue);
+  stroke-width: 2px;
+}
+
+.line-chart-event.VERSION {
+  stroke: var(--blue);
+}
+
+.line-chart-event.QUALITY_GATE {
+  stroke: var(--green);
+}
+
+.line-chart-event.QUALITY_PROFILE {
+  stroke: var(--orange);
+}
+
+.line-chart-event.OTHER {
+  stroke: var(--purple);
+}
index f4d54a0aa5fc6872e1ced79bab4f6a419f217655..f09633d575af3f030d98096ca0c0034f46ea1bcd 100644 (file)
@@ -25,6 +25,8 @@ import { bisector, extent, max } from 'd3-array';
 import { scaleLinear, scalePoint, scaleTime } from 'd3-scale';
 import { line as d3Line, area, curveBasis } from 'd3-shape';
 import * as theme from '../../app/theme';
+import './LineChart.css';
+import './AdvancedTimeline.css';
 
 /*::
 type Event = { className?: string, name: string, date: Date };
diff --git a/server/sonar-web/src/main/js/components/charts/BarChart.css b/server/sonar-web/src/main/js/components/charts/BarChart.css
new file mode 100644 (file)
index 0000000..04542d7
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.bar-chart-bar {
+  fill: var(--blue);
+}
+
+.bar-chart-tick {
+  fill: var(--secondFontColor);
+  font-size: var(--smallFontSize);
+  text-anchor: middle;
+}
diff --git a/server/sonar-web/src/main/js/components/charts/BubbleChart.css b/server/sonar-web/src/main/js/components/charts/BubbleChart.css
new file mode 100644 (file)
index 0000000..9bcecc4
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.bubble-chart.is-moving {
+  cursor: move;
+}
+
+.bubble-chart text {
+  user-select: none;
+}
+
+.bubble-chart-bubble {
+  fill: var(--blue);
+  fill-opacity: 0.2;
+  stroke: var(--blue);
+  cursor: pointer;
+  transition: fill-opacity 0.2s ease;
+}
+
+.bubble-chart-bubble:hover {
+  fill-opacity: 0.8;
+}
+
+.bubble-chart-grid {
+  shape-rendering: crispedges;
+  stroke: #eee;
+}
+
+.bubble-chart-tick {
+  fill: var(--secondFontColor);
+  font-size: var(--smallFontSize);
+  text-anchor: middle;
+}
+
+.bubble-chart-tick-y {
+  text-anchor: end;
+}
+
+.bubble-chart-zoom {
+  position: absolute;
+  right: 20px;
+  top: 20px;
+  z-index: var(--aboveNormalZIndex);
+}
index d280be689228e3f5ade9d568ecdc58d22a83f040..ec134895fd3a449504080b2f1debe71aaa268c49 100644 (file)
@@ -26,6 +26,7 @@ import { scaleLinear, ScaleLinear } from 'd3-scale';
 import { sortBy, uniq } from 'lodash';
 import Tooltip from '../controls/Tooltip';
 import { translate } from '../../helpers/l10n';
+import './BubbleChart.css';
 
 const TICKS_COUNT = 5;
 
diff --git a/server/sonar-web/src/main/js/components/charts/ColorBoxLegend.css b/server/sonar-web/src/main/js/components/charts/ColorBoxLegend.css
new file mode 100644 (file)
index 0000000..61e3071
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.color-box-legend {
+  display: flex;
+  justify-content: center;
+}
+
+.color-box-legend > *:not(:first-child) {
+  margin-left: 24px;
+}
+
+.color-box-legend .color-box-legend-rect {
+  display: inline-block;
+  margin-top: 1px;
+  margin-right: 4px;
+  border: 1px solid;
+}
+
+.color-box-legend .color-box-legend-rect-inner {
+  display: block;
+  width: 8px;
+  height: 8px;
+  opacity: 0.2;
+}
+
+.color-box-legend.color-box-full .color-box-legend-rect-inner {
+  opacity: 1;
+}
index cf2a140d2a24a64b7fd809f51c28159b6fe76a49..5edfc0f5253418cb8d4c4d45f81a477198ef444c 100644 (file)
@@ -21,6 +21,7 @@ import * as React from 'react';
 import * as classNames from 'classnames';
 import { ScaleLinear, ScaleOrdinal } from 'd3-scale';
 import { formatMeasure } from '../../helpers/measures';
+import './ColorBoxLegend.css';
 
 interface Props {
   className?: string;
diff --git a/server/sonar-web/src/main/js/components/charts/ColorGradientLegend.css b/server/sonar-web/src/main/js/components/charts/ColorGradientLegend.css
new file mode 100644 (file)
index 0000000..3c9d07e
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.gradient-legend-text,
+.gradient-legend-na {
+  text-anchor: middle;
+  fill: var(--secondFontColor);
+  font-size: 10px;
+}
+
+.gradient-legend-text:first-of-type {
+  text-anchor: start;
+}
+
+.gradient-legend-text:last-of-type {
+  text-anchor: end;
+}
index 5ea00b6be59c5f78ec4d3914e4b18593b56a45c6..ae2eb08bc301b9dba8dfc97f9fde3c37a3121679 100644 (file)
@@ -19,6 +19,7 @@
  */
 import * as React from 'react';
 import { ScaleLinear, ScaleOrdinal } from 'd3-scale';
+import './ColorGradientLegend.css';
 
 interface Props {
   className?: string;
index 80e44f7c11e5ce23e6876732141ea4d3a0a46e5d..cc7eb695b2566495e800cea1c104e3a31baad335 100644 (file)
@@ -21,6 +21,7 @@ import * as React from 'react';
 import * as classNames from 'classnames';
 import { formatMeasure } from '../../helpers/measures';
 import { RATING_COLORS } from '../../helpers/constants';
+import './ColorBoxLegend.css';
 
 interface Props {
   className?: string;
diff --git a/server/sonar-web/src/main/js/components/charts/Histogram.css b/server/sonar-web/src/main/js/components/charts/Histogram.css
new file mode 100644 (file)
index 0000000..2757758
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.histogram-tick {
+  text-anchor: end;
+}
+
+.histogram-tick-start {
+  text-anchor: start;
+}
+
+.histogram-value {
+  text-anchor: start;
+}
index 3695459f1583fbfbc87a00ba0e72b1fc51d4aa26..8c5728bb43caac2a11fbdc97d0b854651aae9e22 100644 (file)
@@ -21,6 +21,8 @@ import * as React from 'react';
 import { max } from 'd3-array';
 import { scaleLinear, scaleBand, ScaleLinear, ScaleBand } from 'd3-scale';
 import Tooltip from '../controls/Tooltip';
+import './BarChart.css';
+import './Histogram.css';
 
 interface Props {
   alignTicks?: boolean;
diff --git a/server/sonar-web/src/main/js/components/charts/LineChart.css b/server/sonar-web/src/main/js/components/charts/LineChart.css
new file mode 100644 (file)
index 0000000..76fb038
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.line-chart-path {
+  fill: none;
+  stroke: var(--blue);
+  stroke-width: 2px;
+}
+
+.line-chart-path.line-chart-path-1 {
+  stroke: var(--darkBlue);
+}
+
+.line-chart-path.line-chart-path-2 {
+  stroke: #24c6e0;
+}
+
+.line-chart-area {
+  fill: rgba(75, 159, 213, 0.3);
+  stroke-width: 0;
+}
+
+.line-chart-area.line-chart-area-1 {
+  fill: rgba(35, 106, 151, 0.3);
+}
+
+.line-chart-area.line-chart-area-2 {
+  fill: rgba(36, 198, 224, 0.3);
+}
+
+.line-chart-point {
+  fill: #fff;
+  stroke: var(--blue);
+  stroke-width: 2px;
+}
+
+.line-chart-tick {
+  fill: var(--secondFontColor);
+  font-size: var(--smallFontSize);
+  text-anchor: middle;
+}
+
+.line-chart-tick-x {
+  text-anchor: end;
+}
+
+.line-chart-tick-x-right {
+  text-anchor: start;
+}
+
+.line-chart-grid {
+  shape-rendering: crispedges;
+  stroke: #eee;
+}
index 2d8d5f180583f95f585fc6fb509cc268ccbff982..862a3da8c1d58eeb7f779cff93666bf365c44d0e 100644 (file)
@@ -22,6 +22,7 @@ import { extent, max } from 'd3-array';
 import { scaleLinear, ScaleLinear } from 'd3-scale';
 import { area as d3Area, line as d3Line, curveBasis } from 'd3-shape';
 import { AutoSizer } from 'react-virtualized/dist/commonjs/AutoSizer';
+import './LineChart.css';
 
 interface DataPoint {
   x: number;
diff --git a/server/sonar-web/src/main/js/components/charts/TreeMap.css b/server/sonar-web/src/main/js/components/charts/TreeMap.css
new file mode 100644 (file)
index 0000000..0e8aa81
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.sonar-d3 .treemap-container {
+  position: relative;
+}
+
+.sonar-d3 .treemap-cell {
+  position: absolute;
+  border-right: 1px solid #fff;
+  border-bottom: 1px solid #fff;
+  box-sizing: border-box;
+  text-align: center;
+}
+
+.sonar-d3 .treemap-cell:focus {
+  outline: none;
+}
+
+.sonar-d3 .treemap-inner {
+  display: inline-flex;
+  vertical-align: middle;
+  align-items: center;
+  justify-content: center;
+  flex-wrap: wrap;
+  padding: 0 4px;
+  box-sizing: border-box;
+  line-height: 1.2;
+}
+
+.sonar-d3 .treemap-inner .treemap-icon {
+  flex-shrink: 0;
+}
+
+.sonar-d3 .treemap-inner .treemap-icon svg {
+  margin-top: 2px;
+}
+
+.sonar-d3 .treemap-inner .treemap-text {
+  flex-shrink: 1;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  text-align: left;
+}
+
+.sonar-d3 .treemap-link {
+  position: absolute;
+  z-index: var(--normalZIndex);
+  top: 5px;
+  right: 5px;
+  line-height: 14px;
+  font-size: var(--smallFontSize);
+  border-bottom: none;
+}
+
+.sonar-d3 .treemap-link:hover {
+  color: #d1eafb;
+}
+
+.sonar-d3 .treemap-link i,
+.sonar-d3 .treemap-link i:before {
+  vertical-align: top;
+  font-size: inherit;
+  line-height: inherit;
+}
index 9ee5d2320f789fed17066a8202cd37d53eb949e0..489617142f340bbf33aa13c577f7e03ffc71a763 100644 (file)
@@ -21,6 +21,7 @@ import * as React from 'react';
 import { treemap as d3Treemap, hierarchy as d3Hierarchy } from 'd3-hierarchy';
 import TreeMapRect from './TreeMapRect';
 import { translate } from '../../helpers/l10n';
+import './TreeMap.css';
 
 interface TreeMapItem {
   color: string;
diff --git a/server/sonar-web/src/main/js/components/charts/ZoomTimeLine.css b/server/sonar-web/src/main/js/components/charts/ZoomTimeLine.css
new file mode 100644 (file)
index 0000000..d317f40
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.chart-zoom-tick {
+  fill: var(--secondFontColor);
+  font-size: 10px;
+  text-anchor: middle;
+  user-select: none;
+}
+
+.chart-zoom .zoom-overlay {
+  fill: none;
+  stroke: none;
+  cursor: crosshair;
+  pointer-events: all;
+}
+
+.chart-zoom .zoom-selection {
+  fill: var(--secondFontColor);
+  fill-opacity: 0.2;
+  stroke: var(--secondFontColor);
+  shape-rendering: crispEdges;
+  cursor: move;
+}
+
+.chart-zoom .zoom-selection-handle {
+  cursor: ew-resize;
+  fill-opacity: 0;
+  stroke: none;
+}
index 704c152d576071261ddd595b4f21675818dd623d..e2cee003b15a687336f30b053383a62d6b8d6f7b 100644 (file)
@@ -28,6 +28,8 @@ import Draggable, { DraggableCore } from 'react-draggable';
 /*:: import type { DraggableData } from 'react-draggable'; */
 /*:: import type { Point, Serie } from './AdvancedTimeline'; */
 import * as theme from '../../app/theme';
+import './LineChart.css';
+import './ZoomTimeLine.css';
 
 /*::
 type Scale = Function;
diff --git a/server/sonar-web/src/main/js/components/controls/GlobalMessages.css b/server/sonar-web/src/main/js/components/controls/GlobalMessages.css
new file mode 100644 (file)
index 0000000..6d0f505
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.processes-container {
+  position: fixed;
+  z-index: var(--processContainerZIndex);
+  top: 0;
+  left: 50%;
+  width: 350px;
+  margin-left: -175px;
+  word-break: break-all;
+}
+
+.process-spinner {
+  position: relative;
+  padding: 0 10px;
+  line-height: var(--controlHeight);
+  border-radius: 0 0 3px 3px;
+  box-sizing: border-box;
+  background-color: #f0e8ac;
+  text-align: center;
+  opacity: 0;
+  transition: all 0.2s ease;
+}
+
+.process-spinner.shown {
+  opacity: 1;
+}
+
+.process-spinner + .process-spinner {
+  margin-top: 5px;
+  border-radius: 3px;
+}
+
+.process-spinner-failed {
+  padding-right: 30px;
+  background-color: var(--red);
+  color: #ffffff;
+}
+
+.process-spinner-success {
+  padding-right: 30px;
+  background-color: var(--green);
+  color: #ffffff;
+}
+
+.process-spinner-close {
+  position: absolute;
+  top: 2px;
+  right: 2px;
+}
+
+.process-spinner-close:hover path,
+.process-spinner-close:focus path {
+  fill: var(--red) !important;
+}
index e69702cf848781391ba43394b50b65cce6881f16..24edc1ac4e41de5ea4644007f9464162b0bfd988 100644 (file)
@@ -21,6 +21,7 @@ import * as React from 'react';
 import * as classNames from 'classnames';
 import ClearIcon from '../icons-components/ClearIcon';
 import { ButtonIcon } from '../ui/buttons';
+import './GlobalMessages.css';
 
 interface Message {
   id: string;
diff --git a/server/sonar-web/src/main/js/components/issue/Issue.css b/server/sonar-web/src/main/js/components/issue/Issue.css
new file mode 100644 (file)
index 0000000..2272413
--- /dev/null
@@ -0,0 +1,254 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+.issue {
+  position: relative;
+  padding-top: 8px;
+  padding-bottom: 8px;
+  background-color: #ffeaea;
+  box-shadow: inset 0px 0px 0px 1px #ffeaea;
+  transition: all 0.3s ease, border 0 ease;
+}
+
+.issue.selected {
+  box-shadow: none;
+  border: 1px solid #dd4040 !important;
+}
+
+.issue + .issue,
+.issue-container + .issue-container {
+  margin-top: 5px;
+}
+
+.issue.selected + .issue {
+  border-top-color: transparent;
+}
+
+.issue-table {
+  width: 100%;
+}
+
+.issue-table td {
+  vertical-align: top;
+}
+
+.issue-row {
+  display: flex;
+  margin-bottom: 5px;
+}
+
+.issue-row-meta {
+  flex-grow: 0;
+  padding-right: 5px;
+  white-space: nowrap;
+}
+
+.issue-table-meta-cell {
+  width: 1px;
+  padding-right: 5px;
+  white-space: nowrap;
+}
+
+.issue-message {
+  flex-grow: 1;
+  padding-left: 10px;
+  padding-right: 10px;
+  line-height: 1.5;
+  font-size: var(--baseFontSize);
+  font-weight: 600;
+  text-overflow: ellipsis;
+  overflow: hidden;
+}
+
+.issue-message .button-link {
+  height: 16px;
+}
+
+.issue-rule {
+  vertical-align: top;
+  margin-top: 2px;
+  padding: 0 3px;
+  background: rgba(75, 159, 213, 0.3);
+  opacity: 0.5;
+}
+
+.issue-rule:hover {
+  background: rgba(75, 159, 213, 0.3);
+}
+
+.issue-meta-list {
+  display: flex;
+  align-items: center;
+  padding-left: 10px;
+}
+
+.issue-meta {
+  line-height: 16px;
+  font-size: var(--smallFontSize);
+}
+
+.issue-meta + .issue-meta {
+  margin-left: var(--gridSize);
+}
+
+.issue-meta-label {
+  display: inline-block;
+  vertical-align: top;
+  max-width: 180px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.issue-changelog {
+  width: 450px;
+  max-height: 320px;
+  overflow: auto;
+  white-space: normal;
+}
+
+.issue-comments {
+  margin-top: 5px;
+  padding-left: 10px;
+  padding-right: 10px;
+  font-size: var(--smallFontSize);
+}
+
+.issue-comment {
+  display: table;
+  width: 100%;
+}
+
+.issue-comment + .issue-comment {
+  margin-top: 4px;
+}
+
+.issue-comment-author {
+  display: table-cell;
+  vertical-align: top;
+  max-width: 130px;
+  width: 1px;
+  line-height: 18px;
+  color: var(--secondFontColor);
+  font-weight: 600;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.issue-comment-age {
+  display: table-cell;
+  vertical-align: top;
+  width: 1px;
+  line-height: 18px;
+  white-space: nowrap;
+  color: var(--secondFontColor);
+}
+
+.issue-comment-text {
+  display: table-cell;
+  vertical-align: top;
+  padding-left: 5px;
+  padding-right: 5px;
+  line-height: 18px;
+  line-height: 1.5;
+  outline: none;
+  word-break: break-all;
+}
+
+.issue-comment-actions {
+  display: table-cell;
+  vertical-align: top;
+  width: 1px;
+  padding-left: 5px;
+  line-height: 18px;
+  white-space: nowrap;
+}
+
+.issue-comment-bubble-popup {
+  width: 440px;
+  font-size: var(--smallFontSize);
+}
+
+.issue-comment-form-text textarea {
+  width: 100%;
+  max-width: 100%;
+}
+
+.issue-comment-form-footer {
+  margin-top: 5px;
+  line-height: 22px;
+}
+
+.issue-comment-form-footer:before,
+.issue-comment-form-footer:after {
+  display: table;
+  content: '';
+  line-height: 0;
+}
+
+.issue-comment-form-footer:after {
+  clear: both;
+}
+
+.issue-comment-form-actions {
+  float: right;
+}
+
+.issue-comment-form-tips {
+  float: left;
+}
+
+.issue-with-checkbox {
+  padding-left: 24px;
+}
+
+.issue-with-checkbox .issue-checkbox-container {
+  display: block;
+}
+
+.issue-checkbox-container {
+  display: none;
+  position: absolute;
+  width: 29px;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  border: none;
+}
+
+.issue-checkbox-container:hover {
+  background-color: rgba(0, 0, 0, 0.05);
+}
+
+.issue-checkbox {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  margin: -8px 0 0 -8px;
+}
+
+.issue:not(.selected) .location-index {
+  background-color: #ccc;
+}
+
+.issue .menu:not(.issues-similar-issues-menu):not(.issue-changelog) {
+  max-height: 120px;
+  overflow: auto;
+}
index 715d4a2d725ff1d8e52400ed764ddbd4d4f56a48..334cbee2ba4b021c63bfe2afd7c8c2df88639b5d 100644 (file)
@@ -26,6 +26,7 @@ import { updateIssue } from './actions';
 import { onFail } from '../../store/rootActions';
 import { setIssueAssignee } from '../../api/issues';
 /*:: import type { Issue as IssueType } from './types'; */
+import './Issue.css';
 
 /*::
 type Props = {|
diff --git a/server/sonar-web/src/main/js/components/search-navigator.css b/server/sonar-web/src/main/js/components/search-navigator.css
new file mode 100644 (file)
index 0000000..f468de3
--- /dev/null
@@ -0,0 +1,542 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+/* TODO this file is HUGE and should be cut into smaller components */
+
+.search-navigator.sticky .search-navigator-workspace-header {
+  position: fixed;
+  z-index: 50;
+  top: 0;
+  left: 300px;
+  right: 0;
+}
+
+.search-navigator.sticky .search-navigator-workspace-list,
+.search-navigator.sticky .search-navigator-workspace-details {
+  padding-top: 43px;
+}
+
+.search-navigator-facet-box {
+  background-color: var(--barBackgroundColor);
+  font-size: var(--baseFontSize);
+}
+
+.search-navigator-facet-box.leak-facet-box {
+  background-color: var(--leakColor);
+  border: 1px solid var(--leakBorderColor);
+}
+
+.leak-facet-box:not(.hidden) + .leak-facet-box {
+  border-top: none;
+}
+
+.search-navigator-facet-box-forbidden {
+  background-color: transparent;
+  opacity: 0.5;
+}
+
+.search-navigator-facet-box-forbidden .search-navigator-facet-list,
+.search-navigator-facet-box-forbidden .search-navigator-facet-empty,
+.search-navigator-facet-box-forbidden .search-navigator-facet-container {
+  display: none;
+}
+
+.search-navigator-facet-box-forbidden .search-navigator-facet-header {
+  color: var(--secondFontColor);
+}
+
+.search-navigator-facet-box-forbidden .search-navigator-facet-header:hover {
+  color: var(--blue);
+}
+
+.search-navigator-facet-box-forbidden .search-navigator-facet-header {
+  cursor: default;
+}
+
+.search-navigator-facet-box-forbidden .search-navigator-facet-header:hover {
+  color: var(--secondFontColor);
+}
+
+.search-navigator-facet {
+  position: relative;
+  display: inline-block;
+  vertical-align: middle;
+  width: 100%;
+  margin: 0 0 1px 0;
+  padding: 4px 6px;
+  border: none;
+  border-radius: 2px;
+  box-sizing: border-box;
+  white-space: normal;
+  overflow: hidden;
+  font-size: 0;
+  opacity: 0.3;
+  cursor: not-allowed;
+  transition: none;
+}
+
+a.search-navigator-facet {
+  opacity: 1;
+  cursor: pointer;
+}
+
+a.search-navigator-facet .facet-name {
+  color: var(--baseFontColor);
+}
+
+a.search-navigator-facet:hover,
+a.search-navigator-facet:focus {
+  border: 1px solid var(--blue);
+  padding: 3px 5px;
+}
+
+a.search-navigator-facet:hover .facet-stat,
+a.search-navigator-facet:focus .facet-stat {
+  top: -1px;
+  right: -1px;
+}
+
+.search-navigator-facet.facet-category {
+  opacity: 1;
+  cursor: default;
+}
+
+.search-navigator-facet.facet-category .facet-name {
+  color: var(--secondFontColor);
+}
+
+.search-navigator-facet .facet-name {
+  line-height: 16px;
+  background-color: var(--barBackgroundColor);
+  color: var(--secondFontColor);
+  font-size: var(--smallFontSize);
+  white-space: nowrap;
+}
+
+.search-navigator-facet .facet-stat {
+  position: absolute;
+  top: 0;
+  right: 0;
+  margin-left: 5px;
+  padding: 5px 5px;
+  background-color: var(--barBackgroundColor);
+  color: var(--secondFontColor);
+  font-size: var(--smallFontSize);
+}
+
+.search-navigator-facet .facet-stat:before {
+  content: ' ';
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  right: 100%;
+  width: 10px;
+  background-image: linear-gradient(
+    to right,
+    rgba(243, 243, 243, 0),
+    var(--barBackgroundColor) 75%
+  );
+}
+
+.search-navigator-facet .facet-toggle {
+  display: none;
+  float: left;
+  height: 16px;
+  line-height: 16px;
+  margin-top: -1px;
+  padding: 0 5px;
+  border-radius: 2px;
+  font-size: 11px;
+  text-transform: lowercase;
+}
+
+.search-navigator-facet .facet-toggle:hover {
+  color: var(--baseFontColor);
+}
+
+.search-navigator-facet .facet-toggle-active.facet-toggle-green {
+  background-color: var(--green);
+  color: #ffffff;
+}
+
+.search-navigator-facet .facet-toggle-active.facet-toggle-red {
+  background-color: var(--red);
+  color: #ffffff;
+}
+
+.leak-facet-box .search-navigator-facet .facet-name {
+  background-color: var(--leakColor);
+}
+
+.leak-facet-box .search-navigator-facet .facet-stat {
+  background-color: var(--leakColor);
+}
+
+.leak-facet-box .search-navigator-facet .facet-stat:before {
+  background-image: linear-gradient(to right, rgba(251, 243, 213, 0), var(--leakColor) 75%);
+}
+
+.search-navigator-facet.active {
+  border: 1px solid var(--blue);
+  padding: 3px 5px;
+  background-color: var(--lightBlue);
+  text-decoration: none;
+}
+
+.search-navigator-facet.active .facet-name {
+  background-color: var(--lightBlue);
+}
+
+.search-navigator-facet.active .facet-stat {
+  border-color: var(--blue);
+  background-color: var(--lightBlue);
+  top: -1px;
+  right: -1px;
+}
+
+.search-navigator-facet.active .facet-stat:before {
+  background-image: linear-gradient(to right, rgba(202, 227, 242, 0), var(--lightBlue) 75%);
+}
+
+.search-navigator-facet.active .facet-toggle {
+  display: inline;
+}
+
+.search-navigator-facet.compare .facet-toggle {
+  cursor: not-allowed;
+  opacity: 0.5;
+}
+
+.search-navigator-facet.compare .facet-toggle.facet-toggle-green {
+  background-color: var(--green);
+  color: #ffffff;
+}
+
+.search-navigator-facet.compare .facet-toggle.facet-toggle-red {
+  background-color: transparent;
+  color: var(--secondFontColor);
+}
+
+.search-navigator-facet-half {
+  width: 45%;
+}
+
+.search-navigator-facet-half:nth-child(odd) {
+  margin-right: 10%;
+}
+
+.search-navigator-facet-highlight-under-container {
+  margin-bottom: 1px;
+}
+
+.search-navigator-facet-highlight-under-container .search-navigator-facet {
+  margin-bottom: 0;
+}
+
+.search-navigator-facet-highlight-under-container .search-navigator-facet:hover,
+.search-navigator-facet-highlight-under-container .search-navigator-facet.active {
+  border-bottom: none;
+  padding-bottom: 4px;
+  border-radius: 2px 2px 0 0;
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet:hover
+  ~ .search-navigator-facet,
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet {
+  padding-left: 5px;
+  padding-right: 5px;
+  border-left: 1px solid var(--blue);
+  border-right: 1px solid var(--blue);
+  border-radius: 0;
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet:hover
+  ~ .search-navigator-facet
+  .facet-stat,
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet
+  .facet-stat {
+  right: -1px;
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet:hover
+  ~ .search-navigator-facet:last-of-type,
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:last-of-type {
+  padding-bottom: 3px;
+  border-bottom: 1px solid var(--blue);
+  border-radius: 0 0 2px 2px;
+}
+
+.search-navigator-facet-highlight-under-container .search-navigator-facet:hover:last-of-type,
+.search-navigator-facet-highlight-under-container .search-navigator-facet.active:last-of-type {
+  padding-bottom: 3px;
+  border-bottom: 1px solid var(--blue);
+  border-radius: 2px;
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet {
+  background-color: var(--lightBlue);
+  text-decoration: none;
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet
+  .facet-name {
+  background-color: var(--lightBlue);
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet
+  .facet-stat {
+  border-color: var(--blue);
+  background-color: var(--lightBlue);
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet
+  .facet-stat:before {
+  background-image: linear-gradient(to right, rgba(202, 227, 242, 0), var(--lightBlue) 75%);
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet
+  .facet-toggle {
+  display: inline;
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover,
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover
+  ~ .search-navigator-facet {
+  background-color: #a1cde8;
+  text-decoration: none;
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover
+  .facet-name,
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover
+  ~ .search-navigator-facet
+  .facet-name {
+  background-color: #a1cde8;
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover
+  .facet-stat,
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover
+  ~ .search-navigator-facet
+  .facet-stat {
+  border-color: var(--blue);
+  background-color: #a1cde8;
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover
+  .facet-stat:before,
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover
+  ~ .search-navigator-facet
+  .facet-stat:before {
+  background-image: linear-gradient(to right, rgba(161, 205, 232, 0), #a1cde8 75%);
+}
+
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover
+  .facet-toggle,
+.search-navigator-facet-highlight-under-container
+  .search-navigator-facet.active
+  ~ .search-navigator-facet:hover
+  ~ .search-navigator-facet
+  .facet-toggle {
+  display: inline;
+}
+
+.search-navigator-facet-header {
+  display: block;
+  flex-shrink: 0;
+  padding: 8px 0;
+  color: var(--baseFontColor);
+  font-weight: 600;
+  overflow: hidden;
+  white-space: nowrap;
+}
+
+.search-navigator-facet-header > a {
+  border-bottom: none;
+  color: var(--baseFontColor);
+}
+
+.search-navigator-facet-header > a:hover {
+  color: var(--blue);
+}
+
+.search-navigator-facet-header > .note {
+  font-weight: 400;
+}
+
+.search-navigator-facet-header-value {
+  display: block;
+  overflow: hidden;
+}
+
+.search-navigator-facet-header-value > .badge {
+  display: block;
+}
+
+.search-navigator-facet-header-button {
+  flex-shrink: 0;
+  margin-left: auto;
+}
+
+.search-navigator-facet-header-wrapper {
+  display: flex;
+  align-items: center;
+}
+
+.search-navigator-facet-list {
+  padding-bottom: var(--gridSize);
+  font-size: 0;
+}
+
+.search-navigator-facet-empty {
+  margin: 0 0 0 0;
+  padding: 0 10px 10px;
+  color: var(--baseFontColor);
+  font-size: var(--smallFontSize);
+  white-space: nowrap;
+}
+
+.search-navigator-facet-footer {
+  display: block;
+  padding-bottom: var(--gridSize);
+  border-bottom: none;
+}
+
+.search-navigator-facet-container {
+  margin-top: 6px;
+  padding: 0 10px 16px;
+}
+
+.search-navigator-date-facet-selection {
+  position: relative;
+  padding-left: var(--gridSize);
+  font-size: var(--smallFontSize);
+}
+
+.search-navigator-date-facet-selection:before,
+.search-navigator-date-facet-selection:after {
+  display: table;
+  content: '';
+  line-height: 0;
+}
+
+.search-navigator-date-facet-selection:after {
+  clear: both;
+}
+
+.search-navigator-date-facet-selection .date-input-control-input {
+  width: 115px !important;
+}
+
+.search-navigator-date-facet-selection-dropdown-left {
+  float: left;
+  border-bottom: none;
+}
+
+.search-navigator-date-facet-selection-dropdown-right {
+  float: right;
+  border-bottom: none;
+}
+
+.search-navigator-date-facet-selection-input-left {
+  position: absolute;
+  left: 0;
+  width: 100px;
+  visibility: hidden;
+}
+
+.search-navigator-date-facet-selection-input-right {
+  position: absolute;
+  right: 0;
+  width: 100px;
+  visibility: hidden;
+}
+
+.search-navigator-date-facet-selection
+  .date-input-control:not(:nth-of-type(1))
+  .date-input-calendar {
+  left: auto;
+  right: 0;
+}
+
+.search-navigator-filters {
+  position: relative;
+  padding: 5px 10px;
+  background-color: var(--barBackgroundColor);
+}
+
+.search-navigator-filters:before,
+.search-navigator-filters:after {
+  display: table;
+  content: '';
+  line-height: 0;
+}
+
+.search-navigator-filters:after {
+  clear: both;
+}
+
+.search-navigator-filters-header {
+  margin-bottom: 12px;
+  padding-bottom: 11px;
+  border-bottom: 1px solid var(--barBorderColor);
+}
+.search-navigator-intro {
+  width: 500px;
+  margin: 0 auto;
+  padding-top: 100px;
+}