@bundle-stats/ui 3.2.4 → 3.2.5-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/lib/app/app.js +13 -6
  3. package/lib/app/app.module.css +17 -15
  4. package/lib/app/header/header.js +14 -8
  5. package/lib/app/header/header.module.css +11 -18
  6. package/lib/components/bundle-assets/bundle-assets.module.css +1 -0
  7. package/lib/components/bundle-packages/bundle-packages.module.css +9 -5
  8. package/lib/components/delta/delta.js +22 -15
  9. package/lib/components/delta/delta.module.css +13 -6
  10. package/lib/components/duplicate-packages-warning/duplicate-packages-warning.js +2 -2
  11. package/lib/components/job-header/job-header.js +8 -5
  12. package/lib/components/job-header/job-header.module.css +6 -10
  13. package/lib/components/jobs-header/jobs-header.js +1 -1
  14. package/lib/components/jobs-header/jobs-header.module.css +1 -4
  15. package/lib/components/metric/metric.js +1 -4
  16. package/lib/components/metric/metric.module.css +7 -7
  17. package/lib/components/metrics-table-search/metrics-table-search.module.css +5 -4
  18. package/lib/components/summary-item/summary-item.js +3 -3
  19. package/lib/components/summary-item/summary-item.module.css +2 -9
  20. package/lib/css/default.css +13 -7
  21. package/lib/css/variables.css +24 -24
  22. package/lib/layout/box/box.module.css +9 -0
  23. package/lib/layout/footer/footer.module.css +2 -1
  24. package/lib/layout/index.js +8 -0
  25. package/lib/layout/separator.js +48 -0
  26. package/lib/layout/separator.module.css +5 -0
  27. package/lib/ui/dropdown/dropdown.js +1 -2
  28. package/lib/ui/dropdown/dropdown.module.css +7 -8
  29. package/lib/ui/filters/filters.js +10 -5
  30. package/lib/ui/filters/filters.module.css +10 -0
  31. package/lib/ui/popover/popover.module.css +1 -1
  32. package/lib/ui/table/table.module.css +1 -9
  33. package/lib/ui/tabs/tabs.module.css +1 -2
  34. package/lib/ui/tooltip/tooltip.module.css +1 -1
  35. package/lib-esm/app/app.js +12 -6
  36. package/lib-esm/app/app.module.css +17 -15
  37. package/lib-esm/app/header/header.js +13 -8
  38. package/lib-esm/app/header/header.module.css +11 -18
  39. package/lib-esm/components/bundle-assets/bundle-assets.module.css +1 -0
  40. package/lib-esm/components/bundle-packages/bundle-packages.module.css +9 -5
  41. package/lib-esm/components/delta/delta.js +20 -13
  42. package/lib-esm/components/delta/delta.module.css +13 -6
  43. package/lib-esm/components/duplicate-packages-warning/duplicate-packages-warning.js +2 -2
  44. package/lib-esm/components/job-header/job-header.js +8 -5
  45. package/lib-esm/components/job-header/job-header.module.css +6 -10
  46. package/lib-esm/components/jobs-header/jobs-header.js +1 -1
  47. package/lib-esm/components/jobs-header/jobs-header.module.css +1 -4
  48. package/lib-esm/components/metric/metric.js +1 -4
  49. package/lib-esm/components/metric/metric.module.css +7 -7
  50. package/lib-esm/components/metrics-table-search/metrics-table-search.module.css +5 -4
  51. package/lib-esm/components/summary-item/summary-item.js +3 -3
  52. package/lib-esm/components/summary-item/summary-item.module.css +2 -9
  53. package/lib-esm/css/default.css +13 -7
  54. package/lib-esm/css/variables.css +24 -24
  55. package/lib-esm/layout/box/box.module.css +9 -0
  56. package/lib-esm/layout/footer/footer.module.css +2 -1
  57. package/lib-esm/layout/index.js +1 -0
  58. package/lib-esm/layout/separator.js +28 -0
  59. package/lib-esm/layout/separator.module.css +5 -0
  60. package/lib-esm/ui/dropdown/dropdown.js +1 -2
  61. package/lib-esm/ui/dropdown/dropdown.module.css +7 -8
  62. package/lib-esm/ui/filters/filters.js +9 -4
  63. package/lib-esm/ui/filters/filters.module.css +10 -0
  64. package/lib-esm/ui/popover/popover.module.css +1 -1
  65. package/lib-esm/ui/table/table.module.css +1 -9
  66. package/lib-esm/ui/tabs/tabs.module.css +1 -2
  67. package/lib-esm/ui/tooltip/tooltip.module.css +1 -1
  68. package/package.json +13 -11
  69. package/src/app/app.jsx +23 -15
  70. package/src/app/app.module.css +17 -15
  71. package/src/app/header/header.jsx +15 -10
  72. package/src/app/header/header.module.css +11 -18
  73. package/src/components/bundle-assets/bundle-assets.module.css +1 -0
  74. package/src/components/bundle-packages/bundle-packages.module.css +9 -5
  75. package/src/components/delta/delta.jsx +17 -9
  76. package/src/components/delta/delta.module.css +13 -6
  77. package/src/components/duplicate-packages-warning/duplicate-packages-warning.jsx +7 -2
  78. package/src/components/job-header/job-header.jsx +9 -5
  79. package/src/components/job-header/job-header.module.css +6 -10
  80. package/src/components/jobs-header/jobs-header.jsx +1 -1
  81. package/src/components/jobs-header/jobs-header.module.css +1 -4
  82. package/src/components/metric/metric.jsx +2 -9
  83. package/src/components/metric/metric.module.css +7 -7
  84. package/src/components/metrics-table-search/metrics-table-search.module.css +5 -4
  85. package/src/components/summary-item/summary-item.jsx +1 -1
  86. package/src/components/summary-item/summary-item.module.css +2 -9
  87. package/src/css/default.css +13 -7
  88. package/src/css/variables.css +24 -24
  89. package/src/layout/box/box.module.css +9 -0
  90. package/src/layout/footer/footer.module.css +2 -1
  91. package/src/layout/index.js +1 -0
  92. package/src/layout/separator.jsx +25 -0
  93. package/src/layout/separator.module.css +5 -0
  94. package/src/ui/dropdown/dropdown.jsx +4 -6
  95. package/src/ui/dropdown/dropdown.module.css +7 -8
  96. package/src/ui/filters/filters.jsx +53 -50
  97. package/src/ui/filters/filters.module.css +10 -0
  98. package/src/ui/popover/popover.module.css +1 -1
  99. package/src/ui/table/table.module.css +1 -9
  100. package/src/ui/tabs/tabs.module.css +1 -2
  101. package/src/ui/tooltip/tooltip.module.css +1 -1
