@bundle-stats/ui 3.2.6-beta.1 → 3.2.6-beta.4

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 (80) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/lib/components/bundle-assets/bundle-assets.js +8 -6
  3. package/lib/components/bundle-assets/bundle-assets.module.css +5 -0
  4. package/lib/components/bundle-modules/bundle-modules.js +4 -5
  5. package/lib/components/bundle-packages/bundle-packages.js +6 -4
  6. package/lib/components/bundle-packages/bundle-packages.module.css +4 -0
  7. package/lib/components/metrics-table-title/metrics-table-title.js +9 -7
  8. package/lib/components/metrics-table-title/metrics-table-title.module.css +2 -0
  9. package/lib/components/module-info/module-info.module.css +1 -0
  10. package/lib/components/summary-item/summary-item.js +14 -17
  11. package/lib/components/summary-item/summary-item.module.css +1 -19
  12. package/lib/components/total-size-type-title/total-size-type-title.js +7 -3
  13. package/lib/css/variables.css +1 -1
  14. package/lib/hooks/search-params.js +6 -6
  15. package/lib/ui/dropdown/dropdown.js +15 -24
  16. package/lib/ui/dropdown/dropdown.module.css +7 -7
  17. package/lib/ui/dropdown/dropdown.stories.js +2 -9
  18. package/lib/ui/hover-card/hover-card.js +100 -0
  19. package/lib/ui/hover-card/hover-card.module.css +52 -0
  20. package/lib/ui/hover-card/hover-card.stories.js +56 -0
  21. package/lib/ui/{popover → hover-card}/index.js +4 -4
  22. package/lib/ui/icon/icon.js +6 -6
  23. package/lib/ui/index.js +0 -8
  24. package/lib/ui/tooltip/tooltip.js +10 -9
  25. package/lib-esm/components/bundle-assets/bundle-assets.js +8 -6
  26. package/lib-esm/components/bundle-assets/bundle-assets.module.css +5 -0
  27. package/lib-esm/components/bundle-modules/bundle-modules.js +4 -5
  28. package/lib-esm/components/bundle-packages/bundle-packages.js +6 -4
  29. package/lib-esm/components/bundle-packages/bundle-packages.module.css +4 -0
  30. package/lib-esm/components/metrics-table-title/metrics-table-title.js +8 -7
  31. package/lib-esm/components/metrics-table-title/metrics-table-title.module.css +2 -0
  32. package/lib-esm/components/module-info/module-info.module.css +1 -0
  33. package/lib-esm/components/summary-item/summary-item.js +13 -17
  34. package/lib-esm/components/summary-item/summary-item.module.css +1 -19
  35. package/lib-esm/components/total-size-type-title/total-size-type-title.js +6 -3
  36. package/lib-esm/css/variables.css +1 -1
  37. package/lib-esm/hooks/search-params.js +6 -6
  38. package/lib-esm/ui/dropdown/dropdown.js +14 -23
  39. package/lib-esm/ui/dropdown/dropdown.module.css +7 -7
  40. package/lib-esm/ui/dropdown/dropdown.stories.js +2 -7
  41. package/lib-esm/ui/hover-card/hover-card.js +86 -0
  42. package/lib-esm/ui/hover-card/hover-card.module.css +52 -0
  43. package/lib-esm/ui/hover-card/hover-card.stories.js +35 -0
  44. package/lib-esm/ui/hover-card/index.js +1 -0
  45. package/lib-esm/ui/icon/icon.js +3 -3
  46. package/lib-esm/ui/index.js +0 -1
  47. package/lib-esm/ui/tooltip/tooltip.js +10 -9
  48. package/package.json +11 -11
  49. package/src/components/bundle-assets/bundle-assets.jsx +38 -36
  50. package/src/components/bundle-assets/bundle-assets.module.css +5 -0
  51. package/src/components/bundle-modules/bundle-modules.jsx +24 -14
  52. package/src/components/bundle-packages/bundle-packages.jsx +11 -3
  53. package/src/components/bundle-packages/bundle-packages.module.css +4 -0
  54. package/src/components/metrics-table-title/metrics-table-title.jsx +20 -21
  55. package/src/components/metrics-table-title/metrics-table-title.module.css +2 -0
  56. package/src/components/module-info/module-info.jsx +1 -5
  57. package/src/components/module-info/module-info.module.css +1 -0
  58. package/src/components/summary-item/summary-item.jsx +20 -26
  59. package/src/components/summary-item/summary-item.module.css +1 -19
  60. package/src/components/total-size-type-title/total-size-type-title.jsx +6 -9
  61. package/src/css/variables.css +1 -1
  62. package/src/hooks/search-params.js +18 -11
  63. package/src/ui/dropdown/dropdown.jsx +9 -17
  64. package/src/ui/dropdown/dropdown.module.css +7 -7
  65. package/src/ui/hover-card/hover-card.jsx +79 -0
  66. package/src/ui/hover-card/hover-card.module.css +52 -0
  67. package/src/ui/hover-card/index.js +1 -0
  68. package/src/ui/icon/icon.jsx +11 -7
  69. package/src/ui/index.js +0 -1
  70. package/src/ui/tooltip/tooltip.jsx +10 -14
  71. package/lib/ui/popover/popover.js +0 -92
  72. package/lib/ui/popover/popover.module.css +0 -66
  73. package/lib/ui/popover/popover.stories.js +0 -26
  74. package/lib-esm/ui/popover/index.js +0 -1
  75. package/lib-esm/ui/popover/popover.js +0 -71
  76. package/lib-esm/ui/popover/popover.module.css +0 -66
  77. package/lib-esm/ui/popover/popover.stories.js +0 -14
  78. package/src/ui/popover/index.js +0 -1
  79. package/src/ui/popover/popover.jsx +0 -79
  80. package/src/ui/popover/popover.module.css +0 -66
