@bundle-stats/ui 3.3.0-alpha.1 → 3.3.0-beta.1

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 (240) hide show
  1. package/CHANGELOG.md +65 -13
  2. package/lib/app/app.js +124 -104
  3. package/lib/app/app.module.css +11 -4
  4. package/lib/app/app.stories.js +1 -22
  5. package/lib/app/header/header.js +1 -10
  6. package/lib/assets/icons.svg +0 -8
  7. package/lib/components/asset-info/asset-info.module.css +1 -0
  8. package/lib/components/bundle-assets/bundle-assets.js +104 -52
  9. package/lib/components/bundle-assets/bundle-assets.module.css +24 -26
  10. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js +16 -42
  11. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.module.css +2 -2
  12. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.stories.js +1 -20
  13. package/lib/components/bundle-modules/bundle-modules.js +68 -68
  14. package/lib/components/bundle-modules/bundle-modules.module.css +11 -2
  15. package/lib/components/bundle-modules/bundle-modules.utils.js +14 -10
  16. package/lib/components/bundle-modules/index.js +4 -4
  17. package/lib/components/bundle-packages/bundle-packages.js +100 -44
  18. package/lib/components/bundle-packages/bundle-packages.module.css +17 -21
  19. package/lib/components/delta/delta.module.css +1 -0
  20. package/lib/components/index.js +0 -8
  21. package/lib/components/job-header/job-header.js +3 -1
  22. package/lib/components/job-header/job-header.module.css +6 -8
  23. package/lib/components/jobs-header/jobs-header.module.css +5 -0
  24. package/lib/components/metrics-table/metrics-table.js +72 -59
  25. package/lib/components/metrics-table/metrics-table.module.css +18 -7
  26. package/lib/components/metrics-table-search/metrics-table-search.module.css +5 -4
  27. package/lib/components/metrics-table-title/metrics-table-title.js +9 -7
  28. package/lib/components/metrics-table-title/metrics-table-title.module.css +2 -0
  29. package/lib/components/module-info/module-info.js +2 -2
  30. package/lib/components/module-info/module-info.module.css +1 -0
  31. package/lib/components/summary/summary.js +7 -12
  32. package/lib/components/summary/summary.module.css +1 -1
  33. package/lib/components/summary/summary.stories.js +0 -29
  34. package/lib/components/summary-item/summary-item.js +18 -38
  35. package/lib/components/summary-item/summary-item.module.css +1 -34
  36. package/lib/components/summary-item/summary-item.stories.js +53 -51
  37. package/lib/components/total-size-type-title/total-size-type-title.js +7 -3
  38. package/lib/constants.js +4 -4
  39. package/lib/css/default.css +14 -3
  40. package/lib/css/variables.css +17 -17
  41. package/lib/hooks/search-params.js +31 -31
  42. package/lib/layout/box/box.module.css +9 -0
  43. package/lib/layout/footer/footer.module.css +1 -1
  44. package/lib/layout/index.js +8 -0
  45. package/lib/layout/separator.js +48 -0
  46. package/lib/layout/separator.module.css +5 -0
  47. package/lib/ui/alert/alert.js +3 -13
  48. package/lib/ui/dropdown/dropdown.js +21 -26
  49. package/lib/ui/dropdown/dropdown.module.css +11 -12
  50. package/lib/ui/dropdown/dropdown.stories.js +2 -9
  51. package/lib/ui/empty-set/empty-set.js +5 -4
  52. package/lib/ui/empty-set/empty-set.module.css +2 -2
  53. package/lib/ui/filters/filters.container.js +1 -1
  54. package/lib/ui/filters/filters.js +22 -7
  55. package/lib/ui/filters/filters.module.css +3 -3
  56. package/lib/ui/horizontal-bar-chart/horizontal-bar-chart.js +1 -1
  57. package/lib/ui/hover-card/hover-card.js +102 -0
  58. package/lib/ui/hover-card/hover-card.module.css +29 -0
  59. package/lib/ui/hover-card/hover-card.stories.js +56 -0
  60. package/lib/{components/budget-info → ui/hover-card}/index.js +4 -4
  61. package/lib/ui/icon/icon.js +6 -8
  62. package/lib/ui/icon/icon.module.css +1 -0
  63. package/lib/ui/index.js +8 -8
  64. package/lib/ui/table/table.js +5 -74
  65. package/lib/ui/table/table.module.css +41 -25
  66. package/lib/ui/table/table.stories.js +1 -1
  67. package/lib/ui/{popover → tag}/index.js +4 -4
  68. package/lib/ui/tag/tag.js +72 -0
  69. package/lib/ui/tag/tag.module.css +55 -0
  70. package/lib/ui/tag/tag.stories.js +38 -0
  71. package/lib/ui/tooltip/tooltip.js +10 -9
  72. package/lib/ui/tooltip/tooltip.module.css +2 -1
  73. package/lib-esm/app/app.js +119 -103
  74. package/lib-esm/app/app.module.css +11 -4
  75. package/lib-esm/app/app.stories.js +1 -22
  76. package/lib-esm/app/header/header.js +1 -9
  77. package/lib-esm/assets/icons.svg +0 -8
  78. package/lib-esm/components/asset-info/asset-info.module.css +1 -0
  79. package/lib-esm/components/bundle-assets/bundle-assets.js +97 -56
  80. package/lib-esm/components/bundle-assets/bundle-assets.module.css +24 -26
  81. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.js +13 -26
  82. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.module.css +2 -2
  83. package/lib-esm/components/bundle-assets-totals-table/bundle-assets-totals-table.stories.js +0 -18
  84. package/lib-esm/components/bundle-modules/bundle-modules.js +50 -51
  85. package/lib-esm/components/bundle-modules/bundle-modules.module.css +11 -2
  86. package/lib-esm/components/bundle-modules/bundle-modules.utils.js +14 -6
  87. package/lib-esm/components/bundle-modules/index.js +5 -3
  88. package/lib-esm/components/bundle-packages/bundle-packages.js +88 -41
  89. package/lib-esm/components/bundle-packages/bundle-packages.module.css +17 -21
  90. package/lib-esm/components/delta/delta.module.css +1 -0
  91. package/lib-esm/components/index.js +0 -1
  92. package/lib-esm/components/job-header/job-header.js +2 -1
  93. package/lib-esm/components/job-header/job-header.module.css +6 -8
  94. package/lib-esm/components/jobs-header/jobs-header.module.css +5 -0
  95. package/lib-esm/components/metrics-table/metrics-table.js +61 -53
  96. package/lib-esm/components/metrics-table/metrics-table.module.css +18 -7
  97. package/lib-esm/components/metrics-table-search/metrics-table-search.module.css +5 -4
  98. package/lib-esm/components/metrics-table-title/metrics-table-title.js +8 -7
  99. package/lib-esm/components/metrics-table-title/metrics-table-title.module.css +2 -0
  100. package/lib-esm/components/module-info/module-info.js +2 -2
  101. package/lib-esm/components/module-info/module-info.module.css +1 -0
  102. package/lib-esm/components/summary/summary.js +7 -11
  103. package/lib-esm/components/summary/summary.module.css +1 -1
  104. package/lib-esm/components/summary/summary.stories.js +0 -27
  105. package/lib-esm/components/summary-item/summary-item.js +16 -36
  106. package/lib-esm/components/summary-item/summary-item.module.css +1 -34
  107. package/lib-esm/components/summary-item/summary-item.stories.js +38 -50
  108. package/lib-esm/components/total-size-type-title/total-size-type-title.js +6 -3
  109. package/lib-esm/constants.js +4 -4
  110. package/lib-esm/css/default.css +14 -3
  111. package/lib-esm/css/variables.css +17 -17
  112. package/lib-esm/hooks/search-params.js +27 -28
  113. package/lib-esm/layout/box/box.module.css +9 -0
  114. package/lib-esm/layout/footer/footer.module.css +1 -1
  115. package/lib-esm/layout/index.js +1 -0
  116. package/lib-esm/layout/separator.js +28 -0
  117. package/lib-esm/layout/separator.module.css +5 -0
  118. package/lib-esm/ui/alert/alert.js +3 -6
  119. package/lib-esm/ui/dropdown/dropdown.js +20 -25
  120. package/lib-esm/ui/dropdown/dropdown.module.css +11 -12
  121. package/lib-esm/ui/dropdown/dropdown.stories.js +2 -7
  122. package/lib-esm/ui/empty-set/empty-set.js +4 -4
  123. package/lib-esm/ui/empty-set/empty-set.module.css +2 -2
  124. package/lib-esm/ui/filters/filters.js +20 -5
  125. package/lib-esm/ui/filters/filters.module.css +3 -3
  126. package/lib-esm/ui/hover-card/hover-card.js +83 -0
  127. package/lib-esm/ui/hover-card/hover-card.module.css +29 -0
  128. package/lib-esm/ui/hover-card/hover-card.stories.js +35 -0
  129. package/lib-esm/ui/hover-card/index.js +1 -0
  130. package/lib-esm/ui/icon/icon.js +3 -5
  131. package/lib-esm/ui/icon/icon.module.css +1 -0
  132. package/lib-esm/ui/index.js +1 -1
  133. package/lib-esm/ui/table/table.js +5 -65
  134. package/lib-esm/ui/table/table.module.css +41 -25
  135. package/lib-esm/ui/table/table.stories.js +1 -1
  136. package/lib-esm/ui/tag/index.js +1 -0
  137. package/lib-esm/ui/tag/tag.js +45 -0
  138. package/lib-esm/ui/tag/tag.module.css +55 -0
  139. package/lib-esm/ui/tag/tag.stories.js +23 -0
  140. package/lib-esm/ui/tooltip/tooltip.js +10 -9
  141. package/lib-esm/ui/tooltip/tooltip.module.css +2 -1
  142. package/package.json +33 -31
  143. package/src/app/app.jsx +135 -145
  144. package/src/app/app.module.css +11 -4
  145. package/src/app/header/header.jsx +0 -10
  146. package/src/assets/icons.svg +0 -8
  147. package/src/components/asset-info/asset-info.module.css +1 -0
  148. package/src/components/bundle-assets/bundle-assets.jsx +85 -31
  149. package/src/components/bundle-assets/bundle-assets.module.css +24 -26
  150. package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.jsx +13 -25
  151. package/src/components/bundle-assets-totals-table/bundle-assets-totals-table.module.css +2 -2
  152. package/src/components/bundle-modules/bundle-modules.jsx +53 -36
  153. package/src/components/bundle-modules/bundle-modules.module.css +11 -2
  154. package/src/components/bundle-modules/bundle-modules.utils.js +16 -4
  155. package/src/components/bundle-modules/index.jsx +3 -0
  156. package/src/components/bundle-packages/bundle-packages.jsx +89 -39
  157. package/src/components/bundle-packages/bundle-packages.module.css +17 -21
  158. package/src/components/delta/delta.module.css +1 -0
  159. package/src/components/index.js +0 -1
  160. package/src/components/job-header/job-header.jsx +2 -1
  161. package/src/components/job-header/job-header.module.css +6 -8
  162. package/src/components/jobs-header/jobs-header.module.css +5 -0
  163. package/src/components/metrics-table/metrics-table.jsx +53 -44
  164. package/src/components/metrics-table/metrics-table.module.css +18 -7
  165. package/src/components/metrics-table-search/metrics-table-search.module.css +5 -4
  166. package/src/components/metrics-table-title/metrics-table-title.jsx +20 -21
  167. package/src/components/metrics-table-title/metrics-table-title.module.css +2 -0
  168. package/src/components/module-info/module-info.jsx +3 -7
  169. package/src/components/module-info/module-info.module.css +1 -0
  170. package/src/components/summary/summary.jsx +7 -8
  171. package/src/components/summary/summary.module.css +1 -1
  172. package/src/components/summary-item/summary-item.jsx +23 -40
  173. package/src/components/summary-item/summary-item.module.css +1 -34
  174. package/src/components/total-size-type-title/total-size-type-title.jsx +6 -9
  175. package/src/constants.js +11 -7
  176. package/src/css/default.css +14 -3
  177. package/src/css/variables.css +17 -17
  178. package/src/hooks/search-params.js +42 -33
  179. package/src/layout/box/box.module.css +9 -0
  180. package/src/layout/footer/footer.module.css +1 -1
  181. package/src/layout/index.js +1 -0
  182. package/src/layout/separator.jsx +25 -0
  183. package/src/layout/separator.module.css +5 -0
  184. package/src/ui/alert/alert.jsx +2 -7
  185. package/src/ui/dropdown/dropdown.jsx +16 -22
  186. package/src/ui/dropdown/dropdown.module.css +11 -12
  187. package/src/ui/empty-set/empty-set.jsx +25 -21
  188. package/src/ui/empty-set/empty-set.module.css +2 -2
  189. package/src/ui/filters/filters.jsx +64 -53
  190. package/src/ui/filters/filters.module.css +3 -3
  191. package/src/ui/hover-card/hover-card.jsx +73 -0
  192. package/src/ui/hover-card/hover-card.module.css +29 -0
  193. package/src/ui/hover-card/index.js +1 -0
  194. package/src/ui/icon/icon.jsx +11 -9
  195. package/src/ui/icon/icon.module.css +1 -0
  196. package/src/ui/index.js +1 -1
  197. package/src/ui/table/table.jsx +5 -52
  198. package/src/ui/table/table.module.css +41 -25
  199. package/src/ui/tag/index.js +1 -0
  200. package/src/ui/tag/tag.jsx +49 -0
  201. package/src/ui/tag/tag.module.css +55 -0
  202. package/src/ui/tooltip/tooltip.jsx +10 -14
  203. package/src/ui/tooltip/tooltip.module.css +2 -1
  204. package/lib/assets/icons/alert-circle.svg +0 -1
  205. package/lib/assets/icons/check-circle.svg +0 -1
  206. package/lib/components/budget-info/budget-info.js +0 -80
  207. package/lib/components/budget-info/budget-info.module.css +0 -40
  208. package/lib/components/budget-info/budget-info.stories.js +0 -44
  209. package/lib/components/budget-insights/budget-insights.js +0 -200
  210. package/lib/components/budget-insights/budget-insights.module.css +0 -53
  211. package/lib/components/budget-insights/budget-insights.stories.js +0 -104
  212. package/lib/components/budget-insights/index.js +0 -18
  213. package/lib/ui/popover/popover.js +0 -92
  214. package/lib/ui/popover/popover.module.css +0 -66
  215. package/lib/ui/popover/popover.stories.js +0 -26
  216. package/lib-esm/assets/icons/alert-circle.svg +0 -1
  217. package/lib-esm/assets/icons/check-circle.svg +0 -1
  218. package/lib-esm/components/budget-info/budget-info.js +0 -58
  219. package/lib-esm/components/budget-info/budget-info.module.css +0 -40
  220. package/lib-esm/components/budget-info/budget-info.stories.js +0 -30
  221. package/lib-esm/components/budget-info/index.js +0 -1
  222. package/lib-esm/components/budget-insights/budget-insights.js +0 -148
  223. package/lib-esm/components/budget-insights/budget-insights.module.css +0 -53
  224. package/lib-esm/components/budget-insights/budget-insights.stories.js +0 -84
  225. package/lib-esm/components/budget-insights/index.js +0 -1
  226. package/lib-esm/ui/popover/index.js +0 -1
  227. package/lib-esm/ui/popover/popover.js +0 -71
  228. package/lib-esm/ui/popover/popover.module.css +0 -66
  229. package/lib-esm/ui/popover/popover.stories.js +0 -14
  230. package/src/assets/icons/alert-circle.svg +0 -1
  231. package/src/assets/icons/check-circle.svg +0 -1
  232. package/src/components/budget-info/budget-info.jsx +0 -65
  233. package/src/components/budget-info/budget-info.module.css +0 -40
  234. package/src/components/budget-info/index.js +0 -1
  235. package/src/components/budget-insights/budget-insights.jsx +0 -157
  236. package/src/components/budget-insights/budget-insights.module.css +0 -53
  237. package/src/components/budget-insights/index.js +0 -1
  238. package/src/ui/popover/index.js +0 -1
  239. package/src/ui/popover/popover.jsx +0 -79
  240. package/src/ui/popover/popover.module.css +0 -66
