@pingux/astro 1.2.0-alpha.11 → 1.2.0-alpha.15

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 (65) hide show
  1. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.js +32 -25
  2. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +148 -169
  3. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +25 -30
  4. package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +29 -14
  5. package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +3 -3
  6. package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +16 -18
  7. package/lib/cjs/components/AccordionGroup/AccordionGroup.js +2 -1
  8. package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +20 -1
  9. package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
  10. package/lib/cjs/components/Button/Button.js +9 -0
  11. package/lib/cjs/components/Button/Button.stories.js +1 -14
  12. package/lib/cjs/components/ListView/ListView.js +9 -13
  13. package/lib/cjs/components/ListViewItem/ListViewItem.js +15 -3
  14. package/lib/cjs/components/Modal/Modal.stories.js +1 -1
  15. package/lib/cjs/components/RockerButton/RockerButton.js +14 -22
  16. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
  17. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.stories.js +4 -22
  18. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -14
  19. package/lib/cjs/components/SearchField/SearchField.stories.js +1 -15
  20. package/lib/cjs/components/TextAreaField/TextAreaField.js +53 -8
  21. package/lib/cjs/components/TextAreaField/TextAreaField.stories.js +33 -1
  22. package/lib/cjs/components/TextAreaField/TextAreaField.test.js +12 -0
  23. package/lib/cjs/context/AccordionGridContext/index.js +20 -0
  24. package/lib/cjs/hooks/useField/useField.js +5 -0
  25. package/lib/cjs/hooks/useRockerButton/useRockerButton.js +4 -6
  26. package/lib/cjs/layouts/ListLayout.stories.js +6 -6
  27. package/lib/cjs/recipes/ArrayField.stories.js +1 -1
  28. package/lib/cjs/recipes/ConditionalFilter.stories.js +7 -3
  29. package/lib/cjs/recipes/RadioButtonsWithLinks.stories.js +1 -1
  30. package/lib/cjs/styles/variants/boxes.js +9 -0
  31. package/lib/cjs/styles/variants/buttons.js +2 -0
  32. package/lib/components/AccordionGridGroup/AccordionGridGroup.js +32 -24
  33. package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +143 -166
  34. package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -25
  35. package/lib/components/AccordionGridItem/AccordionGridItem.js +29 -15
  36. package/lib/components/AccordionGridItem/AccordionGridItemBody.js +4 -4
  37. package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +19 -20
  38. package/lib/components/AccordionGroup/AccordionGroup.js +2 -1
  39. package/lib/components/AccordionGroup/AccordionGroup.test.js +16 -2
  40. package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
  41. package/lib/components/Button/Button.js +10 -1
  42. package/lib/components/Button/Button.stories.js +0 -10
  43. package/lib/components/ListView/ListView.js +9 -12
  44. package/lib/components/ListViewItem/ListViewItem.js +14 -3
  45. package/lib/components/Modal/Modal.stories.js +1 -1
  46. package/lib/components/RockerButton/RockerButton.js +14 -21
  47. package/lib/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
  48. package/lib/components/RockerButtonGroup/RockerButtonGroup.stories.js +2 -17
  49. package/lib/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -11
  50. package/lib/components/SearchField/SearchField.stories.js +0 -11
  51. package/lib/components/TextAreaField/TextAreaField.js +53 -9
  52. package/lib/components/TextAreaField/TextAreaField.stories.js +27 -0
  53. package/lib/components/TextAreaField/TextAreaField.test.js +13 -0
  54. package/lib/context/AccordionGridContext/index.js +5 -0
  55. package/lib/hooks/useField/useField.js +5 -0
  56. package/lib/hooks/useRockerButton/useRockerButton.js +4 -6
  57. package/lib/layouts/ListLayout.stories.js +6 -6
  58. package/lib/recipes/ArrayField.stories.js +1 -1
  59. package/lib/recipes/ConditionalFilter.stories.js +7 -3
  60. package/lib/recipes/RadioButtonsWithLinks.stories.js +1 -1
  61. package/lib/styles/variants/boxes.js +9 -0
  62. package/lib/styles/variants/buttons.js +2 -0
  63. package/package.json +1 -1
  64. package/lib/cjs/components/AccordionGridGroup/AccordionGridContext.js +0 -17
  65. package/lib/components/AccordionGridGroup/AccordionGridContext.js +0 -2
