@bundle-stats/ui 3.2.2-beta.0 → 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 (99) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/lib/app/app.js +1 -1
  3. package/lib/app/app.stories.js +2 -2
  4. package/lib/components/browsertime-table/browsertime-table.js +1 -1
  5. package/lib/components/browsertime-table/browsertime-table.stories.js +1 -1
  6. package/lib/components/bundle-assets/bundle-assets.js +12 -10
  7. package/lib/components/bundle-assets/bundle-assets.module.css +5 -0
  8. package/lib/components/bundle-assets/bundle-assets.utils.js +2 -2
  9. package/lib/components/bundle-assets/index.js +3 -3
  10. package/lib/components/bundle-assets-totals-chart-bars/bundle-assets-totals-chart-bars.js +1 -1
  11. package/lib/components/bundle-assets-totals-table/bundle-assets-totals-table.js +1 -1
  12. package/lib/components/bundle-modules/bundle-modules.js +37 -66
  13. package/lib/components/bundle-modules/bundle-modules.module.css +0 -4
  14. package/lib/components/bundle-modules/bundle-modules.utils.js +2 -2
  15. package/lib/components/bundle-modules/index.js +3 -3
  16. package/lib/components/bundle-packages/bundle-packages.js +30 -25
  17. package/lib/components/bundle-packages/bundle-packages.module.css +37 -20
  18. package/lib/components/bundle-packages/bundle-packages.utils.js +2 -2
  19. package/lib/components/bundle-packages/index.js +1 -1
  20. package/lib/components/lighthouse-table/lighthouse-table.js +1 -1
  21. package/lib/components/metrics-table/metrics-table.js +1 -1
  22. package/lib/components/metrics-table-search/metrics-table-search.js +1 -1
  23. package/lib/components/metrics-table-search/metrics-table-search.stories.js +1 -1
  24. package/lib/components/metrics-table-title/metrics-table-title.js +7 -3
  25. package/lib/components/summary-item/summary-item.js +16 -18
  26. package/lib/components/total-size-type-title/total-size-type-title.js +7 -3
  27. package/lib/constants.js +2 -2
  28. package/lib/hooks/search-params.js +2 -2
  29. package/lib/query-state.js +1 -1
  30. package/lib/stories/wrapper.js +2 -2
  31. package/lib/ui/dropdown/dropdown.js +15 -19
  32. package/lib/ui/filters/filters.container.js +5 -5
  33. package/lib/ui/filters/filters.js +5 -7
  34. package/lib/ui/filters/filters.stories.js +3 -3
  35. package/lib/ui/horizontal-bar-chart/horizontal-bar-chart.js +3 -3
  36. package/lib/ui/hover-card/hover-card.js +65 -0
  37. package/lib/ui/hover-card/hover-card.module.css +29 -0
  38. package/lib/ui/hover-card/hover-card.stories.js +26 -0
  39. package/lib/ui/{popover → hover-card}/index.js +4 -4
  40. package/lib/ui/icon/icon.module.css +1 -0
  41. package/lib/ui/index.js +8 -8
  42. package/lib/ui/panels/panels.js +2 -2
  43. package/lib/ui/sort-dropdown/sort-dropdown.js +2 -5
  44. package/lib/ui/tabs/tabs.js +2 -2
  45. package/lib/ui/tooltip/tooltip.js +22 -14
  46. package/lib/ui/tooltip/tooltip.module.css +5 -3
  47. package/lib/utils.js +2 -2
  48. package/lib-esm/components/bundle-assets/bundle-assets.js +9 -7
  49. package/lib-esm/components/bundle-assets/bundle-assets.module.css +5 -0
  50. package/lib-esm/components/bundle-modules/bundle-modules.js +17 -29
  51. package/lib-esm/components/bundle-modules/bundle-modules.module.css +0 -4
  52. package/lib-esm/components/bundle-packages/bundle-packages.js +28 -23
  53. package/lib-esm/components/bundle-packages/bundle-packages.module.css +37 -20
  54. package/lib-esm/components/metrics-table-title/metrics-table-title.js +6 -3
  55. package/lib-esm/components/summary-item/summary-item.js +15 -18
  56. package/lib-esm/components/total-size-type-title/total-size-type-title.js +6 -3
  57. package/lib-esm/ui/dropdown/dropdown.js +9 -19
  58. package/lib-esm/ui/filters/filters.container.js +39 -41
  59. package/lib-esm/ui/filters/filters.js +3 -5
  60. package/lib-esm/ui/hover-card/hover-card.js +45 -0
  61. package/lib-esm/ui/hover-card/hover-card.module.css +29 -0
  62. package/lib-esm/ui/hover-card/hover-card.stories.js +9 -0
  63. package/lib-esm/ui/hover-card/index.js +1 -0
  64. package/lib-esm/ui/icon/icon.module.css +1 -0
  65. package/lib-esm/ui/index.js +1 -1
  66. package/lib-esm/ui/sort-dropdown/sort-dropdown.js +2 -5
  67. package/lib-esm/ui/tooltip/tooltip.js +15 -14
  68. package/lib-esm/ui/tooltip/tooltip.module.css +5 -3
  69. package/package.json +33 -30
  70. package/src/components/bundle-assets/bundle-assets.jsx +51 -42
  71. package/src/components/bundle-assets/bundle-assets.module.css +5 -0
  72. package/src/components/bundle-modules/bundle-modules.jsx +28 -31
  73. package/src/components/bundle-modules/bundle-modules.module.css +0 -4
  74. package/src/components/bundle-packages/bundle-packages.jsx +31 -25
  75. package/src/components/bundle-packages/bundle-packages.module.css +37 -20
  76. package/src/components/metrics-table-options/metrics-table-options.jsx +1 -1
  77. package/src/components/metrics-table-title/metrics-table-title.jsx +4 -3
  78. package/src/components/summary-item/summary-item.jsx +21 -26
  79. package/src/components/total-size-type-title/total-size-type-title.jsx +6 -9
  80. package/src/ui/dropdown/dropdown.jsx +14 -18
  81. package/src/ui/filters/filters.jsx +30 -39
  82. package/src/ui/hover-card/hover-card.jsx +42 -0
  83. package/src/ui/hover-card/hover-card.module.css +29 -0
  84. package/src/ui/hover-card/index.js +1 -0
  85. package/src/ui/icon/icon.module.css +1 -0
  86. package/src/ui/index.js +1 -1
  87. package/src/ui/sort-dropdown/sort-dropdown.jsx +9 -11
  88. package/src/ui/tooltip/tooltip.jsx +20 -27
  89. package/src/ui/tooltip/tooltip.module.css +5 -3
  90. package/lib/ui/popover/popover.js +0 -92
  91. package/lib/ui/popover/popover.module.css +0 -66
  92. package/lib/ui/popover/popover.stories.js +0 -26
  93. package/lib-esm/ui/popover/index.js +0 -1
  94. package/lib-esm/ui/popover/popover.js +0 -71
  95. package/lib-esm/ui/popover/popover.module.css +0 -66
  96. package/lib-esm/ui/popover/popover.stories.js +0 -14
  97. package/src/ui/popover/index.js +0 -1
  98. package/src/ui/popover/popover.jsx +0 -79
  99. package/src/ui/popover/popover.module.css +0 -66