@@ -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
  }
@@ -5,6 +5,7 @@
5
5
  }
6
6
 
7
7
  .input {
8
+ border-radius: var(--radius-small);
8
9
  height: var(--space-large);
9
10
  border-color: var(--color-outline);
10
11
  }
@@ -21,12 +22,12 @@
21
22
  cursor: pointer;
22
23
  border-radius: 50%;
23
24
  position: absolute;
24
- right: 0;
25
+ right: 2px;
25
26
  top: 50%;
26
27
  transform: translateY(-50%);
27
- padding: var(--space-xxsmall);
28
- width: var(--space-large);
29
- height: var(--space-large);
28
+ padding: var(--space-xxxsmall);
29
+ width: var(--space-medium);
30
+ height: var(--space-medium);
30
31
  background: radial-gradient(var(--color-background) 50%, transparent);
31
32
  color: var(--color-text-ultra-light);
32
33
  transition: var(--transition-in);
@@ -17,7 +17,9 @@ var _flexStack = require("../../layout/flex-stack");
17
17
 
18
18
  var _stack = require("../../layout/stack");
19
19
 
20
- var _popover = require("../../ui/popover");
20
+ var _icon = require("../../ui/icon");
21
+
22
+ var _hoverCard = require("../../ui/hover-card");
21
23
 
