@pingux/astro 1.42.1 → 1.42.2-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.
@@ -2,12 +2,24 @@
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
4
 
5
- var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
6
6
 
7
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
7
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
8
+
9
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
8
10
 
9
11
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
10
12
 
13
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
14
+
15
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
16
+
17
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
18
+
19
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
20
+
21
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
22
+
11
23
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
24
 
13
25
  _Object$defineProperty(exports, "__esModule", {
@@ -16,6 +28,8 @@ _Object$defineProperty(exports, "__esModule", {
16
28
 
17
29
  exports["default"] = void 0;
18
30
 
31
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
32
+
19
33
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
20
34
 
21
35
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
@@ -30,27 +44,40 @@ var _Box = _interopRequireDefault(require("../Box/Box"));
30
44
 
31
45
  var _hooks = require("../../hooks");
32
46
 
47
+ var _hoverProps = require("../../utils/devUtils/props/hoverProps");
48
+
33
49
  var _react2 = require("@emotion/react");
34
50
 
35
- var _excluded = ["children", "className", "isSelected"];
51
+ var _excluded = ["children", "className", "isHovered", "isSelected", "onHoverChange", "onHoverEnd", "onHoverStart"];
36
52
 
37
53
  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); }
38
54
 
39
55
  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; }
40
56
 
57
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
58
+
59
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
60
+
41
61
  /**
42
62
  * List Item component.
43
63
  * Accepts most of the styling props from [styled-system](https://styled-system.com/table).
44
64
  */
45
- var ListItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
46
- var children = props.children,
47
- className = props.className,
48
- isSelected = props.isSelected,
49
- others = (0, _objectWithoutProperties2["default"])(props, _excluded);
50
-
51
- var _useHover = (0, _interactions.useHover)(props),
52
- hoverProps = _useHover.hoverProps,
53
- isHovered = _useHover.isHovered;
65
+ var ListItem = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
66
+ var children = _ref.children,
67
+ className = _ref.className,
68
+ isHovered = _ref.isHovered,
69
+ isSelected = _ref.isSelected,
70
+ onHoverChange = _ref.onHoverChange,
71
+ onHoverEnd = _ref.onHoverEnd,
72
+ onHoverStart = _ref.onHoverStart,
73
+ others = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
74
+
75
+ var _useHover = (0, _interactions.useHover)({
76
+ onHoverChange: onHoverChange,
77
+ onHoverEnd: onHoverEnd,
78
+ onHoverStart: onHoverStart
79
+ }),
80
+ hoverProps = _useHover.hoverProps;
54
81
 
55
82
  var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
56
83
  isHovered: isHovered,
@@ -60,14 +87,12 @@ var ListItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
60
87
 
61
88
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
62
89
  className: classNames,
63
- role: "listitem",
64
90
  ref: ref,
65
- as: "li",
66
91
  variant: "boxes.listItem",
67
92
  isRow: true
68
93
  }, hoverProps, others), children);
69
94
  });
70
- ListItem.propTypes = {
95
+ ListItem.propTypes = _objectSpread({
71
96
  /**
72
97
  * A list of class names to apply to the element
73
98
  */
@@ -77,7 +102,7 @@ ListItem.propTypes = {
77
102
  * Sets the selected state of the ListItem
78
103
  */
79
104
  isSelected: _propTypes["default"].bool
80
- };
105
+ }, _hoverProps.onHoverPropTypes);
81
106
  ListItem.defaultProps = {
82
107
  isSelected: false
83
108
  };
@@ -1,72 +1,97 @@
1
1
  "use strict";
2
2
 
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
6
+
7
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
8
+
9
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
10
+
11
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
12
+
13
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
14
+
15
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
16
+
17
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
18
+
3
19
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
20
 
21
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
22
+
5
23
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
24
 
7
25
  _Object$defineProperty(exports, "__esModule", {
8
26
  value: true
9
27
  });
10
28
 
11
- exports["default"] = exports.WithSubtitle = exports.Default = void 0;
29
+ exports["default"] = exports.WithSubtitle = exports.WithHoverHandlers = exports.Default = void 0;
30
+
31
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
12
32
 
13
- var _react = _interopRequireDefault(require("react"));
33
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
34
+
35
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
36
+
37
+ var _react = _interopRequireWildcard(require("react"));
14
38
 
15
39
  var _AccountIcon = _interopRequireDefault(require("mdi-react/AccountIcon"));
16
40
 
17
41
  var _MoreVertIcon = _interopRequireDefault(require("mdi-react/MoreVertIcon"));
18
42
 
19
- var _ListItem = _interopRequireDefault(require("./ListItem"));
43
+ var _ = require("../..");
20
44
 
21
- var _Box = _interopRequireDefault(require("../Box"));
45
+ var _hoverProps = require("../../utils/devUtils/props/hoverProps");
22
46
 
23
- var _Icon = _interopRequireDefault(require("../Icon"));
47
+ var _react2 = require("@emotion/react");
24
48
 
25
- var _IconButton = _interopRequireDefault(require("../IconButton"));
49
+ 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); }
26
50
 
