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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/lib/components/bundle-assets/bundle-assets.js +9 -7
  3. package/lib/components/bundle-assets/bundle-assets.module.css +5 -0
  4. package/lib/components/bundle-modules/bundle-modules.js +34 -63
  5. package/lib/components/bundle-modules/bundle-modules.module.css +0 -4
  6. package/lib/components/bundle-packages/bundle-packages.js +29 -24
  7. package/lib/components/bundle-packages/bundle-packages.module.css +37 -20
  8. package/lib/components/metrics-table-title/metrics-table-title.js +7 -3
  9. package/lib/components/summary-item/summary-item.js +16 -18
  10. package/lib/components/total-size-type-title/total-size-type-title.js +7 -3
  11. package/lib/ui/dropdown/dropdown.js +15 -19
  12. package/lib/ui/filters/filters.js +3 -5
  13. package/lib/ui/hover-card/hover-card.js +65 -0
  14. package/lib/ui/hover-card/hover-card.module.css +29 -0
  15. package/lib/ui/hover-card/hover-card.stories.js +26 -0
  16. package/lib/ui/{popover → hover-card}/index.js +4 -4
  17. package/lib/ui/icon/icon.module.css +1 -0
  18. package/lib/ui/index.js +8 -8
  19. package/lib/ui/sort-dropdown/sort-dropdown.js +2 -5
  20. package/lib/ui/tooltip/tooltip.js +22 -14
  21. package/lib/ui/tooltip/tooltip.module.css +5 -3
  22. package/lib-esm/components/bundle-assets/bundle-assets.js +9 -7
  23. package/lib-esm/components/bundle-assets/bundle-assets.module.css +5 -0
  24. package/lib-esm/components/bundle-modules/bundle-modules.js +17 -29
  25. package/lib-esm/components/bundle-modules/bundle-modules.module.css +0 -4
  26. package/lib-esm/components/bundle-packages/bundle-packages.js +28 -23
  27. package/lib-esm/components/bundle-packages/bundle-packages.module.css +37 -20
  28. package/lib-esm/components/metrics-table-title/metrics-table-title.js +6 -3
  29. package/lib-esm/components/summary-item/summary-item.js +15 -18
  30. package/lib-esm/components/total-size-type-title/total-size-type-title.js +6 -3
  31. package/lib-esm/ui/dropdown/dropdown.js +9 -19
  32. package/lib-esm/ui/filters/filters.js +3 -5
  33. package/lib-esm/ui/hover-card/hover-card.js +45 -0
  34. package/lib-esm/ui/hover-card/hover-card.module.css +29 -0
  35. package/lib-esm/ui/hover-card/hover-card.stories.js +9 -0
  36. package/lib-esm/ui/hover-card/index.js +1 -0
  37. package/lib-esm/ui/icon/icon.module.css +1 -0
  38. package/lib-esm/ui/index.js +1 -1
  39. package/lib-esm/ui/sort-dropdown/sort-dropdown.js +2 -5
  40. package/lib-esm/ui/tooltip/tooltip.js +15 -14
  41. package/lib-esm/ui/tooltip/tooltip.module.css +5 -3
  42. package/package.json +25 -22
  43. package/src/components/bundle-assets/bundle-assets.jsx +51 -42
  44. package/src/components/bundle-assets/bundle-assets.module.css +5 -0
  45. package/src/components/bundle-modules/bundle-modules.jsx +28 -31
  46. package/src/components/bundle-modules/bundle-modules.module.css +0 -4
  47. package/src/components/bundle-packages/bundle-packages.jsx +31 -25
  48. package/src/components/bundle-packages/bundle-packages.module.css +37 -20
  49. package/src/components/metrics-table-options/metrics-table-options.jsx +1 -1
  50. package/src/components/metrics-table-title/metrics-table-title.jsx +4 -3
  51. package/src/components/summary-item/summary-item.jsx +21 -26
  52. package/src/components/total-size-type-title/total-size-type-title.jsx +6 -9
  53. package/src/ui/dropdown/dropdown.jsx +14 -18
  54. package/src/ui/filters/filters.jsx +30 -39
  55. package/src/ui/hover-card/hover-card.jsx +42 -0
  56. package/src/ui/hover-card/hover-card.module.css +29 -0
  57. package/src/ui/hover-card/index.js +1 -0
  58. package/src/ui/icon/icon.module.css +1 -0
  59. package/src/ui/index.js +1 -1
  60. package/src/ui/sort-dropdown/sort-dropdown.jsx +9 -11
  61. package/src/ui/tooltip/tooltip.jsx +20 -27
  62. package/src/ui/tooltip/tooltip.module.css +5 -3
  63. package/lib/ui/popover/popover.js +0 -92
  64. package/lib/ui/popover/popover.module.css +0 -66
  65. package/lib/ui/popover/popover.stories.js +0 -26
  66. package/lib-esm/ui/popover/index.js +0 -1
  67. package/lib-esm/ui/popover/popover.js +0 -71
  68. package/lib-esm/ui/popover/popover.module.css +0 -66
  69. package/lib-esm/ui/popover/popover.stories.js +0 -14
  70. package/src/ui/popover/index.js +0 -1
  71. package/src/ui/popover/popover.jsx +0 -79
  72. package/src/ui/popover/popover.module.css +0 -66
