@pingux/astro 1.39.2-alpha.0 → 1.39.2-alpha.1
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/AccordionGridGroup/AccordionGridGroup.js +23 -2
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +2 -1
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +31 -1
- package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +13 -4
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +10 -2
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +19 -2
- package/lib/components/AccordionGridGroup/AccordionGridGroup.js +22 -2
- package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +2 -1
- package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +19 -1
- package/lib/components/AccordionGridItem/AccordionGridItem.js +13 -4
- package/lib/components/AccordionGridItem/AccordionGridItemBody.js +10 -2
- package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +19 -2
- package/package.json +1 -1
@@ -58,6 +58,8 @@ var _Box = _interopRequireDefault(require("../Box"));
|
|
58
58
|
|
59
59
|
var _isIterable = require("../../utils/devUtils/props/isIterable");
|
60
60
|
|
61
|
+
var _useDevelopmentWarning = _interopRequireDefault(require("../../hooks/useDevelopmentWarning"));
|
62
|
+
|
61
63
|
var _react2 = require("@emotion/react");
|
62
64
|
|
63
65
|
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); }
|
@@ -89,13 +91,18 @@ var AccordionGridGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, re
|
|
89
91
|
var _context2;
|
90
92
|
|
91
93
|
var disabledKeys = props.disabledKeys,
|
92
|
-
containerProps = props.containerProps
|
94
|
+
containerProps = props.containerProps,
|
95
|
+
navigationMode = props.navigationMode;
|
93
96
|
var accordionGridRef = (0, _react.useRef)();
|
94
97
|
/* istanbul ignore next */
|
95
98
|
|
96
99
|
(0, _react.useImperativeHandle)(ref, function () {
|
97
100
|
return accordionGridRef.current;
|
98
101
|
});
|
102
|
+
(0, _useDevelopmentWarning["default"])({
|
103
|
+
message: 'Use navigationMode prop for AccordionGridGroup',
|
104
|
+
shouldTrigger: !navigationMode
|
105
|
+
});
|
99
106
|
|
100
107
|
var _useListState = (0, _list.useListState)(props),
|
101
108
|
collection = _useListState.collection;
|
@@ -166,6 +173,12 @@ var AccordionGridGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, re
|
|
166
173
|
gridProps = _useGrid.gridProps;
|
167
174
|
|
168
175
|
delete gridProps.onMouseDown;
|
176
|
+
|
177
|
+
if (navigationMode === 'native') {
|
178
|
+
delete gridProps.onKeyDown;
|
179
|
+
delete gridProps.onKeyDownCapture;
|
180
|
+
}
|
181
|
+
|
169
182
|
return (0, _react2.jsx)(_AccordionGridContext.AccordionGridContext.Provider, {
|
170
183
|
value: {
|
171
184
|
state: state,
|
@@ -177,7 +190,8 @@ var AccordionGridGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, re
|
|
177
190
|
}), (0, _map["default"])(_context2 = (0, _from["default"])(state.collection)).call(_context2, function (item) {
|
178
191
|
return (0, _react2.jsx)(_AccordionGridItem["default"], (0, _extends2["default"])({
|
179
192
|
key: item.key,
|
180
|
-
item: item
|
193
|
+
item: item,
|
194
|
+
navigationMode: navigationMode
|
181
195
|
}, item.props), item.props.children);
|
182
196
|
})));
|
183
197
|
});
|
@@ -203,6 +217,13 @@ AccordionGridGroup.propTypes = {
|
|
203
217
|
*/
|
204
218
|
onSelectionChange: _propTypes["default"].func,
|
205
219
|
|
220
|
+
/**
|
221
|
+
* Defines a type of navigation mode.
|
222
|
+
* "native" - navigation via "tab" key.
|
223
|
+
* "arrows" - navigation via arrow keys.
|
224
|
+
*/
|
225
|
+
navigationMode: _propTypes["default"].string,
|
226
|
+
|
206
227
|
/**
|
207
228
|
* The item keys that are disabled. These items cannot be selected, focused, or otherwise
|
208
229
|
* interacted with.
|
@@ -327,7 +327,8 @@ exports.Controlled = Controlled;
|
|
327
327
|
var AccordionWithInputs = function AccordionWithInputs() {
|
328
328
|
return (0, _react2.jsx)(_AccordionGridGroup["default"], {
|
329
329
|
items: data,
|
330
|
-
defaultSelectedKeys: ['Organization']
|
330
|
+
defaultSelectedKeys: ['Organization'],
|
331
|
+
navigationMode: "native"
|
331
332
|
}, function (item) {
|
332
333
|
return (0, _react2.jsx)(_collections.Item, {
|
333
334
|
key: item.key
|
@@ -61,7 +61,9 @@ var getComponentInOverlayPanel = function getComponentInOverlayPanel() {
|
|
61
61
|
|
62
62
|
var getComponentWithTextFields = function getComponentWithTextFields() {
|
63
63
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
64
|
-
return (0, _testWrapper.render)((0, _react2.jsx)(_AccordionGridGroup["default"], (0, _extends2["default"])({}, defaultProps, props
|
64
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_AccordionGridGroup["default"], (0, _extends2["default"])({}, defaultProps, props, {
|
65
|
+
navigationMode: "native"
|
66
|
+
}), (0, _react2.jsx)(_collections.Item, {
|
65
67
|
key: "first",
|
66
68
|
textValue: "Duplicate"
|
67
69
|
}, (0, _react2.jsx)(_index.Text, null, "Header"), (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.TextField, {
|
@@ -300,4 +302,32 @@ test('adds focus to input on a single click after onBlur', function () {
|
|
300
302
|
_userEvent["default"].click(secondInput);
|
301
303
|
|
302
304
|
expect(secondInput).toHaveFocus();
|
305
|
+
});
|
306
|
+
test('native keyboard navigation mode toggle open/close item body', function () {
|
307
|
+
getComponentWithTextFields();
|
308
|
+
|
309
|
+
var firstItemHeader = _testWrapper.screen.getAllByRole('gridcell')[0];
|
310
|
+
|
311
|
+
expect(firstItemHeader).not.toHaveFocus();
|
312
|
+
|
313
|
+
_userEvent["default"].tab();
|
314
|
+
|
315
|
+
expect(firstItemHeader).toHaveFocus();
|
316
|
+
expect(firstItemHeader).not.toHaveClass('is-selected');
|
317
|
+
|
318
|
+
_userEvent["default"].type(firstItemHeader, '{Enter}');
|
319
|
+
|
320
|
+
expect(firstItemHeader).toHaveClass('is-selected');
|
321
|
+
|
322
|
+
var firstInput = _testWrapper.screen.getByLabelText('label 1');
|
323
|
+
|
324
|
+
expect(firstInput).not.toHaveFocus();
|
325
|
+
|
326
|
+
_userEvent["default"].tab();
|
327
|
+
|
328
|
+
expect(firstInput).toHaveFocus();
|
329
|
+
|
330
|
+
_userEvent["default"].type(firstInput, '{arrowup}');
|
331
|
+
|
332
|
+
expect(firstInput).toHaveFocus();
|
303
333
|
});
|
@@ -46,7 +46,7 @@ var _hooks = require("../../hooks");
|
|
46
46
|
|
47
47
|
var _react2 = require("@emotion/react");
|
48
48
|
|
49
|
-
var _excluded = ["item", "headerProps", "bodyProps", "children", "className"];
|
49
|
+
var _excluded = ["item", "headerProps", "bodyProps", "children", "className", "navigationMode"];
|
50
50
|
|
51
51
|
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); }
|
52
52
|
|
@@ -60,6 +60,7 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
60
60
|
bodyProps = props.bodyProps,
|
61
61
|
children = props.children,
|
62
62
|
className = props.className,
|
63
|
+
navigationMode = props.navigationMode,
|
63
64
|
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
64
65
|
|
65
66
|
var _React$Children$toArr = _react["default"].Children.toArray(children),
|
@@ -100,6 +101,11 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
100
101
|
delete rowProps.onMouseDown;
|
101
102
|
delete rowProps.onPointerDown;
|
102
103
|
delete rowProps.onClick;
|
104
|
+
|
105
|
+
if (navigationMode === 'native') {
|
106
|
+
delete rowProps.onKeyDown;
|
107
|
+
}
|
108
|
+
|
103
109
|
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
104
110
|
as: "div",
|
105
111
|
tabindex: "0"
|
@@ -113,11 +119,13 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
113
119
|
item: item,
|
114
120
|
ref: cellRef,
|
115
121
|
isDisabled: isDisabled,
|
116
|
-
isSelected: isSelected
|
122
|
+
isSelected: isSelected,
|
123
|
+
navigationMode: navigationMode
|
117
124
|
}, headerProps), header), (0, _react2.jsx)(_AccordionGridItemBody["default"], (0, _extends2["default"])({
|
118
125
|
item: item,
|
119
126
|
ref: cellBodyRef,
|
120
|
-
isSelected: isSelected
|
127
|
+
isSelected: isSelected,
|
128
|
+
navigationMode: navigationMode
|
121
129
|
}, bodyProps), body), otherChildren);
|
122
130
|
};
|
123
131
|
|
@@ -128,7 +136,8 @@ AccordionGridItem.propTypes = {
|
|
128
136
|
key: _propTypes["default"].string,
|
129
137
|
rendered: _propTypes["default"].node,
|
130
138
|
childNodes: _propTypes["default"].arrayOf(_propTypes["default"].shape({}))
|
131
|
-
})
|
139
|
+
}),
|
140
|
+
navigationMode: _propTypes["default"].string
|
132
141
|
};
|
133
142
|
var _default = AccordionGridItem;
|
134
143
|
exports["default"] = _default;
|
@@ -40,7 +40,7 @@ var _hooks = require("../../hooks");
|
|
40
40
|
|
41
41
|
var _react2 = require("@emotion/react");
|
42
42
|
|
43
|
-
var _excluded = ["item", "className", "children", "isSelected"];
|
43
|
+
var _excluded = ["item", "className", "children", "isSelected", "navigationMode"];
|
44
44
|
|
45
45
|
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); }
|
46
46
|
|
@@ -53,6 +53,7 @@ var AccordionGridItemBody = /*#__PURE__*/(0, _react.forwardRef)(function (props,
|
|
53
53
|
className = props.className,
|
54
54
|
children = props.children,
|
55
55
|
isSelected = props.isSelected,
|
56
|
+
navigationMode = props.navigationMode,
|
56
57
|
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
57
58
|
|
58
59
|
var _useAccordionGridCont = (0, _AccordionGridContext.useAccordionGridContext)(),
|
@@ -90,6 +91,12 @@ var AccordionGridItemBody = /*#__PURE__*/(0, _react.forwardRef)(function (props,
|
|
90
91
|
var ariaLabel = props['aria-label'];
|
91
92
|
delete mergedProps.onMouseDown;
|
92
93
|
delete mergedProps.onPointerDown;
|
94
|
+
|
95
|
+
if (navigationMode === 'native') {
|
96
|
+
delete mergedProps.onKeyDown;
|
97
|
+
delete mergedProps.onKeyDownCapture;
|
98
|
+
}
|
99
|
+
|
93
100
|
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
94
101
|
as: "div",
|
95
102
|
variant: "accordion.accordionGridBody",
|
@@ -106,7 +113,8 @@ AccordionGridItemBody.propTypes = {
|
|
106
113
|
'aria-label': _propTypes["default"].string,
|
107
114
|
item: _propTypes["default"].shape({
|
108
115
|
childNodes: _propTypes["default"].arrayOf(_propTypes["default"].shape({}))
|
109
|
-
})
|
116
|
+
}),
|
117
|
+
navigationMode: _propTypes["default"].string
|
110
118
|
};
|
111
119
|
var _default = AccordionGridItemBody;
|
112
120
|
exports["default"] = _default;
|
@@ -48,7 +48,7 @@ var _hooks = require("../../hooks");
|
|
48
48
|
|
49
49
|
var _react2 = require("@emotion/react");
|
50
50
|
|
51
|
-
var _excluded = ["item", "className", "children", "isSelected", "hasCaret"];
|
51
|
+
var _excluded = ["item", "className", "children", "isSelected", "hasCaret", "navigationMode"];
|
52
52
|
|
53
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); }
|
54
54
|
|
@@ -62,6 +62,7 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
62
62
|
children = props.children,
|
63
63
|
isSelected = props.isSelected,
|
64
64
|
hasCaret = props.hasCaret,
|
65
|
+
navigationMode = props.navigationMode,
|
65
66
|
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
66
67
|
|
67
68
|
var _useAccordionGridCont = (0, _AccordionGridContext.useAccordionGridContext)(),
|
@@ -112,6 +113,21 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
112
113
|
classNames = _useStatusClasses.classNames;
|
113
114
|
|
114
115
|
var ariaLabel = props['aria-label'];
|
116
|
+
|
117
|
+
var handleKeyPress = function handleKeyPress(e) {
|
118
|
+
if (e.key === 'Enter') {
|
119
|
+
state.selectionManager.toggleSelection(e.target.dataset.key);
|
120
|
+
}
|
121
|
+
};
|
122
|
+
|
123
|
+
if (navigationMode === 'native') {
|
124
|
+
delete mergedProps.onKeyDown;
|
125
|
+
delete mergedProps.onKeyDownCapture;
|
126
|
+
delete mergedProps.onKeyUp;
|
127
|
+
mergedProps.tabIndex = 0;
|
128
|
+
mergedProps.onKeyPress = handleKeyPress;
|
129
|
+
}
|
130
|
+
|
115
131
|
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
116
132
|
as: "div",
|
117
133
|
ref: cellRef
|
@@ -148,7 +164,8 @@ AccordionGridItemHeader.propTypes = {
|
|
148
164
|
props: _propTypes["default"].shape({
|
149
165
|
isPressed: _propTypes["default"].bool
|
150
166
|
})
|
151
|
-
})
|
167
|
+
}),
|
168
|
+
navigationMode: _propTypes["default"].string
|
152
169
|
};
|
153
170
|
var _default = AccordionGridItemHeader;
|
154
171
|
exports["default"] = _default;
|
@@ -26,6 +26,7 @@ import { AccordionGridContext } from '../../context/AccordionGridContext';
|
|
26
26
|
import AccordionGridItem from '../AccordionGridItem';
|
27
27
|
import Box from '../Box';
|
28
28
|
import { isIterableProp } from '../../utils/devUtils/props/isIterable';
|
29
|
+
import useDevelopmentWarning from '../../hooks/useDevelopmentWarning';
|
29
30
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
30
31
|
export var collectionTypes = {
|
31
32
|
ITEM: 'item',
|
@@ -47,13 +48,18 @@ var AccordionGridGroup = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
47
48
|
var _context2;
|
48
49
|
|
49
50
|
var disabledKeys = props.disabledKeys,
|
50
|
-
containerProps = props.containerProps
|
51
|
+
containerProps = props.containerProps,
|
52
|
+
navigationMode = props.navigationMode;
|
51
53
|
var accordionGridRef = useRef();
|
52
54
|
/* istanbul ignore next */
|
53
55
|
|
54
56
|
useImperativeHandle(ref, function () {
|
55
57
|
return accordionGridRef.current;
|
56
58
|
});
|
59
|
+
useDevelopmentWarning({
|
60
|
+
message: 'Use navigationMode prop for AccordionGridGroup',
|
61
|
+
shouldTrigger: !navigationMode
|
62
|
+
});
|
57
63
|
|
58
64
|
var _useListState = useListState(props),
|
59
65
|
collection = _useListState.collection;
|
@@ -124,6 +130,12 @@ var AccordionGridGroup = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
124
130
|
gridProps = _useGrid.gridProps;
|
125
131
|
|
126
132
|
delete gridProps.onMouseDown;
|
133
|
+
|
134
|
+
if (navigationMode === 'native') {
|
135
|
+
delete gridProps.onKeyDown;
|
136
|
+
delete gridProps.onKeyDownCapture;
|
137
|
+
}
|
138
|
+
|
127
139
|
return ___EmotionJSX(AccordionGridContext.Provider, {
|
128
140
|
value: {
|
129
141
|
state: state,
|
@@ -135,7 +147,8 @@ var AccordionGridGroup = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
135
147
|
}), _mapInstanceProperty(_context2 = _Array$from(state.collection)).call(_context2, function (item) {
|
136
148
|
return ___EmotionJSX(AccordionGridItem, _extends({
|
137
149
|
key: item.key,
|
138
|
-
item: item
|
150
|
+
item: item,
|
151
|
+
navigationMode: navigationMode
|
139
152
|
}, item.props), item.props.children);
|
140
153
|
})));
|
141
154
|
});
|
@@ -161,6 +174,13 @@ AccordionGridGroup.propTypes = {
|
|
161
174
|
*/
|
162
175
|
onSelectionChange: PropTypes.func,
|
163
176
|
|
177
|
+
/**
|
178
|
+
* Defines a type of navigation mode.
|
179
|
+
* "native" - navigation via "tab" key.
|
180
|
+
* "arrows" - navigation via arrow keys.
|
181
|
+
*/
|
182
|
+
navigationMode: PropTypes.string,
|
183
|
+
|
164
184
|
/**
|
165
185
|
* The item keys that are disabled. These items cannot be selected, focused, or otherwise
|
166
186
|
* interacted with.
|
@@ -289,7 +289,8 @@ export var Controlled = function Controlled() {
|
|
289
289
|
export var AccordionWithInputs = function AccordionWithInputs() {
|
290
290
|
return ___EmotionJSX(AccordionGridGroup, {
|
291
291
|
items: data,
|
292
|
-
defaultSelectedKeys: ['Organization']
|
292
|
+
defaultSelectedKeys: ['Organization'],
|
293
|
+
navigationMode: "native"
|
293
294
|
}, function (item) {
|
294
295
|
return ___EmotionJSX(Item, {
|
295
296
|
key: item.key
|
@@ -46,7 +46,9 @@ var getComponentInOverlayPanel = function getComponentInOverlayPanel() {
|
|
46
46
|
|
47
47
|
var getComponentWithTextFields = function getComponentWithTextFields() {
|
48
48
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
49
|
-
return render(___EmotionJSX(AccordionGridGroup, _extends({}, defaultProps, props
|
49
|
+
return render(___EmotionJSX(AccordionGridGroup, _extends({}, defaultProps, props, {
|
50
|
+
navigationMode: "native"
|
51
|
+
}), ___EmotionJSX(Item, {
|
50
52
|
key: "first",
|
51
53
|
textValue: "Duplicate"
|
52
54
|
}, ___EmotionJSX(Text, null, "Header"), ___EmotionJSX(Box, null, ___EmotionJSX(TextField, {
|
@@ -223,4 +225,20 @@ test('adds focus to input on a single click after onBlur', function () {
|
|
223
225
|
secondInput.blur();
|
224
226
|
userEvent.click(secondInput);
|
225
227
|
expect(secondInput).toHaveFocus();
|
228
|
+
});
|
229
|
+
test('native keyboard navigation mode toggle open/close item body', function () {
|
230
|
+
getComponentWithTextFields();
|
231
|
+
var firstItemHeader = screen.getAllByRole('gridcell')[0];
|
232
|
+
expect(firstItemHeader).not.toHaveFocus();
|
233
|
+
userEvent.tab();
|
234
|
+
expect(firstItemHeader).toHaveFocus();
|
235
|
+
expect(firstItemHeader).not.toHaveClass('is-selected');
|
236
|
+
userEvent.type(firstItemHeader, '{Enter}');
|
237
|
+
expect(firstItemHeader).toHaveClass('is-selected');
|
238
|
+
var firstInput = screen.getByLabelText('label 1');
|
239
|
+
expect(firstInput).not.toHaveFocus();
|
240
|
+
userEvent.tab();
|
241
|
+
expect(firstInput).toHaveFocus();
|
242
|
+
userEvent.type(firstInput, '{arrowup}');
|
243
|
+
expect(firstInput).toHaveFocus();
|
226
244
|
});
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
2
|
import _toArray from "@babel/runtime-corejs3/helpers/esm/toArray";
|
3
3
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
4
|
-
var _excluded = ["item", "headerProps", "bodyProps", "children", "className"];
|
4
|
+
var _excluded = ["item", "headerProps", "bodyProps", "children", "className", "navigationMode"];
|
5
5
|
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
6
6
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
7
7
|
import React, { useEffect, useRef } from 'react';
|
@@ -23,6 +23,7 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
23
23
|
bodyProps = props.bodyProps,
|
24
24
|
children = props.children,
|
25
25
|
className = props.className,
|
26
|
+
navigationMode = props.navigationMode,
|
26
27
|
others = _objectWithoutProperties(props, _excluded);
|
27
28
|
|
28
29
|
var _React$Children$toArr = React.Children.toArray(children),
|
@@ -63,6 +64,11 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
63
64
|
delete rowProps.onMouseDown;
|
64
65
|
delete rowProps.onPointerDown;
|
65
66
|
delete rowProps.onClick;
|
67
|
+
|
68
|
+
if (navigationMode === 'native') {
|
69
|
+
delete rowProps.onKeyDown;
|
70
|
+
}
|
71
|
+
|
66
72
|
return ___EmotionJSX(Box, _extends({
|
67
73
|
as: "div",
|
68
74
|
tabindex: "0"
|
@@ -76,11 +82,13 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
76
82
|
item: item,
|
77
83
|
ref: cellRef,
|
78
84
|
isDisabled: isDisabled,
|
79
|
-
isSelected: isSelected
|
85
|
+
isSelected: isSelected,
|
86
|
+
navigationMode: navigationMode
|
80
87
|
}, headerProps), header), ___EmotionJSX(AccordionGridItemBody, _extends({
|
81
88
|
item: item,
|
82
89
|
ref: cellBodyRef,
|
83
|
-
isSelected: isSelected
|
90
|
+
isSelected: isSelected,
|
91
|
+
navigationMode: navigationMode
|
84
92
|
}, bodyProps), body), otherChildren);
|
85
93
|
};
|
86
94
|
|
@@ -91,6 +99,7 @@ AccordionGridItem.propTypes = {
|
|
91
99
|
key: PropTypes.string,
|
92
100
|
rendered: PropTypes.node,
|
93
101
|
childNodes: PropTypes.arrayOf(PropTypes.shape({}))
|
94
|
-
})
|
102
|
+
}),
|
103
|
+
navigationMode: PropTypes.string
|
95
104
|
};
|
96
105
|
export default AccordionGridItem;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
2
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
3
|
-
var _excluded = ["item", "className", "children", "isSelected"];
|
3
|
+
var _excluded = ["item", "className", "children", "isSelected", "navigationMode"];
|
4
4
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
5
5
|
import React, { forwardRef } from 'react';
|
6
6
|
import { mergeProps } from '@react-aria/utils';
|
@@ -18,6 +18,7 @@ var AccordionGridItemBody = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
18
18
|
className = props.className,
|
19
19
|
children = props.children,
|
20
20
|
isSelected = props.isSelected,
|
21
|
+
navigationMode = props.navigationMode,
|
21
22
|
others = _objectWithoutProperties(props, _excluded);
|
22
23
|
|
23
24
|
var _useAccordionGridCont = useAccordionGridContext(),
|
@@ -55,6 +56,12 @@ var AccordionGridItemBody = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
55
56
|
var ariaLabel = props['aria-label'];
|
56
57
|
delete mergedProps.onMouseDown;
|
57
58
|
delete mergedProps.onPointerDown;
|
59
|
+
|
60
|
+
if (navigationMode === 'native') {
|
61
|
+
delete mergedProps.onKeyDown;
|
62
|
+
delete mergedProps.onKeyDownCapture;
|
63
|
+
}
|
64
|
+
|
58
65
|
return ___EmotionJSX(Box, _extends({
|
59
66
|
as: "div",
|
60
67
|
variant: "accordion.accordionGridBody",
|
@@ -71,6 +78,7 @@ AccordionGridItemBody.propTypes = {
|
|
71
78
|
'aria-label': PropTypes.string,
|
72
79
|
item: PropTypes.shape({
|
73
80
|
childNodes: PropTypes.arrayOf(PropTypes.shape({}))
|
74
|
-
})
|
81
|
+
}),
|
82
|
+
navigationMode: PropTypes.string
|
75
83
|
};
|
76
84
|
export default AccordionGridItemBody;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
2
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
3
|
-
var _excluded = ["item", "className", "children", "isSelected", "hasCaret"];
|
3
|
+
var _excluded = ["item", "className", "children", "isSelected", "hasCaret", "navigationMode"];
|
4
4
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
5
5
|
import React, { forwardRef, useRef, useImperativeHandle } from 'react';
|
6
6
|
import { mergeProps } from '@react-aria/utils';
|
@@ -23,6 +23,7 @@ var AccordionGridItemHeader = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
23
23
|
children = props.children,
|
24
24
|
isSelected = props.isSelected,
|
25
25
|
hasCaret = props.hasCaret,
|
26
|
+
navigationMode = props.navigationMode,
|
26
27
|
others = _objectWithoutProperties(props, _excluded);
|
27
28
|
|
28
29
|
var _useAccordionGridCont = useAccordionGridContext(),
|
@@ -74,6 +75,21 @@ var AccordionGridItemHeader = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
74
75
|
classNames = _useStatusClasses.classNames;
|
75
76
|
|
76
77
|
var ariaLabel = props['aria-label'];
|
78
|
+
|
79
|
+
var handleKeyPress = function handleKeyPress(e) {
|
80
|
+
if (e.key === 'Enter') {
|
81
|
+
state.selectionManager.toggleSelection(e.target.dataset.key);
|
82
|
+
}
|
83
|
+
};
|
84
|
+
|
85
|
+
if (navigationMode === 'native') {
|
86
|
+
delete mergedProps.onKeyDown;
|
87
|
+
delete mergedProps.onKeyDownCapture;
|
88
|
+
delete mergedProps.onKeyUp;
|
89
|
+
mergedProps.tabIndex = 0;
|
90
|
+
mergedProps.onKeyPress = handleKeyPress;
|
91
|
+
}
|
92
|
+
|
77
93
|
return ___EmotionJSX(Box, _extends({
|
78
94
|
as: "div",
|
79
95
|
ref: cellRef
|
@@ -110,6 +126,7 @@ AccordionGridItemHeader.propTypes = {
|
|
110
126
|
props: PropTypes.shape({
|
111
127
|
isPressed: PropTypes.bool
|
112
128
|
})
|
113
|
-
})
|
129
|
+
}),
|
130
|
+
navigationMode: PropTypes.string
|
114
131
|
};
|
115
132
|
export default AccordionGridItemHeader;
|