27
- var _Text = _interopRequireDefault(require("../Text"));
51
+ 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; }
28
52
 
29
- var _Separator = _interopRequireDefault(require("../Separator"));
53
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
54
 
31
- var _react2 = require("@emotion/react");
55
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
32
56
 
33
57
  var _default = {
34
58
  title: 'Components/ListItem',
35
- component: _ListItem["default"],
59
+ component: _.ListItem,
36
60
  parameters: {
37
61
  docs: {
38
62
  source: {
39
63
  type: 'code'
40
64
  }
41
65
  }
42
- }
66
+ },
67
+ argTypes: _objectSpread({}, _hoverProps.onHoverArgTypes)
43
68
  };
44
69
  exports["default"] = _default;
45
70
 
46
71
  var Default = function Default(args) {
47
- return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_Separator["default"], {
72
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.Separator, {
48
73
  margin: 0
49
- }), (0, _react2.jsx)(_ListItem["default"], args, (0, _react2.jsx)(_Box["default"], {
74
+ }), (0, _react2.jsx)(_.ListItem, args, (0, _react2.jsx)(_.Box, {
50
75
  isRow: true,
51
76
  mr: "auto",
52
77
  alignSelf: "center"
53
- }, (0, _react2.jsx)(_Icon["default"], {
78
+ }, (0, _react2.jsx)(_.Icon, {
54
79
  icon: _AccountIcon["default"],
55
80
  alignSelf: "center",
56
81
  mr: "sm",
57
82
  color: "accent.40",
58
83
  size: 32
59
- }), (0, _react2.jsx)(_Text["default"], {
84
+ }), (0, _react2.jsx)(_.Text, {
60
85
  variant: "itemTitle",
61
86
  alignSelf: "center"
62
- }, "Fons Vernall")), (0, _react2.jsx)(_Box["default"], {
87
+ }, "Fons Vernall")), (0, _react2.jsx)(_.Box, {
63
88
  isRow: true,
64
89
  alignSelf: "center"
65
- }, (0, _react2.jsx)(_IconButton["default"], null, (0, _react2.jsx)(_Icon["default"], {
90
+ }, (0, _react2.jsx)(_.IconButton, null, (0, _react2.jsx)(_.Icon, {
66
91
  icon: _MoreVertIcon["default"],
67
92
  size: "sm",
68
93
  color: "neutral.20"
69
- })))), (0, _react2.jsx)(_Separator["default"], {
94
+ })))), (0, _react2.jsx)(_.Separator, {
70
95
  margin: 0
71
96
  }));
72
97
  };
