@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.
- package/lib/cjs/components/ListItem/ListItem.js +41 -16
- package/lib/cjs/components/ListItem/ListItem.stories.js +108 -27
- package/lib/cjs/components/ListItem/ListItem.test.js +55 -11
- package/lib/cjs/components/ListView/ListView.js +8 -1
- package/lib/cjs/components/ListViewItem/ListViewItem.js +4 -2
- package/lib/cjs/components/Menu/Menu.js +19 -5
- package/lib/cjs/components/Menu/Menu.stories.js +24 -2
- package/lib/cjs/components/SwitchField/SwitchField.js +4 -2
- package/lib/cjs/recipes/ListAndPanel.stories.js +119 -57
- package/lib/cjs/styles/variants/boxes.js +4 -1
- package/lib/cjs/utils/devUtils/props/hoverProps.js +69 -0
- package/lib/components/ListItem/ListItem.js +33 -13
- package/lib/components/ListItem/ListItem.stories.js +74 -8
- package/lib/components/ListItem/ListItem.test.js +46 -11
- package/lib/components/ListView/ListView.js +8 -1
- package/lib/components/ListViewItem/ListViewItem.js +4 -2
- package/lib/components/Menu/Menu.js +17 -5
- package/lib/components/Menu/Menu.stories.js +17 -2
- package/lib/components/SwitchField/SwitchField.js +4 -2
- package/lib/recipes/ListAndPanel.stories.js +85 -22
- package/lib/styles/variants/boxes.js +4 -1
- package/lib/utils/devUtils/props/hoverProps.js +47 -0
- package/package.json +1 -1
- package/NOTICE.html +0 -4707
@@ -2,12 +2,24 @@
|
|
2
2
|
|
3
3
|
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
4
|
|
5
|
-
var
|
5
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
6
6
|
|
7
|
-
var _Object$
|
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 (
|
46
|
-
var children =
|
47
|
-
className =
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
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
|
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
|
43
|
+
var _ = require("../..");
|
20
44
|
|
21
|
-
var
|
45
|
+
var _hoverProps = require("../../utils/devUtils/props/hoverProps");
|
22
46
|
|
23
|
-
var
|
47
|
+
var _react2 = require("@emotion/react");
|
24
48
|
|
25
|
-
var
|
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
|
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
|
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
|
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:
|
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)(
|
72
|
+
return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.Separator, {
|
48
73
|
margin: 0
|
49
|
-
}), (0, _react2.jsx)(
|
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)(
|
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)(
|
84
|
+
}), (0, _react2.jsx)(_.Text, {
|
60
85
|
variant: "itemTitle",
|
61
86
|
alignSelf: "center"
|
62
|
-
}, "Fons Vernall")), (0, _react2.jsx)(
|
87
|
+
}, "Fons Vernall")), (0, _react2.jsx)(_.Box, {
|
63
88
|
isRow: true,
|
64
89
|
alignSelf: "center"
|
65
|
-
}, (0, _react2.jsx)(
|
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)(
|
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)(
|
102
|
+
return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.Separator, {
|
78
103
|
margin: 0
|
79
|
-
}), (0, _react2.jsx)(
|
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)(
|
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)(
|
114
|
+
}), (0, _react2.jsx)(_.Box, null, (0, _react2.jsx)(_.Text, {
|
90
115
|
variant: "itemTitle"
|
91
|
-
}, "Fons Vernall"), (0, _react2.jsx)(
|
116
|
+
}, "Fons Vernall"), (0, _react2.jsx)(_.Text, {
|
92
117
|
variant: "itemSubtitle",
|
93
118
|
mt: 1
|
94
|
-
}, "fvernall0@google.it"))), (0, _react2.jsx)(
|
119
|
+
}, "fvernall0@google.it"))), (0, _react2.jsx)(_.Box, {
|
95
120
|
isRow: true,
|
96
121
|
alignSelf: "center"
|
97
|
-
}, (0, _react2.jsx)(
|
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)(
|
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.
|
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
|
-
|
37
|
-
|
41
|
+
describe('ListItem', function () {
|
42
|
+
test('renders ListItem component title', function () {
|
43
|
+
getComponent();
|
38
44
|
|
39
|
-
|
45
|
+
var title = _react2.screen.getByTestId(TEST_ID);
|
40
46
|
|
41
|
-
|
42
|
-
});
|
43
|
-
test('renders ListItem component with selected state', function () {
|
44
|
-
|
45
|
-
|
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
|
-
|
70
|
+
expect(onHoverTest).toHaveBeenCalled();
|
71
|
+
});
|
72
|
+
test('it calls the onHoverStart callback', function () {
|
73
|
+
getComponent({
|
74
|
+
onHoverStart: onHoverTest
|
75
|
+
});
|
49
76
|
|
50
|
-
|
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", "
|
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),
|
120
|
+
}, whitelistedProps), {}, {
|
121
|
+
'aria-label': 'switch-field'
|
122
|
+
}), state, switchRef),
|
121
123
|
inputProps = _useSwitch.inputProps;
|
122
124
|
|
123
125
|
var statusClasses = {
|