@@ -0,0 +1,52 @@
1
+ .root {
2
+ display: inline-block;
3
+ }
4
+
5
+ .anchor {
6
+ display: inline-block;
7
+ color: inherit;
8
+ text-decoration: none;
9
+ }
10
+
11
+ a.anchor,
12
+ buton.anchor {
13
+ cursor: pointer;
14
+ }
15
+
16
+ a.anchor:hover,
17
+ button.anchor:hover {
18
+ color: var(--color-primary);
19
+ text-decoration: underline;
20
+ }
21
+
22
+ .hoverCard {
23
+ padding: var(--space-xsmall) var(--space-large) var(--space-xsmall) var(--space-small);
24
+ border-radius: var(--radius-medium);
25
+ max-width: 320px;
26
+ outline: none;
27
+ filter: drop-shadow(0 0 var(--space-xxsmall) var(--color-shadow));
28
+ will-change: filter;
29
+ background: var(--color-light);
30
+ font-size: var(--size-small);
31
+ }
32
+
33
+ .closeBtn {
34
+ position: absolute;
35
+ right: 0;
36
+ top: var(--space-xxxsmall);
37
+ width: var(--space-large);
38
+ height: var(--space-large);
39
+ padding: var(--space-xxsmall);
40
+ background: none;
41
+ border: none;
42
+ cursor: pointer;
43
+ color: var(--color-text-ultra-light);
44
+ transition: var(--transition-out);
45
+ }
46
+
47
+ .closeBtn:hover,
48
+ .closeBtn:active,
49
+ .closeBtn:focus {
50
+ color: var(--color-text-light);
51
+ transition: var(--transition-in);
52
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.WithRenderFn = 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
+ 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); }
15
+
16
+ var _default = {
17
+ title: 'UI/HoverCard',
18
+ component: _.HoverCard
19
+ };
20
+ exports["default"] = _default;
21
+
22
+ var Template = function Template(props) {
23
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_.HoverCard, _extends({}, props, {
24
+ style: {
25
+ zIndex: 2
26
+ }
27
+ })), /*#__PURE__*/_react["default"].createElement("p", {
28
+ style: {
29
+ position: 'relative',
30
+ zIndex: 1,
31
+ maxWidth: 360
32
+ }
33
+ }, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras in neque ante. Curabitur vehicula, lorem sit amet fringilla dapibus, justo mauris varius elit, ut fermentum leo velit eget risus"));
34
+ };
35
+
36
+ var Default = function Default() {
37
+ return /*#__PURE__*/_react["default"].createElement(Template, {
38
+ label: "main.js"
39
+ }, /*#__PURE__*/_react["default"].createElement("h1", null, "main.js"), /*#__PURE__*/_react["default"].createElement("p", null, "info"));
40
+ };
41
+
42
+ exports.Default = Default;
43
+
44
+ var WithRenderFn = function WithRenderFn() {
45
+ return /*#__PURE__*/_react["default"].createElement(Template, {
46
+ label: "main.js"
47
+ }, function (_ref) {
48
+ var close = _ref.close;
49
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h1", null, "main.js"), /*#__PURE__*/_react["default"].createElement("p", null, "info"), /*#__PURE__*/_react["default"].createElement("button", {
50
+ type: "button",
51
+ onClick: close
52
+ }, "close"));
53
+ });
54
+ };
55
+
56
+ exports.WithRenderFn = WithRenderFn;
@@ -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
  });