@@ -1,25 +1,31 @@
1
- :root {
2
- --chart-height: 180px;
1
+ @import url("~modern-css-reset/dist/reset.css");
2
+
3
+ /** modern-css-reset updates */
4
+ pre,
5
+ ul,
6
+ ol,
7
+ button {
8
+ margin: 0;
3
9
  }
4
10
 
5
11
  html {
12
+ font-family: var(--font-family);
6
13
  font-size: 81.25%;
7
- line-height: 1.8461;
8
14
  }
9
15
 
10
16
  body {
17
+ background: var(--color-background);
11
18
  color: var(--color-text);
19
+ line-height: var(--line-height);
12
20
  }
13
21
 
14
- h1, h2, h3, h4, h5 {
15
- margin-bottom: var(--space-small);
22
+ h1, h2, h3, h4, h5, h6 {
16
23
  color: var(--color-heading);
17
- font-weight: 500;
24
+ font-weight: bold;
18
25
  }
19
26
 
20
27
  h1 {
21
28
  font-size: var(--size-xxxlarge);
22
- line-height: var(--space-xlarge)
23
29
  }
24
30
 
25
31
  h2 {
@@ -13,40 +13,40 @@
13
13
  --space-xxlarge: 48px;
14
14
  --space-xxxlarge: 64px;
15
15
 
16
- /* Typography scale */
17
- --size-xsmall: 0.77rem;
16
+ /* Typography scale - https://type-scale.com 1.2 */
17
+ --size-xsmall: 0.8rem;
18
18
  --size-small: 0.92rem;
19
19
  --size: 1rem;
20
20
  --size-medium: var(--size);
21
- --size-large: 1.125rem;
22
- --size-xlarge: 1.266rem;
23
- --size-xxlarge: 1.424rem;
24
- --size-xxxlarge: 1.602rem;
21
+ --size-large: 1.2rem;
22
+ --size-xlarge: 1.44rem;
23
+ --size-xxlarge: 1.728rem;
24
+ --size-xxxlarge: 2.074rem;
25
25
 
26
- --line-height: var(--space-medium);
26
+ --line-height: 1.66em;
27
27
 
28
28
  /*
29
29
  * Color scheme:
30
- * http://mcg.mbitson.com/#!?mcgpalette0=%23dd555e&mcgpalette1=%2363bf5e&mcgpalette2=%23f7e37d&mcgpalette3=%23636568&mcgpalette4=%233385d6&themename=mcgtheme
31
30
  * https://coolors.co/3385d6-dd555e-63bf5e-f7e37d-192339
31
+ * http://mcg.mbitson.com/#!?mcgpalette0=%23dd555e&mcgpalette1=%2363bf5e&mcgpalette2=%23f7e37d&mcgpalette3=%235b5d60&mcgpalette4=%233385d6&themename=mcgtheme
32
32
  */
33
33
  --color-gray-25: #fafafa;
34
- --color-gray-50: #eceded;
35
- --color-gray-100: #d0d1d2;
36
- --color-gray-200: #b1b2b4;
37
- --color-gray-300: #929395;
38
- --color-gray-400: #7a7c7f;
39
- --color-gray-500: #636568;
40
- --color-gray-600: #5b5d60;
41
- --color-gray-700: #515355;
42
- --color-gray-800: #47494b;
43
- --color-gray-900: #35373a;
34
+ --color-gray-50: #e4e4e5;
35
+ --color-gray-100: #cececf;
36
+ --color-gray-200: #adaeb0;
37
+ --color-gray-300: #8c8e90;
38
+ --color-gray-400: #747578;
39
+ --color-gray-500: #5b5d60;
40
+ --color-gray-600: #535558;
41
+ --color-gray-700: #494b4e;
42
+ --color-gray-800: #404144;
43
+ --color-gray-900: #2f3033;
44
44
 
45
45
  --color-gray-ultra-light: var(--color-gray-200);
46
46
  --color-gray-light: var(--color-gray-300);
47
47
  --color-gray: var(--color-gray-500);
48
- --color-gray-dark: var(--color-gray-700);
49
- --color-gray-ultra-dark: var(--color-gray-900);
48
+ --color-gray-dark: var(--color-gray-600);
49
+ --color-gray-ultra-dark: var(--color-gray-700);
50
50
 
51
51
  --color-red-25: #fdf5f6;
52
52
  --color-red-50: #fbebec;
@@ -170,7 +170,7 @@
170
170
  --color-outline-warning: var(--color-yellow-200);
171
171
  --color-outline-danger: var(--color-red-100);
172
172
 
173
- --color-shadow: rgba(0, 0, 0, 0.2);
173
+ --color-shadow: rgba(0, 0, 0, 0.1);
174
174
 
175
175
  --transition-in: all 0.2s ease-in;
176
176
  --transition-out: all 0.17s ease-out;
@@ -181,9 +181,9 @@
181
181
  --layer-high: 1000;
182
182
  --layer-xhigh: 10000;
183
183
 
184
- --radius-small: var(--space-xxxsmall);
185
- --radius-medium: var(--space-xxsmall);
186
- --radius-large: var(--space-small);
184
+ --radius-small: calc(var(--space-xxxsmall) / 2);
185
+ --radius-medium: var(--space-xxxsmall);
186
+ --radius-large: var(--space-xxsmall);
187
187
 
188
188
  /** Layout */
189
189
  --max-width: 80rem;
@@ -4,6 +4,15 @@
4
4
 
5
5
  .outline {
6
6
  border: 1px solid var(--color-outline);
7
+ border-radius: var(--radius-medium);
8
+ }
9
+
10
+ .outline > :first-child {
11
+ border-radius: var(--radius-large) var(--radius-medium) 0 0;
12
+ }
13
+
14
+ .outline > :last-child {
15
+ border-radius: 0 0 var(--radius-large) var(--radius-medium);
7
16
  }
8
17
 
9
18
  .padding-xxxsmall {
@@ -3,9 +3,10 @@
3
3
  }
4
4
 
5
5
  .inner {
6
- border-top: 2px solid var(--color-outline);
6
+ border-top: 1px solid var(--color-outline);
7
7
  }
8
8
 
9
+
9
10
  .navItem {
10
11
  display: inline-block;
11
12
  margin: 0 var(--space-xxxsmall);
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "Header", {
27
27
  return _header.Header;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "Separator", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _separator.Separator;
34
+ }
35
+ });
30
36
  Object.defineProperty(exports, "Stack", {
31
37
  enumerable: true,
32
38
  get: function get() {
@@ -46,6 +52,8 @@ var _footer = require("./footer");
46
52
 
47
53
  var _header = require("./header");
48
54
 
55
+ var _separator = require("./separator");
56
+
49
57
  var _subHeader = require("./sub-header");
50
58
 
51
59
  var _stack = require("./stack");
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Separator = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _separatorModule = _interopRequireDefault(require("./separator.module.css"));
15
+
16
+ var _excluded = ["className"];
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+
22
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
23
+
24
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
25
+
26
+ var propTypes = {
27
+ className: _propTypes["default"].string
28
+ };
29
+ var defaultProps = {
30
+ className: ''
31
+ };
32
+ /**
33
+ * @param {PropTypes.InferProps<typeof propTypes>} props
34
+ * @return {React.FunctionComponentElement}
35
+ */
36
+
37
+ var Separator = function Separator(props) {
38
+ var className = props.className,
39
+ restProps = _objectWithoutProperties(props, _excluded);
40
+
41
+ return /*#__PURE__*/_react["default"].createElement("div", _extends({
42
+ className: (0, _classnames["default"])(_separatorModule["default"].root, className)
43
+ }, restProps));
44
+ };
45
+
46
+ exports.Separator = Separator;
47
+ Separator.propTypes = propTypes;
48
+ Separator.defaultProps = defaultProps;
@@ -0,0 +1,5 @@
1
+ .root {
2
+ background: var(--color-outline);
3
+ width: 100%;
4
+ height: 1px;
5
+ }
@@ -39,8 +39,7 @@ var Dropdown = function Dropdown(props) {
39
39
  className: rootClassName,
40
40
  tabIndex: null
41
41
  }), /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
42
- space: "xxxsmall",
43
- className: _dropdownModule["default"].label
42
+ space: "xxxsmall"
44
43
  }, glyph && /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
45
44
  className: _dropdownModule["default"].labelIcon,
46
45
  glyph: glyph
@@ -2,15 +2,9 @@
2
2
  background: none;
3
3
  border: none;
4
4
  padding: 0;
5
- }
6
5
 
7
- .root:focus {
8
- outline: none;
9
- box-shadow: 0 0 var(--space-xxxsmall) var(--color-shadow);
10
- }
11
-
12
- .label {
13
6
  border: 1px solid var(--color-outline);
7
+ border-radius: var(--radius-medium);
14
8
  padding: calc(var(--space-xxsmall) - 1px);
15
9
  display: flex;
16
10
  align-items: center;
@@ -24,7 +18,11 @@
24
18
  color: var(--color-text-light);
25
19
  }
26
20
 
27
- .label:hover {
21
+ .root:hover,
22
+ .root:focus,
23
+ .root:active {
24
+ outline: none;
25
+ box-shadow: 0 0 var(--space-xxxsmall) var(--color-shadow);
28
26
  border-color: var(--color-outline-dark);
29
27
  color: var(--color-text);
30
28
  }
@@ -33,6 +31,7 @@
33
31
  position: absolute;
34
32
  left: 0;
35
33
  top: 100%;
34
+ border-radius: var(--radius-medium);
36
35
  box-shadow: 0 2px var(--space-xxsmall) var(--color-shadow);
37
36
  background: var(--color-background);
38
37
  min-width: 180px;
@@ -92,7 +92,8 @@ Filter.defaultProps = {
92
92
  };
93
93
 
94
94
  var FilterGroup = function FilterGroup(props) {
95
- var groupKey = props.groupKey,
95
+ var className = props.className,
96
+ groupKey = props.groupKey,
96
97
  data = props.data,
97
98
  values = props.values,
98
99
  onCheckboxChange = props.onCheckboxChange,
@@ -138,6 +139,7 @@ var FilterGroup = function FilterGroup(props) {
138
139
  };
139
140
 
140
141
  return /*#__PURE__*/_react["default"].createElement(_dropdown.Dropdown, {
142
+ className: className,
141
143
  label: dropdownLabel,
142
144
  ariaLabel: "".concat(groupLabel, ": ").concat(filterSuffix)
143
145
  }, function (_ref7) {
@@ -188,6 +190,7 @@ var FilterGroup = function FilterGroup(props) {
188
190
  };
189
191
 
190
192
  FilterGroup.propTypes = {
193
+ className: _propTypes["default"].string,
191
194
  groupKey: _propTypes["default"].string.isRequired,
192
195
  data: _propTypes["default"].object.isRequired,
193
196
  // eslint-disable-line react/forbid-prop-types
@@ -196,6 +199,9 @@ FilterGroup.propTypes = {
196
199
  onCheckboxChange: _propTypes["default"].func.isRequired,
197
200
  toggleFilters: _propTypes["default"].func.isRequired
198
201
  };
202
+ FilterGroup.defaultProps = {
203
+ className: ''
204
+ };
199
205
 
200
206
  var Filters = function Filters(props) {
201
207
  var className = props.className,
@@ -231,16 +237,15 @@ var Filters = function Filters(props) {
231
237
  });
232
238
  }
233
239
 
234
- return /*#__PURE__*/_react["default"].createElement("div", {
235
- className: _filtersModule["default"].item
236
- }, /*#__PURE__*/_react["default"].createElement(FilterGroup, {
240
+ return /*#__PURE__*/_react["default"].createElement(FilterGroup, {
241
+ className: _filtersModule["default"].item,
237
242
  key: name,
238
243
  groupKey: name,
239
244
  data: data,
240
245
  values: values,
241
246
  onCheckboxChange: onCheckboxChange,
242
247
  toggleFilters: toggleFilters
243
- }));
248
+ });
244
249
  })));
245
250
  };
246
251
 
@@ -11,6 +11,7 @@
11
11
  }