@@ -38,6 +38,8 @@ var _react = _interopRequireWildcard(require("react"));
38
38
 
39
39
  var _propTypes = _interopRequireDefault(require("prop-types"));
40
40
 
41
+ var _utils = require("@react-aria/utils");
42
+
41
43
  var _hooks = require("../../hooks");
42
44
 
43
45
  var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
@@ -63,7 +65,8 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
63
65
  var helperText = props.helperText,
64
66
  isUnresizable = props.isUnresizable,
65
67
  rows = props.rows,
66
- status = props.status;
68
+ status = props.status,
69
+ slots = props.slots;
67
70
  var statusClasses = {
68
71
  isUnresizable: isUnresizable
69
72
  };
@@ -77,6 +80,9 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
77
80
 
78
81
  var textAreaRef = (0, _react.useRef)();
79
82
  var labelRef = (0, _react.useRef)();
83
+ var containerRef = (0, _react.useRef)();
84
+ var inputContainerRef = (0, _react.useRef)();
85
+ var slotContainer = (0, _react.useRef)();
80
86
  (0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
81
87
  /* istanbul ignore next */
82
88
 
@@ -89,6 +95,24 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
89
95
  /* istanbul ignore next */
90
96
  labelRef.current.style.width = textAreaRef.current.style.width;
91
97
  };
98
+ /* istanbul ignore next */
99
+
100
+
101
+ var resizeSlotContainer = function resizeSlotContainer() {
102
+ inputContainerRef.current.style.width = textAreaRef.current.style.width;
103
+ };
104
+
105
+ var onResize = (0, _react.useCallback)(function () {
106
+ /* istanbul ignore next */
107
+ if (slots === null || slots === void 0 ? void 0 : slots.inContainer) {
108
+ resizeSlotContainer();
109
+ }
110
+ }, [slotContainer]);
111
+ (0, _utils.useResizeObserver)({
112
+ ref: textAreaRef,
113
+ onResize: onResize
114
+ });
115
+ (0, _utils.useLayoutEffect)(onResize, [onResize]);
92
116
 
93
117
  var _useLabelHeight = (0, _hooks.useLabelHeight)({
94
118
  labelRef: labelRef,
@@ -100,18 +124,22 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
100
124
  labelMode: props.labelMode
101
125
  });
102
126
  (0, _react.useEffect)(function () {
127
+ var thisRef = textAreaRef.current;
128
+
103
129
  if (!props.isUnresizable && props.labelMode === 'float') {
104
- textAreaRef.current.addEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
130
+ thisRef.addEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
105
131
  }
106
132
 
107
133
  return function () {
108
- textAreaRef.current.removeEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
134
+ thisRef.removeEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
109
135
  };
110
- }, []);
136
+ }, [props.isUnresizable, props.labelMode, props.resizeCallback]);
111
137
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
112
138
  variant: "forms.input.wrapper"