22
24
  var _metricsTableTitleModule = _interopRequireDefault(require("./metrics-table-title.module.css"));
23
25
 
@@ -30,22 +32,22 @@ var MetricsTableTitle = function MetricsTableTitle(props) {
30
32
  popoverInfo = props.popoverInfo,
31
33
  popoverHref = props.popoverHref;
32
34
  var rootClassName = (0, _classnames["default"])(_metricsTableTitleModule["default"].root, className);
33
- return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
35
+ return /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
34
36
  space: "xxxsmall",
35
37
  className: rootClassName
36
- }, /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
37
- space: "xxxsmall"
38
38
  }, /*#__PURE__*/_react["default"].createElement("span", null, title), info && /*#__PURE__*/_react["default"].createElement("span", {
39
39
  className: _metricsTableTitleModule["default"].info
40
- }, info), (popoverInfo || popoverHref) && /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
41
- icon: "help"
40
+ }, info), (popoverInfo || popoverHref) && /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
41
+ label: /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
42
+ glyph: "help"
43
+ })
42
44
  }, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
43
45
  space: "xxxsmall"
44
46
  }, popoverInfo && /*#__PURE__*/_react["default"].createElement("p", null, popoverInfo), popoverHref && /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("a", {
45
47
  href: popoverHref,
46
48
  target: "_blank",
47
49
  rel: "noreferrer"
48
- }, _i18n["default"].READ_MORE))))));
50
+ }, _i18n["default"].READ_MORE)))));
49
51
  };
