@bundle-stats/ui 3.2.7-beta.5 → 3.2.9

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 (61) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/lib/app/app.js +124 -79
  3. package/lib/components/asset-info/asset-info.module.css +1 -0
  4. package/lib/components/bundle-assets/bundle-assets.js +97 -57
  5. package/lib/components/bundle-assets/bundle-assets.module.css +19 -13
  6. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js +13 -3
  7. package/lib/components/bundle-modules/bundle-modules.js +49 -64
  8. package/lib/components/bundle-packages/bundle-packages.js +94 -46
  9. package/lib/components/bundle-packages/bundle-packages.module.css +14 -14
  10. package/lib/components/metrics-table/metrics-table.js +72 -59
  11. package/lib/components/metrics-table/metrics-table.module.css +18 -7
  12. package/lib/components/module-info/module-info.js +2 -2
  13. package/lib/hooks/search-params.js +25 -25
  14. package/lib/ui/empty-set/empty-set.js +5 -4
  15. package/lib/ui/empty-set/empty-set.module.css +2 -2
  16. package/lib/ui/hover-card/hover-card.js +6 -5
  17. package/lib/ui/hover-card/hover-card.module.css +6 -7
  18. package/lib/ui/table/table.js +5 -74
  19. package/lib/ui/table/table.module.css +23 -19
  20. package/lib/ui/table/table.stories.js +1 -1
  21. package/lib/ui/tooltip/tooltip.module.css +1 -0
  22. package/lib-esm/app/app.js +118 -76
  23. package/lib-esm/components/asset-info/asset-info.module.css +1 -0
  24. package/lib-esm/components/bundle-assets/bundle-assets.js +91 -61
  25. package/lib-esm/components/bundle-assets/bundle-assets.module.css +19 -13
  26. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +6 -3
  27. package/lib-esm/components/bundle-modules/bundle-modules.js +31 -47
  28. package/lib-esm/components/bundle-packages/bundle-packages.js +83 -43
  29. package/lib-esm/components/bundle-packages/bundle-packages.module.css +14 -14
  30. package/lib-esm/components/metrics-table/metrics-table.js +61 -53
  31. package/lib-esm/components/metrics-table/metrics-table.module.css +18 -7
  32. package/lib-esm/components/module-info/module-info.js +2 -2
  33. package/lib-esm/hooks/search-params.js +21 -22
  34. package/lib-esm/ui/empty-set/empty-set.js +4 -4
  35. package/lib-esm/ui/empty-set/empty-set.module.css +2 -2
  36. package/lib-esm/ui/hover-card/hover-card.js +6 -5
  37. package/lib-esm/ui/hover-card/hover-card.module.css +6 -7
  38. package/lib-esm/ui/table/table.js +5 -65
  39. package/lib-esm/ui/table/table.module.css +23 -19
  40. package/lib-esm/ui/table/table.stories.js +1 -1
  41. package/lib-esm/ui/tooltip/tooltip.module.css +1 -0
  42. package/package.json +3 -3
  43. package/src/app/app.jsx +135 -133
  44. package/src/components/asset-info/asset-info.module.css +1 -0
  45. package/src/components/bundle-assets/bundle-assets.jsx +94 -59
  46. package/src/components/bundle-assets/bundle-assets.module.css +19 -13
  47. package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.jsx +2 -0
  48. package/src/components/bundle-modules/bundle-modules.jsx +28 -38
  49. package/src/components/bundle-packages/bundle-packages.jsx +80 -43
  50. package/src/components/bundle-packages/bundle-packages.module.css +14 -14
  51. package/src/components/metrics-table/metrics-table.jsx +53 -44
  52. package/src/components/metrics-table/metrics-table.module.css +18 -7
  53. package/src/components/module-info/module-info.jsx +2 -2
  54. package/src/hooks/search-params.js +24 -22
  55. package/src/ui/empty-set/empty-set.jsx +25 -21
  56. package/src/ui/empty-set/empty-set.module.css +2 -2
  57. package/src/ui/hover-card/hover-card.jsx +5 -10
  58. package/src/ui/hover-card/hover-card.module.css +6 -7
  59. package/src/ui/table/table.jsx +5 -52
  60. package/src/ui/table/table.module.css +23 -19
  61. package/src/ui/tooltip/tooltip.module.css +1 -0
