@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
@@ -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
  }
@@ -80,7 +80,7 @@ var Summary = function Summary(_ref) {
80
80
  size: size,
81
81
  id: metricId,
82
82
  data: (0, _get2["default"])(data, metricId),
83
- budget: (0, _get2["default"])(budgets, metricId),
83
+ budget: (0, _get2["default"])(budgets, getSourceMetricId(metricId)),
84
84
  loading: loading,
85
85
  showMetricDescription: true,
86
86
  showDelta: showSummaryItemDelta && metricOptions.showDelta !== false
@@ -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
 
@@ -39,29 +41,22 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
39
41
 
40
42
  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
43
 
42
- var MetricInfoPopover = function MetricInfoPopover(_ref) {
44
+ var MetricInfo = function MetricInfo(_ref) {
43
45
  var description = _ref.description,
44
46
  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
47
  return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
52
48
  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
49
+ }, /*#__PURE__*/_react["default"].createElement("p", null, description), url && /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("a", {
50
+ href: url,
51
+ className: _summaryItemModule["default"].readMoreLink
57
52
  }, "Read more")));
58
53
  };
59
54
 
60
- MetricInfoPopover.propTypes = {
55
+ MetricInfo.propTypes = {
61
56
  description: _propTypes["default"].string.isRequired,
62
57
  url: _propTypes["default"].string
63
58
  };
64
- MetricInfoPopover.defaultProps = {
59
+ MetricInfo.defaultProps = {
65
60
  url: ''
66
61
  };
67
62
 
@@ -89,7 +84,7 @@ var SummaryItem = function SummaryItem(_ref2) {
89
84
  var showMetricDescriptionTooltip = showMetricDescription && (metric === null || metric === void 0 ? void 0 : metric.description);
90
85
  var rootClassName = (0, _classnames["default"])(_summaryItemModule["default"].root, className, _summaryItemModule["default"][size], showDelta && _summaryItemModule["default"].showDelta);
91
86
  return /*#__PURE__*/_react["default"].createElement(_stack.Stack, _extends({
92
- space: "xxsmall",
87
+ space: "xxxsmall",
93
88
  as: Component,
94
89
  className: rootClassName
95
90
  }, props), /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
@@ -98,10 +93,12 @@ var SummaryItem = function SummaryItem(_ref2) {
98
93
  className: _summaryItemModule["default"].title
99
94
  }, /*#__PURE__*/_react["default"].createElement("span", {
100
95
  className: _summaryItemModule["default"].titleLabel
101
- }, metric.label), showMetricDescriptionTooltip && /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
96
+ }, metric.label), showMetricDescriptionTooltip && /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
102
97
  className: _summaryItemModule["default"].icon,
103
- icon: "help"
104
- }, /*#__PURE__*/_react["default"].createElement(MetricInfoPopover, metric)), budget && /*#__PURE__*/_react["default"].createElement(_budgetInfo.BudgetInfo, {
98
+ label: /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
99
+ glyph: "help"
100
+ })
101
+ }, /*#__PURE__*/_react["default"].createElement(MetricInfo, metric)), budget && /*#__PURE__*/_react["default"].createElement(_budgetInfo.BudgetInfo, {
105
102
  className: _summaryItemModule["default"].budgetInfo,
106
103
  metricId: id,
107
104
  budgetInsight: budget
@@ -4,6 +4,7 @@
4
4
  }
5
5
 
6
6
  .title {
7
+ align-items: center;
7
8
  color: var(--color-text-ultra-light);
8
9
  font-weight: bold;
9
10
  font-size: var(--size-xsmall);
@@ -12,29 +13,6 @@
12
13
  white-space: nowrap;
13
14
  }
14
15
 
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
16
  .budgetInfo {
39
17
  position: absolute;
40
18
  right: 0;
@@ -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
@@ -56,7 +56,7 @@ var METRICS_WEBPACK_GENERAL = ['totalSizeByTypeALL', 'totalInitialSizeJS', 'tota
56
56
  exports.METRICS_WEBPACK_GENERAL = METRICS_WEBPACK_GENERAL;
57
57
  var METRICS_WEBPACK_ASSETS = ['assetCount', 'chunkCount'];
58
58
  exports.METRICS_WEBPACK_ASSETS = METRICS_WEBPACK_ASSETS;
59
- var METRICS_WEBPACK_MODULES = ['moduleCount'];
59
+ var METRICS_WEBPACK_MODULES = ['moduleCount', 'duplicateModulesCount', 'duplicateCode'];
60
60
  exports.METRICS_WEBPACK_MODULES = METRICS_WEBPACK_MODULES;
61
61
  var METRICS_WEBPACK_PACKAGES = ['packageCount', '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
  }
@@ -23,30 +23,30 @@
23
23
  --size-xxlarge: 1.424rem;
24
24
  --size-xxxlarge: 1.602rem;
25
25
 
26
- --line-height: var(--space-medium);
26
+ --line-height: 1.6em;
27
27
 
28
28
  /*
29
29
  * Color scheme:
30
- * http://mcg.mbitson.com/#!?mcgpalette0=%23dd555e&mcgpalette1=%2363bf5e&mcgpalette2=%23f7e37d&mcgpalette3=%23636568&mcgpalette4=%233385d6&themename=mcgtheme
31
30
  * https://coolors.co/3385d6-dd555e-63bf5e-f7e37d-192339
31
+ * http://mcg.mbitson.com/#!?mcgpalette0=%23dd555e&mcgpalette1=%2363bf5e&mcgpalette2=%23f7e37d&mcgpalette3=%235b5d60&mcgpalette4=%233385d6&themename=mcgtheme
32
32
  */
33
33
  --color-gray-25: #fafafa;
34
- --color-gray-50: #eceded;
35
- --color-gray-100: #d0d1d2;
36
- --color-gray-200: #b1b2b4;
37
- --color-gray-300: #929395;
38
- --color-gray-400: #7a7c7f;
39
- --color-gray-500: #636568;
40
- --color-gray-600: #5b5d60;
41
- --color-gray-700: #515355;
42
- --color-gray-800: #47494b;
43
- --color-gray-900: #35373a;
34
+ --color-gray-50: #e4e4e5;
35
+ --color-gray-100: #cececf;
36
+ --color-gray-200: #adaeb0;
37
+ --color-gray-300: #8c8e90;
38
+ --color-gray-400: #747578;
39
+ --color-gray-500: #5b5d60;
40
+ --color-gray-600: #535558;
41
+ --color-gray-700: #494b4e;
42
+ --color-gray-800: #404144;
43
+ --color-gray-900: #2f3033;
44
44
 
45
45
  --color-gray-ultra-light: var(--color-gray-200);
46
46
  --color-gray-light: var(--color-gray-300);
47
47
  --color-gray: var(--color-gray-500);
48
- --color-gray-dark: var(--color-gray-700);
49
- --color-gray-ultra-dark: var(--color-gray-900);
48
+ --color-gray-dark: var(--color-gray-600);
49
+ --color-gray-ultra-dark: var(--color-gray-700);
50
50
 
51
51
  --color-red-25: #fdf5f6;
52
52
  --color-red-50: #fbebec;
@@ -181,9 +181,9 @@
181
181
  --layer-high: 1000;
182
182
  --layer-xhigh: 10000;
183
183
 
184
- --radius-small: var(--space-xxxsmall);
185
- --radius-medium: var(--space-xxsmall);
186
- --radius-large: var(--space-small);
184
+ --radius-small: 3px;
185
+ --radius-medium: var(--space-xxxsmall);
186
+ --radius-large: var(--space-xxsmall);
187
187
 
188
188
  /** Layout */
189
189
  --max-width: 80rem;
@@ -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,
@@ -157,7 +157,7 @@ var useSearchParams = function useSearchParams(_ref2) {
157
157
 
158
158
  (0, _react.useLayoutEffect)(function () {
159
159
  // Run a deep comparison to prevent circular setState triggering
160
- if (parentSearch === search || (0, _isEqual2["default"])(parentFilters, filters)) {
160
+ if (parentSearch === search && (0, _isEqual2["default"])(initialFilters, filters)) {
161
161
  return;
162
162
  }
163
163
 
@@ -165,7 +165,7 @@ var useSearchParams = function useSearchParams(_ref2) {
165
165
  type: ACTION_SET,
166
166
  payload: generateState(initialFilters, parentSearch)
167
167
  });
168
- }, [search, filters, parentFilters, parentSearch]);
168
+ }, [dispatch, search, filters, parentSearch, initialFilters]);
169
169
  /** Callbacks */
170
170
 
171
171
  var handleUpdateSearch = (0, _react.useCallback)(function (newValue) {
@@ -173,23 +173,23 @@ var useSearchParams = function useSearchParams(_ref2) {
173
173
  type: ACTION_SET_SEARCH,
174
174
  payload: newValue
175
175
  });
176
- }, []);
176
+ }, [dispatch]);
177
177
  var handleUpdateFilters = (0, _react.useCallback)(function (newFilters) {
178
178
  dispatch({
179
179
  type: ACTION_SET_FILTERS,
180
180
  payload: newFilters
181
181
  });
182
- }, []);
182
+ }, [dispatch]);
183
183
  var handleResetFilters = (0, _react.useCallback)(function () {
184
184
  dispatch({
185
185
  type: ACTION_RESET_DEFAULT
186
186
  });
187
- }, []);
187
+ }, [dispatch]);
188
188
  var handleResetAllFilters = (0, _react.useCallback)(function () {
189
189
  dispatch({
190
190
  type: ACTION_RESET_ALL
191
191
  });
192
- }, []);
192
+ }, [dispatch]);
193
193
  return {
194
194
  search: search,
195
195
  searchPattern: searchPattern,
@@ -4,6 +4,15 @@
4
4
 
5
5
  .outline {
6
6
  border: 1px solid var(--color-outline);
7
+ border-radius: var(--radius-medium);
8
+ }
9
+
10
+ .outline > :first-child {
11
+ border-radius: var(--radius-medium) var(--radius-medium) 0 0;
12
+ }
13
+
14
+ .outline > :last-child {
15
+ border-radius: 0 0 var(--radius-medium) var(--radius-medium);
7
16
  }
8
17
 
9
18
  .padding-xxxsmall {
@@ -3,7 +3,7 @@
3
3
  }
4
4
 
5
5
  .inner {
6
- border-top: 2px solid var(--color-outline);
6
+ border-top: 1px solid var(--color-outline);
7
7
  }
8
8
 
9
9
  .navItem {
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "Header", {
27
27
  return _header.Header;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "Separator", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _separator.Separator;
34
+ }
35
+ });
30
36
  Object.defineProperty(exports, "Stack", {
31
37
  enumerable: true,
32
38
  get: function get() {
@@ -46,6 +52,8 @@ var _footer = require("./footer");
46
52
 
47
53
  var _header = require("./header");
48
54
 
55
+ var _separator = require("./separator");
56
+
49
57
  var _subHeader = require("./sub-header");
50
58
 
51
59
  var _stack = require("./stack");
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Separator = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _separatorModule = _interopRequireDefault(require("./separator.module.css"));
15
+
16
+ var _excluded = ["className"];
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+
22
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
23
+
24
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
25
+
26
+ var propTypes = {
27
+ className: _propTypes["default"].string
28
+ };
29
+ var defaultProps = {
30
+ className: ''
31
+ };
32
+ /**
33
+ * @param {PropTypes.InferProps<typeof propTypes>} props
34
+ * @return {React.FunctionComponentElement}
35
+ */
36
+
37
+ var Separator = function Separator(props) {
38
+ var className = props.className,
39
+ restProps = _objectWithoutProperties(props, _excluded);
40
+
41
+ return /*#__PURE__*/_react["default"].createElement("div", _extends({
42
+ className: (0, _classnames["default"])(_separatorModule["default"].root, className)
43
+ }, restProps));
44
+ };
45
+
46
+ exports.Separator = Separator;
47
+ Separator.propTypes = propTypes;
48
+ Separator.defaultProps = defaultProps;
@@ -0,0 +1,5 @@
1
+ .root {
2
+ background: var(--color-outline);
3
+ width: 100%;
4
+ height: 1px;
5
+ }
@@ -11,7 +11,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
- var _Menu = require("reakit/Menu");
14
+ var _menu = require("ariakit/menu");
15
15
 
16
16
  var _flexStack = require("../../layout/flex-stack");
17
17
 
@@ -21,35 +21,33 @@ var _dropdownModule = _interopRequireDefault(require("./dropdown.module.css"));
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
23
 
24
- 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); }
25
-
26
24
  var Dropdown = function Dropdown(props) {
27
25
  var className = props.className,
26
+ buttonClassName = props.buttonClassName,
28
27
  label = props.label,
29
28
  ariaLabel = props.ariaLabel,
30
29
  glyph = props.glyph,
31
- activeLabel = props.activeLabel,
32
30
  children = props.children;
33
- var rootClassName = (0, _classnames["default"])(_dropdownModule["default"].root, activeLabel && _dropdownModule["default"].activeLabel, className);
34
- var menu = (0, _Menu.useMenuState)({
35
- baseId: process.env.NODE_ENV === 'test' && 'id-test',
36
- modal: true
37
- });
38
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Menu.MenuButton, _extends({}, menu, {
39
- className: rootClassName,
31
+ var rootClassName = (0, _classnames["default"])(_dropdownModule["default"].root, className);
32
+ var menuState = (0, _menu.useMenuState)();
33
+ return /*#__PURE__*/_react["default"].createElement("div", {
34
+ className: rootClassName
35
+ }, /*#__PURE__*/_react["default"].createElement(_menu.MenuButton, {
36
+ state: menuState,
37
+ className: (0, _classnames["default"])(_dropdownModule["default"].button, buttonClassName),
40
38
  tabIndex: null
41
- }), /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
42
- space: "xxxsmall",
43
- className: _dropdownModule["default"].label
39
+ }, /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
40
+ space: "xxxsmall"
44
41
  }, glyph && /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
45
42
  className: _dropdownModule["default"].labelIcon,
46
43
  glyph: glyph
47
- }), label)), /*#__PURE__*/_react["default"].createElement(_Menu.Menu, _extends({}, menu, {
44
+ }), label)), /*#__PURE__*/_react["default"].createElement(_menu.Menu, {
45
+ state: menuState,
48
46
  "aria-label": ariaLabel || label,
49
47
  className: _dropdownModule["default"].dropdown
50
- }), typeof children === 'function' ? children({
51
- MenuItem: _Menu.MenuItem,
52
- menu: menu,
48
+ }, typeof children === 'function' ? children({
49
+ MenuItem: _menu.MenuItem,
50
+ menu: menuState,
53
51
  menuItemClassName: _dropdownModule["default"].menuItem,
54
52
  menuItemActiveClassName: _dropdownModule["default"].menuItemActive
55
53
  }) : children));
@@ -58,15 +56,18 @@ var Dropdown = function Dropdown(props) {
58
56
  exports.Dropdown = Dropdown;
59
57
  Dropdown.defaultProps = {
60
58
  className: '',
59
+ buttonClassName: '',
61
60
  label: null,
62
61
  ariaLabel: '',
63
- glyph: null,
64
- activeLabel: false
62
+ glyph: null
65
63
  };
66
64
  Dropdown.propTypes = {
67
65
  /** Adopted child class name */
68
66
  className: _propTypes["default"].string,
69
67
 
68
+ /** Button adopted child class name */
69
+ buttonClassName: _propTypes["default"].string,
70
+
70
71
  /** Button label */
71
72
  label: _propTypes["default"].node,
72
73
 
@@ -76,12 +77,6 @@ Dropdown.propTypes = {
76
77
  /** Icon glyph */
77
78
  glyph: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
78
79
 
79
- /** Dropdown open state */
80
- open: _propTypes["default"].bool.isRequired,
81
-
82
- /** Active label flag */
83
- activeLabel: _propTypes["default"].bool,
84
-
85
80
  /** Content */
86
81
  children: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element, _propTypes["default"].func]).isRequired
87
82
  };