50
52
 
51
53
  exports.MetricsTableTitle = MetricsTableTitle;
@@ -1,5 +1,7 @@
1
1
  .root {
2
+ align-items: center;
2
3
  font-weight: bold;
4
+ line-height: var(--space-small);
3
5
  text-transform: uppercase;
4
6
  color: var(--color-text-light);
5
7
  }
@@ -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, {
@@ -15,6 +15,7 @@
15
15
  }
16
16
 
17
17
  .fileName {
18
+ max-width: 100%;
18
19
  padding: 2px;
19
20
  background: var(--color-highlight-warning);
20
21
  }
@@ -31,6 +31,8 @@ var _summaryModule = _interopRequireDefault(require("./summary.module.css"));
31
31
 
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
33
 
34
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
35
+
34
36
  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); }
35
37
 
36
38
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -45,16 +47,11 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
45
47
 
46
48
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
47
49
 
48
- var getSourceMetricId = function getSourceMetricId(fullMetricId) {
49
- return fullMetricId.split('.').slice(1).join('.');
50
- };
51
-
52
50
  var Summary = function Summary(_ref) {
53
51
  var className = _ref.className,
54
52
  size = _ref.size,
55
53
  keys = _ref.keys,
56
54
  data = _ref.data,
57
- budgets = _ref.budgets,
58
55
  loading = _ref.loading,
59
56
  showSummaryItemDelta = _ref.showSummaryItemDelta,
60
57
  SummaryItemCustomLink = _ref.summaryItemLink;
@@ -67,7 +64,7 @@ var Summary = function Summary(_ref) {
67
64
  var _ref3 = _slicedToArray(_ref2, 1),
68
65
  metricId = _ref3[0];
69
66
 
70
- return keys.includes(getSourceMetricId(metricId));
67
+ return keys.includes(metricId);
71
68
  }).map(function (_ref4) {
72
69
  var _ref5 = _slicedToArray(_ref4, 2),
73
70
  metricId = _ref5[0],
@@ -80,7 +77,6 @@ var Summary = function Summary(_ref) {
80
77
  size: size,
81
78
  id: metricId,
82
79
  data: (0, _get2["default"])(data, metricId),
83
- budget: (0, _get2["default"])(budgets, metricId),
84
80
  loading: loading,
85
81
  showMetricDescription: true,
86
82
  showDelta: showSummaryItemDelta && metricOptions.showDelta !== false
@@ -97,7 +93,6 @@ exports.Summary = Summary;
97
93
  Summary.defaultProps = {
98
94
  className: '',
99
95
  data: null,
100
- budgets: null,
101
96
  loading: false,
102
97
  size: '',
103
98
  keys: _constants.METRICS_WEBPACK_GENERAL,
@@ -108,10 +103,10 @@ Summary.propTypes = {
108
103
  className: _propTypes["default"].string,
109
104
  size: _propTypes["default"].string,
110
105
  keys: _propTypes["default"].arrayOf(_propTypes["default"].string),
111
- data: _propTypes["default"].object,
112
- // eslint-disable-line react/forbid-prop-types
113
- budgets: _propTypes["default"].object,
114
- // eslint-disable-line react/forbid-prop-types
106
+ data: _propTypes["default"].shape(_defineProperty({}, _propTypes["default"].string, _propTypes["default"].shape({
107
+ baseline: _propTypes["default"].number,
108
+ current: _propTypes["default"].number
109
+ }))),
115
110
  loading: _propTypes["default"].bool,
116
111
  showSummaryItemDelta: _propTypes["default"].bool,
117
112
  summaryItemLink: _propTypes["default"].elementType
@@ -4,7 +4,7 @@
4
4
  }
5
5
 
6
6
  .item {
7
- padding: var(--space-small);
7
+ padding: var(--space-small) var(--space-xxlarge) var(--space-small) var(--space-small);
8
8
  flex: 1 0 25%; /* force equal sizes */
9
9
  position: relative;
10
10
  z-index: 1;
@@ -41,35 +41,6 @@ stories.add('default', function () {
41
41
  data: MULTIPLE_JOBS[0].summary
42
42
  });
43
43
  });
44
- stories.add('budgets', function () {
45
- return /*#__PURE__*/_react["default"].createElement(_.Summary, {
46
- data: MULTIPLE_JOBS[0].summary,
47
- budgets: {
48
- webpack: {
49
- totalSizeByTypeALL: {
50
- currentValue: MULTIPLE_JOBS[0].summary.webpack.totalSizeByTypeALL.current,
51
- budgetValue: 1024 * 1024,
52
- failed: false
53
- },
54
- totalInitialSizeJS: {
55
- currentValue: MULTIPLE_JOBS[0].summary.webpack.totalInitialSizeJS.current,
56
- budgetValue: 512 * 1024,
57
- failed: true
58
- },
59
- totalInitialSizeCSS: {
60
- currentValue: MULTIPLE_JOBS[0].summary.webpack.totalInitialSizeCSS.current,
61
- budgetValue: 50 * 1024,
62
- failed: false
63
- },
64
- chunkCount: {
65
- currentValue: MULTIPLE_JOBS[0].summary.webpack.chunkCount.current,
66
- budgetValue: 50,
67
- failed: false
68
- }
69
- }
70
- }
71
- });
72
- });
73
44
  stories.add('custom keys', function () {
74
45
  return /*#__PURE__*/_react["default"].createElement(_.Summary, {
75
46
  keys: _constants.METRICS_WEBPACK_ASSETS,
@@ -13,7 +13,9 @@ var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
14
  var _utils = require("@bundle-stats/utils");
15
15
 
16
- var _popover = require("../../ui/popover");
16
+ var _hoverCard = require("../../ui/hover-card");
17
+
18
+ var _icon = require("../../ui/icon");
17
19
 
18
20
  var _skeleton = require("../../ui/skeleton");
19
21
 
@@ -25,11 +27,9 @@ var _metric = require("../metric");
25
27
 
26
28
  var _delta = require("../delta");
27
29
 
28
- var _budgetInfo = require("../budget-info");
29
-
30
30
  var _summaryItemModule = _interopRequireDefault(require("./summary-item.module.css"));
31
31
 
32
- var _excluded = ["className", "as", "size", "id", "data", "loading", "showDelta", "showMetricDescription", "budget"];
32
+ var _excluded = ["className", "as", "size", "id", "data", "loading", "showDelta", "showMetricDescription"];
33
33
 
34
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
35
35
 
@@ -39,29 +39,22 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
39
39
 
40
40
  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; }
41
41
 
42
- var MetricInfoPopover = function MetricInfoPopover(_ref) {
42
+ var MetricInfo = function MetricInfo(_ref) {
43
43
  var description = _ref.description,
44
44
  url = _ref.url;
45
-
46
- // Workaround cases where the parent is a link
47
- var readMoreOnClick = function readMoreOnClick() {
48
- window.open(url);
49
- };
50
-
51
45
  return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
52
46
  space: "xxxsmall"
53
- }, /*#__PURE__*/_react["default"].createElement("p", null, description), url && /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("button", {
54
- type: "button",
55
- className: _summaryItemModule["default"].readMoreBtn,
56
- onClick: readMoreOnClick
47
+ }, /*#__PURE__*/_react["default"].createElement("p", null, description), url && /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("a", {
48
+ href: url,
49
+ className: _summaryItemModule["default"].readMoreLink
57
50
  }, "Read more")));
58
51
  };
59
52
 
60
- MetricInfoPopover.propTypes = {
53
+ MetricInfo.propTypes = {
61
54
  description: _propTypes["default"].string.isRequired,
62
55
  url: _propTypes["default"].string
63
56
  };
64
- MetricInfoPopover.defaultProps = {
57
+ MetricInfo.defaultProps = {
65
58
  url: ''
66
59
  };
67
60
 
@@ -74,7 +67,6 @@ var SummaryItem = function SummaryItem(_ref2) {
74
67
  loading = _ref2.loading,
75
68
  showDelta = _ref2.showDelta,
76
69
  showMetricDescription = _ref2.showMetricDescription,
77
- budget = _ref2.budget,
78
70
  props = _objectWithoutProperties(_ref2, _excluded);
79
71
 
80
72
  var _ref3 = data || {
@@ -89,23 +81,19 @@ var SummaryItem = function SummaryItem(_ref2) {
89
81
  var showMetricDescriptionTooltip = showMetricDescription && (metric === null || metric === void 0 ? void 0 : metric.description);
90
82
  var rootClassName = (0, _classnames["default"])(_summaryItemModule["default"].root, className, _summaryItemModule["default"][size], showDelta && _summaryItemModule["default"].showDelta);
91
83
  return /*#__PURE__*/_react["default"].createElement(_stack.Stack, _extends({
92
- space: "xxsmall",
84
+ space: "xxxsmall",
93
85
  as: Component,
94
86
  className: rootClassName
95
87
  }, props), /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
96
88
  as: "h3",
97
89
  space: "xxxsmall",
98
90
  className: _summaryItemModule["default"].title
99
- }, /*#__PURE__*/_react["default"].createElement("span", {
100
- className: _summaryItemModule["default"].titleLabel
101
- }, metric.label), showMetricDescriptionTooltip && /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
91
+ }, /*#__PURE__*/_react["default"].createElement("span", null, metric.label), showMetricDescriptionTooltip && /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
102
92
  className: _summaryItemModule["default"].icon,
103
- icon: "help"
104
- }, /*#__PURE__*/_react["default"].createElement(MetricInfoPopover, metric)), budget && /*#__PURE__*/_react["default"].createElement(_budgetInfo.BudgetInfo, {
105
- className: _summaryItemModule["default"].budgetInfo,
106
- metricId: id,
107
- budgetInsight: budget
108
- })), !loading ? /*#__PURE__*/_react["default"].createElement(_stack.Stack, null, /*#__PURE__*/_react["default"].createElement(_metric.Metric, {
93
+ label: /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
94
+ glyph: "help"
95
+ })
96
+ }, /*#__PURE__*/_react["default"].createElement(MetricInfo, metric))), !loading ? /*#__PURE__*/_react["default"].createElement(_stack.Stack, null, /*#__PURE__*/_react["default"].createElement(_metric.Metric, {
109
97
  className: _summaryItemModule["default"].currentMetric,
110
98
  value: current,
111
99
  formatter: metric.formatter,
@@ -134,8 +122,7 @@ SummaryItem.defaultProps = {
134
122
  size: 'medium',
135
123
  loading: false,
136
124
  showMetricDescription: false,
137
- showDelta: true,
138
- budget: undefined
125
+ showDelta: true
139
126
  };
140
127
  SummaryItem.propTypes = {
141
128
  /** Adopted child class name */
@@ -161,12 +148,5 @@ SummaryItem.propTypes = {
161
148
  showMetricDescription: _propTypes["default"].bool,
162
149
 
163
150
  /** Show delta */
164
- showDelta: _propTypes["default"].bool,
165
-
166
- /** Budget insight data */
167
- budget: _propTypes["default"].shape({
168
- currentBalue: _propTypes["default"].number,
169
- budgetValue: _propTypes["default"].number,
170
- failed: _propTypes["default"].bool
171
- })
151
+ showDelta: _propTypes["default"].bool
172
152
  };
@@ -1,9 +1,5 @@
1
- .root {
2
- position: relative;
3
- padding-right: var(--space-xlarge);
4
- }
5
-
6
1
  .title {
2
+ align-items: center;
7
3
  color: var(--color-text-ultra-light);
8
4
  font-weight: bold;
9
5
  font-size: var(--size-xsmall);
@@ -12,35 +8,6 @@
12
8
  white-space: nowrap;
13
9
  }
14
10
 
15
- .titleLabel {
16
- flex: 0 0 auto;
17
- }
18
-
19
- .readMoreBtn {
20
- appearance: none;
21
- padding: 0;
22
- border: 0;
23
- background: none;
24
- cursor: pointer;
25
- /* simulate link */
26
- color: var(--color-primary);
27
- text-decoration: underline;
28
- line-height: var(--space-small);
29
- }
30
-
31
- .readMoreBtn:hover,
32
- .readMoreBtn:active,
33
- .readMoreBtn:focus {
34
- color: var(--color-primary-dark);
35
- text-decoration: none;
36
- }
37
-
38
- .budgetInfo {
39
- position: absolute;
40
- right: 0;
41
- top: 0;
42
- }
43
-
44
11
  .currentMetric {
45
12
  display: block;
46
13
  color: var(--color-heading);
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = exports.Standard = exports.SizeLarge = exports.ShowMetricDescription = exports.ShowDeltaFalse = exports.Loading = exports.BudgetSuccess = exports.BudgetError = void 0;
6
+ exports["default"] = exports.Standard = exports.SizeLarge = exports.ShowMetricDescription = exports.ShowDeltaFalse = exports.Loading = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
@@ -13,68 +13,70 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
13
13
 
14
14
  var _default = {
15
15
  title: 'Components/SummaryItem',
16
- component: _summaryItem.SummaryItem,
17
- decorators: [function (Story) {
18
- return /*#__PURE__*/_react["default"].createElement("div", {
19
- style: {
20
- maxWidth: '320px'
21
- }
22
- }, /*#__PURE__*/_react["default"].createElement(Story, null));
23
- }],
24
- args: {
16
+ component: _summaryItem.SummaryItem
17
+ };
18
+ exports["default"] = _default;
19
+
20
+ var Standard = function Standard() {
21
+ return /*#__PURE__*/_react["default"].createElement(_summaryItem.SummaryItem, {
25
22
  loading: false,
26
- id: 'webpack.totalSizeByTypeALL',
23
+ id: "webpack.totalSizeByTypeALL",
27
24
  data: {
28
25
  current: 120 * 1000,
29
26
  baseline: 100 * 1000
30
27
  }
31
- }
28
+ });
32
29
  };
33
- exports["default"] = _default;
34
30
 
35
- var Template = function Template(args) {
36
- return /*#__PURE__*/_react["default"].createElement(_summaryItem.SummaryItem, args);
31
+ exports.Standard = Standard;
32
+
33
+ var SizeLarge = function SizeLarge() {
34
+ return /*#__PURE__*/_react["default"].createElement(_summaryItem.SummaryItem, {
35
+ size: "large",
36
+ loading: false,
37
+ id: "webpack.totalSizeByTypeALL",
38
+ data: {
39
+ current: 120 * 1000,
40
+ baseline: 100 * 1000
41
+ }
42
+ });
37
43
  };
38
44
 
39
- var Standard = Template.bind();
40
- exports.Standard = Standard;
41
- var SizeLarge = Template.bind();
42
45
  exports.SizeLarge = SizeLarge;
43
- SizeLarge.args = {
44
- size: 'large'
46
+
47
+ var ShowMetricDescription = function ShowMetricDescription() {
48
+ return /*#__PURE__*/_react["default"].createElement(_summaryItem.SummaryItem, {
49
+ loading: false,
50
+ id: "webpack.totalSizeByTypeALL",
51
+ data: {
52
+ current: 120 * 1000,
53
+ baseline: 100 * 1000
54
+ },
55
+ showMetricDescription: true
56
+ });
45
57
  };
46
- var ShowMetricDescription = Template.bind();
58
+
47
59
  exports.ShowMetricDescription = ShowMetricDescription;
48
- ShowMetricDescription.args = {
49
- showMetricDescription: true
60
+
61
+ var ShowDeltaFalse = function ShowDeltaFalse() {
62
+ return /*#__PURE__*/_react["default"].createElement(_summaryItem.SummaryItem, {
63
+ loading: false,
64
+ id: "webpack.totalSizeByTypeALL",
65
+ data: {
66
+ current: 120 * 1000,
67
+ baseline: 0
68
+ },
69
+ showDelta: false
70
+ });
50
71
  };
51
- var ShowDeltaFalse = Template.bind();
72
+
52
73
  exports.ShowDeltaFalse = ShowDeltaFalse;
53
- ShowDeltaFalse.args = {
54
- showDelta: false
55
- };
56
- var BudgetError = Template.bind();
57
- exports.BudgetError = BudgetError;
58
- BudgetError.args = {
59
- showMetricDescription: true,
60
- budget: {
61
- currentValue: 120 * 1000,
62
- budgetValue: 100 * 1000,
63
- failed: true
64
- }
65
- };
66
- var BudgetSuccess = Template.bind();
67
- exports.BudgetSuccess = BudgetSuccess;
68
- BudgetSuccess.args = {
69
- showMetricDescription: true,
70
- budget: {
71
- currentValue: 120 * 1000,
72
- budgetValue: 120 * 1024,
73
- failed: false
74
- }
74
+
75
+ var Loading = function Loading() {
76
+ return /*#__PURE__*/_react["default"].createElement(_summaryItem.SummaryItem, {
77
+ loading: true,
78
+ id: "webpack.totalSizeByTypeALL"
79
+ });
75
80
  };
76
- var Loading = Template.bind();
77
- exports.Loading = Loading;
78
- Loading.args = {
79
- loading: true
80
- };
81
+
82
+ exports.Loading = Loading;
@@ -19,7 +19,9 @@ var _flexStack = require("../../layout/flex-stack");
19
19
 
20
20
  var _stack = require("../../layout/stack");
21
21
 
22
- var _popover = require("../../ui/popover");
22
+ var _icon = require("../../ui/icon");
23
+
24
+ var _hoverCard = require("../../ui/hover-card");
23
25
 
24
26
  var _totalSizeTypeTitleModule = _interopRequireDefault(require("./total-size-type-title.module.css"));
25
27
 
@@ -30,8 +32,10 @@ var TotalSizeTypeTitle = function TotalSizeTypeTitle(_ref) {
30
32
  return /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
31
33
  space: "xxxsmall",
32
34
  className: (0, _classnames["default"])(_totalSizeTypeTitleModule["default"].title, className)
33
- }, /*#__PURE__*/_react["default"].createElement("span", null, _i18n["default"].ASSET_TOTALS), /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
34
- icon: "help"
35
+ }, /*#__PURE__*/_react["default"].createElement("span", null, _i18n["default"].ASSET_TOTALS), /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
36
+ label: /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
37
+ glyph: "help"
38
+ })
35
39
  }, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
36
40
  space: "xxxsmall"
37
41
  }, /*#__PURE__*/_react["default"].createElement("p", null, _i18n["default"].ASSET_TOTALS_INFO), /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("a", {
package/lib/constants.js CHANGED
@@ -52,11 +52,11 @@ var ASSETS_SIZES_FILE_TYPE_MAP = _utils.FILE_TYPES.reduce(function (agg, fileTyp
52
52
  }, {});
53
53
 
54
54
  exports.ASSETS_SIZES_FILE_TYPE_MAP = ASSETS_SIZES_FILE_TYPE_MAP;
55
- var METRICS_WEBPACK_GENERAL = ['totalSizeByTypeALL', 'totalInitialSizeJS', 'totalInitialSizeCSS', 'cacheInvalidation'];
55
+ var METRICS_WEBPACK_GENERAL = ['webpack.totalSizeByTypeALL', 'webpack.totalInitialSizeJS', 'webpack.totalInitialSizeCSS', 'webpack.cacheInvalidation'];
56
56
  exports.METRICS_WEBPACK_GENERAL = METRICS_WEBPACK_GENERAL;
57
- var METRICS_WEBPACK_ASSETS = ['assetCount', 'chunkCount'];
57
+ var METRICS_WEBPACK_ASSETS = ['webpack.assetCount', 'webpack.chunkCount'];
58
58
  exports.METRICS_WEBPACK_ASSETS = METRICS_WEBPACK_ASSETS;
59
- var METRICS_WEBPACK_MODULES = ['moduleCount'];
59
+ var METRICS_WEBPACK_MODULES = ['webpack.moduleCount', 'webpack.duplicateModulesCount', 'webpack.duplicateCode'];
60
60
  exports.METRICS_WEBPACK_MODULES = METRICS_WEBPACK_MODULES;
61
- var METRICS_WEBPACK_PACKAGES = ['packageCount', 'duplicatePackagesCount'];
61
+ var METRICS_WEBPACK_PACKAGES = ['webpack.packageCount', 'webpack.duplicatePackagesCount'];
62
62
  exports.METRICS_WEBPACK_PACKAGES = METRICS_WEBPACK_PACKAGES;
@@ -1,18 +1,29 @@
1
+ @import url("~modern-css-reset/dist/reset.css");
2
+
1
3
  :root {
2
4
  --chart-height: 180px;
3
5
  }
4
6
 
7
+ /** modern-css-reset updates */
8
+ pre,
9
+ ul,
10
+ ol,
11
+ button {
12
+ margin: 0;
13
+ }
14
+
5
15
  html {
16
+ font-family: var(--font-family);
6
17
  font-size: 81.25%;
7
- line-height: 1.8461;
18
+ line-height: 1.6;
8
19
  }
9
20
 
10
21
  body {
22
+ background: var(--color-background);
11
23
  color: var(--color-text);
12
24
  }
13
25
 
14
- h1, h2, h3, h4, h5 {
15
- margin-bottom: var(--space-small);
26
+ h1, h2, h3, h4, h5, h6 {
16
27
  color: var(--color-heading);
17
28
  font-weight: 500;
18
29
  }