12
12
 
13
13
  .filterInput {
14
+ border-radius: var(--radius-medium) 0 0 var(--radius-medium);
14
15
  flex: 0 0 auto;
15
16
  height: 1em;
16
17
  cursor: pointer;
@@ -129,11 +130,20 @@
129
130
  }
130
131
 
131
132
  .item {
133
+ border-radius: 0;
132
134
  position: relative;
133
135
  flex: 0 0 auto;
134
136
  margin-right: -1px;
135
137
  }
136
138
 
139
+ .item:first-child {
140
+ border-radius: var(--radius-medium) 0 0 var(--radius-medium);
141
+ }
142
+
143
+ .item:last-child {
144
+ border-radius: 0 var(--radius-medium) var(--radius-medium) 0;
145
+ }
146
+
137
147
  .item:hover {
138
148
  z-index: var(--layer-low); /* show collapsed border */
139
149
  }
@@ -24,7 +24,7 @@
24
24
 
25
25
  .popover {
26
26
  padding: var(--space-small) var(--space-large) var(--space-small) var(--space-small);
27
- border-radius: var(--radius-small);
27
+ border-radius: var(--radius-large);
28
28
  max-width: 360px;
29
29
  outline: none;
30
30
  filter: drop-shadow(0 0 var(--space-xxxsmall) var(--color-shadow));
@@ -13,12 +13,8 @@
13
13
  text-align: left;
14
14
  }