113
139
  }, fieldContainerProps, {
114
- sx: _objectSpread(_objectSpread({}, columnStyleProps === null || columnStyleProps === void 0 ? void 0 : columnStyleProps.sx), fieldContainerProps === null || fieldContainerProps === void 0 ? void 0 : fieldContainerProps.sx)
140
+ sx: _objectSpread(_objectSpread({}, columnStyleProps === null || columnStyleProps === void 0 ? void 0 : columnStyleProps.sx), fieldContainerProps === null || fieldContainerProps === void 0 ? void 0 : fieldContainerProps.sx),
141
+ ref: containerRef,
142
+ maxWidth: "100%"
115
143
  }), (0, _react2.jsx)(_Label["default"], (0, _extends2["default"])({
116
144
  ref: labelRef
117
145
  }, fieldLabelProps, {
@@ -119,12 +147,23 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
119
147
  gridRow: '1/5'
120
148
  }
121
149
  })), (0, _react2.jsx)(_Box["default"], {
150
+ isRow: true,
122
151
  variant: "forms.input.container",
123
- className: fieldControlProps.className
152
+ className: fieldControlProps.className,
153
+ minWidth: "40px",
154
+ maxWidth: "100%",
155
+ ref: inputContainerRef
124
156
  }, (0, _react2.jsx)(_TextArea["default"], (0, _extends2["default"])({
125
157
  ref: textAreaRef,
126
158
  rows: rows
127
- }, fieldControlProps))), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
159
+ }, fieldControlProps, {
160
+ sx: (slots === null || slots === void 0 ? void 0 : slots.inContainer) && {
161
+ paddingRight: '35px'
162
+ }
163
+ })), (slots === null || slots === void 0 ? void 0 : slots.inContainer) && (0, _react2.jsx)(_Box["default"], {
164
+ variant: "boxes.textFieldInContainerSlot",
165
+ ref: slotContainer
166
+ }, slots === null || slots === void 0 ? void 0 : slots.inContainer)), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
128
167
  status: status
129
168
  }, helperText));
130
169
  });
@@ -219,7 +258,13 @@ TextAreaField.propTypes = {
219
258
  controlProps: _propTypes["default"].shape({}),
220
259
 
221
260
  /** Props object that is spread directly into the label element. */
222
- labelProps: _propTypes["default"].shape({})
261
+ labelProps: _propTypes["default"].shape({}),
262
+
263
+ /** Provides a way to insert markup in specified places. */
264
+ slots: _propTypes["default"].shape({
265
+ /** The given node will be inserted into the field container. */
266
+ inContainer: _propTypes["default"].node
267
+ })
223
268
  };
224
269
  TextAreaField.defaultProps = {
225
270
  hasAutoFocus: false,
@@ -10,16 +10,24 @@ _Object$defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
12
 
13
- exports.MaxLength = exports.WithoutStatusIndicator = exports.Error = exports.Unresizable = exports.Rows = exports.Required = exports.ReadOnly = exports.Disabled = exports.Controlled = exports.FloatLabel = exports.Default = exports["default"] = void 0;
13
+ exports.MaxLength = exports.WithoutStatusIndicator = exports.Error = exports.Unresizable = exports.Rows = exports.Required = exports.ReadOnly = exports.Disabled = exports.Controlled = exports.FloatLabel = exports.WithSlots = exports.Default = exports["default"] = void 0;
14
14
 
15
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
16
16
 
17
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
18
+
17
19
  var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
18
20
 
19
21
  var _react = _interopRequireWildcard(require("react"));
20
22
 
23
+ var _SearchIcon = _interopRequireDefault(require("mdi-react/SearchIcon"));
24
+
21
25
  var _ = _interopRequireDefault(require("."));
22
26
 
27
+ var _Box = _interopRequireDefault(require("../Box"));
28
+
29
+ var _Icon = _interopRequireDefault(require("../Icon"));
30
+
23
31
  var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
24
32
 
25
33
  var _constants = require("../Label/constants");
@@ -83,6 +91,11 @@ var _default = {
83
91
  }
84
92
  };
85
93
  exports["default"] = _default;
94
+ var IconSlot = (0, _react2.jsx)(_Box["default"], {
95
+ isRow: true
96
+ }, (0, _react2.jsx)(_Icon["default"], {
97
+ icon: _SearchIcon["default"]
98
+ }));
86
99
 