@@ -37,12 +37,12 @@ var ICONS = {
37
37
  WARNING: 'warning'
38
38
  };
39
39
 
40
- var Icon = function Icon(_ref) {
41
- var className = _ref.className,
42
- glyph = _ref.glyph,
43
- Component = _ref.as,
44
- size = _ref.size,
45
- restProps = _objectWithoutProperties(_ref, _excluded);
40
+ var Icon = function Icon(props) {
41
+ var className = props.className,
42
+ glyph = props.glyph,
43
+ Component = props.as,
44
+ size = props.size,
45
+ restProps = _objectWithoutProperties(props, _excluded);
46
46
 
47
47
  return /*#__PURE__*/_react["default"].createElement(Component, _extends({
48
48
  className: (0, _classnames["default"])(_iconModule["default"].root, className, _iconModule["default"][size])
package/lib/ui/index.js CHANGED
@@ -75,12 +75,6 @@ Object.defineProperty(exports, "Panels", {
75
75
  return _panels.Panels;
76
76
  }
77
77
  });
78
- Object.defineProperty(exports, "Popover", {
79
- enumerable: true,
80
- get: function get() {
81
- return _popover.Popover;
82
- }
83
- });
84
78
  Object.defineProperty(exports, "Skeleton", {
85
79
  enumerable: true,
86
80
  get: function get() {
@@ -142,8 +136,6 @@ var _logo = require("./logo");
142
136
 
143
137
  var _panels = require("./panels");
144
138
 
145
- var _popover = require("./popover");
146
-
147
139
  var _skeleton = require("./skeleton");
148
140
 
149
141
  var _sortDropdown = require("./sort-dropdown");
@@ -11,7 +11,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
- var _Tooltip = require("reakit/Tooltip");
14
+ var _tooltip = require("ariakit/tooltip");
15
15
 
16
16
  var _tooltipModule = _interopRequireDefault(require("./tooltip.module.css"));
17
17
 
@@ -34,22 +34,23 @@ var Tooltip = function Tooltip(props) {
34
34
  darkMode = props.darkMode,
35
35
  restProps = _objectWithoutProperties(props, _excluded);
36
36
 
37
- var rootClassName = (0, _classnames["default"])(_tooltipModule["default"].root, className);
38
- var tooltipProps = (0, _Tooltip.useTooltipState)({
39
- baseId: process.env.NODE_ENV === 'test' && 'id-test',
37
+ var tooltip = (0, _tooltip.useTooltipState)({
40
38
  placement: 'top'
41
39
  });
42
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tooltip.TooltipReference, _extends({
40
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_tooltip.TooltipAnchor, _extends({
43
41
  as: Component,
44
- className: rootClassName
42
+ className: (0, _classnames["default"])(_tooltipModule["default"].root, className),
43
+ state: tooltip
45
44
  }, ref ? {
46
45
  ref: ref
47
- } : {}, restProps, tooltipProps), children), title && /*#__PURE__*/_react["default"].createElement(_Tooltip.Tooltip, _extends({}, tooltipProps, {
46
+ } : {}, restProps), children), title && /*#__PURE__*/_react["default"].createElement(_tooltip.Tooltip, {
47
+ state: tooltip,
48
48
  className: (0, _classnames["default"])(_tooltipModule["default"].tooltip, darkMode && _tooltipModule["default"].tooltipDarkMode)
49
- }), /*#__PURE__*/_react["default"].createElement(_Tooltip.TooltipArrow, _extends({}, tooltipProps, {
49
+ }, /*#__PURE__*/_react["default"].createElement(_tooltip.TooltipArrow, {
50
+ state: tooltip,
50
51
  className: _tooltipModule["default"].arrow,
51
52
  size: 12
52
- })), title));
53
+ }), title));
53
54
  };
54
55
 
55
56
  exports.Tooltip = Tooltip;
@@ -12,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 { Tag } from '../../ui/tag';
18
18
  import { Filters } from '../../ui/filters';
@@ -87,11 +87,11 @@ const getRenderRowHeader = _ref4 => {
87
87
  isEntry,
88
88
  isInitial
89
89
  } = item;
90
- return /*#__PURE__*/React.createElement(Popover, {
91
- label: /*#__PURE__*/React.createElement(FileName, {
92
- name: label
93
- }),
94
- icon: /*#__PURE__*/React.createElement("div", {
90
+ return /*#__PURE__*/React.createElement(HoverCard, {
91
+ label: /*#__PURE__*/React.createElement(FlexStack, {
92
+ space: "xxxsmall",
93
+ className: css.assetName
94
+ }, /*#__PURE__*/React.createElement("div", {
95
95
  className: css.assetInfoFlags
96
96
  }, isNotPredictive && /*#__PURE__*/React.createElement(Tooltip, {
97
97
  className: css.notPredictive,
@@ -116,6 +116,8 @@ const getRenderRowHeader = _ref4 => {
116
116
  size: Tag.SIZES.SMALL,
117
117
  kind: Tag.KINDS.INFO,
118
118
  className: cx(css.tag, css.tagInitial)
119
+ })), /*#__PURE__*/React.createElement(FileName, {
120
+ name: label
119
121
  }))
120
122
  }, /*#__PURE__*/React.createElement(AssetInfo, {
121
123
  className: css.assetInfo,
@@ -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;
@@ -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';
@@ -42,12 +42,11 @@ const RowHeader = _ref => {
42
42
  });
43
43
  return /*#__PURE__*/React.createElement("div", {
44
44
  onMouseEnter: handleOnMouseEnter
45
- }, !showPopopver ? content : /*#__PURE__*/React.createElement(Popover, {
46
- ariaLabel: "View module info",
45
+ }, !showPopopver ? content : /*#__PURE__*/React.createElement(HoverCard, {
47
46
  label: content
48
47
  }, _ref2 => {
49
48
  let {
50
- popoverToggle
49
+ close
51
50
  } = _ref2;
52
51
  return /*#__PURE__*/React.createElement(ModuleInfo, {
53
52
  className: css.namePopover,
@@ -56,7 +55,7 @@ const RowHeader = _ref => {
56
55
  chunkIds: chunkIds,
57
56
  labels: labels,
58
57
  customComponentLink: CustomComponentLink,
59
- onClick: popoverToggle
58
+ onClick: close
60
59
  });
61
60
  }));
62
61
  };
@@ -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 { Tag } from '../../ui/tag';
16
16
  import { Toolbar } from '../../ui/toolbar';
@@ -96,10 +96,12 @@ const PackageRowHeader = _ref2 => {
96
96
  size: Tag.SIZES.SMALL,
97
97
  className: css.tagDuplicate
98
98
  });
99
- return /*#__PURE__*/React.createElement(Popover, {
99
+ return /*#__PURE__*/React.createElement(HoverCard, {
100
100
  className: css.packageName,
101
- icon: duplicateFlag,
102
- label: packageName
101
+ label: /*#__PURE__*/React.createElement(FlexStack, {
102
+ space: "xxxsmall",
103
+ className: css.packageNameLabel
104
+ }, duplicateFlag, /*#__PURE__*/React.createElement("span", null, packageName))
103
105
  }, /*#__PURE__*/React.createElement(PackagePopoverContent, {
104
106
  name: packageName,
105
107
  path: path,
@@ -35,6 +35,10 @@
35
35
  color: var(--color-text-ultra-light);
36
36
  }
37
37
 
38
+ .packageNameLabel {
39
+ align-items: center;
40
+ }
41
+
38
42
  .packagePopover {
39
43
  min-width: 320px;
40
44
  }
@@ -4,7 +4,8 @@ import cx from 'classnames';
4
4
  import I18N from '../../i18n';
5
5
  import { FlexStack } from '../../layout/flex-stack';
6
6
  import { Stack } from '../../layout/stack';
7
- import { Popover } from '../../ui/popover';
7
+ import { Icon } from '../../ui/icon';
8
+ import { HoverCard } from '../../ui/hover-card';
8
9
  import css from './metrics-table-title.module.css';
9
10
  export const MetricsTableTitle = props => {
10
11
  const {
@@ -15,22 +16,22 @@ export const MetricsTableTitle = props => {
15
16
  popoverHref
16
17
  } = props;
17
18
  const rootClassName = cx(css.root, className);
18
- return /*#__PURE__*/React.createElement(Stack, {
19
+ return /*#__PURE__*/React.createElement(FlexStack, {
19
20
  space: "xxxsmall",
20
21
  className: rootClassName
21
- }, /*#__PURE__*/React.createElement(FlexStack, {
22
- space: "xxxsmall"
23
22
  }, /*#__PURE__*/React.createElement("span", null, title), info && /*#__PURE__*/React.createElement("span", {
24
23
  className: css.info
25
- }, info), (popoverInfo || popoverHref) && /*#__PURE__*/React.createElement(Popover, {
26
- icon: "help"
24
+ }, info), (popoverInfo || popoverHref) && /*#__PURE__*/React.createElement(HoverCard, {
25
+ label: /*#__PURE__*/React.createElement(Icon, {
26
+ glyph: "help"
27
+ })
27
28
  }, /*#__PURE__*/React.createElement(Stack, {
28
29
  space: "xxxsmall"
29
30
  }, popoverInfo && /*#__PURE__*/React.createElement("p", null, popoverInfo), popoverHref && /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement("a", {
30
31
  href: popoverHref,
31
32
  target: "_blank",
32
33
  rel: "noreferrer"
33
- }, I18N.READ_MORE))))));
34
+ }, I18N.READ_MORE)))));
34
35
  };
35
36
  MetricsTableTitle.propTypes = {
36
37
  className: PropTypes.string,
@@ -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
  }
@@ -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
  }
@@ -4,7 +4,8 @@ import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import cx from 'classnames';
6
6
  import { getGlobalMetricType, getMetricRunInfo } from '@bundle-stats/utils';
7
- import { Popover } from '../../ui/popover';
7
+ import { HoverCard } from '../../ui/hover-card';
8
+ import { Icon } from '../../ui/icon';
8
9
  import { Skeleton } from '../../ui/skeleton';
9
10
  import { Stack } from '../../layout/stack';
10
11
  import { FlexStack } from '../../layout/flex-stack';
@@ -12,31 +13,24 @@ import { Metric } from '../metric';
12
13
  import { Delta } from '../delta';
13
14
  import css from './summary-item.module.css';
14
15
 
15
- const MetricInfoPopover = _ref => {
16
+ const MetricInfo = _ref => {
16
17
  let {
17
18
  description,
18
19
  url
19
20
  } = _ref;
20
-
21
- // Workaround cases where the parent is a link
22
- const readMoreOnClick = () => {
23
- window.open(url);
24
- };
25
-
26
21
  return /*#__PURE__*/React.createElement(Stack, {
27
22
  space: "xxxsmall"
28
- }, /*#__PURE__*/React.createElement("p", null, description), url && /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement("button", {
29
- type: "button",
30
- className: css.readMoreBtn,
31
- onClick: readMoreOnClick
23
+ }, /*#__PURE__*/React.createElement("p", null, description), url && /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement("a", {
24
+ href: url,
25
+ className: css.readMoreLink
32
26
  }, "Read more")));
33
27
  };
34
28
 
35
- MetricInfoPopover.propTypes = {
29
+ MetricInfo.propTypes = {
36
30
  description: PropTypes.string.isRequired,
37
31
  url: PropTypes.string
38
32
  };
39
- MetricInfoPopover.defaultProps = {
33
+ MetricInfo.defaultProps = {
40
34
  url: ''
41
35
  };
42
36
  export const SummaryItem = _ref2 => {
@@ -70,10 +64,12 @@ export const SummaryItem = _ref2 => {
70
64
  as: "h3",
71
65
  space: "xxxsmall",
72
66
  className: css.title
73
- }, /*#__PURE__*/React.createElement("span", null, metric.label), showMetricDescriptionTooltip && /*#__PURE__*/React.createElement(Popover, {
67
+ }, /*#__PURE__*/React.createElement("span", null, metric.label), showMetricDescriptionTooltip && /*#__PURE__*/React.createElement(HoverCard, {
74
68
  className: css.icon,
75
- icon: "help"
76
- }, /*#__PURE__*/React.createElement(MetricInfoPopover, metric))), !loading ? /*#__PURE__*/React.createElement(Stack, null, /*#__PURE__*/React.createElement(Metric, {
69
+ label: /*#__PURE__*/React.createElement(Icon, {
70
+ glyph: "help"
71
+ })
72
+ }, /*#__PURE__*/React.createElement(MetricInfo, metric))), !loading ? /*#__PURE__*/React.createElement(Stack, null, /*#__PURE__*/React.createElement(Metric, {
77
73
  className: css.currentMetric,
78
74
  value: current,
79
75
  formatter: metric.formatter,
@@ -1,4 +1,5 @@
1
1
  .title {
2
+ align-items: center;
2
3
  color: var(--color-text-ultra-light);
3
4
  font-weight: bold;
4
5
  font-size: var(--size-xsmall);
@@ -7,25 +8,6 @@
7
8
  white-space: nowrap;
8
9
  }
9
10
 
10
- .readMoreBtn {
11
- appearance: none;
12
- padding: 0;
13
- border: 0;
14
- background: none;
15
- cursor: pointer;
16
- /* simulate link */
17
- color: var(--color-primary);
18
- text-decoration: underline;
19
- line-height: var(--space-small);
20
- }
21
-
22
- .readMoreBtn:hover,
23
- .readMoreBtn:active,
24
- .readMoreBtn:focus {
25
- color: var(--color-primary-dark);
26
- text-decoration: none;
27
- }
28
-
29
11
  .currentMetric {
30
12
  display: block;
31
13
  color: var(--color-heading);
@@ -5,7 +5,8 @@ import config from '../../config.json';
5
5
  import I18N from '../../i18n';
6
6
  import { FlexStack } from '../../layout/flex-stack';
7
7
  import { Stack } from '../../layout/stack';
8
- import { Popover } from '../../ui/popover';
8
+ import { Icon } from '../../ui/icon';
9
+ import { HoverCard } from '../../ui/hover-card';
9
10
  import css from './total-size-type-title.module.css';
10
11
  export const TotalSizeTypeTitle = _ref => {
11
12
  let {
@@ -14,8 +15,10 @@ export const TotalSizeTypeTitle = _ref => {
14
15
  return /*#__PURE__*/React.createElement(FlexStack, {
15
16
  space: "xxxsmall",
16
17
  className: cx(css.title, className)
17
- }, /*#__PURE__*/React.createElement("span", null, I18N.ASSET_TOTALS), /*#__PURE__*/React.createElement(Popover, {
18
- icon: "help"
18
+ }, /*#__PURE__*/React.createElement("span", null, I18N.ASSET_TOTALS), /*#__PURE__*/React.createElement(HoverCard, {
19
+ label: /*#__PURE__*/React.createElement(Icon, {
20
+ glyph: "help"
21
+ })
19
22
  }, /*#__PURE__*/React.createElement(Stack, {
20
23
  space: "xxxsmall"
21
24
  }, /*#__PURE__*/React.createElement("p", null, I18N.ASSET_TOTALS_INFO), /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement("a", {
@@ -170,7 +170,7 @@
170
170
  --color-outline-warning: var(--color-yellow-200);
171
171
  --color-outline-danger: var(--color-red-100);
172
172
 
173
- --color-shadow: rgba(0, 0, 0, 0.1);
173
+ --color-shadow: rgba(0, 0, 0, 0.2);
174
174
 
175
175
  --transition-in: all 0.2s ease-in;
176
176
  --transition-out: all 0.17s ease-out;
@@ -124,7 +124,7 @@ export const useSearchParams = _ref2 => {
124
124
 
125
125
  useLayoutEffect(() => {
126
126
  // Run a deep comparison to prevent circular setState triggering
127
- if (parentSearch === search || _isEqual(parentFilters, filters)) {
127
+ if (parentSearch === search && _isEqual(initialFilters, filters)) {
128
128
  return;
129
129
  }
130
130
 
@@ -132,7 +132,7 @@ export const useSearchParams = _ref2 => {
132
132
  type: ACTION_SET,
133
133
  payload: generateState(initialFilters, parentSearch)
134
134
  });
135
- }, [search, filters, parentFilters, parentSearch]);
135
+ }, [dispatch, search, filters, parentSearch, initialFilters]);
136
136
  /** Callbacks */
137
137
 
138
138
  const handleUpdateSearch = useCallback(newValue => {
@@ -140,23 +140,23 @@ export const useSearchParams = _ref2 => {
140
140
  type: ACTION_SET_SEARCH,
141
141
  payload: newValue
142
142
  });
143
- }, []);
143
+ }, [dispatch]);
144
144
  const handleUpdateFilters = useCallback(newFilters => {
145
145
  dispatch({
146
146
  type: ACTION_SET_FILTERS,
147
147
  payload: newFilters
148
148
  });
149
- }, []);
149
+ }, [dispatch]);
150
150
  const handleResetFilters = useCallback(() => {
151
151
  dispatch({
152
152
  type: ACTION_RESET_DEFAULT
153
153
  });
154
- }, []);
154
+ }, [dispatch]);
155
155
  const handleResetAllFilters = useCallback(() => {
156
156
  dispatch({
157
157
  type: ACTION_RESET_ALL
158
158
  });
159
- }, []);
159
+ }, [dispatch]);
160
160
  return {
161
161
  search,
162
162
  searchPattern,
@@ -1,9 +1,7 @@
1
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
1
  import React from 'react';
4
2
  import PropTypes from 'prop-types';
5
3
  import cx from 'classnames';
6
- import { Menu, MenuItem, MenuButton, useMenuState } from 'reakit/Menu';
4
+ import { Menu, MenuButton, MenuItem, useMenuState } from 'ariakit/menu';
7
5
  import { FlexStack } from '../../layout/flex-stack';
8
6
  import { Icon } from '../icon';
9
7
  import css from './dropdown.module.css';
@@ -13,28 +11,28 @@ export const Dropdown = props => {
13
11
  label,
14
12
  ariaLabel,
15
13
  glyph,
16
- activeLabel,
17
14
  children
18
15
  } = props;
19
- const rootClassName = cx(css.root, activeLabel && css.activeLabel, className);
20
- const menu = useMenuState({
21
- baseId: process.env.NODE_ENV === 'test' && 'id-test',
22
- modal: true
23
- });
24
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MenuButton, _extends({}, menu, {
25
- className: rootClassName,
16
+ const rootClassName = cx(css.root, className);
17
+ const menuState = useMenuState();
18
+ return /*#__PURE__*/React.createElement("div", {
19
+ className: rootClassName
20
+ }, /*#__PURE__*/React.createElement(MenuButton, {
21
+ state: menuState,
22
+ className: css.button,
26
23
  tabIndex: null
27
- }), /*#__PURE__*/React.createElement(FlexStack, {
24
+ }, /*#__PURE__*/React.createElement(FlexStack, {
28
25
  space: "xxxsmall"
29
26
  }, glyph && /*#__PURE__*/React.createElement(Icon, {
30
27
  className: css.labelIcon,
31
28
  glyph: glyph
32
- }), label)), /*#__PURE__*/React.createElement(Menu, _extends({}, menu, {
29
+ }), label)), /*#__PURE__*/React.createElement(Menu, {
30
+ state: menuState,
33
31
  "aria-label": ariaLabel || label,
34
32
  className: css.dropdown
35
- }), typeof children === 'function' ? children({
33
+ }, typeof children === 'function' ? children({
36
34
  MenuItem,
37
- menu,
35
+ menu: menuState,
38
36
  menuItemClassName: css.menuItem,
39
37
  menuItemActiveClassName: css.menuItemActive
40
38
  }) : children));
@@ -43,8 +41,7 @@ Dropdown.defaultProps = {
43
41
  className: '',
44
42
  label: null,
45
43
  ariaLabel: '',
46
- glyph: null,
47
- activeLabel: false
44
+ glyph: null
48
45
  };
49
46
  Dropdown.propTypes = {
50
47
  /** Adopted child class name */
@@ -59,12 +56,6 @@ Dropdown.propTypes = {
59
56
  /** Icon glyph */
60
57
  glyph: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
61
58
 
62
- /** Dropdown open state */
63
- open: PropTypes.bool.isRequired,
64
-
65
- /** Active label flag */
66
- activeLabel: PropTypes.bool,
67
-
68
59
  /** Content */
69
60
  children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.func]).isRequired
70
61
  };