@bundle-stats/ui 3.3.0-alpha.1 → 3.4.0-alpha.3

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 (190) hide show
  1. package/CHANGELOG.md +65 -13
  2. package/lib/app/app.js +137 -102
  3. package/lib/app/app.module.css +11 -4
  4. package/lib/app/header/header.js +1 -10
  5. package/lib/components/asset-info/asset-info.module.css +1 -0
  6. package/lib/components/bundle-assets/bundle-assets.js +104 -52
  7. package/lib/components/bundle-assets/bundle-assets.module.css +24 -26
  8. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js +13 -3
  9. package/lib/components/bundle-modules/bundle-modules.js +68 -68
  10. package/lib/components/bundle-modules/bundle-modules.module.css +11 -2
  11. package/lib/components/bundle-modules/bundle-modules.utils.js +14 -10
  12. package/lib/components/bundle-modules/index.js +4 -4
  13. package/lib/components/bundle-packages/bundle-packages.js +100 -44
  14. package/lib/components/bundle-packages/bundle-packages.module.css +17 -21
  15. package/lib/components/delta/delta.module.css +1 -0
  16. package/lib/components/job-header/job-header.js +3 -1
  17. package/lib/components/job-header/job-header.module.css +6 -8
  18. package/lib/components/jobs-header/jobs-header.module.css +5 -0
  19. package/lib/components/metrics-table/metrics-table.js +72 -59
  20. package/lib/components/metrics-table/metrics-table.module.css +18 -7
  21. package/lib/components/metrics-table-search/metrics-table-search.module.css +5 -4
  22. package/lib/components/metrics-table-title/metrics-table-title.js +9 -7
  23. package/lib/components/metrics-table-title/metrics-table-title.module.css +2 -0
  24. package/lib/components/module-info/module-info.js +2 -2
  25. package/lib/components/module-info/module-info.module.css +1 -0
  26. package/lib/components/summary/summary.js +1 -1
  27. package/lib/components/summary-item/summary-item.js +15 -18
  28. package/lib/components/summary-item/summary-item.module.css +1 -23
  29. package/lib/components/total-size-type-title/total-size-type-title.js +7 -3
  30. package/lib/constants.js +1 -1
  31. package/lib/css/default.css +14 -3
  32. package/lib/css/variables.css +17 -17
  33. package/lib/hooks/search-params.js +31 -31
  34. package/lib/layout/box/box.module.css +9 -0
  35. package/lib/layout/footer/footer.module.css +1 -1
  36. package/lib/layout/index.js +8 -0
  37. package/lib/layout/separator.js +48 -0
  38. package/lib/layout/separator.module.css +5 -0
  39. package/lib/ui/dropdown/dropdown.js +21 -26
  40. package/lib/ui/dropdown/dropdown.module.css +11 -12
  41. package/lib/ui/dropdown/dropdown.stories.js +2 -9
  42. package/lib/ui/empty-set/empty-set.js +5 -4
  43. package/lib/ui/empty-set/empty-set.module.css +2 -2
  44. package/lib/ui/filters/filters.container.js +1 -1
  45. package/lib/ui/filters/filters.js +22 -7
  46. package/lib/ui/filters/filters.module.css +3 -3
  47. package/lib/ui/horizontal-bar-chart/horizontal-bar-chart.js +1 -1
  48. package/lib/ui/hover-card/hover-card.js +102 -0
  49. package/lib/ui/hover-card/hover-card.module.css +29 -0
  50. package/lib/ui/hover-card/hover-card.stories.js +56 -0
  51. package/lib/ui/hover-card/index.js +18 -0
  52. package/lib/ui/icon/icon.js +6 -6
  53. package/lib/ui/icon/icon.module.css +1 -0
  54. package/lib/ui/index.js +8 -8
  55. package/lib/ui/table/table.js +5 -74
  56. package/lib/ui/table/table.module.css +41 -25
  57. package/lib/ui/table/table.stories.js +1 -1
  58. package/lib/ui/{popover → tag}/index.js +4 -4
  59. package/lib/ui/tag/tag.js +72 -0
  60. package/lib/ui/tag/tag.module.css +55 -0
  61. package/lib/ui/tag/tag.stories.js +38 -0
  62. package/lib/ui/tooltip/tooltip.js +10 -9
  63. package/lib/ui/tooltip/tooltip.module.css +2 -1
  64. package/lib-esm/app/app.js +132 -102
  65. package/lib-esm/app/app.module.css +11 -4
  66. package/lib-esm/app/header/header.js +1 -9
  67. package/lib-esm/components/asset-info/asset-info.module.css +1 -0
  68. package/lib-esm/components/bundle-assets/bundle-assets.js +97 -56
  69. package/lib-esm/components/bundle-assets/bundle-assets.module.css +24 -26
  70. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +7 -3
  71. package/lib-esm/components/bundle-modules/bundle-modules.js +50 -51
  72. package/lib-esm/components/bundle-modules/bundle-modules.module.css +11 -2
  73. package/lib-esm/components/bundle-modules/bundle-modules.utils.js +14 -6
  74. package/lib-esm/components/bundle-modules/index.js +5 -3
  75. package/lib-esm/components/bundle-packages/bundle-packages.js +88 -41
  76. package/lib-esm/components/bundle-packages/bundle-packages.module.css +17 -21
  77. package/lib-esm/components/delta/delta.module.css +1 -0
  78. package/lib-esm/components/job-header/job-header.js +2 -1
  79. package/lib-esm/components/job-header/job-header.module.css +6 -8
  80. package/lib-esm/components/jobs-header/jobs-header.module.css +5 -0
  81. package/lib-esm/components/metrics-table/metrics-table.js +61 -53
  82. package/lib-esm/components/metrics-table/metrics-table.module.css +18 -7
  83. package/lib-esm/components/metrics-table-search/metrics-table-search.module.css +5 -4
  84. package/lib-esm/components/metrics-table-title/metrics-table-title.js +8 -7
  85. package/lib-esm/components/metrics-table-title/metrics-table-title.module.css +2 -0
  86. package/lib-esm/components/module-info/module-info.js +2 -2
  87. package/lib-esm/components/module-info/module-info.module.css +1 -0
  88. package/lib-esm/components/summary/summary.js +1 -1
  89. package/lib-esm/components/summary-item/summary-item.js +14 -18
  90. package/lib-esm/components/summary-item/summary-item.module.css +1 -23
  91. package/lib-esm/components/total-size-type-title/total-size-type-title.js +6 -3
  92. package/lib-esm/constants.js +1 -1
  93. package/lib-esm/css/default.css +14 -3
  94. package/lib-esm/css/variables.css +17 -17
  95. package/lib-esm/hooks/search-params.js +27 -28
  96. package/lib-esm/layout/box/box.module.css +9 -0
  97. package/lib-esm/layout/footer/footer.module.css +1 -1
  98. package/lib-esm/layout/index.js +1 -0
  99. package/lib-esm/layout/separator.js +28 -0
  100. package/lib-esm/layout/separator.module.css +5 -0
  101. package/lib-esm/ui/dropdown/dropdown.js +20 -25
  102. package/lib-esm/ui/dropdown/dropdown.module.css +11 -12
  103. package/lib-esm/ui/dropdown/dropdown.stories.js +2 -7
  104. package/lib-esm/ui/empty-set/empty-set.js +4 -4
  105. package/lib-esm/ui/empty-set/empty-set.module.css +2 -2
  106. package/lib-esm/ui/filters/filters.js +20 -5
  107. package/lib-esm/ui/filters/filters.module.css +3 -3
  108. package/lib-esm/ui/hover-card/hover-card.js +83 -0
  109. package/lib-esm/ui/hover-card/hover-card.module.css +29 -0
  110. package/lib-esm/ui/hover-card/hover-card.stories.js +35 -0
  111. package/lib-esm/ui/hover-card/index.js +1 -0
  112. package/lib-esm/ui/icon/icon.js +3 -3
  113. package/lib-esm/ui/icon/icon.module.css +1 -0
  114. package/lib-esm/ui/index.js +1 -1
  115. package/lib-esm/ui/table/table.js +5 -65
  116. package/lib-esm/ui/table/table.module.css +41 -25
  117. package/lib-esm/ui/table/table.stories.js +1 -1
  118. package/lib-esm/ui/tag/index.js +1 -0
  119. package/lib-esm/ui/tag/tag.js +45 -0
  120. package/lib-esm/ui/tag/tag.module.css +55 -0
  121. package/lib-esm/ui/tag/tag.stories.js +23 -0
  122. package/lib-esm/ui/tooltip/tooltip.js +10 -9
  123. package/lib-esm/ui/tooltip/tooltip.module.css +2 -1
  124. package/package.json +33 -31
  125. package/src/app/app.jsx +142 -145
  126. package/src/app/app.module.css +11 -4
  127. package/src/app/header/header.jsx +0 -10
  128. package/src/components/asset-info/asset-info.module.css +1 -0
  129. package/src/components/bundle-assets/bundle-assets.jsx +85 -31
  130. package/src/components/bundle-assets/bundle-assets.module.css +24 -26
  131. package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.jsx +2 -0
  132. package/src/components/bundle-modules/bundle-modules.jsx +53 -36
  133. package/src/components/bundle-modules/bundle-modules.module.css +11 -2
  134. package/src/components/bundle-modules/bundle-modules.utils.js +16 -4
  135. package/src/components/bundle-modules/index.jsx +3 -0
  136. package/src/components/bundle-packages/bundle-packages.jsx +89 -39
  137. package/src/components/bundle-packages/bundle-packages.module.css +17 -21
  138. package/src/components/delta/delta.module.css +1 -0
  139. package/src/components/job-header/job-header.jsx +2 -1
  140. package/src/components/job-header/job-header.module.css +6 -8
  141. package/src/components/jobs-header/jobs-header.module.css +5 -0
  142. package/src/components/metrics-table/metrics-table.jsx +53 -44
  143. package/src/components/metrics-table/metrics-table.module.css +18 -7
  144. package/src/components/metrics-table-search/metrics-table-search.module.css +5 -4
  145. package/src/components/metrics-table-title/metrics-table-title.jsx +20 -21
  146. package/src/components/metrics-table-title/metrics-table-title.module.css +2 -0
  147. package/src/components/module-info/module-info.jsx +3 -7
  148. package/src/components/module-info/module-info.module.css +1 -0
  149. package/src/components/summary/summary.jsx +1 -1
  150. package/src/components/summary-item/summary-item.jsx +21 -27
  151. package/src/components/summary-item/summary-item.module.css +1 -23
  152. package/src/components/total-size-type-title/total-size-type-title.jsx +6 -9
  153. package/src/constants.js +1 -1
  154. package/src/css/default.css +14 -3
  155. package/src/css/variables.css +17 -17
  156. package/src/hooks/search-params.js +42 -33
  157. package/src/layout/box/box.module.css +9 -0
  158. package/src/layout/footer/footer.module.css +1 -1
  159. package/src/layout/index.js +1 -0
  160. package/src/layout/separator.jsx +25 -0
  161. package/src/layout/separator.module.css +5 -0
  162. package/src/ui/dropdown/dropdown.jsx +16 -22
  163. package/src/ui/dropdown/dropdown.module.css +11 -12
  164. package/src/ui/empty-set/empty-set.jsx +25 -21
  165. package/src/ui/empty-set/empty-set.module.css +2 -2
  166. package/src/ui/filters/filters.jsx +64 -53
  167. package/src/ui/filters/filters.module.css +3 -3
  168. package/src/ui/hover-card/hover-card.jsx +73 -0
  169. package/src/ui/hover-card/hover-card.module.css +29 -0
  170. package/src/ui/hover-card/index.js +1 -0
  171. package/src/ui/icon/icon.jsx +11 -7
  172. package/src/ui/icon/icon.module.css +1 -0
  173. package/src/ui/index.js +1 -1
  174. package/src/ui/table/table.jsx +5 -52
  175. package/src/ui/table/table.module.css +41 -25
  176. package/src/ui/tag/index.js +1 -0
  177. package/src/ui/tag/tag.jsx +49 -0
  178. package/src/ui/tag/tag.module.css +55 -0
  179. package/src/ui/tooltip/tooltip.jsx +10 -14
  180. package/src/ui/tooltip/tooltip.module.css +2 -1
  181. package/lib/ui/popover/popover.js +0 -92
  182. package/lib/ui/popover/popover.module.css +0 -66
  183. package/lib/ui/popover/popover.stories.js +0 -26
  184. package/lib-esm/ui/popover/index.js +0 -1
  185. package/lib-esm/ui/popover/popover.js +0 -71
  186. package/lib-esm/ui/popover/popover.module.css +0 -66
  187. package/lib-esm/ui/popover/popover.stories.js +0 -14
  188. package/src/ui/popover/index.js +0 -1
  189. package/src/ui/popover/popover.jsx +0 -79
  190. package/src/ui/popover/popover.module.css +0 -66