@@ -74,33 +99,89 @@ var Default = function Default(args) {
74
99
  exports.Default = Default;
75
100
 
76
101
  var WithSubtitle = function WithSubtitle(args) {
77
- return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_Separator["default"], {
102
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.Separator, {
78
103
  margin: 0
79
- }), (0, _react2.jsx)(_ListItem["default"], args, (0, _react2.jsx)(_Box["default"], {
104
+ }), (0, _react2.jsx)(_.ListItem, args, (0, _react2.jsx)(_.Box, {
80
105
  isRow: true,
81
106
  mr: "auto",
82
107
  alignSelf: "center"
83
- }, (0, _react2.jsx)(_Icon["default"], {
108
+ }, (0, _react2.jsx)(_.Icon, {
84
109
  icon: _AccountIcon["default"],
85
110
  alignSelf: "center",
86
111
  mr: "sm",
87
112
  color: "accent.40",
88
113
  size: 32
89
- }), (0, _react2.jsx)(_Box["default"], null, (0, _react2.jsx)(_Text["default"], {
114
+ }), (0, _react2.jsx)(_.Box, null, (0, _react2.jsx)(_.Text, {
90
115
  variant: "itemTitle"
91
- }, "Fons Vernall"), (0, _react2.jsx)(_Text["default"], {
116
+ }, "Fons Vernall"), (0, _react2.jsx)(_.Text, {
92
117
  variant: "itemSubtitle",
93
118
  mt: 1
94
- }, "fvernall0@google.it"))), (0, _react2.jsx)(_Box["default"], {
119
+ }, "fvernall0@google.it"))), (0, _react2.jsx)(_.Box, {
95
120
  isRow: true,
96
121
  alignSelf: "center"
97
- }, (0, _react2.jsx)(_IconButton["default"], null, (0, _react2.jsx)(_Icon["default"], {
122
+ }, (0, _react2.jsx)(_.IconButton, null, (0, _react2.jsx)(_.Icon, {
98
123
  icon: _MoreVertIcon["default"],
99
124
  size: "sm",
100
125
  color: "neutral.20"
101
- })))), (0, _react2.jsx)(_Separator["default"], {
126
+ })))), (0, _react2.jsx)(_.Separator, {
127
+ margin: 0
128
+ }));
129
+ };
130
+
131
+ exports.WithSubtitle = WithSubtitle;
132
+
133
+ var WithHoverHandlers = function WithHoverHandlers(args) {
134
+ var _useState = (0, _react.useState)(false),
135
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
136
+ isHovered = _useState2[0],
137
+ setIsHovered = _useState2[1];
138
+
139
+ var handleHoverChange = function handleHoverChange() {
140
+ setIsHovered(function (previousIsHovered) {
141
+ return !previousIsHovered;
142
+ });
143
+ };
144
+
145
+ var sx = function sx(shouldTranslate) {
146
+ return {
147
+ transform: "".concat(shouldTranslate ? 'translate(15px)' : 'translate(0)')
148
+ };
149
+ };
150
+
151
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.Separator, {
152
+ margin: 0
153
+ }), (0, _react2.jsx)(_.ListItem, (0, _extends2["default"])({}, args, {
154
+ onHoverEnd: handleHoverChange,
155
+ onHoverStart: handleHoverChange
156
+ }), (0, _react2.jsx)(_.Box, {
157
+ isRow: true,
158
+ mr: "auto",
159
+ alignSelf: "center"
160
+ }, (0, _react2.jsx)(_.Icon, {
161
+ icon: _AccountIcon["default"],
162
+ alignSelf: "center",
163
+ mr: "sm",
164
+ color: "accent.40",
165
+ size: 32
166
+ }), (0, _react2.jsx)(_.Box, {
167
+ sx: sx(isHovered)
168
+ }, (0, _react2.jsx)(_.Text, {
169
+ variant: "itemTitle"
170
+ }, "Fons Vernall"), (0, _react2.jsx)(_.Text, {
171
+ variant: "itemSubtitle",
172
+ mt: 1
173
+ }, "fvernall0@google.it"))), (0, _react2.jsx)(_.Box, {
174
+ isRow: true,
175
+ alignSelf: "center"
176
+ }, (0, _react2.jsx)(_.IconButton, {
177
+ size: 26
178
+ }, (0, _react2.jsx)(_.Icon, {
179
+ icon: _MoreVertIcon["default"],
180
+ size: 20,
181
+ color: "neutral.20"
182
+ })))), (0, _react2.jsx)(_.Separator, {
102
183
  margin: 0
103
184
  }));
104
185
  };
105
186
 
106
- exports.WithSubtitle = WithSubtitle;
187
+ exports.WithHoverHandlers = WithHoverHandlers;
@@ -8,6 +8,8 @@ var _react = _interopRequireDefault(require("react"));
8
8
 
9
9
  var _react2 = require("@testing-library/react");
10
10
 
11
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
12
+
11
13
  var _ListItem = _interopRequireDefault(require("./ListItem"));