@@ -0,0 +1,29 @@
1
+ .label {
2
+ color: inherit;
3
+ cursor: pointer;
4
+ }
5
+
6
+ .label:hover,
7
+ .label:focus,
8
+ .label:active {
9
+ color: var(--color-primary);
10
+ }
11
+
12
+ .label:hover {
13
+ text-decoration: underline;
14
+ }
15
+
16
+ .card {
17
+ padding: var(--space-small);
18
+ border-radius: var(--radius-small);
19
+ width: 320px;
20
+ outline: none;
21
+ filter: drop-shadow(0 0 var(--space-xxxsmall) var(--color-shadow));
22
+ background: var(--color-light);
23
+ font-size: var(--size-small);
24
+ line-height: 1.6;
25
+ }
26
+
27
+ .arrow {
28
+ fill: var(--color-light);
29
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.Default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _ = require(".");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+
14
+ var _default = {
15
+ name: 'UI/HoverCard',
16
+ component: _.HoverCard
17
+ };
18
+ exports["default"] = _default;
19
+
20
+ var Default = function Default() {
21
+ return /*#__PURE__*/_react["default"].createElement(_.HoverCard, {
22
+ label: "Open popover"
23
+ }, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua");
24
+ };
25
+
26
+ exports.Default = Default;
@@ -4,15 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
 
7
- var _popover = require("./popover");
7
+ var _hoverCard = require("./hover-card");
8
8
 
9
- Object.keys(_popover).forEach(function (key) {
9
+ Object.keys(_hoverCard).forEach(function (key) {
10
10
  if (key === "default" || key === "__esModule") return;
11
- if (key in exports && exports[key] === _popover[key]) return;
11
+ if (key in exports && exports[key] === _hoverCard[key]) return;
12
12
  Object.defineProperty(exports, key, {
13
13
  enumerable: true,
14
14
  get: function get() {
15
- return _popover[key];
15
+ return _hoverCard[key];
16
16
  }
17
17
  });
18
18
  });
@@ -1,5 +1,6 @@
1
1
  .root {
2
2
  display: inline-block;
3
+ vertical-align: middle; /** center align when parent display is inline/inline-block **/
3
4
  }
4
5
 
5
6
  .icon {
package/lib/ui/index.js CHANGED
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "HorizontalBarChart", {
45
45
  return _horizontalBarChart.HorizontalBarChart;
46
46
  }
47
47
  });
48
+ Object.defineProperty(exports, "HoverCard", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _hoverCard.HoverCard;
52
+ }
53
+ });
48
54
  Object.defineProperty(exports, "Icon", {
49
55
  enumerable: true,
50
56
  get: function get() {
@@ -75,12 +81,6 @@ Object.defineProperty(exports, "Panels", {
75
81
  return _panels.Panels;
76
82
  }
77
83
  });
78
- Object.defineProperty(exports, "Popover", {
79
- enumerable: true,
80
- get: function get() {
81
- return _popover.Popover;
82
- }
83
- });
84
84
  Object.defineProperty(exports, "Skeleton", {
85
85
  enumerable: true,
86
86
  get: function get() {
@@ -130,14 +130,14 @@ var _icon = require("./icon");
130
130
 
131
131
  var _input = require("./input");
132
132
 
133
+ var _hoverCard = require("./hover-card");
134
+
133
135
  var _loader = require("./loader");
134
136
 
135
137
  var _logo = require("./logo");
136
138
 
137
139
  var _panels = require("./panels");
138
140
 
139
- var _popover = require("./popover");
140
-
141
141
  var _skeleton = require("./skeleton");
142
142
 
143
143
  var _sortDropdown = require("./sort-dropdown");
@@ -20,9 +20,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
20
20
 
21
21
  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); }
22
22
 
23
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
24
 
25
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
26
 
27
27
  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; }
28
28
 
@@ -47,11 +47,9 @@ var SortDropdown = function SortDropdown(props) {
47
47
  return /*#__PURE__*/_react["default"].createElement(_dropdown.Dropdown, {
48
48
  className: rootClassName,
49
49
  label: customLabel,
50
- glyph: "sort",
51
- align: "right"
50
+ glyph: "sort"
52
51
  }, function (_ref) {
53
52
  var MenuItem = _ref.MenuItem,
54
- menu = _ref.menu,
55
53
  menuItemClassName = _ref.menuItemClassName,
56
54
  menuItemActiveClassName = _ref.menuItemActiveClassName;
57
55
 
@@ -61,7 +59,6 @@ var SortDropdown = function SortDropdown(props) {
61
59
  field: newField,
62
60
  direction: newDirection
63
61
  });
64
- menu.toggle();
65
62
  };
66
63
  };
67
64
 
@@ -83,7 +80,7 @@ var SortDropdown = function SortDropdown(props) {
83
80
  var isActive = field === key;
84
81
  return /*#__PURE__*/_react["default"].createElement(MenuItem, _extends({
85
82
  key: key
86
- }, menu, buttonProps, {
83
+ }, buttonProps, {
87
84
  className: (0, _classnames["default"])(buttonProps.className, menuItemClassName, _sortDropdownModule["default"].item, isActive && menuItemActiveClassName, isActive && _sortDropdownModule["default"].active)
88
85
  }), /*#__PURE__*/_react["default"].createElement("span", {
89
86
  className: _sortDropdownModule["default"].itemLabel
@@ -17,9 +17,9 @@ var _excluded = ["className", "isTabActive"];
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
19
 
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
21
 
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
23
 
24
24
  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; }
25
25
 
@@ -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,12 +13,16 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
13
 
12
14
  var _classnames = _interopRequireDefault(require("classnames"));
13
15
 
14
- var _Tooltip = require("reakit/Tooltip");
16
+ var BaseTooltip = _interopRequireWildcard(require("@radix-ui/react-tooltip"));
15
17
 
16
18
  var _tooltipModule = _interopRequireDefault(require("./tooltip.module.css"));
17
19
 
18
20
  var _excluded = ["className", "title", "children", "as", "containerRef", "darkMode"];
19
21
 
22
+ 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
+
24
+ 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; }
25
+
20
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
27
 
22
28
  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,6 +31,9 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
25
31
 
26
32
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
27
33
 
34
+ var OFFSET = 9;
35
+ var DELAY = 200;
36
+
28
37
  var Tooltip = function Tooltip(props) {
29
38
  var className = props.className,
30
39
  title = props.title,
@@ -35,21 +44,20 @@ var Tooltip = function Tooltip(props) {
35
44
  restProps = _objectWithoutProperties(props, _excluded);
36
45
 
37
46
  var rootClassName = (0, _classnames["default"])(_tooltipModule["default"].root, className);
38
- var tooltipProps = (0, _Tooltip.useTooltipState)({
39
- baseId: process.env.NODE_ENV === 'test' && 'id-test',
40
- placement: 'top'
41
- });
42
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tooltip.TooltipReference, _extends({
43
- as: Component,
47
+ var tooltipClassName = (0, _classnames["default"])(_tooltipModule["default"].tooltip, darkMode && _tooltipModule["default"].tooltipDarkMode);
48
+ return /*#__PURE__*/_react["default"].createElement(BaseTooltip.Provider, null, /*#__PURE__*/_react["default"].createElement(BaseTooltip.Root, {
49
+ delayDuration: DELAY
50
+ }, /*#__PURE__*/_react["default"].createElement(BaseTooltip.Trigger, {
51
+ asChild: true
52
+ }, /*#__PURE__*/_react["default"].createElement(Component, _extends({
44
53
  className: rootClassName
45
- }, ref ? {
46
- ref: ref
47
- } : {}, restProps, tooltipProps), children), title && /*#__PURE__*/_react["default"].createElement(_Tooltip.Tooltip, _extends({}, tooltipProps, {
48
- className: (0, _classnames["default"])(_tooltipModule["default"].tooltip, darkMode && _tooltipModule["default"].tooltipDarkMode)
49
- }), /*#__PURE__*/_react["default"].createElement(_Tooltip.TooltipArrow, _extends({}, tooltipProps, {
54
+ }, restProps), children)), title && /*#__PURE__*/_react["default"].createElement(BaseTooltip.Content, {
55
+ className: tooltipClassName
56
+ }, /*#__PURE__*/_react["default"].createElement(BaseTooltip.Arrow, {
50
57
  className: _tooltipModule["default"].arrow,
51
- size: 12
52
- })), title));
58
+ startOffset: OFFSET,
59
+ offset: OFFSET
60
+ }), title)));
53
61
  };
54
62
 
55
63
  exports.Tooltip = Tooltip;
@@ -1,4 +1,7 @@
1
1
  .root {
2
+ appearance: none;
3
+ border: none;
4
+ background: none;
2
5
  position: relative;
3
6
  color: inherit;
4
7
  line-height: inherit;
@@ -20,8 +23,7 @@
20
23
  line-height: var(--space-small);
21
24
  }
22
25
 
23
- .arrow svg {
24
- display: block;
26
+ .arrow {
25
27
  fill: var(--color-light);
26
28
  }
27
29
 
@@ -30,6 +32,6 @@
30
32
  color: var(--color-light);
31
33
  }
32
34
 
33
- .tooltipDarkMode .arrow svg {
35
+ .tooltipDarkMode .arrow {
34
36
  fill: var(--color-text);
35
37
  }
package/lib/utils.js CHANGED
@@ -15,9 +15,9 @@ var _chartColors = _interopRequireDefault(require("./chart-colors.json"));
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
17
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
 
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  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; }
23
23
 
@@ -12,7 +12,7 @@ import I18N from '../../i18n';
12
12
  import { FlexStack } from '../../layout/flex-stack';
13
13
  import { Icon } from '../../ui/icon';
14
14
  import { FileName } from '../../ui/file-name';
15
- import { Popover } from '../../ui/popover';
15
+ import { HoverCard } from '../../ui/hover-card';
16
16
  import { Tooltip } from '../../ui/tooltip';
17
17
  import { Filters } from '../../ui/filters';
18
18
  import { SortDropdown } from '../../ui/sort-dropdown';
@@ -86,11 +86,11 @@ const getRenderRowHeader = _ref4 => {
86
86
  isEntry,
87
87
  isInitial
88
88
  } = item;
89
- return /*#__PURE__*/React.createElement(Popover, {
90
- label: /*#__PURE__*/React.createElement(FileName, {
91
- name: label
92
- }),
93
- icon: /*#__PURE__*/React.createElement("div", {
89
+ return /*#__PURE__*/React.createElement(HoverCard, {
90
+ label: /*#__PURE__*/React.createElement(FlexStack, {
91
+ space: "xxxsmall",
92
+ className: css.assetName
93
+ }, /*#__PURE__*/React.createElement("div", {
94
94
  className: css.assetInfoFlags
95
95
  }, isNotPredictive && /*#__PURE__*/React.createElement(Tooltip, {
96
96
  className: css.notPredictive,
@@ -109,7 +109,9 @@ const getRenderRowHeader = _ref4 => {
109
109
  }, "e"), isInitial && /*#__PURE__*/React.createElement("span", {
110
110
  title: "Initial",
111
111
  className: css.flagInitial
112
- }, "i"))
112
+ }, "i")), /*#__PURE__*/React.createElement(FileName, {
113
+ name: label
114
+ }))
113
115
  }, /*#__PURE__*/React.createElement(AssetInfo, {
114
116
  className: css.assetInfo,
115
117
  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;
@@ -4,7 +4,7 @@ import _get from "lodash/get";
4
4
 
5
5
  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); }
6
6
 
7
- import React, { useCallback, useMemo, useState } from 'react';
7
+ import React, { useMemo } from 'react';
8
8
  import PropTypes from 'prop-types';
9
9
  import cx from 'classnames';
10
10
  import { FILE_TYPE_LABELS, MODULE_SOURCE_FILE_TYPES, MODULE_SOURCE_TYPE, MODULE_CHUNK, MODULE_FILTERS, MODULE_FILE_TYPE } from '@bundle-stats/utils';
@@ -15,7 +15,7 @@ import { FlexStack } from '../../layout/flex-stack';
15
15
  import { EmptySet } from '../../ui/empty-set';
16
16
  import { FileName } from '../../ui/file-name';
17
17
  import { Filters } from '../../ui/filters';
18
- import { Popover } from '../../ui/popover';
18
+ import { HoverCard } from '../../ui/hover-card';
19
19
  import { SortDropdown } from '../../ui/sort-dropdown';
20
20
  import { Toolbar } from '../../ui/toolbar';
21
21
  import { MetricsTable } from '../metrics-table';
@@ -35,29 +35,17 @@ const RowHeader = _ref => {
35
35
 
36
36
  const chunkIds = _map(chunks, 'id');
37
37
 
38
- const [showPopopver, setPopover] = useState(false);
39
- const handleOnMouseEnter = useCallback(() => setPopover(true), [showPopopver]);
40
38
  const content = /*#__PURE__*/React.createElement(FileName, {
41
39
  name: row.label
42
40
  });
43
- return /*#__PURE__*/React.createElement("div", {
44
- onMouseEnter: handleOnMouseEnter
45
- }, !showPopopver ? content : /*#__PURE__*/React.createElement(Popover, {
46
- ariaLabel: "View module info",
41
+ return /*#__PURE__*/React.createElement(HoverCard, {
47
42
  label: content
48
- }, _ref2 => {
49
- let {
50
- popoverToggle
51
- } = _ref2;
52
- return /*#__PURE__*/React.createElement(ModuleInfo, {
53
- className: css.namePopover,
54
- item: row,
55
- chunks: chunks,
56
- chunkIds: chunkIds,
57
- labels: labels,
58
- customComponentLink: CustomComponentLink,
59
- onClick: popoverToggle
60
- });
43
+ }, /*#__PURE__*/React.createElement(ModuleInfo, {
44
+ item: row,
45
+ chunks: chunks,
46
+ chunkIds: chunkIds,
47
+ labels: labels,
48
+ customComponentLink: CustomComponentLink
61
49
  }));
62
50
  };
63
51
 
@@ -76,12 +64,12 @@ RowHeader.defaultProps = {
76
64
  chunks: []
77
65
  };
78
66
 
79
- const getRenderRowHeader = _ref3 => {
67
+ const getRenderRowHeader = _ref2 => {
80
68
  let {
81
69
  labels,
82
70
  chunks,
83
71
  CustomComponentLink
84
- } = _ref3;
72
+ } = _ref2;
85
73
  return row => /*#__PURE__*/React.createElement(RowHeader, {
86
74
  row: row,
87
75
  chunks: chunks,
@@ -90,7 +78,7 @@ const getRenderRowHeader = _ref3 => {
90
78
  });
91
79
  };
92
80
 
93
- export const BundleModules = _ref4 => {
81
+ export const BundleModules = _ref3 => {
94
82
  let {
95
83
  className,
96
84
  jobs,
@@ -108,7 +96,7 @@ export const BundleModules = _ref4 => {
108
96
  updateSearch,
109
97
  hasActiveFilters,
110
98
  customComponentLink: CustomComponentLink
111
- } = _ref4;
99
+ } = _ref3;
112
100
  const rootClassName = cx(css.root, className);
113
101
  const labels = useMemo(() => _map(jobs, 'label'), [jobs]);
114
102
  const renderRowHeader = useMemo(() => getRenderRowHeader({
@@ -143,11 +131,11 @@ export const BundleModules = _ref4 => {
143
131
  ...(!_isEmpty(chunks) && {
144
132
  [MODULE_CHUNK]: {
145
133
  label: 'Chunk',
146
- ...chunks.reduce((chunkFilters, _ref5) => {
134
+ ...chunks.reduce((chunkFilters, _ref4) => {
147
135
  let {
148
136
  id,
149
137
  name
150
- } = _ref5;
138
+ } = _ref4;
151
139
  return { ...chunkFilters,
152
140
  [id]: {
153
141
  label: name,
@@ -172,10 +160,10 @@ export const BundleModules = _ref4 => {
172
160
  className: rootClassName
173
161
  }, /*#__PURE__*/React.createElement(Toolbar, {
174
162
  className: css.toolbar,
175
- renderActions: _ref6 => {
163
+ renderActions: _ref5 => {
176
164
  let {
177
165
  actionClassName
178
- } = _ref6;
166
+ } = _ref5;
179
167
  return /*#__PURE__*/React.createElement(FlexStack, {
180
168
  space: "xxsmall",
181
169
  className: cx(css.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
- }
@@ -10,7 +10,7 @@ import { Stack } from '../../layout/stack';
10
10
  import { FlexStack } from '../../layout/flex-stack';
11
11
  import { EmptySet } from '../../ui/empty-set';
12
12
  import { Filters } from '../../ui/filters';
13
- import { Popover } from '../../ui/popover';
13
+ import { HoverCard } from '../../ui/hover-card';
14
14
  import { SortDropdown } from '../../ui/sort-dropdown';
15
15
  import { Toolbar } from '../../ui/toolbar';
16
16
  import { FileName } from '../../ui/file-name';
@@ -21,7 +21,7 @@ import { MetricsTableOptions } from '../metrics-table-options';
21
21
  import { MetricsTableTitle } from '../metrics-table-title';
22
22
  import css from './bundle-packages.module.css';
23
23
 
24
- const PackagePopoverContent = _ref => {
24
+ const PackageCard = _ref => {
25
25
  let {
26
26
  name,
27
27
  fullName,
@@ -33,46 +33,46 @@ const PackagePopoverContent = _ref => {
33
33
  const [normalizedName, packageId] = name.split(PACKAGE_ID_SEPARATOR);
34
34
  return /*#__PURE__*/React.createElement(Stack, {
35
35
  space: "xxsmall",
36
- className: css.packagePopover
36
+ className: css.packageCard
37
37
  }, /*#__PURE__*/React.createElement(Stack, {
38
38
  space: "xxxsmall"
39
39
  }, /*#__PURE__*/React.createElement("h3", {
40
- className: css.packagePopoverTitle
40
+ className: css.packageCardTitle
41
41
  }, normalizedName, packageId && /*#__PURE__*/React.createElement("span", {
42
- className: css.packagePopoverTitleIndex
42
+ className: css.packageCardTitleIndex
43
43
  }, `${PACKAGE_ID_SEPARATOR}${packageId}`)), /*#__PURE__*/React.createElement("p", {
44
- className: css.packagePopoverPath
44
+ className: css.packageCardPath
45
45
  }, /*#__PURE__*/React.createElement(FileName, {
46
- className: css.packagePopoverPathValue,
46
+ className: css.packageCardPathValue,
47
47
  name: normalizedPackagePath
48
48
  }))), /*#__PURE__*/React.createElement("ul", {
49
- className: css.packagePopoverList
49
+ className: css.packageCardList
50
50
  }, /*#__PURE__*/React.createElement("li", {
51
- className: css.packagePopoverItem
51
+ className: css.packageCardItem
52
52
  }, /*#__PURE__*/React.createElement("a", {
53
53
  href: `https://www.npmjs.com/package/${normalizedName}`,
54
54
  target: "_blank",
55
55
  rel: "noreferrer"
56
56
  }, "npmjs.com")), /*#__PURE__*/React.createElement("li", {
57
- className: css.packagePopoverItem
57
+ className: css.packageCardItem
58
58
  }, /*#__PURE__*/React.createElement("a", {
59
59
  href: `https://bundlephobia.com/result?p=${normalizedName}`,
60
60
  target: "_blank",
61
61
  rel: "noreferrer"
62
62
  }, "bundlephobia.com"))), /*#__PURE__*/React.createElement(Stack, {
63
63
  space: "xxxsmall",
64
- className: css.packagePopover.actions
64
+ className: css.packageCardActions
65
65
  }, duplicate && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(CustomComponentLink, getBundlePackagesByNameComponentLink(normalizedName), "View all duplicate instances")), /*#__PURE__*/React.createElement(CustomComponentLink, getBundleModulesBySearch(normalizedPackagePath), "Search modules by package path")));
66
66
  };
67
67
 
68
- PackagePopoverContent.propTypes = {
68
+ PackageCard.propTypes = {
69
69
  name: PropTypes.string.isRequired,
70
70
  path: PropTypes.string,
71
71
  fullName: PropTypes.string.isRequired,
72
72
  duplicate: PropTypes.bool.isRequired,
73
73
  CustomComponentLink: PropTypes.elementType.isRequired
74
74
  };
75
- PackagePopoverContent.defaultProps = {
75
+ PackageCard.defaultProps = {
76
76
  path: ''
77
77
  };
78
78
 
@@ -85,19 +85,24 @@ const PackageRowHeader = _ref2 => {
85
85
  const {
86
86
  path
87
87
  } = item.runs[0] || {};
88
- return /*#__PURE__*/React.createElement("span", {
88
+ return /*#__PURE__*/React.createElement(FlexStack, {
89
+ space: "xxxsmall",
89
90
  className: css.packageNames
90
91
  }, packageNames.map((packageName, index) => {
91
- // Render duplicate flag only for the last entry
92
- const duplicateFlag = index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/React.createElement("span", {
93
- className: css.duplicate,
92
+ const label = /*#__PURE__*/React.createElement(FlexStack, {
93
+ space: "xxxsmall",
94
+ className: css.packageNameLabel
95
+ }, index === packageNames.length - 1 && item.duplicate && /*#__PURE__*/React.createElement("span", {
96
+ className: css.packageNameDuplicate,
94
97
  title: "Duplicate package"
95
- }, "D");
96
- return /*#__PURE__*/React.createElement(Popover, {
97
- className: css.packageName,
98
- icon: duplicateFlag,
99
- label: packageName
100
- }, /*#__PURE__*/React.createElement(PackagePopoverContent, {
98
+ }, "D"), /*#__PURE__*/React.createElement("span", {
99
+ className: css.packageNameText
100
+ }, packageName));
101
+ return /*#__PURE__*/React.createElement(HoverCard, {
102
+ label: label,
103
+ key: packageName,
104
+ className: css.packageName
105
+ }, /*#__PURE__*/React.createElement(PackageCard, {
101
106
  name: packageName,
102
107
  path: path,
103
108
  fullName: item.label,