15
15
 
16
- tr:last-child .cell {
17
- border-bottom-width: 1px;
18
- }
19
-
20
16
  .root thead .cell {
21
- border-width: 0 0 2px;
17
+ border-width: 0 0 1px;
22
18
  text-transform: uppercase;
23
19
  vertical-align: top;
24
20
  }
@@ -44,10 +40,6 @@ tr:last-child .cell {
44
40
  text-decoration: underline;
45
41
  }
46
42
 
47
- .root tbody tr:nth-child(odd) .cell {
48
- background-color: var(--color-highlight);
49
- }
50
-
51
43
  .root tbody tr:hover .cell {
52
44
  background-color: var(--color-highlight-warning);
53
45
  }
@@ -7,8 +7,7 @@
7
7
  position: relative;
8
8
  display: inline-block;
9
9
  padding: var(--space-xsmall) 0;
10
- color: var(--color-text-ultra-light);
11
- font-weight: bold;
10
+ color: var(--color-text-light);
12
11
  text-decoration: none;
13
12
  }
14
13
 
@@ -12,7 +12,7 @@
12
12
 
13
13
  .tooltip {
14
14
  padding: var(--space-xxxsmall) var(--space-xxsmall);
15
- border-radius: var(--radius-small);
15
+ border-radius: var(--radius-large);
16
16
  background: var(--color-light);
17
17
  color: var(--color-text);
18
18
  filter: drop-shadow(0 0 var(--space-xxxsmall) var(--color-shadow));
@@ -6,6 +6,7 @@ import { HashRouter, NavLink, Route, Switch, useLocation } from 'react-router-do
6
6
  import { COMPONENT } from '@bundle-stats/utils';
7
7
  import { METRICS_WEBPACK_ASSETS, METRICS_WEBPACK_GENERAL, METRICS_WEBPACK_MODULES, METRICS_WEBPACK_PACKAGES, URLS } from '../constants';
8
8
  import { Box } from '../layout/box';
9
+ import { Separator } from '../layout/separator';
9
10
  import { Container } from '../ui/container';
10
11
  import { DuplicatePackagesWarning } from '../components/duplicate-packages-warning';
11
12
  import { Summary } from '../components/summary';
@@ -47,6 +48,7 @@ const Layout = _ref => {
47
48
  }), /*#__PURE__*/React.createElement("main", _extends({
48
49
  className: css.main
49
50
  }, props)), /*#__PURE__*/React.createElement(Footer, {
51
+ className: css.footer,
50
52
  version: version
51
53
  }));
