@pingux/astro 1.39.1 → 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.
Files changed (36) hide show
  1. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.js +23 -2
  2. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +2 -1
  3. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +31 -1
  4. package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +13 -4
  5. package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +10 -2
  6. package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +19 -2
  7. package/lib/cjs/components/NavBar/NavBar.stories.js +7 -8
  8. package/lib/cjs/components/NavBarSection/NavBarItem.js +6 -5
  9. package/lib/cjs/components/NavBarSection/NavBarItemBody.js +7 -9
  10. package/lib/cjs/components/NavBarSection/NavBarItemButton.js +2 -1
  11. package/lib/cjs/components/NavBarSection/NavBarItemHeader.js +6 -5
  12. package/lib/cjs/components/NavBarSection/NavBarItemLink.js +2 -1
  13. package/lib/cjs/components/NavBarSection/NavBarSection.js +5 -12
  14. package/lib/cjs/styles/variants/buttons.js +5 -6
  15. package/lib/cjs/styles/variants/navBar.js +5 -6
  16. package/lib/cjs/styles/variants/separator.js +7 -8
  17. package/lib/cjs/styles/variants/text.js +9 -6
  18. package/lib/components/AccordionGridGroup/AccordionGridGroup.js +22 -2
  19. package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +2 -1
  20. package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +19 -1
  21. package/lib/components/AccordionGridItem/AccordionGridItem.js +13 -4
  22. package/lib/components/AccordionGridItem/AccordionGridItemBody.js +10 -2
  23. package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +19 -2
  24. package/lib/components/NavBar/NavBar.stories.js +7 -8
  25. package/lib/components/NavBarSection/NavBarItem.js +6 -5
  26. package/lib/components/NavBarSection/NavBarItemBody.js +7 -9
  27. package/lib/components/NavBarSection/NavBarItemButton.js +2 -1
  28. package/lib/components/NavBarSection/NavBarItemHeader.js +6 -5
  29. package/lib/components/NavBarSection/NavBarItemLink.js +2 -1
  30. package/lib/components/NavBarSection/NavBarSection.js +6 -13
  31. package/lib/styles/variants/buttons.js +5 -6
  32. package/lib/styles/variants/navBar.js +5 -6
  33. package/lib/styles/variants/separator.js +7 -8
  34. package/lib/styles/variants/text.js +9 -6
  35. package/package.json +1 -1
  36. package/NOTICE.html +0 -4707