@@ -1,11 +1,11 @@
1
- .jobName a {
1
+ .root a {
2
2
  color: inherit;
3
3
  text-decoration: none;
4
4
  }
5
5
 
6
- .jobName a:hover,
7
- .jobName a:active,
8
- .jobName a:focus {
6
+ .root a:hover,
7
+ .root a:active,
8
+ .root a:focus {
9
9
  color: var(--color-primary);
10
10
  text-decoration: underline;
11
11
  }
@@ -15,21 +15,31 @@
15
15
  width: 100%;
16
16
  }
17
17
 
18
- .value {
18
+ .root .value {
19
19
  padding-left: var(--space-large);
20
20
  text-align: right;
21
+ vertical-align: baseline;
21
22
  }
22
23
 
23
- .delta {
24
+ .root .delta {
24
25
  padding-left: 0;
25
26
  text-align: left;
26
27
  font-size: var(--size-xsmall);
28
+ vertical-align: baseline;
27
29
  }
28
30
 
29
- .value.current {
31
+ .root tbody .delta {
32
+ line-height: 1.6rem; /* baseline alignment with the value */
33
+ }
34
+
35
+ .root .value.current {
30
36
  padding-right: var(--space-xxsmall);
31
37
  }
32
38
 
39
+ .jobName {
40
+ white-space: nowrap;
41
+ }
42
+
33
43
  /* columns overrides for showHeaderSum */
34
44
  .showHeaderSum .headerRowColumns .value,
35
45
  .showHeaderSum .headerRowColumns .delta {
@@ -45,6 +55,7 @@
45
55
  }
46
56
 
47
57
  /** rows */
58
+ .multipleRuns .unchanged th,
48
59
  .multipleRuns .unchanged td {
49
60
  color: var(--color-text-light);
50
61
  }
@@ -38,7 +38,7 @@ var ModuleInfo = function ModuleInfo(props) {
38
38
  CustomComponentLink = props.customComponentLink,
39
39
  onClick = props.onClick;
40
40
  return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
41
- space: "small",
41
+ space: "xsmall",
42
42
  className: className
43
43
  }, item.runs.map(function (run, index) {
44
44
  var TitleComponent = index !== 0 ? 'h4' : 'h3';
@@ -48,7 +48,7 @@ var ModuleInfo = function ModuleInfo(props) {
48
48
  key: key
49
49
  }, /*#__PURE__*/_react["default"].createElement(TitleComponent, null, labels[index]), index === 0 && !(0, _isEmpty2["default"])(run === null || run === void 0 ? void 0 : run.chunkIds) && /*#__PURE__*/_react["default"].createElement("div", {
50
50
  className: _moduleInfoModule["default"].chunks
51
- }, /*#__PURE__*/_react["default"].createElement("strong", {
51
+ }, /*#__PURE__*/_react["default"].createElement("span", {
52
52
  className: _moduleInfoModule["default"].chunksTitle
53
53
  }, "Chunks:"), run.chunkIds.map(function (chunkId) {
54
54
  var chunk = (0, _find2["default"])(chunks, {
@@ -36,9 +36,11 @@ var ACTION_SET_SEARCH = 'SET_SEARCH';
36
36
  var ACTION_RESET_DEFAULT = 'RESET_DEFAULT';
37
37
  var ACTION_RESET_ALL = 'RESET_ALL';
38
38
  var ACTION_SET = 'SET';
39
+ var SEARCH_DEFAULT = '';
40
+ var SEARCH_DEFAULT_PATTERN = /.*/;
39
41
 
40
42
  var getSearchPattern = function getSearchPattern(search) {
41
- var searchPattern = /.*/;
43
+ var searchPattern = SEARCH_DEFAULT_PATTERN;
42
44
 
43
45
  if (!search || !search.trim()) {
44
46
  return searchPattern;
@@ -65,51 +67,48 @@ var getSearchReducer = function getSearchReducer(_ref) {
65
67
  switch (type) {
66
68
  case ACTION_SET_FILTERS:
67
69
  {
68
- setParentState({
70
+ var newState = {
69
71
  filters: payload,
70
72
  search: state.search
71
- });
72
- return _objectSpread(_objectSpread({}, state), {}, {
73
- filters: payload
74
- });
73
+ };
74
+ setParentState(newState);
75
+ return newState;
75
76
  }
76
77
 
77
78
  case ACTION_SET_SEARCH:
78
79
  {
79
- setParentState({
80
+ var _newState = {
80
81
  filters: state.filters,
81
82
  search: payload
82
- });
83
- return _objectSpread(_objectSpread({}, state), {}, {
84
- search: payload,
83
+ };
84
+ setParentState(_newState);
85
+ return _objectSpread(_objectSpread({}, _newState), {}, {
85
86
  searchPattern: getSearchPattern(payload)
86
87
  });
87
88
  }
88
89
 
89
90
  case ACTION_RESET_DEFAULT:
90
91
  {
91
- setParentState({
92
- filters: defaultFilters,
93
- search: ''
94
- });
95
- return {
92
+ var _newState2 = {
96
93
  filters: defaultFilters,
97
- search: '',
98
- searchPattern: getSearchPattern()
94
+ search: SEARCH_DEFAULT
99
95
  };
96
+ setParentState(_newState2);
97
+ return _objectSpread(_objectSpread({}, _newState2), {}, {
98
+ searchPattern: getSearchPattern()
99
+ });
100
100
  }
101
101
 
102
102
  case ACTION_RESET_ALL:
103
103
  {
104
- setParentState({
105
- filters: allEntriesFilters,
106
- search: ''
107
- });
108
- return {
104
+ var _newState3 = {
109
105
  filters: allEntriesFilters,
110
- search: '',
111
- searchPattern: getSearchPattern()
106
+ search: SEARCH_DEFAULT
112
107
  };
108
+ setParentState(_newState3);
109
+ return _objectSpread(_objectSpread({}, _newState3), {}, {
110
+ searchPattern: getSearchPattern()
111
+ });
113
112
  }
114
113
 
115
114
  case ACTION_SET:
@@ -134,7 +133,8 @@ var generateState = function generateState(filters, search) {
134
133
  exports.generateState = generateState;
135
134
 
136
135
  var useSearchParams = function useSearchParams(_ref2) {
137
- var parentSearch = _ref2.search,
136
+ var _ref2$search = _ref2.search,
137
+ parentSearch = _ref2$search === void 0 ? SEARCH_DEFAULT : _ref2$search,
138
138
  parentFilters = _ref2.filters,
139
139
  defaultFilters = _ref2.defaultFilters,
140
140
  allEntriesFilters = _ref2.allEntriesFilters,
@@ -9,6 +9,8 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
+ var _stack = require("../../layout/stack");
13
+
12
14
  var _i18n = _interopRequireDefault(require("../../i18n"));
13
15
 
14
16
  var _emptySetModule = _interopRequireDefault(require("./empty-set.module.css"));
@@ -42,11 +44,10 @@ var EmptySet = function EmptySet(props) {
42
44
  type: "button",
43
45
  onClick: handleViewAll
44
46
  }, _i18n["default"].VIEW_ALL)] : []));
45
- return /*#__PURE__*/_react["default"].createElement("div", {
47
+ return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
48
+ space: "xxsmall",
46
49
  className: _emptySetModule["default"].root
47
- }, /*#__PURE__*/_react["default"].createElement("p", {
48
- className: _emptySetModule["default"].text
49
- }, message), filtered && actions.map(function (action, index) {
50
+ }, /*#__PURE__*/_react["default"].createElement("p", null, message), filtered && actions.map(function (action, index) {
50
51
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, index > 0 && ' or ', action);
51
52
  }));
52
53
  };
@@ -1,5 +1,5 @@
1
- .text {
2
- margin-bottom: 0;
1
+ .root {
2
+ color: var(--color-text-light);
3
3
  }
4
4
 
5
5
  .action {
@@ -39,6 +39,7 @@ var resolveComponent = function resolveComponent(as, href) {
39
39
 
40
40
  var HoverCard = function HoverCard(props) {
41
41
  var className = props.className,
42
+ hoverCardClassName = props.hoverCardClassName,
42
43
  href = props.href,
43
44
  as = props.as,
44
45
  label = props.label,
@@ -52,10 +53,6 @@ var HoverCard = function HoverCard(props) {
52
53
  }); // Fallback to span if no href
53
54
 
54
55
  var Component = resolveComponent(as, href);
55
- var handleOnClose = (0, _react.useCallback)(function (event) {
56
- state.hide();
57
- event.preventDefault();
58
- }, [state]);
59
56
  return /*#__PURE__*/_react["default"].createElement("div", {
60
57
  className: (0, _classnames["default"])(_hoverCardModule["default"].root, className)
61
58
  }, /*#__PURE__*/_react["default"].createElement(_hovercard.HovercardAnchor, {
@@ -65,7 +62,7 @@ var HoverCard = function HoverCard(props) {
65
62
  as: Component
66
63
  }, label), /*#__PURE__*/_react["default"].createElement(_hovercard.Hovercard, _extends({}, hoverCardProps, {
67
64
  state: state,
68
- className: _hoverCardModule["default"].hoverCard,
65
+ className: (0, _classnames["default"])(_hoverCardModule["default"].hoverCard, hoverCardClassName),
69
66
  style: {
70
67
  zIndex: 10000
71
68
  }
@@ -81,6 +78,9 @@ HoverCard.propTypes = {
81
78
  /** Adopted child class name */
82
79
  className: _propTypes["default"].string,
83
80
 
81
+ /** Adopted child class name for hover card */
82
+ hoverCardClassName: _propTypes["default"].string,
83
+
84
84
  /** Anchor label */
85
85
  label: _propTypes["default"].node,
86
86
 
@@ -95,6 +95,7 @@ HoverCard.propTypes = {
95
95
  };
96
96
  HoverCard.defaultProps = {
97
97
  className: '',
98
+ hoverCardClassName: '',
98
99
  label: '',
99
100
  as: '',
100
101
  href: ''
@@ -8,20 +8,19 @@
8
8
  text-decoration: none;
9
9
  }
10
10
 
11
- a.anchor,
12
- buton.anchor {
13
- cursor: pointer;
11
+ .anchor:hover {
12
+ color: var(--color-primary);
14
13
  }
15
14
 
16
- a.anchor:hover,
17
- button.anchor:hover {
18
- text-decoration: underline;
15
+ .anchor:focus {
16
+ outline: 0;
19
17
  }
20
18
 
21
19
  .hoverCard {
22
20
  padding: var(--space-xsmall) var(--space-small);
23
21
  border-radius: var(--radius-medium);
24
- max-width: 320px;
22
+ width: calc(100vw - 2 * var(--space-small));
23
+ max-width: 360px;
25
24
  outline: none;
26
25
  filter: drop-shadow(0 0 var(--space-xxsmall) var(--color-shadow));
27
26
  will-change: filter;
@@ -13,77 +13,8 @@ var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
14
  var _tableModule = _interopRequireDefault(require("./table.module.css"));
15
15
 
16
- var _excluded = ["className"],
17
- _excluded2 = ["className"],
18
- _excluded3 = ["className"];
19
-
20
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
17
 
22
- 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); }
23
-
24
- 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; }
25
-
26
- 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; }
27
-
28
- var THead = function THead(props) {
29
- return /*#__PURE__*/_react["default"].createElement("thead", props);
30
- };
31
-
32
- var TBody = function TBody(props) {
33
- return /*#__PURE__*/_react["default"].createElement("tbody", props);
34
- };
35
-
36
- var Tr = function Tr(props) {
37
- var className = props.className,
38
- restProps = _objectWithoutProperties(props, _excluded);
39
-
40
- return /*#__PURE__*/_react["default"].createElement("tr", _extends({
41
- className: (0, _classnames["default"])(_tableModule["default"].row, className)
42
- }, restProps));
43
- };
44
-
45
- Tr.defaultProps = {
46
- className: ''
47
- };
48
- Tr.propTypes = {
49
- /** Adopted child class name */
50
- className: _propTypes["default"].string
51
- };
52
-
53
- var Th = function Th(props) {
54
- var className = props.className,
55
- restProps = _objectWithoutProperties(props, _excluded2);
56
-
57
- return /*#__PURE__*/_react["default"].createElement("th", _extends({
58
- className: (0, _classnames["default"])(_tableModule["default"].cell, className)
59
- }, restProps));
60
- };
61
-
62
- Th.defaultProps = {
63
- className: ''
64
- };
65
- Th.propTypes = {
66
- /** Adopted child class name */
67
- className: _propTypes["default"].string
68
- };
69
-
70
- var Td = function Td(props) {
71
- var className = props.className,
72
- restProps = _objectWithoutProperties(props, _excluded3);
73
-
74
- return /*#__PURE__*/_react["default"].createElement("td", _extends({
75
- className: (0, _classnames["default"])(_tableModule["default"].cell, className)
76
- }, restProps));
77
- };
78
-
79
- Td.defaultProps = {
80
- className: ''
81
- };
82
- Td.propTypes = {
83
- /** Adopted child class name */
84
- className: _propTypes["default"].string
85
- };
86
-
87
18
  var Table = function Table(_ref) {
88
19
  var className = _ref.className,
89
20
  emptyMessage = _ref.emptyMessage,
@@ -104,11 +35,11 @@ var Table = function Table(_ref) {
104
35
  };
105
36
 
106
37
  exports.Table = Table;
107
- Table.THead = THead;
108
- Table.TBody = TBody;
109
- Table.Th = Th;
110
- Table.Tr = Tr;
111
- Table.Td = Td;
38
+ Table.THead = 'thead';
39
+ Table.TBody = 'tbody';
40
+ Table.Tr = 'tr';
41
+ Table.Th = 'th';
42
+ Table.Td = 'td';
112
43
  Table.defaultProps = {
113
44
  className: '',
114
45
  emptyMessage: 'No entries found.',
@@ -4,48 +4,51 @@
4
4
  border-spacing: 0;
5
5
  empty-cells: show;
6
6
  background: var(--color-background);
7
+ text-align: left;
7
8
  }
8
9
 
9
- .cell {
10
+ .root th,
11
+ .root td {
10
12
  border: 1px solid var(--color-outline);
11
13
  border-width: 1px 0 0;
12
- padding: var(--space-small) var(--space-small);
13
- text-align: left;
14
+ padding: var(--space-small);
14
15
  }
15
16
 
16
- .root thead .cell {
17
+ .root thead th {
17
18
  border-width: 0 0 1px;
18
19
  text-transform: uppercase;
19
20
  vertical-align: top;
20
21
  background: var(--color-highlight);
21
22
  }
22
23
 
23
- .root thead .cell:empty {
24
+ .root thead th:empty {
24
25
  display: none;
25
26
  }
26
27
 
27
- .root tbody .cell {
28
+ .root tbody th {
28
29
  font-weight: normal;
29
30
  }
30
31
 
31
- .root tbody tr:first-child .cell {
32
+ .root tbody tr:first-child td,
33
+ .root tbody tr:first-child th {
32
34
  border-top: 0;
33
35
  }
34
36
 
35
- .root tbody .cell a {
37
+ .root tbody td a {
36
38
  color: inherit;
37
39
  text-decoration: none;
38
40
  }
39
41
 
40
- .root tbody .cell a:hover,
41
- .root tbody .cell a:focus,
42
- .root tbody .cell a:active
42
+ .root tbody td a:hover,
43
+ .root tbody td a:focus,
44
+ .root tbody td a:active
43
45
  {
44
46
  color: var(--color-primary);
45
47
  text-decoration: underline;
46
48
  }
47
49
 
48
- .root tbody tr:hover .cell {
50
+ .root tbody tr:hover th,
51
+ .root tbody tr:hover td {
49
52
  background-color: var(--color-highlight-warning);
50
53
  }
51
54
 
@@ -64,21 +67,21 @@
64
67
  border-radius: var(--table-radius);
65
68
  }
66
69
 
67
- .outline thead tr:first-child .cell:first-child,
68
- .outline tbody:first-child tr:first-child .cell:first-child {
70
+ .outline thead:first-child tr:first-child th:first-child,
71
+ .outline tbody:first-child tr:first-child td:first-child {
69
72
  border-top-left-radius: var(--table-radius);
70
73
  }
71
74
 
72
- .outline thead tr:first-child .cell:last-child,
73
- .outline tbody:first-child tr:first-child .cell:last-child {
75
+ .outline thead tr:first-child th:last-child,
76
+ .outline tbody:first-child tr:first-child td:last-child {
74
77
  border-top-right-radius: var(--table-radius);
75
78
  }
76
79
 
77
- .outline tbody:last-child tr:last-child .cell:first-child {
80
+ .outline tbody:last-child tr:last-child td:first-child {
78
81
  border-bottom-left-radius: var(--table-radius);
79
82
  }
80
83
 
81
- .outline tbody:last-child tr:last-child .cell:last-child {
84
+ .outline tbody:last-child tr:last-child td:last-child {
82
85
  border-bottom-right-radius: var(--table-radius);
83
86
  }
84
87
 
@@ -87,7 +90,8 @@
87
90
  }
88
91
 
89
92
  /* compact variation */
90
- .compact .cell {
93
+ .compact td,
94
+ .compact th {
91
95
  padding-top: var(--space-xsmall);
92
96
  padding-bottom: var(--space-xsmall);
93
97
  }
@@ -71,7 +71,7 @@ stories.add('with custom content and attributes', function () {
71
71
  style: {
72
72
  textDecoration: 'underline'
73
73
  }
74
- }, "Col C(undefiner)"))), /*#__PURE__*/_react["default"].createElement(TBody, null, /*#__PURE__*/_react["default"].createElement(Tr, null, /*#__PURE__*/_react["default"].createElement(Th, null, /*#__PURE__*/_react["default"].createElement("strong", null, "row 1")), /*#__PURE__*/_react["default"].createElement(Td, {
74
+ }, "Col C(underline)"))), /*#__PURE__*/_react["default"].createElement(TBody, null, /*#__PURE__*/_react["default"].createElement(Tr, null, /*#__PURE__*/_react["default"].createElement(Th, null, /*#__PURE__*/_react["default"].createElement("strong", null, "row 1")), /*#__PURE__*/_react["default"].createElement(Td, {
75
75
  style: {
76
76
  textAlign: 'right'
77
77
  }
@@ -16,6 +16,7 @@
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));
19
+ will-change: filter;
19
20
  font-size: var(--size-xsmall);
20
21
  line-height: var(--space-small);
21
22
  }