12
14
 
13
15
  var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
@@ -15,13 +17,16 @@ var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
15
17
  var _react3 = require("@emotion/react");
16
18
 
17
19
  var testTitle = 'Test Title';
20
+ var TEST_ID = 'ListItem-testid';
18
21
  var defaultProps = {
19
22
  title: testTitle
20
23
  };
21
24
 
22
25
  var getComponent = function getComponent() {
23
26
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
24
- return (0, _react2.render)((0, _react3.jsx)(_ListItem["default"], (0, _extends2["default"])({}, defaultProps, props)));
27
+ return (0, _react2.render)((0, _react3.jsx)(_ListItem["default"], (0, _extends2["default"])({}, defaultProps, props, {
28
+ "data-testid": TEST_ID
29
+ })));
25
30
  }; // Need to be added to each test file to test accessibility using axe.
26
31
 
27
32
 
@@ -33,19 +38,58 @@ var getComponent = function getComponent() {
33
38
  }
34
39
  }
35
40
  });
36
- test('renders ListItem component title', function () {
37
- getComponent();
41
+ describe('ListItem', function () {
42
+ test('renders ListItem component title', function () {
43
+ getComponent();
38
44
 
39
- var title = _react2.screen.getByRole('listitem');
45
+ var title = _react2.screen.getByTestId(TEST_ID);
40
46
 
41
- expect(title).toBeInTheDocument();
42
- });
43
- test('renders ListItem component with selected state', function () {
44
- getComponent({
45
- isSelected: true
47
+ expect(title).toBeInTheDocument();
48
+ });
49
+ test('renders ListItem component with selected state', function () {
50
+ getComponent({
51
+ isSelected: true
52
+ });
53
+
54
+ var title = _react2.screen.getByTestId(TEST_ID);
55
+
56
+ expect(title).toHaveClass('is-selected');
46
57
  });
58
+ describe('when hovered', function () {
59
+ var onHoverTest;
60
+ beforeEach(function () {
61
+ onHoverTest = jest.fn();
62
+ });
63
+ test('it calls the onHoverChange callback', function () {
64
+ getComponent({
65
+ onHoverChange: onHoverTest
66
+ });
67
+
68
+ _userEvent["default"].hover(_react2.screen.getByTestId(TEST_ID));
47
69
 
48
- var title = _react2.screen.getByRole('listitem');
70
+ expect(onHoverTest).toHaveBeenCalled();
71
+ });
72
+ test('it calls the onHoverStart callback', function () {
73
+ getComponent({
74
+ onHoverStart: onHoverTest
75
+ });
49
76
 
50
- expect(title).toHaveClass('is-selected');
77
+ _userEvent["default"].hover(_react2.screen.getByTestId(TEST_ID));
78
+
79
+ expect(onHoverTest).toHaveBeenCalled();
80
+ });
81
+ test('it calls the onHoverEnd callback when unhovered', function () {
82
+ getComponent({
83
+ onHoverEnd: onHoverTest
84
+ });
85
+
86
+ var listItem = _react2.screen.getByTestId(TEST_ID);
87
+
88
+ _userEvent["default"].hover(listItem);
89
+
90
+ _userEvent["default"].unhover(listItem);
91
+
92
+ expect(onHoverTest).toHaveBeenCalled();
93
+ });
94
+ });
51
95
  });
@@ -63,7 +63,7 @@ var _loadingStates = _interopRequireDefault(require("../../utils/devUtils/consta
63
63
 
64
64
  var _react2 = require("@emotion/react");
65
65
 
66
- var _excluded = ["disabledKeys", "loadingState", "onLoadMore", "onSelectionChange", "selectionMode", "selectionStyle"];
66
+ var _excluded = ["disabledKeys", "isHoverable", "loadingState", "onLoadMore", "onSelectionChange", "selectedKeys", "selectionMode", "selectionStyle"];
67
67
 
68
68
  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); }
69
69
 
@@ -118,9 +118,12 @@ function useListLayout(state) {
118
118
 
119
119
  var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
120
120
  var disabledKeys = props.disabledKeys,
121
+ _props$isHoverable = props.isHoverable,
122
+ isHoverable = _props$isHoverable === void 0 ? true : _props$isHoverable,
121
123
  loadingState = props.loadingState,
122
124
  onLoadMore = props.onLoadMore,
123
125
  onSelectionChange = props.onSelectionChange,
126
+ selectedKeys = props.selectedKeys,
124
127
  selectionMode = props.selectionMode,
125
128
  selectionStyle = props.selectionStyle,
126
129
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
@@ -187,6 +190,7 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
187
190
  }), function (type, item) {
188
191
  if (type === 'item') {
189
192
  return (0, _react2.jsx)(_ListViewItem["default"], {
193
+ isHoverable: isHoverable,
190
194
  item: item
191
195
  });
192
196
  } else if (type === collectionTypes.LOADER) {
@@ -215,6 +219,9 @@ ListView.propTypes = {
215
219
  /** The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id). */
216
220
  id: _propTypes["default"].string,
217
221
 
222
+ /** Whether ListView should handle hover state (defaults to true) */
223
+ isHoverable: _propTypes["default"].bool,
224
+
218
225
  /** Defines a string value that labels the current element. */
219
226
  'aria-label': _propTypes["default"].string,
220
227
 
@@ -50,6 +50,7 @@ var ListViewItem = function ListViewItem(props) {
50
50
  _props$item$props$has = _props$item$props.hasSeparator,
51
51
  hasSeparator = _props$item$props$has === void 0 ? true : _props$item$props$has,
52
52
  hasInsetSeparator = _props$item$props.hasInsetSeparator,
53
+ isHoverable = props.isHoverable,
53
54
  className = props.className;
54
55
  var dataId = item.props['data-id'];
55
56
 
@@ -86,7 +87,7 @@ var ListViewItem = function ListViewItem(props) {
86
87
  var mergedProps = (0, _utils.mergeProps)(raRowProps, hoverProps, focusWithinProps, focusProps);
87
88
 
88
89
  var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
89
- isHovered: isSelectable && isHovered,
90
+ isHovered: isSelectable && isHovered && isHoverable,
90
91
  isSelected: isSelected,
91
92
  isFocused: isDisabled ? false : isFocusVisible || isFocusVisibleWithin,
92
93
  hasSeparator: hasSeparator,
@@ -125,7 +126,8 @@ ListViewItem.propTypes = {
125
126
  hasSeparator: _propTypes["default"].bool,
126
127
  hasInsetSeparator: _propTypes["default"].bool
127
128
  })
128
- })
129
+ }),
130
+ isHoverable: _propTypes["default"].bool
129
131
  };
130
132
  var _default = ListViewItem;
131
133
  exports["default"] = _default;
@@ -50,6 +50,8 @@ var _focus = require("@react-aria/focus");
50
50
 
51
51
  var _utils = require("@react-aria/utils");
52
52
 
53
+ var _interactions = require("@react-aria/interactions");
54
+
53
55
  var _MenuContext = require("../../context/MenuContext");
54
56
 
55
57
  var _hooks = require("../../hooks");
@@ -60,9 +62,11 @@ var _Box = _interopRequireDefault(require("../Box"));
60
62
 
61
63
  var _orientation = _interopRequireDefault(require("../../utils/devUtils/constants/orientation"));
62
64
 
65
+ var _hoverProps = require("../../utils/devUtils/props/hoverProps");
66
+
63
67
  var _react2 = require("@emotion/react");
64
68
 
65
- var _excluded = ["isDisabled", "onAction", "onSelectionChange", "isNotFocusedOnHover"];
69
+ var _excluded = ["isDisabled", "isNotFocusedOnHover", "onAction", "onHoverChange", "onHoverEnd", "onHoverStart", "onSelectionChange"];
66
70
 
67
71
  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); }