package/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.2.4-alpha.0](https://github.com/relative-ci/bundle-stats/compare/v3.2.3...v3.2.4-alpha.0) (2022-01-13)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ui:** Icon - center by default ([889753c](https://github.com/relative-ci/bundle-stats/commit/889753c0feb236130a2707fbc352310ef07c7740))
12
+ * **ui:** Remove popover component ([e07d7a9](https://github.com/relative-ci/bundle-stats/commit/e07d7a91640f67b4f99320e1af92f1092a6e610d))
13
+
14
+
15
+ ### Features
16
+
17
+ * **ui:** Add hover card ([e27169e](https://github.com/relative-ci/bundle-stats/commit/e27169e4dd1e313f6903bd70f5ffc1e1cc147f9a))
18
+
19
+
20
+
21
+
22
+
6
23
  ## [3.2.3](https://github.com/relative-ci/bundle-stats/compare/v3.2.2...v3.2.3) (2022-01-10)
7
24
 
8
25
  **Note:** Version bump only for package @bundle-stats/ui
@@ -29,7 +29,7 @@ var _icon = require("../../ui/icon");
29
29
 
30
30
  var _fileName = require("../../ui/file-name");
31
31
 
32
- var _popover = require("../../ui/popover");
32
+ var _hoverCard = require("../../ui/hover-card");
33
33
 
34
34
  var _tooltip = require("../../ui/tooltip");
35
35
 
@@ -137,11 +137,11 @@ var getRenderRowHeader = function getRenderRowHeader(_ref6) {
137
137
  isChunk = item.isChunk,
138
138
  isEntry = item.isEntry,
139
139
  isInitial = item.isInitial;
140
- return /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
141
- label: /*#__PURE__*/_react["default"].createElement(_fileName.FileName, {
142
- name: label
143
- }),
144
- icon: /*#__PURE__*/_react["default"].createElement("div", {
140
+ return /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
141
+ label: /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
142
+ space: "xxxsmall",
143
+ className: _bundleAssetsModule["default"].assetName
144
+ }, /*#__PURE__*/_react["default"].createElement("div", {
145
145
  className: _bundleAssetsModule["default"].assetInfoFlags
146
146
  }, isNotPredictive && /*#__PURE__*/_react["default"].createElement(_tooltip.Tooltip, {
147
147
  className: _bundleAssetsModule["default"].notPredictive,
@@ -160,7 +160,9 @@ var getRenderRowHeader = function getRenderRowHeader(_ref6) {
160
160
  }, "e"), isInitial && /*#__PURE__*/_react["default"].createElement("span", {
161
161
  title: "Initial",
162
162
  className: _bundleAssetsModule["default"].flagInitial
163
- }, "i"))
163
+ }, "i")), /*#__PURE__*/_react["default"].createElement(_fileName.FileName, {
164
+ name: label
165
+ }))
164
166
  }, /*#__PURE__*/_react["default"].createElement(_assetInfo.AssetInfo, {
165
167
  className: _bundleAssetsModule["default"].assetInfo,
166
168
  item: item,
@@ -8,6 +8,11 @@
8
8
  margin-right: -1px; /** collapse border */
9
9
  }
10
10
 
11
+ .assetName {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ }
15
+
11
16
  .notPredictive {
12
17
  margin-right: var(--space-xxsmall);
13
18
  display: inline-block;
@@ -35,7 +35,7 @@ var _fileName = require("../../ui/file-name");
35
35
 
36
36
  var _filters = require("../../ui/filters");
37
37
 
38
- var _popover = require("../../ui/popover");
38
+ var _hoverCard = require("../../ui/hover-card");
39
39
 
40
40
  var _sortDropdown = require("../../ui/sort-dropdown");
41
41
 
@@ -67,18 +67,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
67
67
 
68
68
  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; }
69
69
 
70
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
71
-
72
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
73
-
74
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
75
-
76
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
77
-
78
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
79
-
80
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
81
-
82
70
  var RowHeader = function RowHeader(_ref) {
83
71
  var row = _ref.row,
84
72
  chunks = _ref.chunks,
@@ -86,35 +74,18 @@ var RowHeader = function RowHeader(_ref) {
86
74
  CustomComponentLink = _ref.CustomComponentLink;
87
75
  var chunkIds = (0, _map2["default"])(chunks, 'id');
88
76
 
89
- var _useState = (0, _react.useState)(false),
90
- _useState2 = _slicedToArray(_useState, 2),
91
- showPopopver = _useState2[0],
92
- setPopover = _useState2[1];
93
-
94
- var handleOnMouseEnter = (0, _react.useCallback)(function () {
95
- return setPopover(true);
96
- }, [showPopopver]);
97
-
98
77
  var content = /*#__PURE__*/_react["default"].createElement(_fileName.FileName, {
99
78
  name: row.label
100
79
  });
101
80
 
102
- return /*#__PURE__*/_react["default"].createElement("div", {
103
- onMouseEnter: handleOnMouseEnter
104
- }, !showPopopver ? content : /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
105
- ariaLabel: "View module info",
81
+ return /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
106
82
  label: content
107
- }, function (_ref2) {
108
- var popoverToggle = _ref2.popoverToggle;
109
- return /*#__PURE__*/_react["default"].createElement(_moduleInfo.ModuleInfo, {
110
- className: _bundleModulesModule["default"].namePopover,
111
- item: row,
112
- chunks: chunks,
113
- chunkIds: chunkIds,
114
- labels: labels,
115
- customComponentLink: CustomComponentLink,
116
- onClick: popoverToggle
117
- });
83
+ }, /*#__PURE__*/_react["default"].createElement(_moduleInfo.ModuleInfo, {
84
+ item: row,
85
+ chunks: chunks,
86
+ chunkIds: chunkIds,
87
+ labels: labels,
88
+ customComponentLink: CustomComponentLink
118
89
  }));
119
90
  };
120
91
 
@@ -133,10 +104,10 @@ RowHeader.defaultProps = {
133
104
  chunks: []
134
105
  };
135
106
 
136
- var getRenderRowHeader = function getRenderRowHeader(_ref3) {
137
- var labels = _ref3.labels,
138
- chunks = _ref3.chunks,
139
- CustomComponentLink = _ref3.CustomComponentLink;
107
+ var getRenderRowHeader = function getRenderRowHeader(_ref2) {
108
+ var labels = _ref2.labels,
109
+ chunks = _ref2.chunks,
110
+ CustomComponentLink = _ref2.CustomComponentLink;
140
111
  return function (row) {
141
112
  return /*#__PURE__*/_react["default"].createElement(RowHeader, {
142
113
  row: row,
@@ -147,25 +118,25 @@ var getRenderRowHeader = function getRenderRowHeader(_ref3) {
147
118
  };
148
119
  };
149
120
 
150
- var BundleModules = function BundleModules(_ref4) {
121
+ var BundleModules = function BundleModules(_ref3) {
151
122
  var _MODULE_SOURCE_TYPE, _objectSpread2;
152
123
 
153
- var className = _ref4.className,
154
- jobs = _ref4.jobs,
155
- items = _ref4.items,
156
- chunks = _ref4.chunks,
157
- totalRowCount = _ref4.totalRowCount,
158
- updateFilters = _ref4.updateFilters,
159
- resetFilters = _ref4.resetFilters,
160
- resetAllFilters = _ref4.resetAllFilters,
161
- filters = _ref4.filters,
162
- sortFields = _ref4.sortFields,
163
- sort = _ref4.sort,
164
- updateSort = _ref4.updateSort,
165
- search = _ref4.search,
166
- updateSearch = _ref4.updateSearch,
167
- hasActiveFilters = _ref4.hasActiveFilters,
168
- CustomComponentLink = _ref4.customComponentLink;
124
+ var className = _ref3.className,
125
+ jobs = _ref3.jobs,
126
+ items = _ref3.items,
127
+ chunks = _ref3.chunks,
128
+ totalRowCount = _ref3.totalRowCount,
129
+ updateFilters = _ref3.updateFilters,
130
+ resetFilters = _ref3.resetFilters,
131
+ resetAllFilters = _ref3.resetAllFilters,
132
+ filters = _ref3.filters,
133
+ sortFields = _ref3.sortFields,
134
+ sort = _ref3.sort,
135
+ updateSort = _ref3.updateSort,
136
+ search = _ref3.search,
137
+ updateSearch = _ref3.updateSearch,
138
+ hasActiveFilters = _ref3.hasActiveFilters,
139
+ CustomComponentLink = _ref3.customComponentLink;
169
140
  var rootClassName = (0, _classnames["default"])(_bundleModulesModule["default"].root, className);
170
141
  var labels = (0, _react.useMemo)(function () {
171
142
  return (0, _map2["default"])(jobs, 'label');
@@ -199,9 +170,9 @@ var BundleModules = function BundleModules(_ref4) {
199
170
  defaultValue: (0, _get2["default"])(filters, "".concat(_utils.MODULE_SOURCE_TYPE, ".").concat(_utils.MODULE_FILTERS.THIRD_PARTY), true)
200
171
  }), _MODULE_SOURCE_TYPE)), _objectSpread2), !(0, _isEmpty2["default"])(chunks) && _defineProperty({}, _utils.MODULE_CHUNK, _objectSpread({
201
172
  label: 'Chunk'
202
- }, chunks.reduce(function (chunkFilters, _ref5) {
203
- var id = _ref5.id,
204
- name = _ref5.name;
173
+ }, chunks.reduce(function (chunkFilters, _ref4) {
174
+ var id = _ref4.id,
175
+ name = _ref4.name;
205
176
  return _objectSpread(_objectSpread({}, chunkFilters), {}, _defineProperty({}, id, {
206
177
  label: name,
207
178
  defaultValue: (0, _get2["default"])(filters, "".concat(_utils.MODULE_CHUNK, ".").concat(id), true)
@@ -219,8 +190,8 @@ var BundleModules = function BundleModules(_ref4) {
219
190
  className: rootClassName
220
191
  }, /*#__PURE__*/_react["default"].createElement(_toolbar.Toolbar, {
221
192
  className: _bundleModulesModule["default"].toolbar,
222
- renderActions: function renderActions(_ref7) {
223
- var actionClassName = _ref7.actionClassName;
193
+ renderActions: function renderActions(_ref6) {
194
+ var actionClassName = _ref6.actionClassName;
224
195
  return /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
225
196
  space: "xxsmall",
226
197
  className: (0, _classnames["default"])(_bundleModulesModule["default"].dropdown, actionClassName)
@@ -11,7 +11,3 @@
11
11
  max-width: 240px;
12
12
  margin-right: -1px; /** collapse border */
13
13
  }
14
-
15
- .namePopover {
16
- min-width: 280px;
17
- }
@@ -27,7 +27,7 @@ var _emptySet = require("../../ui/empty-set");
27
27
 
28
28
  var _filters = require("../../ui/filters");
29
29
 
30
- var _popover = require("../../ui/popover");
30
+ var _hoverCard = require("../../ui/hover-card");
31
31
 
32
32
  var _sortDropdown = require("../../ui/sort-dropdown");
33
33
 
@@ -69,7 +69,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
69
69
 
70
70
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
71
71
 
72
- var PackagePopoverContent = function PackagePopoverContent(_ref) {
72
+ var PackageCard = function PackageCard(_ref) {
73
73
  var name = _ref.name,
74
74
  fullName = _ref.fullName,
75
75
  path = _ref.path,
@@ -84,46 +84,46 @@ var PackagePopoverContent = function PackagePopoverContent(_ref) {
84
84
 
85
85
  return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
86
86
  space: "xxsmall",
87
- className: _bundlePackagesModule["default"].packagePopover
87
+ className: _bundlePackagesModule["default"].packageCard
88
88
  }, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
89
89
  space: "xxxsmall"
90
90
  }, /*#__PURE__*/_react["default"].createElement("h3", {
91
- className: _bundlePackagesModule["default"].packagePopoverTitle
91
+ className: _bundlePackagesModule["default"].packageCardTitle
92
92
  }, normalizedName, packageId && /*#__PURE__*/_react["default"].createElement("span", {
93
- className: _bundlePackagesModule["default"].packagePopoverTitleIndex
93
+ className: _bundlePackagesModule["default"].packageCardTitleIndex
94
94
  }, "".concat(_utils.PACKAGE_ID_SEPARATOR).concat(packageId))), /*#__PURE__*/_react["default"].createElement("p", {
95
- className: _bundlePackagesModule["default"].packagePopoverPath
95
+ className: _bundlePackagesModule["default"].packageCardPath
96
96
  }, /*#__PURE__*/_react["default"].createElement(_fileName.FileName, {
97
- className: _bundlePackagesModule["default"].packagePopoverPathValue,
97
+ className: _bundlePackagesModule["default"].packageCardPathValue,
98
98
  name: normalizedPackagePath
99
99
  }))), /*#__PURE__*/_react["default"].createElement("ul", {
100
- className: _bundlePackagesModule["default"].packagePopoverList
100
+ className: _bundlePackagesModule["default"].packageCardList
101
101
  }, /*#__PURE__*/_react["default"].createElement("li", {
102
- className: _bundlePackagesModule["default"].packagePopoverItem
102
+ className: _bundlePackagesModule["default"].packageCardItem
103
103
  }, /*#__PURE__*/_react["default"].createElement("a", {
104
104
  href: "https://www.npmjs.com/package/".concat(normalizedName),
105
105
  target: "_blank",
106
106
  rel: "noreferrer"
107
107
  }, "npmjs.com")), /*#__PURE__*/_react["default"].createElement("li", {
108
- className: _bundlePackagesModule["default"].packagePopoverItem
108
+ className: _bundlePackagesModule["default"].packageCardItem
109
109
  }, /*#__PURE__*/_react["default"].createElement("a", {
110
110
  href: "https://bundlephobia.com/result?p=".concat(normalizedName),
111
111
  target: "_blank",
112
112
  rel: "noreferrer"
113
113
  }, "bundlephobia.com"))), /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
114
114
  space: "xxxsmall",
115
- className: _bundlePackagesModule["default"].packagePopover.actions
115
+ className: _bundlePackagesModule["default"].packageCardActions
116
116
  }, duplicate && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(CustomComponentLink, (0, _utils.getBundlePackagesByNameComponentLink)(normalizedName), "View all duplicate instances")), /*#__PURE__*/_react["default"].createElement(CustomComponentLink, (0, _utils.getBundleModulesBySearch)(normalizedPackagePath), "Search modules by package path")));
117
117
  };
118
118
 
119
- PackagePopoverContent.propTypes = {
119
+ PackageCard.propTypes = {
120
120
  name: _propTypes["default"].string.isRequired,
121
121
  path: _propTypes["default"].string,
122
122
  fullName: _propTypes["default"].string.isRequired,
123
123
  duplicate: _propTypes["default"].bool.isRequired,
124
124
  CustomComponentLink: _propTypes["default"].elementType.isRequired
125
125
  };
126
- PackagePopoverContent.defaultProps = {
126
+ PackageCard.defaultProps = {
127
127
  path: ''
128
128
  };
129
129
 
@@ -135,20 +135,25 @@ var PackageRowHeader = function PackageRowHeader(_ref2) {
135
135
  var _ref3 = item.runs[0] || {},
136
136
  path = _ref3.path;
137
137
 
138
- return /*#__PURE__*/_react["default"].createElement("span", {
138
+ return /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
139
+ space: "xxxsmall",
139
140
  className: _bundlePackagesModule["default"].packageNames
140
141
  }, packageNames.map(function (packageName, index) {
141
- // Render duplicate flag only for the last entry
142
- var duplicateFlag = index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/_react["default"].createElement("span", {
143
- className: _bundlePackagesModule["default"].duplicate,
142
+ var label = /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
143
+ space: "xxxsmall",
144
+ className: _bundlePackagesModule["default"].packageNameLabel
145
+ }, index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/_react["default"].createElement("span", {
146
+ className: _bundlePackagesModule["default"].packageNameDuplicate,
144
147
  title: "Duplicate package"
145
- }, "D");
146
-
147
- return /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
148
- className: _bundlePackagesModule["default"].packageName,
149
- icon: duplicateFlag,
150
- label: packageName
151
- }, /*#__PURE__*/_react["default"].createElement(PackagePopoverContent, {
148
+ }, "D"), /*#__PURE__*/_react["default"].createElement("span", {
149
+ className: _bundlePackagesModule["default"].packageNameText
150
+ }, packageName));
151
+
152
+ return /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
153
+ label: label,
154
+ key: packageName,
155
+ className: _bundlePackagesModule["default"].packageName
156
+ }, /*#__PURE__*/_react["default"].createElement(PackageCard, {
152
157
  name: packageName,
153
158
  path: path,
154
159
  fullName: item.label,
@@ -12,20 +12,8 @@
12
12
  margin-right: -1px; /** collapse border */
13
13
  }
14
14
 
15
- .duplicate {
16
- margin-right: var(--space-xxxsmall);
17
- display: inline-block;
18
- width: var(--space-small);
19
- height: var(--space-small);
20
- font-size: 10px;
21
- font-weight: bold;
22
- line-height: var(--space-small);
23
- text-align: center;
24
- text-transform: uppercase;
25
- vertical-align: middle;
26
-
27
- background: var(--color-danger);
28
- color: var(--color-light);
15
+ .packageNames {
16
+ align-items: center;
29
17
  }
30
18
 
31
19
  .packageName {
@@ -38,27 +26,56 @@
38
26
 
39
27
  .packageName + .packageName::before {
40
28
  display: inline-block;
41
- margin: 0 var(--space-xxxsmall);
29
+ margin: 0 var(--space-xxxsmall) 0 0;
42
30
  content: '/';
43
31
  color: var(--color-text-ultra-light);
44
32
  }
45
33
 
46
- .packagePopover {
47
- min-width: 320px;
34
+ .packageNameLabel {
35
+ display: inline-flex;
36
+ align-items: center;
37
+ }
38
+
39
+ .packageNameDuplicate {
40
+ margin-right: var(--space-xxxsmall);
41
+ display: inline-block;
42
+ width: var(--space-xsmall);
43
+ height: var(--space-xsmall);
44
+ font-size: 8px;
45
+ font-weight: bold;
46
+ line-height: var(--space-xsmall);
47
+ text-align: center;
48
+ text-transform: uppercase;
49
+ vertical-align: middle;
50
+
51
+ background: var(--color-danger);
52
+ color: var(--color-light);
53
+ }
54
+
55
+ .packageName:hover,
56
+ .packageName:active,
57
+ .packageName:focus {
58
+ text-decoration: none !important;
59
+ }
60
+
61
+ .packageName:hover .packageNameText,
62
+ .packageName:active .packageNameText,
63
+ .packageName:focus .packageNameText {
64
+ text-decoration: underline !important;
48
65
  }
49
66
 
50
- .packagePopoverTitleIndex {
67
+ .packageCardTitleIndex {
51
68
  color: var(--color-text-light);
52
69
  font-weight: normal;
53
70
  }
54
71
 
55
- .packagePopoverPathValue {
72
+ .packageCardPathValue {
56
73
  padding: var(--space-xxxsmall);
57
74
  background: var(--color-highlight-warning);
58
75
  font-family: var(--font-family-monospace);
59
76
  }
60
77
 
61
- .packagePopoverList {
78
+ .packageCardList {
62
79
  padding: 0;
63
80
  list-style: inside;
64
81
  }
@@ -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
 
@@ -37,8 +39,10 @@ var MetricsTableTitle = function MetricsTableTitle(props) {
37
39
  space: "xxxsmall"
38
40
  }, /*#__PURE__*/_react["default"].createElement("span", null, title), info && /*#__PURE__*/_react["default"].createElement("span", {
39
41
  className: _metricsTableTitleModule["default"].info
40
- }, info), (popoverInfo || popoverHref) && /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
41
- icon: "help"
42
+ }, info), (popoverInfo || popoverHref) && /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
43
+ label: /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
44
+ glyph: "help"
45
+ })
42
46
  }, /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
43
47
  space: "xxxsmall"
44
48
  }, popoverInfo && /*#__PURE__*/_react["default"].createElement("p", null, popoverInfo), popoverHref && /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("a", {
@@ -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 _icon = require("../../ui/icon");
17
+
18
+ var _hoverCard = require("../../ui/hover-card");
17
19
 
18
20
  var _skeleton = require("../../ui/skeleton");
19
21
 
@@ -37,29 +39,23 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
37
39
 
38
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; }
39
41
 
40
- var MetricInfoPopover = function MetricInfoPopover(_ref) {
42
+ var MetricDescriptionCard = function MetricDescriptionCard(_ref) {
41
43
  var description = _ref.description,
42
44
  url = _ref.url;
43
-
44
- // Workaround cases where the parent is a link
45
- var readMoreOnClick = function readMoreOnClick() {
46
- window.open(url);
47
- };
48
-
49
45
  return /*#__PURE__*/_react["default"].createElement(_stack.Stack, {
50
- space: "xxxsmall"
51
- }, /*#__PURE__*/_react["default"].createElement("p", null, description), url && /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("button", {
52
- type: "button",
53
- className: _summaryItemModule["default"].readMoreBtn,
54
- onClick: readMoreOnClick
46
+ space: "xxsmall"
47
+ }, /*#__PURE__*/_react["default"].createElement("p", null, description), url && /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("a", {
48
+ href: url,
49
+ target: "_blank",
50
+ rel: "noopener noreferrer"
55
51
  }, "Read more")));
56
52
  };
57
53
 
58
- MetricInfoPopover.propTypes = {
54
+ MetricDescriptionCard.propTypes = {
59
55
  description: _propTypes["default"].string.isRequired,
60
56
  url: _propTypes["default"].string
61
57
  };
62
- MetricInfoPopover.defaultProps = {
58
+ MetricDescriptionCard.defaultProps = {
63
59
  url: ''
64
60
  };
65
61
 
@@ -93,10 +89,12 @@ var SummaryItem = function SummaryItem(_ref2) {
93
89
  as: "h3",
94
90
  space: "xxxsmall",
95
91
  className: _summaryItemModule["default"].title
96
- }, /*#__PURE__*/_react["default"].createElement("span", null, metric.label), showMetricDescriptionTooltip && /*#__PURE__*/_react["default"].createElement(_popover.Popover, {
92
+ }, /*#__PURE__*/_react["default"].createElement("span", null, metric.label), showMetricDescriptionTooltip && /*#__PURE__*/_react["default"].createElement(_hoverCard.HoverCard, {
97
93
  className: _summaryItemModule["default"].icon,
98
- icon: "help"
99
- }, /*#__PURE__*/_react["default"].createElement(MetricInfoPopover, metric))), !loading ? /*#__PURE__*/_react["default"].createElement(_stack.Stack, null, /*#__PURE__*/_react["default"].createElement(_metric.Metric, {
94
+ label: /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
95
+ glyph: "help"
96
+ })
97
+ }, /*#__PURE__*/_react["default"].createElement(MetricDescriptionCard, metric))), !loading ? /*#__PURE__*/_react["default"].createElement(_stack.Stack, null, /*#__PURE__*/_react["default"].createElement(_metric.Metric, {
100
98
  className: _summaryItemModule["default"].currentMetric,
101
99
  value: current,
102
100
  formatter: metric.formatter,
@@ -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", {
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -11,7 +13,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
13
 
12
14
  var _classnames = _interopRequireDefault(require("classnames"));
13
15
 
14
- var _Menu = require("reakit/Menu");
16
+ var BaseDropdownMenu = _interopRequireWildcard(require("@radix-ui/react-dropdown-menu"));
15
17
 
16
18
  var _flexStack = require("../../layout/flex-stack");
17
19
 
@@ -19,9 +21,11 @@ var _icon = require("../icon");
19
21
 
20
22
  var _dropdownModule = _interopRequireDefault(require("./dropdown.module.css"));
21
23
 
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
25
 
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); }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
29
 
26
30
  var Dropdown = function Dropdown(props) {
27
31
  var className = props.className,
@@ -31,25 +35,20 @@ var Dropdown = function Dropdown(props) {
31
35
  activeLabel = props.activeLabel,
32
36
  children = props.children;
33
37
  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,
40
- tabIndex: null
41
- }), /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
38
+ return /*#__PURE__*/_react["default"].createElement(BaseDropdownMenu.Root, null, /*#__PURE__*/_react["default"].createElement(BaseDropdownMenu.Trigger, {
39
+ className: rootClassName
40
+ }, /*#__PURE__*/_react["default"].createElement(_flexStack.FlexStack, {
42
41
  space: "xxxsmall",
43
42
  className: _dropdownModule["default"].label
44
43
  }, glyph && /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
45
44
  className: _dropdownModule["default"].labelIcon,
46
45
  glyph: glyph
47
- }), label)), /*#__PURE__*/_react["default"].createElement(_Menu.Menu, _extends({}, menu, {
46
+ }), label)), /*#__PURE__*/_react["default"].createElement(BaseDropdownMenu.Content, {
47
+ className: _dropdownModule["default"].dropdown,
48
48
  "aria-label": ariaLabel || label,
49
- className: _dropdownModule["default"].dropdown
50
- }), typeof children === 'function' ? children({
51
- MenuItem: _Menu.MenuItem,
52
- menu: menu,
49
+ align: "start"
50
+ }, typeof children === 'function' ? children({
51
+ MenuItem: BaseDropdownMenu.Item,
53
52
  menuItemClassName: _dropdownModule["default"].menuItem,
54
53
  menuItemActiveClassName: _dropdownModule["default"].menuItemActive
55
54
  }) : children));
@@ -76,9 +75,6 @@ Dropdown.propTypes = {
76
75
  /** Icon glyph */
77
76
  glyph: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
78
77
 
79
- /** Dropdown open state */
80
- open: _propTypes["default"].bool.isRequired,
81
-
82
78
  /** Active label flag */
83
79
  activeLabel: _propTypes["default"].bool,
84
80