@@ -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;
@@ -289,7 +289,10 @@ var data = [{
289
289
  }, "Notifications"), (0, _react2.jsx)(_index.NavBarItemLink, {
290
290
  key: "Experiences Vanity Domains",
291
291
  id: "Experiences Vanity Domains",
292
- href: "https://pingidentity.com/"
292
+ href: "https://pingidentity.com/",
293
+ onClick: function onClick(e) {
294
+ return e.preventDefault();
295
+ }
293
296
  }, "Vanity Domains"), (0, _react2.jsx)(_index.NavBarItemButton, {
294
297
  key: "Experiences Sender",
295
298
  id: "Experiences Sender"
@@ -304,7 +307,6 @@ var secondData = [{
304
307
  id: "MFA Button Users",
305
308
  key: "MFA Button Users"
306
309
  }, "Users"), {
307
- hasSeparator: false,
308
310
  subTitle: 'PingOne Services'
309
311
  }, (0, _react2.jsx)(_index.NavBarItemButton, {
310
312
  key: "MFA Button Group",
@@ -378,8 +380,7 @@ var Default = function Default() {
378
380
  href: "https://pingidentity.com",
379
381
  target: "_blank"
380
382
  }, logo)), (0, _react2.jsx)(_index.Separator, {
381
- marginTop: "lg",
382
- marginBottom: "0px",
383
+ m: 0,
383
384
  backgroundColor: "neutral.60"
384
385
  }), (0, _react2.jsx)(_index.Box, {
385
386
  variant: "navBar.sectionContainer",
@@ -392,7 +393,6 @@ var Default = function Default() {
392
393
  text: "Overview"
393
394
  }), (0, _react2.jsx)(_index.NavBarSection, {
394
395
  items: data,
395
- hasSeparator: true,
396
396
  "data-id": "nav-bar-section"
397
397
  }), (0, _react2.jsx)(_index.NavBarSection, {
398
398
  items: secondData,
@@ -401,6 +401,7 @@ var Default = function Default() {
401
401
  "data-id": "second-nav-bar-section"
402
402
  }), (0, _react2.jsx)(_index.NavBarSection, {
403
403
  items: thirdData,
404
+ hasSeparator: true,
404
405
  "data-id": "third-nav-bar-section"
405
406
  })));
406
407
  };
@@ -439,8 +440,7 @@ var Controlled = function Controlled() {
439
440
  href: "https://pingidentity.com",
440
441
  target: "_blank"
441
442
  }, logo)), (0, _react2.jsx)(_index.Separator, {
442
- marginTop: "lg",
443
- marginBottom: "0px",
443
+ m: "0",
444
444
  backgroundColor: "neutral.60",
445
445
  key: "top-separator"
446
446
  }), (0, _react2.jsx)(_index.Box, {
@@ -455,7 +455,6 @@ var Controlled = function Controlled() {
455
455
  text: "Overview"
456
456
  }), (0, _react2.jsx)(_index.NavBarSection, {
457
457
  items: data,
458
- hasSeparator: true,
459
458
  "data-id": "first-nav-bar-section"
460
459
  }), (0, _react2.jsx)(_index.NavBarSection, {
461
460
  items: secondData,
@@ -97,6 +97,7 @@ var NavBarItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
97
97
  }),
98
98
  classNames = _useStatusClasses.classNames;
99
99
 
100
+ var color = isSelected ? 'white' : 'neutral.95';
100
101
  return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
101
102
  id: key,
102
103
  variant: "navBar.navItem",
@@ -106,7 +107,7 @@ var NavBarItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
106
107
  ref: navItemRef
107
108
  }, mergedProps, {
108
109
  sx: {
109
- maxHeight: '30px'
110
+ flexGrow: 0
110
111
  }
111
112
  }), (0, _react2.jsx)(_index.Box, {
112
113
  isRow: true,
@@ -116,11 +117,11 @@ var NavBarItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
116
117
  }, icon && (0, _react2.jsx)(_index.Icon, {
117
118
  icon: icon,
118
119
  "aria-label": text,
119
- size: 20,
120
+ size: "sm",
120
121
  sx: {
121
- mr: '10px',
122
- color: 'white',
123
- fill: 'white'
122
+ mr: 'sm',
123
+ color: color,
124
+ fill: color
124
125
  }
125
126
  }), (0, _react2.jsx)(_index.Text, {
126
127
  variant: "navBarHeaderText"
@@ -41,19 +41,17 @@ var NavBarItemBody = function NavBarItemBody(_ref) {
41
41
  onKeyDown = _ref.onKeyDown;
42
42
 
43
43
  var renderSubTitle = function renderSubTitle(child) {
44
- var hasSeparator = child.hasSeparator,
44
+ var _child$hasSeparator = child.hasSeparator,
45
+ hasSeparator = _child$hasSeparator === void 0 ? true : _child$hasSeparator,
45
46
  subTitle = child.subTitle;
46
47
  return (0, _react2.jsx)(_react.Fragment, {
47
48
  key: "fragment".concat(subTitle)
48
- }, (hasSeparator || hasSeparator === undefined) && (0, _react2.jsx)(_index.Separator, {
49
+ }, hasSeparator && (0, _react2.jsx)(_index.Separator, {
49
50
  variant: "separator.navBarSubtitleSeparator"
50
51
  }), (0, _react2.jsx)(_index.Text, {
51
52
  key: "text".concat(subTitle),
52
- sx: {
53
- mb: 'sm',
54
- ml: '45px',
55
- mt: 'md'
56
- },
53
+ ml: "45px",
54
+ mt: hasSeparator ? '0' : undefined,
57
55
  variant: "text.navBarSubtitle"
58
56
  }, subTitle));
59
57
  };
@@ -67,8 +65,8 @@ var NavBarItemBody = function NavBarItemBody(_ref) {
67
65
 
68
66
  return (0, _react2.jsx)(_index.Box, {
69
67
  sx: {
70
- alignItems: 'flex-start',
71
- mb: '15px'
68
+ alignItems: 'stretch',
69
+ mb: 'md'
72
70
  }
73
71
  }, (0, _map["default"])(_context = item.children).call(_context, renderChild));
74
72
  };
@@ -72,7 +72,8 @@ var NavBarItemButton = function NavBarItemButton(props) {
72
72
  id: key,
73
73
  variant: "navItemButton",
74
74
  onPress: onNavPress,
75
- className: classNames
75
+ className: classNames,
76
+ color: isSelected ? 'white' : undefined
76
77
  }, others, {
77
78
  sx: _objectSpread({
78
79
  paddingLeft: '45px',
@@ -72,6 +72,7 @@ var NavBarItemHeader = function NavBarItemHeader(props) {
72
72
  }),
73
73
  classNames = _useStatusClasses.classNames;
74
74
 
75
+ var color = childSelected && !isExpanded ? 'white' : 'neutral.95';
75
76
  return (0, _react2.jsx)(_index.Box, {
76
77
  variant: "navBar.itemHeaderContainer",
77
78
  className: classNames,
@@ -82,8 +83,8 @@ var NavBarItemHeader = function NavBarItemHeader(props) {
82
83
  size: "sm",
83
84
  sx: {
84
85
  mr: '10px',
85
- color: 'white',
86
- fill: 'white'
86
+ color: color,
87
+ fill: color
87
88
  },
88
89
  "aria-hidden": "true"
89
90
  }), (0, _react2.jsx)(_index.Text, {
@@ -96,10 +97,10 @@ var NavBarItemHeader = function NavBarItemHeader(props) {
96
97
  }
97
98
  }, (0, _react2.jsx)(_index.Icon, {
98
99
  icon: isExpanded ? _MenuUpIcon["default"] : _MenuDownIcon["default"],
99
- size: "xs",
100
+ size: "sm",
100
101
  sx: {
101
- color: 'white',
102
- fill: 'white'
102
+ color: color,
103
+ fill: color
103
104
  },
104
105
  "aria-label": isExpanded ? 'Menu up' : 'Menu down'
105
106
  })));
@@ -71,7 +71,8 @@ var NavBarItemLink = function NavBarItemLink(props) {
71
71
  id: key,
72
72
  variant: "buttons.navItemButton",
73
73
  className: classNames,
74
- onPress: onNavPress
74
+ onPress: onNavPress,
75
+ color: isSelected ? 'white' : undefined
75
76
  }, others, {
76
77
  sx: _objectSpread({
77
78
  paddingLeft: '45px',
@@ -67,8 +67,11 @@ var NavBarSection = function NavBarSection(_ref) {
67
67
  var childrenItems = (0, _filter["default"])(items).call(items, function (item) {
68
68
  return item.children;
69
69
  });
70
- return (0, _react2.jsx)(_react["default"].Fragment, null, title && (0, _react2.jsx)(_.Text, {
71
- variant: "text.navBarSubtitle"
70
+ return (0, _react2.jsx)(_react["default"].Fragment, null, hasSeparator && (0, _react2.jsx)(_.Separator, {
71
+ variant: "separator.navBarSeparator"
72
+ }), title && (0, _react2.jsx)(_.Text, {
73
+ variant: "text.navBarSubtitle",
74
+ mt: hasSeparator ? '0' : undefined
72
75
  }, title), (0, _react2.jsx)("ul", (0, _extends2["default"])({
73
76
  ref: ref,
74
77
  style: {
@@ -83,16 +86,6 @@ var NavBarSection = function NavBarSection(_ref) {
83
86
  key: item.key,
84
87
  item: item
85
88
  }));
86
- })), hasSeparator && (0, _react2.jsx)(_.Box, {
87
- sx: {
88
- pl: '15px',
89
- pr: '15px',
90
- my: '10px',
91
- mt: '15px',
92
- mb: '15px'
93
- }
94
- }, (0, _react2.jsx)(_.Separator, {
95
- variant: "separator.navBarSeparator"
96
89
  })));
97
90
  };
98
91
 
@@ -87,16 +87,15 @@ var navItemButton = {
87
87
  cursor: 'pointer',
88
88
  borderRadius: 0,
89
89
  backgroundColor: 'transparent',
90
- paddingTop: '5px',
91
- paddingBottom: '5px',
90
+ paddingTop: 'sm',
91
+ paddingBottom: 'sm',
92
92
  display: 'block',
93
- color: 'neutral.95',
94
- fontSize: 'sm',
95
- fontWeight: 1,
93
+ color: 'neutral.90',
94
+ fontSize: 'md',
95
+ fontWeight: 0,
96
96
  flexGrow: '1',
97
97
  width: '100%',
98
98
  textAlign: 'left',
99
- lineHeight: '16px',
100
99
  whiteSpace: 'break-spaces',
101
100
  overflowWrap: 'break-word',
102
101
  maxWidth: '100%',
@@ -46,18 +46,17 @@ var itemHeaderContainer = {
46
46
  flexGrow: 1,
47
47
  alignItems: 'center',
48
48
  maxWidth: '230px',
49
- padding: '10px 15px 10px 15px',
49
+ py: 'sm',
50
+ px: 'md',
50
51
  cursor: 'pointer',
51
52
  minHeight: '40px',
52
- fontWeight: 0,
53
- fontSize: '16px',
54
53
  '&.is-selected': {
55
54
  backgroundColor: 'accent.5',
56
55
  boxShadow: 'inset 2px 0 0 0 white'
57
56
  }
58
57
  };
59
58
  var sectionContainer = {
60
- pt: '10px',
59
+ pt: 'sm',
61
60
  height: '100%',
62
61
  maxHeight: '100%',
63
62
  overflowY: 'auto'
@@ -71,7 +70,8 @@ var navItem = {
71
70
  cursor: 'pointer',
72
71
  minHeight: '40px',
73
72
  lineHeight: '30px',
74
- padding: '10px 15px 10px 15px',
73
+ py: 'sm',
74
+ px: 'md',
75
75
  outline: 'none',
76
76
  display: 'flex',
77
77
  justifyContent: 'flex-start',
@@ -81,7 +81,6 @@ var navItem = {
81
81
  color: 'neutral.95',
82
82
  flexGrow: 1,
83
83
  fontWeight: 0,
84
- fontSize: '16px',
85
84
  '&.is-focused': {
86
85
  outline: '1px solid',
87
86
  outlineColor: 'focus'
@@ -35,6 +35,7 @@ var base = {
35
35
  width: '100%',
36
36
  height: '1px',
37
37
  my: '5px',
38
+ flexShrink: 0,
38
39
  '&.is-vertical': {
39
40
  width: '1px',
40
41
  height: '100%',
@@ -43,16 +44,14 @@ var base = {
43
44
  };
44
45
 
45
46
  var navBarSeparator = _objectSpread(_objectSpread({}, base), {}, {
46
- width: '100%',
47
- backgroundColor: 'neutral.60',
48
- my: 0
47
+ width: 'auto',
48
+ my: 'md',
49
+ mx: 'md',
50
+ backgroundColor: 'neutral.60'
49
51
  });
50
52
 
51
- var navBarSubtitleSeparator = _objectSpread(_objectSpread({}, base), {}, {
52
- mt: '15px',
53
- ml: '45px',
54
- width: 'calc(100% - 60px)',
55
- backgroundColor: 'neutral.60'
53
+ var navBarSubtitleSeparator = _objectSpread(_objectSpread({}, navBarSeparator), {}, {
54
+ ml: '45px'
56
55
  });
57
56
 
58
57
  var _default = {
@@ -177,20 +177,23 @@ var environmentBreadcrumb = _objectSpread(_objectSpread({}, base), {}, {
177
177
 
178
178
  var navBarSubtitle = {
179
179
  ml: 'md',
180
- mb: '15px',
181
- fontWeight: 3,
182
- fontSize: '11px',
180
+ my: 'sm',
181
+ fontWeight: 1,
182
+ fontSize: 'sm',
183
183
  color: 'accent.80',
184
184
  zIndex: '100'
185
185
  };
186
186
 
187
187
  var navBarHeaderText = _objectSpread(_objectSpread({}, wordWrap), {}, {
188
188
  whiteSpace: 'break-spaces',
189
- lineHeight: '13px',
190
- fontSize: '13px',
189
+ lineHeight: 1,
190
+ fontSize: 'md',
191
191
  fontWeight: 1,
192
192
  maxWidth: '150px',
193
- color: 'white'
193
+ color: 'neutral.95',
194
+ '.is-selected &': {
195
+ color: 'white'
196
+ }
194
197
  });
195
198
 
196
199
  var collapsiblePanellItem = _objectSpread(_objectSpread({}, wordWrap), {}, {
@@ -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.