68
72
 
@@ -82,14 +86,24 @@ var Menu = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
82
86
  var _context;
83
87
 
84
88
  var isDisabled = props.isDisabled,
89
+ isNotFocusedOnHover = props.isNotFocusedOnHover,
85
90
  onAction = props.onAction,
91
+ onHoverChange = props.onHoverChange,
92
+ onHoverEnd = props.onHoverEnd,
93
+ onHoverStart = props.onHoverStart,
86
94
  onSelectionChange = props.onSelectionChange,
87
- isNotFocusedOnHover = props.isNotFocusedOnHover,
88
95
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
89
96
  var contextProps = (0, _react.useContext)(_MenuContext.MenuContext);
90
97
 
91
98
  var completeProps = _objectSpread({}, (0, _utils.mergeProps)(contextProps, props));
92
99
 
100
+ var _useHover = (0, _interactions.useHover)({
101
+ onHoverChange: onHoverChange,
102
+ onHoverEnd: onHoverEnd,
103
+ onHoverStart: onHoverStart
104
+ }),
105
+ hoverProps = _useHover.hoverProps;
106
+
93
107
  var state = (0, _tree.useTreeState)(completeProps);
94
108
  var menuRef = (0, _react.useRef)();
95
109
  (0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
@@ -115,7 +129,7 @@ var Menu = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
115
129
  ref: menuRef,
116
130
  variant: "menu",
117
131
  "aria-orientation": _orientation["default"].VERTICAL
118
- }, others, (0, _utils.mergeProps)(focusProps, menuProps)), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
132
+ }, others, (0, _utils.mergeProps)(focusProps, menuProps, hoverProps)), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
119
133
  return (0, _react2.jsx)(_MenuItem["default"], {
120
134
  key: item.key,
121
135
  item: item,
@@ -127,7 +141,7 @@ var Menu = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
127
141
  });