52
54
  };
@@ -176,17 +178,21 @@ const AppComponent = _ref2 => {
176
178
  exact: true,
177
179
  path: URLS.OVERVIEW,
178
180
  render: () => /*#__PURE__*/React.createElement(Stack, {
179
- space: "large"
180
- }, duplicatePackagesInsights && /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(DuplicatePackagesWarning, {
181
+ space: "medium"
182
+ }, /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
183
+ space: "medium"
184
+ }, duplicatePackagesInsights && /*#__PURE__*/React.createElement(DuplicatePackagesWarning, {
181
185
  duplicatePackagesCount: duplicatePackagesCount,
182
186
  showDelta: jobs.length > 1
183
- })), /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
187
+ }), /*#__PURE__*/React.createElement(Box, {
188
+ outline: true
189
+ }, /*#__PURE__*/React.createElement(Box, {
190
+ padding: "small"
191
+ }, /*#__PURE__*/React.createElement(Stack, {
184
192
  space: "small"
185
193
  }, /*#__PURE__*/React.createElement(TotalSizeTypeTitle, null), /*#__PURE__*/React.createElement(BundleAssetsTotalsChartBars, {
186
194
  jobs: jobs
187
- }), /*#__PURE__*/React.createElement(Box, {
188
- outline: true
189
- }, /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
195
+ }))), /*#__PURE__*/React.createElement(Separator, null), /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
190
196
  jobs: jobs
