@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.
@@ -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), (0, _react2.jsx)(_collections.Item, {
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), ___EmotionJSX(Item, {
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "1.39.2-alpha.0",
3
+ "version": "1.39.2-alpha.1",
4
4
  "description": "PingUX themeable React component library",
5
5
  "repository": {
6
6
  "type": "git",