128
142
  }));
129
143
  });
130
- Menu.propTypes = {
144
+ Menu.propTypes = _objectSpread({
131
145
  /** The type of selection that is allowed. */
132
146
  selectionMode: _propTypes["default"].oneOf(['none', 'single', 'multiple']),
133
147
 
@@ -190,7 +204,7 @@ Menu.propTypes = {
190
204
  * extended description for the object.
191
205
  */
192
206
  'aria-details': _propTypes["default"].string
193
- };
207
+ }, _hoverProps.onHoverPropTypes);
194
208
  Menu.defaultProps = {
195
209
  selectionMode: 'none',
196
210
  isDisabled: false
@@ -1,5 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
6
+
7
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
8
+
9
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
10
+
11
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
12
+
13
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
14
+
15
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
16
+
3
17
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
18
 
5
19
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
@@ -12,6 +26,8 @@ exports["default"] = exports.Default = void 0;
12
26
 
13
27
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
28
 
29
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
30
+
15
31
  var _react = _interopRequireDefault(require("react"));
16
32
 
17
33
  var _collections = require("@react-stately/collections");
@@ -20,8 +36,14 @@ var _Menu = _interopRequireDefault(require("../Menu"));
20
36
 
21
37
  var _Text = _interopRequireDefault(require("../Text"));
22
38
 
39
+ var _hoverProps = require("../../utils/devUtils/props/hoverProps");
40
+
23
41
  var _react2 = require("@emotion/react");
24
42
 
43
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
44
+
45
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
46
+
25
47
  var _default = {
26
48
  title: 'Components/Menu',
27
49
  component: _Menu["default"],
@@ -35,7 +57,7 @@ var _default = {
35
57
  }
36
58
  }
37
59
  },
38
- argTypes: {
60
+ argTypes: _objectSpread({
39
61
  selectionMode: {},
40
62
  isDisabled: {},
41
63
  isNotFocusedOnHover: {},
@@ -79,7 +101,7 @@ var _default = {
79
101
  type: 'none'
80
102
  }
81
103
  }
82
- }
104
+ }, _hoverProps.onHoverArgTypes)
83
105
  };
84
106
  exports["default"] = _default;
85
107
 
@@ -115,9 +115,11 @@ var SwitchField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
115
115
 
116
116
  var whitelistedProps = (0, _omit["default"])(props, (0, _keys["default"])(others));
117
117
 
118
- var _useSwitch = (0, _switch.useSwitch)(_objectSpread({
118
+ var _useSwitch = (0, _switch.useSwitch)(_objectSpread(_objectSpread({
119
119
  children: label
120
- }, whitelistedProps), state, switchRef),
120
+ }, whitelistedProps), {}, {
121
+ 'aria-label': 'switch-field'
122
+ }), state, switchRef),
121
123
  inputProps = _useSwitch.inputProps;
122
124
 
123
125
  var statusClasses = {