191
197
  })))))
192
198
  }))));
@@ -3,7 +3,10 @@
3
3
  }
4
4
 
5
5
  .root {
6
- padding-top: var(--header-height);
6
+ }
7
+
8
+ .header {
9
+ border-bottom: 1px solid var(--color-outline);
7
10
  }
8
11
 
9
12
  .empty {
@@ -13,16 +16,12 @@
13
16
  }
14
17
 
15
18
  .summaryContainer {
16
- padding-top: var(--space-large);
17
- padding-bottom: var(--space-small);
19
+ padding-top: var(--space-medium);
20
+ padding-bottom: var(--space-xsmall);
18
21
  }
19
22
 
20
23
  .tabsContainer {
21
- border-bottom: 1px solid var(--color-outline);
22
- }
23
-
24
- .tabs {
25
- margin-bottom: -1px;
24
+ background: var(--color-light);
26
25
  }
27
26
 
28
27
  .tabActive {
@@ -34,24 +33,27 @@
34
33
  }
35
34
 
36
35
  .tabsContent {
37
- padding-top: var(--space-large);
38
- padding-bottom: var(--space-large);
36
+ padding-top: var(--space-medium);
37
+ padding-bottom: var(--space-medium);
39
38
  min-height: 480px;
40
39
  }
41
40
 
42
41
  @media (min-width: 600px) {
43
42
  :root {
44
- --header-height: 80px;
43
+ --header-height: 78px;
45
44
  }
46
45
 
47
46
  .header {
48
- position: fixed;
47
+ position: sticky;
49
48
  z-index: var(--layer-high);
50
- left: 0;
51
49
  top: 0;
52
- right: 0;
53
50
  height: var(--header-height);
54
51
  background-color: var(--color-background);
55
- border-bottom: 1px solid var(--color-outline);
52
+ }
53
+
54
+ .tabsContainer {
55
+ position: sticky;
56
+ top: var(--header-height);
57
+ z-index: 100;
56
58
  }
57
59
  }
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import cx from 'classnames';
4
+ import { FlexStack } from '../../layout/flex-stack';
4
5
  import { Container } from '../../ui/container';