@@ -1,54 +1,54 @@
1
1
  .root {
2
2
  border-width: 0;
3
3
  width: 100%;
4
- border-collapse: collapse;
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
- }
15
-
16
- tr:last-child .cell {
17
- border-bottom-width: 1px;
14
+ padding: var(--space-small);
18
15
  }
19
16
 
20
- .root thead .cell {
21
- border-width: 0 0 2px;
17
+ .root thead th {
18
+ border-width: 0 0 1px;
22
19
  text-transform: uppercase;
23
20
  vertical-align: top;
21
+ background: var(--color-highlight);
24
22
  }
25
23
 
26
- .root thead .cell:empty {
24
+ .root thead th:empty {
27
25
  display: none;
28
26
  }
29
27
 
30
- .root tbody .cell {
28
+ .root tbody th {
31
29
  font-weight: normal;
32
30
  }
33
31
 
34
- .root tbody .cell a {
32
+ .root tbody tr:first-child td,
33
+ .root tbody tr:first-child th {
34
+ border-top: 0;
35
+ }
36
+
37
+ .root tbody td a {
35
38
  color: inherit;
36
39
  text-decoration: none;
37
40
  }
38
41
 
39
- .root tbody .cell a:hover,
40
- .root tbody .cell a:focus,
41
- .root tbody .cell a:active
42
+ .root tbody td a:hover,
43
+ .root tbody td a:focus,
44
+ .root tbody td a:active
42
45
  {
43
46
  color: var(--color-primary);
44
47
  text-decoration: underline;
45
48
  }
46
49
 
47
- .root tbody tr:nth-child(odd) .cell {
48
- background-color: var(--color-highlight);
49
- }
50
-
51
- .root tbody tr:hover .cell {
50
+ .root tbody tr:hover th,
51
+ .root tbody tr:hover td {
52
52
  background-color: var(--color-highlight-warning);
53
53
  }
54
54
 
@@ -62,12 +62,27 @@ tr:last-child .cell {
62
62
 
63
63
  /* outline variation */
64
64
  .outline {
65
+ --table-radius: var(--radius-medium);
65
66
  border: 1px solid var(--color-outline);
66
- border-width: 0 1px;
67
+ border-radius: var(--table-radius);
68
+ }
69
+
70
+ .outline thead:first-child tr:first-child th:first-child,
71
+ .outline tbody:first-child tr:first-child td:first-child {
72
+ border-top-left-radius: var(--table-radius);
73
+ }
74
+
75
+ .outline thead tr:first-child th:last-child,
76
+ .outline tbody:first-child tr:first-child td:last-child {
77
+ border-top-right-radius: var(--table-radius);
78
+ }
79
+
80
+ .outline tbody:last-child tr:last-child td:first-child {
81
+ border-bottom-left-radius: var(--table-radius);
67
82
  }
68
83
 
69
- .outline thead tr:first-child .cell {
70
- border-top-width: 1px;
84
+ .outline tbody:last-child tr:last-child td:last-child {
85
+ border-bottom-right-radius: var(--table-radius);
71
86
  }
72
87
 
73
88
  .outline.empty {
@@ -75,7 +90,8 @@ tr:last-child .cell {
75
90
  }
76
91
 
77
92
  /* compact variation */
78
- .compact .cell {
93
+ .compact td,
94
+ .compact th {
79
95
  padding-top: var(--space-xsmall);
80
96
  padding-bottom: var(--space-xsmall);
81
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
  }
@@ -4,15 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
 
7
- var _popover = require("./popover");
7
+ var _tag = require("./tag");
8
8
 
9
- Object.keys(_popover).forEach(function (key) {
9
+ Object.keys(_tag).forEach(function (key) {
10
10
  if (key === "default" || key === "__esModule") return;
11
- if (key in exports && exports[key] === _popover[key]) return;
11
+ if (key in exports && exports[key] === _tag[key]) return;
12
12
  Object.defineProperty(exports, key, {
13
13
  enumerable: true,
14
14
  get: function get() {
15
- return _popover[key];
15
+ return _tag[key];
16
16
  }
17
17
  });
18
18
  });
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Tag = exports.SIZES = exports.KINDS = 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 _tagModule = _interopRequireDefault(require("./tag.module.css"));
15
+
16
+ var _excluded = ["className", "as", "kind", "size"];
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 KINDS = {
27
+ DEFAULT: 'default',
28
+ SUCCESS: 'success',
29
+ INFO: 'info',
30
+ WARNING: 'warning',
31
+ DANGER: 'danger'
32
+ };
33
+ exports.KINDS = KINDS;
34
+ var SIZES = {
35
+ SMALL: 'small',
36
+ MEDIUM: 'medium',
37
+ LARGE: 'large'
38
+ };
39
+ exports.SIZES = SIZES;
40
+
41
+ var Tag = function Tag(props) {
42
+ var _props$className = props.className,
43
+ className = _props$className === void 0 ? '' : _props$className,
44
+ _props$as = props.as,
45
+ Component = _props$as === void 0 ? 'span' : _props$as,
46
+ _props$kind = props.kind,
47
+ kind = _props$kind === void 0 ? KINDS.DEFAULT : _props$kind,
48
+ _props$size = props.size,
49
+ size = _props$size === void 0 ? SIZES.MEDIUM : _props$size,
50
+ restProps = _objectWithoutProperties(props, _excluded);
51
+
52
+ var rootClassName = (0, _classnames["default"])(_tagModule["default"].root, className, _tagModule["default"][kind], _tagModule["default"][size]);
53
+ return /*#__PURE__*/_react["default"].createElement(Component, _extends({
54
+ className: rootClassName
55
+ }, restProps));
56
+ };
57
+
58
+ exports.Tag = Tag;
59
+ Tag.propTypes = {
60
+ className: _propTypes["default"].string,
61
+ as: _propTypes["default"].elementType,
62
+ kind: _propTypes["default"].oneOf(Object.values(KINDS)),
63
+ size: _propTypes["default"].oneOf(Object.values(SIZES))
64
+ };
65
+ Tag.defaultProps = {
66
+ className: '',
67
+ as: 'span',
68
+ kind: KINDS.DEFAULT,
69
+ size: SIZES.MEDIUM
70
+ };
71
+ Tag.KINDS = KINDS;
72
+ Tag.SIZES = SIZES;
@@ -0,0 +1,55 @@
1
+ .root {
2
+ display: inline-block;
3
+ font-family: var(--font-family);
4
+ font-weight: bold;
5
+ background: var(--color-text-light);
6
+ color: var(--color-light);
7
+ text-align: center;
8
+ text-transform: uppercase;
9
+ }
10
+
11
+ /** Kind variation */
12
+ .success {
13
+ background: var(--color-success);
14
+ }
15
+
16
+ .info {
17
+ background: var(--color-info);
18
+ }
19
+
20
+ .warning {
21
+ background: var(--color-warning-dark);
22
+ }
23
+
24
+ .danger {
25
+ background: var(--color-danger);
26
+ }
27
+
28
+ /** Size variation */
29
+ /** default: medium */
30
+ .root {
31
+ border-radius: var(--radius-medium);
32
+ padding: var(--space-xxxsmall);
33
+ min-width: var(--space-small);
34
+ height: var(--space-small);
35
+ font-size: 9px;
36
+ line-height: 1;
37
+ }
38
+
39
+ .small {
40
+ border-radius: var(--radius-small);
41
+ padding: calc(var(--space-xxxsmall) / 2);
42
+ height: var(--space-xsmall);
43
+ min-width: var(--space-xsmall);
44
+ font-size: 8px;
45
+ line-height: 1;
46
+ }
47
+
48
+ .large {
49
+ border-radius: var(--radius-large);
50
+ padding: var(--space-xxxsmall) var(--space-xxsmall);
51
+ min-width: var(--space-medium);
52
+ height: var(--space-medium);
53
+ font-size: 12px;
54
+ line-height: var(--space-small);
55
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.OneLetter = exports.Default = void 0;
7
+
8
+ var _ = require(".");
9
+
10
+ var _default = {
11
+ title: 'UI/Tag',
12
+ component: _.Tag,
13
+ argTypes: {
14
+ kind: {
15
+ control: 'select',
16
+ options: Object.values(_.Tag.KINDS)
17
+ },
18
+ size: {
19
+ control: 'select',
20
+ options: Object.values(_.Tag.SIZES)
21
+ }
22
+ },
23
+ args: {
24
+ children: 'tag'
25
+ }
26
+ };
27
+ exports["default"] = _default;
28
+
29
+ var Default = _.Tag.bind();
30
+
31
+ exports.Default = Default;
32
+
33
+ var OneLetter = _.Tag.bind();
34
+
35
+ exports.OneLetter = OneLetter;
36
+ OneLetter.args = {
37
+ children: 'd'
38
+ };
@@ -11,7 +11,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
- var _Tooltip = require("reakit/Tooltip");
14
+ var _tooltip = require("ariakit/tooltip");
15
15
 
16
16
  var _tooltipModule = _interopRequireDefault(require("./tooltip.module.css"));
17
17
 
@@ -34,22 +34,23 @@ var Tooltip = function Tooltip(props) {
34
34
  darkMode = props.darkMode,
35
35
  restProps = _objectWithoutProperties(props, _excluded);
36
36
 
37
- var rootClassName = (0, _classnames["default"])(_tooltipModule["default"].root, className);
38
- var tooltipProps = (0, _Tooltip.useTooltipState)({
39
- baseId: process.env.NODE_ENV === 'test' && 'id-test',
37
+ var tooltip = (0, _tooltip.useTooltipState)({
40
38
  placement: 'top'
41
39
  });
42
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tooltip.TooltipReference, _extends({
40
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_tooltip.TooltipAnchor, _extends({
43
41
  as: Component,
44
- className: rootClassName
42
+ className: (0, _classnames["default"])(_tooltipModule["default"].root, className),
43
+ state: tooltip
45
44
  }, ref ? {
46
45
  ref: ref
47
- } : {}, restProps, tooltipProps), children), title && /*#__PURE__*/_react["default"].createElement(_Tooltip.Tooltip, _extends({}, tooltipProps, {
46
+ } : {}, restProps), children), title && /*#__PURE__*/_react["default"].createElement(_tooltip.Tooltip, {
47
+ state: tooltip,
48
48
  className: (0, _classnames["default"])(_tooltipModule["default"].tooltip, darkMode && _tooltipModule["default"].tooltipDarkMode)
49
- }), /*#__PURE__*/_react["default"].createElement(_Tooltip.TooltipArrow, _extends({}, tooltipProps, {
49
+ }, /*#__PURE__*/_react["default"].createElement(_tooltip.TooltipArrow, {
50
+ state: tooltip,
50
51
  className: _tooltipModule["default"].arrow,
51
52
  size: 12
52
- })), title));
53
+ }), title));
53
54
  };
54
55
 
55
56
  exports.Tooltip = Tooltip;
@@ -12,10 +12,11 @@
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-medium);
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
  }
@@ -1,6 +1,6 @@
1
1
  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); }
2
2
 
3
- import React, { useEffect, useMemo } from 'react';
3
+ import React, { useContext, useEffect, useMemo } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { HashRouter, NavLink, Route, Switch, useLocation } from 'react-router-dom';
6
6
  import { COMPONENT } from '@bundle-stats/utils';
@@ -60,19 +60,133 @@ Layout.defaultProps = {
60
60
  jobs: null,
61
61
  version: null
62
62
  };
63
+ const JobsContext = /*#__PURE__*/React.createContext({
64
+ jobs: []
65
+ });
63
66
 
64
- const AppComponent = _ref2 => {
65
- var _insights$webpack;
66
-
67
+ const JobsProvider = _ref2 => {
67
68
  let {
68
- version,
69
- jobs
69
+ jobs,
70
+ ...restProps
70
71
  } = _ref2;
72
+ const value = useMemo(() => ({
73
+ jobs
74
+ }), [jobs]);
75
+ return /*#__PURE__*/React.createElement(JobsContext.Provider, _extends({
76
+ value: value
77
+ }, restProps));
78
+ };
79
+
80
+ JobsProvider.propTypes = {
81
+ jobs: PropTypes.arrayOf(PropTypes.object).isRequired
82
+ };
83
+
84
+ const OverviewContent = () => {
85
+ var _jobs$0$insights, _jobs$0$insights$webp;
86
+
87
+ const {
88
+ jobs
89
+ } = useContext(JobsContext);
90
+ const {
91
+ duplicatePackagesCount
92
+ } = jobs[0].summary.webpack;
93
+ const duplicatePackagesInsights = Boolean(duplicatePackagesCount.current || duplicatePackagesCount.baseline);
94
+ return /*#__PURE__*/React.createElement(Stack, {
95
+ space: "medium"
96
+ }, duplicatePackagesInsights && /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
97
+ space: "small"
98
+ }, /*#__PURE__*/React.createElement(DuplicatePackagesWarning, {
99
+ duplicatePackagesCount: duplicatePackagesCount,
100
+ showDelta: jobs.length > 1
101
+ }), /*#__PURE__*/React.createElement(BudgetInsights, {
102
+ source: "webpack",
103
+ budgets: (_jobs$0$insights = jobs[0].insights) == null ? void 0 : (_jobs$0$insights$webp = _jobs$0$insights.webpack) == null ? void 0 : _jobs$0$insights$webp.budgets
104
+ }))), /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
105
+ space: "small"
106
+ }, /*#__PURE__*/React.createElement(TotalSizeTypeTitle, null), /*#__PURE__*/React.createElement(BundleAssetsTotalsChartBars, {
107
+ jobs: jobs
108
+ }), /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
109
+ jobs: jobs,
110
+ outline: true
111
+ }))));
112
+ };
113
+
114
+ const AssetsContent = () => {
115
+ var _jobs$, _jobs$0$insights2, _jobs$0$insights2$web;
116
+
71
117
  const [bundleStatsState, bundleStatsSetState] = useComponentQueryState(COMPONENT.BUNDLE_ASSETS);
72
- const [bundlePackagesState, bundlePackagesSetState] = useComponentQueryState(COMPONENT.BUNDLE_PACKAGES);
118
+ const {
119
+ jobs
120
+ } = useContext(JobsContext);
121
+ return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
122
+ space: "medium"
123
+ }, /*#__PURE__*/React.createElement(Summary, {
124
+ keys: METRICS_WEBPACK_ASSETS,
125
+ data: jobs == null ? void 0 : (_jobs$ = jobs[0]) == null ? void 0 : _jobs$.summary,
126
+ budgets: (_jobs$0$insights2 = jobs[0].insights) == null ? void 0 : (_jobs$0$insights2$web = _jobs$0$insights2.webpack) == null ? void 0 : _jobs$0$insights2$web.budgets,
127
+ showSummaryItemDelta: (jobs == null ? void 0 : jobs.length) !== 1
128
+ }), /*#__PURE__*/React.createElement(Box, {
129
+ outline: true
130
+ }, /*#__PURE__*/React.createElement(BundleAssets, _extends({
131
+ jobs: jobs,
132
+ setState: bundleStatsSetState
133
+ }, bundleStatsState)))));
134
+ };
135
+
136
+ const ModulesContent = () => {
137
+ var _jobs$2, _jobs$0$insights3, _jobs$0$insights3$web;
138
+
73
139
  const [bundleModulesState, bundleModulesSetState] = useComponentQueryState(COMPONENT.BUNDLE_MODULES);
140
+ const {
141
+ jobs
142
+ } = useContext(JobsContext);
143
+ return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
144
+ space: "medium"
145
+ }, /*#__PURE__*/React.createElement(Summary, {
146
+ keys: METRICS_WEBPACK_MODULES,
147
+ data: jobs == null ? void 0 : (_jobs$2 = jobs[0]) == null ? void 0 : _jobs$2.summary,
148
+ budgets: (_jobs$0$insights3 = jobs[0].insights) == null ? void 0 : (_jobs$0$insights3$web = _jobs$0$insights3.webpack) == null ? void 0 : _jobs$0$insights3$web.budgets,
149
+ showSummaryItemDelta: (jobs == null ? void 0 : jobs.length) !== 1
150
+ }), /*#__PURE__*/React.createElement(Box, {
151
+ outline: true
152
+ }, /*#__PURE__*/React.createElement(BundleModules, _extends({
153
+ jobs: jobs,
154
+ setState: bundleModulesSetState
155
+ }, bundleModulesState)))));
156
+ };
157
+
158
+ const PackagesContent = () => {
159
+ var _jobs$3, _jobs$0$insights4, _jobs$0$insights4$web;
160
+
161
+ const [bundlePackagesState, bundlePackagesSetState] = useComponentQueryState(COMPONENT.BUNDLE_PACKAGES);
162
+ const {
163
+ jobs
164
+ } = useContext(JobsContext);
165
+ return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
166
+ space: "medium"
167
+ }, /*#__PURE__*/React.createElement(Summary, {
168
+ keys: METRICS_WEBPACK_PACKAGES,
169
+ data: jobs == null ? void 0 : (_jobs$3 = jobs[0]) == null ? void 0 : _jobs$3.summary,
170
+ budgets: (_jobs$0$insights4 = jobs[0].insights) == null ? void 0 : (_jobs$0$insights4$web = _jobs$0$insights4.webpack) == null ? void 0 : _jobs$0$insights4$web.budgets,
171
+ showSummaryItemDelta: (jobs == null ? void 0 : jobs.length) !== 1
172
+ }), /*#__PURE__*/React.createElement(Box, {
173
+ outline: true
174
+ }, /*#__PURE__*/React.createElement(BundlePackages, _extends({
175
+ jobs: jobs
176
+ }, bundlePackagesState, {
177
+ setState: bundlePackagesSetState
178
+ })))));
179
+ };
180
+
181
+ const AppComponent = _ref3 => {
182
+ var _jobs$0$insights5, _jobs$0$insights5$web;
183
+
184
+ let {
185
+ version,
186
+ jobs
187
+ } = _ref3;
74
188
 
75
- if (jobs.length === 0) {
189
+ if ((jobs == null ? void 0 : jobs.length) === 0) {
76
190
  return /*#__PURE__*/React.createElement(Layout, {
77
191
  version: version
78
192
  }, /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement("div", {
@@ -80,15 +194,9 @@ const AppComponent = _ref2 => {
80
194
  }, I18N.NO_DATA)));
81
195
  }
82
196
 
83
- const {
84
- summary,
85
- insights
86
- } = useMemo(() => jobs[0], jobs);
87
- const {
88
- duplicatePackagesCount
89
- } = summary.webpack;
90
- const duplicatePackagesInsights = Boolean(duplicatePackagesCount.current || duplicatePackagesCount.baseline);
91
- return /*#__PURE__*/React.createElement(Layout, {
197
+ return /*#__PURE__*/React.createElement(JobsProvider, {
198
+ jobs: jobs
199
+ }, /*#__PURE__*/React.createElement(Layout, {
92
200
  jobs: jobs,
93
201
  version: version
94
202
  }, /*#__PURE__*/React.createElement(Container, {
@@ -96,8 +204,8 @@ const AppComponent = _ref2 => {
96
204
  }, /*#__PURE__*/React.createElement(Summary, {
97
205
  size: "large",
98
206
  keys: METRICS_WEBPACK_GENERAL,
99
- data: summary,
100
- budgets: insights == null ? void 0 : (_insights$webpack = insights.webpack) == null ? void 0 : _insights$webpack.budgets,
207
+ data: jobs[0].summary,
208
+ budgets: (_jobs$0$insights5 = jobs[0].insights) == null ? void 0 : (_jobs$0$insights5$web = _jobs$0$insights5.webpack) == null ? void 0 : _jobs$0$insights5$web.budgets,
101
209
  showSummaryItemDelta: jobs.length !== 1
102
210
  })), /*#__PURE__*/React.createElement(Container, {
103
211
  className: css.tabsContainer
@@ -124,98 +232,20 @@ const AppComponent = _ref2 => {
124
232
  }, /*#__PURE__*/React.createElement(Switch, null, /*#__PURE__*/React.createElement(Route, {
125
233
  exact: true,
126
234
  path: URLS.ASSETS,
127
- render: _ref3 => {
128
- var _insights$webpack2;
129
-
130
- let {
131
- location
132
- } = _ref3;
133
- return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
134
- space: "medium"
135
- }, /*#__PURE__*/React.createElement(Summary, {
136
- keys: METRICS_WEBPACK_ASSETS,
137
- data: summary,
138
- budgets: insights == null ? void 0 : (_insights$webpack2 = insights.webpack) == null ? void 0 : _insights$webpack2.budgets,
139
- showSummaryItemDelta: jobs.length !== 1
140
- }), /*#__PURE__*/React.createElement(Box, {
141
- outline: true
142
- }, /*#__PURE__*/React.createElement(BundleAssets, _extends({
143
- jobs: jobs,
144
- setState: bundleStatsSetState
145
- }, bundleStatsState, {
146
- key: `${location.pathname}_${location.search}`
147
- })))));
148
- }
235
+ component: AssetsContent
149
236
  }), /*#__PURE__*/React.createElement(Route, {
150
237
  exact: true,
151
238
  path: URLS.MODULES,
152
- render: () => {
153
- var _insights$webpack3;
154
-
155
- return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
156
- space: "medium"
157
- }, /*#__PURE__*/React.createElement(Summary, {
158
- keys: METRICS_WEBPACK_MODULES,
159
- data: summary,
160
- budgets: insights == null ? void 0 : (_insights$webpack3 = insights.webpack) == null ? void 0 : _insights$webpack3.budgets,
161
- showSummaryItemDelta: jobs.length !== 1
162
- }), /*#__PURE__*/React.createElement(Box, {
163
- outline: true
164
- }, /*#__PURE__*/React.createElement(BundleModules, _extends({
165
- jobs: jobs,
166
- setState: bundleModulesSetState
167
- }, bundleModulesState)))));
168
- }
239
+ component: ModulesContent
169
240
  }), /*#__PURE__*/React.createElement(Route, {
170
241
  exact: true,
171
242
  path: URLS.PACKAGES,
172
- render: _ref4 => {
173
- var _insights$webpack4;
174
-
175
- let {
176
- location
177
- } = _ref4;
178
- return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
179
- space: "medium"
180
- }, /*#__PURE__*/React.createElement(Summary, {
181
- keys: METRICS_WEBPACK_PACKAGES,
182
- data: summary,
183
- budgets: insights == null ? void 0 : (_insights$webpack4 = insights.webpack) == null ? void 0 : _insights$webpack4.budgets,
184
- showSummaryItemDelta: jobs.length !== 1
185
- }), /*#__PURE__*/React.createElement(Box, {
186
- outline: true
187
- }, /*#__PURE__*/React.createElement(BundlePackages, _extends({
188
- jobs: jobs
189
- }, bundlePackagesState, {
190
- setState: bundlePackagesSetState,
191
- key: `${location.pathname}_${location.search}`
192
- })))));
193
- }
243
+ component: PackagesContent
194
244
  }), /*#__PURE__*/React.createElement(Route, {
195
245
  exact: true,
196
246
  path: URLS.OVERVIEW,
197
- render: () => {
198
- var _insights$webpack5;
199
-
200
- return /*#__PURE__*/React.createElement(Stack, {
201
- space: "large"
202
- }, duplicatePackagesInsights && /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(DuplicatePackagesWarning, {
203
- duplicatePackagesCount: duplicatePackagesCount,
204
- showDelta: jobs.length > 1
205
- })), (insights == null ? void 0 : (_insights$webpack5 = insights.webpack) == null ? void 0 : _insights$webpack5.budgets) && /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(BudgetInsights, {
206
- source: "webpack",
207
- budgets: insights.webpack.budgets
208
- })), /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Stack, {
209
- space: "small"
210
- }, /*#__PURE__*/React.createElement(TotalSizeTypeTitle, null), /*#__PURE__*/React.createElement(BundleAssetsTotalsChartBars, {
211
- jobs: jobs
212
- }), /*#__PURE__*/React.createElement(Box, {
213
- outline: true
214
- }, /*#__PURE__*/React.createElement(BundleAssetsTotalsTable, {
215
- jobs: jobs
216
- })))));
217
- }
218
- }))));
247
+ component: OverviewContent
248
+ })))));
219
249
  };
220
250
 
221
251
  AppComponent.defaultProps = {