87
100
  var Default = function Default(args) {
88
101
  return (0, _react2.jsx)(_["default"], args);
@@ -90,6 +103,25 @@ var Default = function Default(args) {
90
103
 
91
104
  exports.Default = Default;
92
105
 
106
+ var WithSlots = function WithSlots(args) {
107
+ return (// This is an example of a slot that can be passed into the component
108
+ // const IconSlot = (
109
+ // <Box isRow>
110
+ // <Icon
111
+ // icon={SearchIcon}
112
+ // />
113
+ // </Box>
114
+ // );
115
+ (0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, args, {
116
+ slots: {
117
+ inContainer: IconSlot
118
+ }
119
+ }))
120
+ );
121
+ };
122
+
123
+ exports.WithSlots = WithSlots;
124
+
93
125
  var FloatLabel = function FloatLabel() {
94
126
  return (0, _react2.jsx)(_["default"], {
95
127
  label: "Example label",
@@ -153,4 +153,16 @@ test('form wrapper will have a max label column width when custom width set', fu
153
153
  var textAreaContainer = _testWrapper.screen.getByTestId(testId);
154
154
 
155
155
  expect(textAreaContainer).toHaveStyle('grid-template-columns: 120px auto');
156
+ });
157
+ test('providing slot props causes slot to render', function () {
158
+ var slot = (0, _react3.jsx)("p", {
159
+ "data-testid": "testSlot"
160
+ }, "testText");
161
+ var slots = {
162
+ inContainer: slot
163
+ };
164
+ getComponent({
165
+ slots: slots
166
+ });
167
+ expect(_testWrapper.screen.getByTestId('testSlot')).toBeInTheDocument();
156
168
  });
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+
9
+ exports.useAccordionGridContext = exports.AccordionGridContext = void 0;
10
+
11
+ var _react = require("react");
12
+
13
+ var AccordionGridContext = /*#__PURE__*/(0, _react.createContext)({});
14
+ exports.AccordionGridContext = AccordionGridContext;
15
+
16
+ var useAccordionGridContext = function useAccordionGridContext() {
17
+ return (0, _react.useContext)(AccordionGridContext);
18
+ };
19
+
20
+ exports.useAccordionGridContext = useAccordionGridContext;
@@ -145,6 +145,11 @@ var useField = function useField() {
145
145
  setHasValue(true);
146
146
  } else {
147
147
  setHasValue(false);
148
+ } // adding this function resolves the error brought up in UIP-5116
149
+
150
+
151
+ if (e.persist) {
152
+ e.persist();
148
153
  } // Make sure to call the original onChange event
149
154
 
150
155
 
@@ -38,24 +38,22 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
38
38
 
39
39
  var useRockerButton = function useRockerButton(props, state, ref) {
40
40
  var item = props.item,
41
- propsDisabled = props.isDisabled;
41
+ isDisabled = props.isDisabled,
42
+ isSelected = props.isSelected;
42
43
  var key = item.key;
43
- var manager = state.selectionManager,
44
- selectedKey = state.selectedKey;
45
- var isSelected = key === selectedKey;
44
+ var manager = state.selectionManager;
46
45
 
47
46
  var _useSelectableItem = (0, _selection.useSelectableItem)({
47
+ isDisabled: isDisabled,
48
48
  selectionManager: manager,
49
49
  key: key,
50
50
  ref: ref
51
51
  }),
52
52
  itemProps = _useSelectableItem.itemProps;
53
53
 
54
- var isDisabled = propsDisabled || state.disabledKeys.has(key);
55
54
  var rockerButtonId = (0, _utils.useId)();
56
55
  return {
57
56
  rockerButtonProps: _objectSpread(_objectSpread({}, itemProps), {}, {
58
- isDisabled: isDisabled,
59
57
  id: rockerButtonId,
60
58
  'aria-pressed': isSelected,
61
59
  'aria-disabled': isDisabled || undefined
@@ -574,7 +574,7 @@ var Default = function Default() {
574
574
  mr: "md",
575
575
  "aria-label": "Save Button"
576
576
  }, "Save"), (0, _react2.jsx)(_index.Button, {
577
- variant: "text",
577
+ variant: "link",
578
578
  onPress: viewItem,
579
579
  "aria-label": "Cancel Button"
580
580
  }, "Cancel"))), editConfigurationVisible && (0, _react2.jsx)(_index.OverlayPanel, {
@@ -704,7 +704,7 @@ var Default = function Default() {
704
704
  mr: "md",
705
705
  "aria-label": "Save Button"
706
706
  }, "Save"), (0, _react2.jsx)(_index.Button, {
707
- variant: "text",
707
+ variant: "link",
708
708
  onPress: viewItem,
709
709
  "aria-label": "Cancel Button"
710
710
  }, "Cancel"))), addItemVisible && (0, _react2.jsx)(_index.OverlayPanel, {
@@ -790,7 +790,7 @@ var Default = function Default() {
790
790
  isRow: true,
791
791
  sx: buttonBarStyles
792
792
  }, (0, _react2.jsx)(_index.Button, {
793
- variant: "text",
793
+ variant: "link",
794
794
  onPress: resetListItem,
795
795
  mr: "md",
796
796
  "aria-label": "Cancel Button"
@@ -851,7 +851,7 @@ var Default = function Default() {
851
851
  isRow: true,
852
852
  sx: buttonBarStyles
853
853
  }, (0, _react2.jsx)(_index.Button, {
854
- variant: "text",
854
+ variant: "link",
855
855
  onPress: resetListItem,
856
856
  mr: "md"
857
857
  }, "Cancel"), (0, _react2.jsx)(_index.Button, {
@@ -873,11 +873,11 @@ var Default = function Default() {
873
873
  pt: "lg",
874
874
  mr: "auto"
875
875
  }, (0, _react2.jsx)(_index.Button, {
876
- variant: "danger",
876
+ variant: "critical",
877
877
  mr: "md",
878
878
  onPress: deleteItem
879
879
  }, "Delete"), (0, _react2.jsx)(_index.Button, {
880
- variant: "text",
880
+ variant: "link",
881
881
  onPress: function onPress() {
882
882
  return setIsDeleting(false);
883
883
  }
@@ -153,7 +153,7 @@ var Default = function Default() {
153
153
  title: "Text Field"
154
154
  }, otherFieldProps)));
155
155
  }), (0, _react2.jsx)(_index.Button, {
156
- variant: "text",
156
+ variant: "link",
157
157
  onPress: onFieldAdd,
158
158
  role: "button",
159
159
  title: "Add Field Button",
@@ -118,7 +118,9 @@ var Default = function Default() {
118
118
  setEditOverviewVisible = _React$useState4[1];
119
119
 
120
120
  return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.Button, {
121
- onPress: setStaticOverviewVisible
121
+ onPress: function onPress() {
122
+ return setStaticOverviewVisible(true);
123
+ }
122
124
  }, "Open Panel"), staticOverviewVisible && (0, _react2.jsx)(_OverlayPanel["default"], {
123
125
  isOpen: staticOverviewVisible
124
126
  }, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Box, {
@@ -133,7 +135,9 @@ var Default = function Default() {
133
135
  "aria-label": "edit",
134
136
  variant: "inverted",
135
137
  ml: "xs",
136
- onPress: setEditOverviewVisible
138
+ onPress: function onPress() {
139
+ return setEditOverviewVisible(true);
140
+ }
137
141
  }, (0, _react2.jsx)(_index.Icon, {
138
142
  icon: _CreateIcon["default"],
139
143
  size: 14
@@ -457,7 +461,7 @@ var Default = function Default() {
457
461
  onPress: function onPress() {
458
462
  return setEditOverviewVisible(false);
459
463
  },
460
- variant: "text",
464
+ variant: "link",
461
465
  "aria-label": "cancel"
462
466
  }, "Cancel"))))));
463
467
  };
@@ -72,7 +72,7 @@ var Default = function Default() {
72
72
  label: fieldName,
73
73
  isDisabled: isDisabled
74
74
  }), (0, _react2.jsx)(_index.Button, {
75
- variant: "text",
75
+ variant: "link",
76
76
  mb: "xs",
77
77
  ml: "md",
78
78
  onPress: function onPress() {
@@ -139,6 +139,14 @@ var inputInContainerSlot = {
139
139
  top: '50%',
140
140
  transform: 'translateY(-50%)'
141
141
  };
142
+ var textFieldInContainerSlot = {
143
+ position: 'absolute',
144
+ bg: 'transparent',
145
+ width: '20px',
146
+ right: '10px',
147
+ top: '50%',
148
+ transform: 'translateY(-50%)'
149
+ };
142
150
  var copy = {
143
151
  alignItems: 'center',
144
152
  width: 'max-content',
@@ -317,6 +325,7 @@ var _default = {
317
325
  environmentChip: environmentChip,
318
326
  expandableRow: expandableRow,
319
327
  inputInContainerSlot: inputInContainerSlot,
328
+ textFieldInContainerSlot: textFieldInContainerSlot,
320
329
  fileInputFieldWrapper: fileInputFieldWrapper,
321
330
  listItem: listItem,
322
331
  listBoxSectionTitle: listBoxSectionTitle,
@@ -397,6 +397,7 @@ var chipDeleteButton = {
397
397
  };
398
398
 
399
399
  var rocker = _objectSpread(_objectSpread({}, base), {}, {
400
+ border: '0',
400
401
  display: 'inline-flex',
401
402
  height: '26px',
402
403
  lineHeight: '26px',
@@ -408,6 +409,7 @@ var rocker = _objectSpread(_objectSpread({}, base), {}, {
408
409
  textTransform: 'uppercase',
409
410
  bg: 'accent.95',
410
411
  '&.is-selected': {
412
+ bg: 'active',
411
413
  color: 'white'
412
414
  },
413
415
  '&.is-focused': _objectSpread({}, defaultFocus)
@@ -18,11 +18,10 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
18
18
  import React, { useMemo, forwardRef, useImperativeHandle, useRef } from 'react';
19
19
  import { GridCollection, useGridState } from '@react-stately/grid';
20
20
  import { GridKeyboardDelegate, useGrid } from '@react-aria/grid';
21
- import { mergeProps } from '@react-aria/utils';
22
21
  import { useListState } from '@react-stately/list';
23
22
  import PropTypes from 'prop-types';
24
23
  import { useCollator, useLocale } from '@react-aria/i18n';
25
- import { AccordionGridContext } from './AccordionGridContext';
24
+ import { AccordionGridContext } from '../../context/AccordionGridContext';
26
25
  import AccordionGridItem from '../AccordionGridItem';
27
26
  import Box from '../Box';
28
27
  import { isIterableProp } from '../../utils/devUtils/props/isIterable';
@@ -46,9 +45,7 @@ export var collectionTypes = {
46
45
  var AccordionGridGroup = /*#__PURE__*/forwardRef(function (props, ref) {
47
46
  var _context2;
48
47
 
49
- var disabledKeys = props.disabledKeys,
50
- selectedKeys = props.selectedKeys,
51
- onSelectionChange = props.onSelectionChange;
48
+ var disabledKeys = props.disabledKeys;
52
49
  var accordionGridRef = useRef();
53
50
  /* istanbul ignore next */
54
51
 
@@ -73,9 +70,11 @@ var AccordionGridGroup = /*#__PURE__*/forwardRef(function (props, ref) {
73
70
  columnCount: 1,
74
71
  items: _mapInstanceProperty(_context = _Array$from(collection)).call(_context, function (item) {
75
72
  return _objectSpread(_objectSpread({}, item), {}, {
73
+ key: "row-".concat(item.key),
76
74
  hasChildNodes: true,
77
75
  childNodes: [{
78
- key: "cell-".concat(item.key),
76
+ key: item.key,
77
+ // use key for first cell, fixes selection after changes from UIP-5170
79
78
  type: 'cell',
80
79
  index: 0,
81
80
  value: null,
@@ -101,12 +100,11 @@ var AccordionGridGroup = /*#__PURE__*/forwardRef(function (props, ref) {
101
100
  }, [collection]);
102
101
  var state = useGridState(_objectSpread(_objectSpread({}, props), {}, {
103
102
  disabledKeys: disabledKeys,
104
- selectedKeys: selectedKeys,
105
103
  collection: gridCollection,
106
- selectionMode: 'multiple',
107
- onSelectionChange: onSelectionChange,
108
- allowsCellSelection: true
109
- }));
104
+ selectionMode: 'multiple'
105
+ })); // Required to enable header selection
106
+
107
+ state.selectionManager.allowsCellSelection = true;
110
108
  var keyboardDelegate = useMemo(function () {
111
109
  return new GridKeyboardDelegate({
112
110
  collection: state.collection,
@@ -119,7 +117,6 @@ var AccordionGridGroup = /*#__PURE__*/forwardRef(function (props, ref) {
119
117
  }, [state, accordionGridRef, direction, collator]);
120
118
 
121
119
  var _useGrid = useGrid(_objectSpread(_objectSpread({}, props), {}, {
122
- isVirtualized: true,
123
120
  keyboardDelegate: keyboardDelegate
124
121
  }), state, accordionGridRef),
125
122
  gridProps = _useGrid.gridProps;
@@ -129,7 +126,7 @@ var AccordionGridGroup = /*#__PURE__*/forwardRef(function (props, ref) {
129
126
  state: state,
130
127
  keyboardDelegate: keyboardDelegate
131
128
  }
132
- }, ___EmotionJSX(Box, _extends({}, mergeProps(gridProps), {
129
+ }, ___EmotionJSX(Box, _extends({}, gridProps, {
133
130
  ref: accordionGridRef
134
131
  }), _mapInstanceProperty(_context2 = _Array$from(state.collection)).call(_context2, function (item) {
135
132
  return ___EmotionJSX(AccordionGridItem, _extends({
@@ -139,6 +136,27 @@ var AccordionGridGroup = /*#__PURE__*/forwardRef(function (props, ref) {
139
136
  })));
140
137
  });
141
138
  AccordionGridGroup.propTypes = {
139
+ /**
140
+ * The currently selected keys in the collection (uncontrolled).
141
+ *
142
+ * `selectedKeys="all"` can be used to select every key.
143
+ */
144
+ defaultSelectedKeys: isIterableProp,
145
+
146
+ /**
147
+ * The currently selected keys in the collection (controlled).
148
+ *
149
+ * `selectedKeys="all"` can be used to select every key.
150
+ */
151
+ selectedKeys: isIterableProp,
152
+
153
+ /**
154
+ * Callback function that fires when the selected key changes.
155
+ *
156
+ * `(selectedKeys: Set) => void`
157
+ */
158
+ onSelectionChange: PropTypes.func,
159
+
142
160
  /**
143
161
  * The item keys that are disabled. These items cannot be selected, focused, or otherwise
144
162
  * interacted with.
@@ -164,17 +182,7 @@ AccordionGridGroup.propTypes = {
164
182
  * Identifies the element (or elements) that provide a detailed, extended description for
165
183
  * the object.
166
184
  */
167
- 'aria-details': PropTypes.string,
168
-
169
- /**
170
- * The currently selected keys in the collection (controlled).
171
- *
172
- * `selectedKeys="all"` can be used to select every key.
173
- */
174
- selectedKeys: isIterableProp,
175
-
176
- /** Callback function that fires when the selected key changes. */
177
- onSelectionChange: PropTypes.func
185
+ 'aria-details': PropTypes.string
178
186
  };
179
187
  AccordionGridGroup.defaultProps = {
180
188
  'aria-label': 'accordion'