5
6
  import { JobsHeader } from '../../components/jobs-header';
6
7
  import { Logo } from '../../ui/logo';
@@ -13,19 +14,23 @@ export const Header = _ref => {
13
14
  return /*#__PURE__*/React.createElement(Container, {
14
15
  as: "header",
15
16
  className: cx(css.root, className)
16
- }, /*#__PURE__*/React.createElement("div", {
17
+ }, /*#__PURE__*/React.createElement(FlexStack, {
18
+ space: "small",
17
19
  className: css.inner
20
+ }, /*#__PURE__*/React.createElement(JobsHeader, {
21
+ className: css.jobs,
22
+ jobs: jobs
23
+ }), /*#__PURE__*/React.createElement("div", {
24
+ className: css.options
18
25
  }, /*#__PURE__*/React.createElement("a", {
19
- className: css.branding,
20
26
  href: "https://github.com/relative-ci/bundle-stats",
21
27
  target: "_blank",
22
- rel: "noopener noreferrer nofollow"
28
+ rel: "noopener noreferrer nofollow",
29
+ title: "View bundle-stats on GitHub"
23
30
  }, /*#__PURE__*/React.createElement(Logo, {
24
- className: css.brandingLogo
25
- }, "BundleStats")), /*#__PURE__*/React.createElement(JobsHeader, {
26
- className: css.jobs,
27
- jobs: jobs
28
- })));
31
+ className: css.github,
32
+ kind: "github"
33
+ }, "GitHub")))));
29
34
  };
30
35
  Header.propTypes = {
31
36
  className: PropTypes.string,
@@ -1,30 +1,23 @@
1
1
  .inner {
2
- display: flex;
3
- align-items: center;
4
- }
5
-
6
- .branding {
7
- padding: var(--space-small);
8
- flex: 0 0 auto;
9
- color: var(--color-text);
10
- display: flex;
11
2
  align-items: center;
12
3
  }
13
4
 
14
5
  .jobs {
15
6
  flex: 1 1 auto;
7
+ overflow-x: auto;
16
8
  }
17
9
 
18
- .tools {
19
- border-left: 1px solid var(--color-outline);
20
- padding: var(--space-small);
21
- margin: 0 0 0 auto;
22
- display: flex;
23
- align-items: center;
24
- color: var(--color-text-light);
10
+ .options {
11
+ flex: 0 0 var(--space-large);
12
+ }
13
+
14
+ .option {
15
+ display: inline-block;
25
16
  }
26
17
 
27
- .toolsGithub {
28
- color: inherit;
18
+ .github {
19
+ display: block;
20
+ color: var(--color-text-ultra-light);
29
21
  width: var(--space-medium);
22
+ height: var(--space-medium);
30
23
  }
@@ -31,6 +31,7 @@
31
31
  }
32
32
 
33
33
  .flag {
34
+ border-radius: var(--radius-small);
34
35
  display: inline-block;
35
36
  width: var(--space-xsmall);
36
37
  height: var(--space-xsmall);
@@ -13,17 +13,21 @@
13
13
  }
14
14
 
15
15
  .duplicate {
16
- margin-right: var(--space-xxxsmall);
16
+ border-radius: var(--radius-small);
17
17
  display: inline-block;
18
- width: var(--space-small);
19
- height: var(--space-small);
20
- font-size: 10px;
18
+ width: var(--space-xsmall);
19
+ height: var(--space-xsmall);
20
+ font-family: var(--font-family);
21
+ font-size: 8px;
21
22
  font-weight: bold;
22
- line-height: var(--space-small);
23
+ background: var(--color-highlight);
24
+ color: var(--color-text-light);
25
+ line-height: var(--space-xsmall);
23
26
  text-align: center;
24
27
  text-transform: uppercase;
25
28
  vertical-align: middle;
26
29
 
30
+ margin-right: var(--space-xxxsmall);
27
31
  background: var(--color-danger);
28
32
  color: var(--color-light);
29
33
  }