@pingux/astro 1.10.0 → 1.10.1-alpha.2

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 (50) hide show
  1. package/lib/cjs/components/ArrayField/ArrayField.js +41 -25
  2. package/lib/cjs/components/ArrayField/ArrayField.stories.js +9 -0
  3. package/lib/cjs/components/ArrayField/ArrayField.test.js +5 -1
  4. package/lib/cjs/components/{MultiselectFilter/MultiselectFilter.js → CollapsiblePanel/CollapsiblePanel.js} +13 -13
  5. package/lib/cjs/components/{MultiselectFilter/MultiselectFilter.stories.js → CollapsiblePanel/CollapsiblePanel.stories.js} +9 -9
  6. package/lib/cjs/components/{MultiselectFilter/MultiselectFilter.test.js → CollapsiblePanel/CollapsiblePanel.test.js} +8 -8
  7. package/lib/cjs/components/{MultiselectFilter → CollapsiblePanel}/index.js +2 -2
  8. package/lib/cjs/components/{MultiselectListContainer/MultiselectBadge.js → CollapsiblePanelContainer/CollapsiblePanelBadge.js} +6 -6
  9. package/lib/cjs/components/{MultiselectListContainer/MultiselectBadge.test.js → CollapsiblePanelContainer/CollapsiblePanelBadge.test.js} +8 -8
  10. package/lib/cjs/components/{MultiselectListContainer/MultiselectListContainer.js → CollapsiblePanelContainer/CollapsiblePanelContainer.js} +12 -12
  11. package/lib/cjs/components/{MultiselectListContainer/MultiselectListContainer.test.js → CollapsiblePanelContainer/CollapsiblePanelContainer.test.js} +23 -23
  12. package/lib/cjs/components/{MultiselectListContainer → CollapsiblePanelContainer}/index.js +2 -2
  13. package/lib/cjs/components/{MultiselectFilterItem/MultiselectFilterItem.js → CollapsiblePanelItem/CollapsiblePanelItem.js} +7 -7
  14. package/lib/cjs/components/{MultiselectFilterItem/MultiselectFilterItem.test.js → CollapsiblePanelItem/CollapsiblePanelItem.test.js} +7 -7
  15. package/lib/cjs/components/{MultiselectFilterItem → CollapsiblePanelItem}/index.js +2 -2
  16. package/lib/cjs/components/ComboBoxField/ComboBoxField.js +15 -1
  17. package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +22 -0
  18. package/lib/cjs/index.js +36 -36
  19. package/lib/cjs/recipes/{MultiselectListContainer.stories.js → CollapsiblePanel.stories.js} +3 -3
  20. package/lib/cjs/styles/variants/buttons.js +2 -2
  21. package/lib/cjs/styles/variants/{multiselectListContainer.js → collapsiblePanel.js} +10 -10
  22. package/lib/cjs/styles/variants/text.js +4 -4
  23. package/lib/cjs/styles/variants/variants.js +2 -2
  24. package/lib/components/ArrayField/ArrayField.js +37 -25
  25. package/lib/components/ArrayField/ArrayField.stories.js +9 -0
  26. package/lib/components/ArrayField/ArrayField.test.js +5 -1
  27. package/lib/components/{MultiselectFilter/MultiselectFilter.js → CollapsiblePanel/CollapsiblePanel.js} +14 -14
  28. package/lib/components/{MultiselectFilter/MultiselectFilter.stories.js → CollapsiblePanel/CollapsiblePanel.stories.js} +8 -8
  29. package/lib/components/{MultiselectFilter/MultiselectFilter.test.js → CollapsiblePanel/CollapsiblePanel.test.js} +8 -8
  30. package/lib/components/CollapsiblePanel/index.js +1 -0
  31. package/lib/components/{MultiselectListContainer/MultiselectBadge.js → CollapsiblePanelContainer/CollapsiblePanelBadge.js} +6 -6
  32. package/lib/components/{MultiselectListContainer/MultiselectBadge.test.js → CollapsiblePanelContainer/CollapsiblePanelBadge.test.js} +8 -8
  33. package/lib/components/{MultiselectListContainer/MultiselectListContainer.js → CollapsiblePanelContainer/CollapsiblePanelContainer.js} +12 -12
  34. package/lib/components/{MultiselectListContainer/MultiselectListContainer.test.js → CollapsiblePanelContainer/CollapsiblePanelContainer.test.js} +23 -23
  35. package/lib/components/CollapsiblePanelContainer/index.js +1 -0
  36. package/lib/components/{MultiselectFilterItem/MultiselectFilterItem.js → CollapsiblePanelItem/CollapsiblePanelItem.js} +7 -7
  37. package/lib/components/{MultiselectFilterItem/MultiselectFilterItem.test.js → CollapsiblePanelItem/CollapsiblePanelItem.test.js} +7 -7
  38. package/lib/components/CollapsiblePanelItem/index.js +1 -0
  39. package/lib/components/ComboBoxField/ComboBoxField.js +15 -1
  40. package/lib/components/ComboBoxField/ComboBoxField.test.js +14 -0
  41. package/lib/index.js +6 -6
  42. package/lib/recipes/{MultiselectListContainer.stories.js → CollapsiblePanel.stories.js} +4 -4
  43. package/lib/styles/variants/buttons.js +2 -2
  44. package/lib/styles/variants/{multiselectListContainer.js → collapsiblePanel.js} +10 -10
  45. package/lib/styles/variants/text.js +4 -4
  46. package/lib/styles/variants/variants.js +2 -2
  47. package/package.json +1 -1
  48. package/lib/components/MultiselectFilter/index.js +0 -1
  49. package/lib/components/MultiselectFilterItem/index.js +0 -1
  50. package/lib/components/MultiselectListContainer/index.js +0 -1
@@ -11,8 +11,8 @@ _Object$defineProperty(exports, "__esModule", {
11
11
  _Object$defineProperty(exports, "default", {
12
12
  enumerable: true,
13
13
  get: function get() {
14
- return _MultiselectListContainer["default"];
14
+ return _CollapsiblePanelContainer["default"];
15
15
  }
16
16
  });
17
17
 
18
- var _MultiselectListContainer = _interopRequireDefault(require("./MultiselectListContainer"));
18
+ var _CollapsiblePanelContainer = _interopRequireDefault(require("./CollapsiblePanelContainer"));
@@ -28,23 +28,23 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
28
28
 
29
29
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
30
30
 
31
- var MultiselectFilterItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
31
+ var CollapsiblePanelItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
32
32
  var text = props.text,
33
33
  icon = props.icon,
34
34
  isDefaultSelected = props.isDefaultSelected,
35
35
  onPress = props.onPress;
36
36
  var iconElement = icon && (0, _react2.jsx)(_index.Icon, {
37
- "data-testid": "multiselect-filter-data-icon",
37
+ "data-testid": "collapsible-panel-data-icon",
38
38
  icon: icon,
39
39
  color: isDefaultSelected ? 'neutral.10' : 'active',
40
40
  size: 13
41
41
  });
42
42
  return (0, _react2.jsx)(_index.Box, {
43
- "data-testid": "multiselect-filter-item",
43
+ "data-testid": "collapsible-panel-item",
44
44
  isRow: true,
45
45
  ref: ref
46
46
  }, (0, _react2.jsx)(_index.Text, {
47
- variant: "multiselectFilterItem"
47
+ variant: "collapsiblePanellItem"
48
48
  }, text), iconElement && (isDefaultSelected ? iconElement : (0, _react2.jsx)(_index.IconButton, {
49
49
  sx: {
50
50
  width: 13,
@@ -57,7 +57,7 @@ var MultiselectFilterItem = /*#__PURE__*/(0, _react.forwardRef)(function (props,
57
57
  onPress: onPress
58
58
  }, iconElement)));
59
59
  });
60
- MultiselectFilterItem.propTypes = {
60
+ CollapsiblePanelItem.propTypes = {
61
61
  /**
62
62
  * Display text.
63
63
  */
@@ -79,6 +79,6 @@ MultiselectFilterItem.propTypes = {
79
79
  */
80
80
  onPress: _propTypes["default"].func
81
81
  };
82
- MultiselectFilterItem.displayName = 'MultiselectFilterItem';
83
- var _default = MultiselectFilterItem;
82
+ CollapsiblePanelItem.displayName = 'CollapsiblePanelItem';
83
+ var _default = CollapsiblePanelItem;
84
84
  exports["default"] = _default;
@@ -12,19 +12,19 @@ var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
12
12
 
13
13
  var _testWrapper = require("../../utils/testUtils/testWrapper");
14
14
 
15
- var _MultiselectFilterItem = _interopRequireDefault(require("./MultiselectFilterItem"));
15
+ var _CollapsiblePanelItem = _interopRequireDefault(require("./CollapsiblePanelItem"));
16
16
 
17
17
  var _react2 = require("@emotion/react");
18
18
 
19
- var testId = 'multiselect-filter-item';
20
- var iconId = 'multiselect-filter-data-icon';
19
+ var testId = 'collapsible-panel-item';
20
+ var iconId = 'collapsible-panel-data-icon';
21
21
  var defaultProps = {
22
22
  text: 'Item name'
23
23
  };
24
24
 
25
25
  var getComponent = function getComponent() {
26
26
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27
- return (0, _testWrapper.render)((0, _react2.jsx)(_MultiselectFilterItem["default"], (0, _extends2["default"])({}, defaultProps, props)));
27
+ return (0, _testWrapper.render)((0, _react2.jsx)(_CollapsiblePanelItem["default"], (0, _extends2["default"])({}, defaultProps, props)));
28
28
  };
29
29
 
30
30
  afterEach(function () {
@@ -32,15 +32,15 @@ afterEach(function () {
32
32
  }); // Need to be added to each test file to test accessibility using axe.
33
33
 
34
34
  (0, _testAxe["default"])(getComponent);
35
- test('default multiselectFilter', function () {
35
+ test('default collapsiblePanel', function () {
36
36
  getComponent();
37
37
 
38
- var multiselectFilterItem = _testWrapper.screen.getByTestId(testId);
38
+ var collapsiblePanelItem = _testWrapper.screen.getByTestId(testId);
39
39
 
40
40
  var icon = _testWrapper.screen.queryByTestId(iconId);
41
41
 
42
42
  expect(icon).not.toBeInTheDocument();
43
- expect(multiselectFilterItem).toBeInTheDocument();
43
+ expect(collapsiblePanelItem).toBeInTheDocument();
44
44
  });
45
45
  test('icon button displays when icon prop is present', function () {
46
46
  getComponent({
@@ -11,8 +11,8 @@ _Object$defineProperty(exports, "__esModule", {
11
11
  _Object$defineProperty(exports, "default", {
12
12
  enumerable: true,
13
13
  get: function get() {
14
- return _MultiselectFilterItem["default"];
14
+ return _CollapsiblePanelItem["default"];
15
15
  }
16
16
  });
17
17
 
18
- var _MultiselectFilterItem = _interopRequireDefault(require("./MultiselectFilterItem"));
18
+ var _CollapsiblePanelItem = _interopRequireDefault(require("./CollapsiblePanelItem"));
@@ -121,6 +121,7 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
121
121
  isNotFlippable = props.isNotFlippable,
122
122
  direction = props.direction,
123
123
  scrollBoxProps = props.scrollBoxProps,
124
+ controlProps = props.controlProps,
124
125
  defaultFilter = props.defaultFilter;
125
126
  var comboBoxOptions = {
126
127
  children: children,
@@ -238,6 +239,11 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
238
239
  });
239
240
  (0, _utils.useLayoutEffect)(onResize, [onResize]);
240
241
 
242
+ var handleInputOpen = function handleInputOpen(e) {
243
+ if (!state.isOpen && menuTrigger === 'focus') buttonRef.current.click();
244
+ if (controlProps !== null && controlProps !== void 0 && controlProps.onClick) controlProps.onClick(e);
245
+ };
246
+
241
247
  var style = _objectSpread(_objectSpread({}, overlayProps.style), {}, {
242
248
  width: menuWidth,
243
249
  minWidth: menuWidth
@@ -266,7 +272,10 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
266
272
  labelProps: labelProps,
267
273
  inputRef: inputRef,
268
274
  triggerProps: buttonProps,
269
- triggerRef: buttonRef
275
+ triggerRef: buttonRef,
276
+ controlProps: _objectSpread(_objectSpread({}, controlProps), {}, {
277
+ onClick: handleInputOpen
278
+ })
270
279
  })), (0, _react2.jsx)(_PopoverContainer["default"], {
271
280
  isOpen: state.isOpen,
272
281
  ref: popoverRef,
@@ -414,6 +423,11 @@ ComboBoxField.propTypes = {
414
423
  /** @ignore */
415
424
  scrollBoxProps: _propTypes["default"].shape({
416
425
  maxHeight: _propTypes["default"].string
426
+ }),
427
+
428
+ /** Props object that is spread directly into the ComboBoxInput element. */
429
+ controlProps: _propTypes["default"].shape({
430
+ onClick: _propTypes["default"].func
417
431
  })
418
432
  };
419
433
  ComboBoxField.defaultProps = {
@@ -300,6 +300,28 @@ test('should open list on focus when menuTrigger is set to use focus', function
300
300
  expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
301
301
  expect(_testWrapper.screen.queryAllByRole('option')).toHaveLength(items.length);
302
302
  });
303
+ test('should open list on focus on click after selection when menuTrigger is set to use focus', function () {
304
+ getComponent({
305
+ menuTrigger: 'focus'
306
+ });
307
+
308
+ var input = _testWrapper.screen.getByRole('combobox');
309
+
310
+ expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
311
+
312
+ _userEvent["default"].click(input);
313
+
314
+ expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
315
+
316
+ _userEvent["default"].click(_testWrapper.screen.queryAllByRole('option')[0]);
317
+
318
+ expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
319
+ expect(input).toHaveFocus();
320
+
321
+ _userEvent["default"].click(input);
322
+
323
+ expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
324
+ });
303
325
  test('Item accepts a data-id and the data-id can be found in the DOM', function () {
304
326
  getComponent();
305
327
 
package/lib/cjs/index.js CHANGED
@@ -60,9 +60,9 @@ var _exportNames = {
60
60
  Menu: true,
61
61
  Messages: true,
62
62
  Modal: true,
63
- MultiselectFilter: true,
64
- MultiselectFilterItem: true,
65
- MultiselectListContainer: true,
63
+ CollapsiblePanel: true,
64
+ CollapsiblePanelItem: true,
65
+ CollapsiblePanelContainer: true,
66
66
  NavBar: true,
67
67
  NavBarSection: true,
68
68
  MultivaluesField: true,
@@ -210,6 +210,27 @@ _Object$defineProperty(exports, "CodeView", {
210
210
  }
211
211
  });
212
212
 
213
+ _Object$defineProperty(exports, "CollapsiblePanel", {
214
+ enumerable: true,
215
+ get: function get() {
216
+ return _CollapsiblePanel["default"];
217
+ }
218
+ });
219
+
220
+ _Object$defineProperty(exports, "CollapsiblePanelContainer", {
221
+ enumerable: true,
222
+ get: function get() {
223
+ return _CollapsiblePanelContainer["default"];
224
+ }
225
+ });
226
+
227
+ _Object$defineProperty(exports, "CollapsiblePanelItem", {
228
+ enumerable: true,
229
+ get: function get() {
230
+ return _CollapsiblePanelItem["default"];
231
+ }
232
+ });
233
+
213
234
  _Object$defineProperty(exports, "ColorField", {
214
235
  enumerable: true,
215
236
  get: function get() {
@@ -378,27 +399,6 @@ _Object$defineProperty(exports, "Modal", {
378
399
  }
379
400
  });
380
401
 
381
- _Object$defineProperty(exports, "MultiselectFilter", {
382
- enumerable: true,
383
- get: function get() {
384
- return _MultiselectFilter["default"];
385
- }
386
- });
387
-
388
- _Object$defineProperty(exports, "MultiselectFilterItem", {
389
- enumerable: true,
390
- get: function get() {
391
- return _MultiselectFilterItem["default"];
392
- }
393
- });
394
-
395
- _Object$defineProperty(exports, "MultiselectListContainer", {
396
- enumerable: true,
397
- get: function get() {
398
- return _MultiselectListContainer["default"];
399
- }
400
- });
401
-
402
402
  _Object$defineProperty(exports, "MultivaluesField", {
403
403
  enumerable: true,
404
404
  get: function get() {
@@ -1173,47 +1173,47 @@ _forEachInstanceProperty(_context32 = _Object$keys(_Modal)).call(_context32, fun
1173
1173
  });
1174
1174
  });
1175
1175
 
1176
- var _MultiselectFilter = _interopRequireWildcard(require("./components/MultiselectFilter"));
1176
+ var _CollapsiblePanel = _interopRequireWildcard(require("./components/CollapsiblePanel"));
1177
1177
 
1178
- _forEachInstanceProperty(_context33 = _Object$keys(_MultiselectFilter)).call(_context33, function (key) {
1178
+ _forEachInstanceProperty(_context33 = _Object$keys(_CollapsiblePanel)).call(_context33, function (key) {
1179
1179
  if (key === "default" || key === "__esModule") return;
1180
1180
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
1181
- if (key in exports && exports[key] === _MultiselectFilter[key]) return;
1181
+ if (key in exports && exports[key] === _CollapsiblePanel[key]) return;
1182
1182
 
1183
1183
  _Object$defineProperty(exports, key, {
1184
1184
  enumerable: true,
1185
1185
  get: function get() {
1186
- return _MultiselectFilter[key];
1186
+ return _CollapsiblePanel[key];
1187
1187
  }
1188
1188
  });
1189
1189
  });
1190
1190
 
1191
- var _MultiselectFilterItem = _interopRequireWildcard(require("./components/MultiselectFilterItem"));
1191
+ var _CollapsiblePanelItem = _interopRequireWildcard(require("./components/CollapsiblePanelItem"));
1192
1192
 
1193
- _forEachInstanceProperty(_context34 = _Object$keys(_MultiselectFilterItem)).call(_context34, function (key) {
1193
+ _forEachInstanceProperty(_context34 = _Object$keys(_CollapsiblePanelItem)).call(_context34, function (key) {
1194
1194
  if (key === "default" || key === "__esModule") return;
1195
1195
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
1196
- if (key in exports && exports[key] === _MultiselectFilterItem[key]) return;
1196
+ if (key in exports && exports[key] === _CollapsiblePanelItem[key]) return;
1197
1197
 
1198
1198
  _Object$defineProperty(exports, key, {
1199
1199
  enumerable: true,
1200
1200
  get: function get() {
1201
- return _MultiselectFilterItem[key];
1201
+ return _CollapsiblePanelItem[key];
1202
1202
  }
1203
1203
  });
1204
1204
  });
1205
1205
 
1206
- var _MultiselectListContainer = _interopRequireWildcard(require("./components/MultiselectListContainer"));
1206
+ var _CollapsiblePanelContainer = _interopRequireWildcard(require("./components/CollapsiblePanelContainer"));
1207
1207
 
1208
- _forEachInstanceProperty(_context35 = _Object$keys(_MultiselectListContainer)).call(_context35, function (key) {
1208
+ _forEachInstanceProperty(_context35 = _Object$keys(_CollapsiblePanelContainer)).call(_context35, function (key) {
1209
1209
  if (key === "default" || key === "__esModule") return;
1210
1210
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
1211
- if (key in exports && exports[key] === _MultiselectListContainer[key]) return;
1211
+ if (key in exports && exports[key] === _CollapsiblePanelContainer[key]) return;
1212
1212
 
1213
1213
  _Object$defineProperty(exports, key, {
1214
1214
  enumerable: true,
1215
1215
  get: function get() {
1216
- return _MultiselectListContainer[key];
1216
+ return _CollapsiblePanelContainer[key];
1217
1217
  }
1218
1218
  });
1219
1219
  });
@@ -69,7 +69,7 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
69
69
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
70
70
 
71
71
  var _default = {
72
- title: 'Recipes/MultiselectListContainer'
72
+ title: 'Recipes/CollapsiblePanel with List'
73
73
  };
74
74
  exports["default"] = _default;
75
75
  var data = [{
@@ -327,7 +327,7 @@ var Default = function Default() {
327
327
  return el.key === item.key;
328
328
  })
329
329
  }));
330
- })), (0, _react2.jsx)(_.MultiselectFilter, {
330
+ })), (0, _react2.jsx)(_.CollapsiblePanel, {
331
331
  items: selectedItems,
332
332
  selectedFilterCount: selectedItems.length.toString(),
333
333
  listTitle: "Selected Groups",
@@ -338,7 +338,7 @@ var Default = function Default() {
338
338
  key: item.key,
339
339
  textValue: item.name,
340
340
  "data-id": item.key
341
- }, (0, _react2.jsx)(_.MultiselectFilterItem, {
341
+ }, (0, _react2.jsx)(_.CollapsiblePanelItem, {
342
342
  text: item.name,
343
343
  icon: item.isDefaultSelected ? _CheckIcon["default"] : _CloseIcon["default"],
344
344
  isDefaultSelected: item.isDefaultSelected,
@@ -146,7 +146,7 @@ var modalCloseButton = _objectSpread(_objectSpread({}, iconButton), {}, {
146
146
  right: 10
147
147
  });
148
148
 
149
- var multiselectToggle = _objectSpread(_objectSpread({}, square), {}, {
149
+ var collapsiblePanelToggle = _objectSpread(_objectSpread({}, square), {}, {
150
150
  bg: 'accent.99',
151
151
  height: '40px',
152
152
  minWidth: 'max-content',
@@ -720,7 +720,7 @@ var _default = {
720
720
  tooltipInline: tooltipInline,
721
721
  colorBlock: colorBlock,
722
722
  menuTab: menuTab,
723
- multiselectToggle: multiselectToggle,
723
+ collapsiblePanelToggle: collapsiblePanelToggle,
724
724
  neutralText: neutralText
725
725
  };
726
726
  exports["default"] = _default;
@@ -7,13 +7,13 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  });
8
8
 
9
9
  exports["default"] = void 0;
10
- var multiselectListContainer = {
10
+ var collapsiblePanelContainer = {
11
11
  overflowX: 'hidden',
12
12
  pr: 'sm',
13
13
  transition: 'right 500ms',
14
14
  minHeight: '80vh'
15
15
  };
16
- var multiselectListContent = {
16
+ var collapsiblePanelContent = {
17
17
  bg: 'accent.99',
18
18
  fontSize: 'sm',
19
19
  height: '100%',
@@ -32,7 +32,7 @@ var multiselectListContent = {
32
32
  justifyContent: 'space-between'
33
33
  }
34
34
  };
35
- var multiselectListTitle = {
35
+ var collapsiblePanelContainerTitle = {
36
36
  alignContent: 'center',
37
37
  bg: 'accent.99',
38
38
  display: 'flex',
@@ -44,7 +44,7 @@ var multiselectListTitle = {
44
44
  maxWidth: 'max-content !important',
45
45
  margin: '0'
46
46
  };
47
- var multiselectListBadge = {
47
+ var collapsiblePanelBadge = {
48
48
  borderRadius: '5px',
49
49
  display: 'flex',
50
50
  height: '17px',
@@ -57,15 +57,15 @@ var multiselectListBadge = {
57
57
  alignItems: 'center',
58
58
  fontWeight: 500
59
59
  };
60
- var multiselectFilterItem = {
60
+ var collapsiblePanellItem = {
61
61
  minHeight: '45px',
62
62
  margin: 'auto'
63
63
  };
64
64
  var _default = {
65
- multiselectListContainer: multiselectListContainer,
66
- multiselectListContent: multiselectListContent,
67
- multiselectListTitle: multiselectListTitle,
68
- multiselectListBadge: multiselectListBadge,
69
- multiselectFilterItem: multiselectFilterItem
65
+ collapsiblePanelContainer: collapsiblePanelContainer,
66
+ collapsiblePanelContent: collapsiblePanelContent,
67
+ collapsiblePanelContainerTitle: collapsiblePanelContainerTitle,
68
+ collapsiblePanelBadge: collapsiblePanelBadge,
69
+ collapsiblePanellItem: collapsiblePanellItem
70
70
  };
71
71
  exports["default"] = _default;
@@ -187,7 +187,7 @@ var navBarHeaderText = _objectSpread(_objectSpread({}, wordWrap), {}, {
187
187
  maxWidth: '150px'
188
188
  });
189
189
 
190
- var multiselectFilterItem = _objectSpread(_objectSpread({}, wordWrap), {}, {
190
+ var collapsiblePanellItem = _objectSpread(_objectSpread({}, wordWrap), {}, {
191
191
  color: 'neutral.30',
192
192
  fontSize: 'sm',
193
193
  fontWeight: 500,
@@ -197,7 +197,7 @@ var multiselectFilterItem = _objectSpread(_objectSpread({}, wordWrap), {}, {
197
197
  whiteSpace: 'nowrap'
198
198
  });
199
199
 
200
- var multiselectFilterTitle = _objectSpread(_objectSpread({}, wordWrap), {}, {
200
+ var collapsiblePanelTitle = _objectSpread(_objectSpread({}, wordWrap), {}, {
201
201
  fontSize: 'sm',
202
202
  fontWeight: 500,
203
203
  color: 'text.secondary',
@@ -324,8 +324,8 @@ var text = {
324
324
  }),
325
325
  maskedValue: maskedValue,
326
326
  expandableRow: expandableRow,
327
- multiselectFilterItem: multiselectFilterItem,
328
- multiselectFilterTitle: multiselectFilterTitle,
327
+ collapsiblePanellItem: collapsiblePanellItem,
328
+ collapsiblePanelTitle: collapsiblePanelTitle,
329
329
  navBarHeaderText: navBarHeaderText,
330
330
  navBarSubtitle: navBarSubtitle,
331
331
  placeholder: {
@@ -74,7 +74,7 @@ var tabs = _interopRequireWildcard(require("./tabs"));
74
74
 
75
75
  var _tooltip = _interopRequireDefault(require("./tooltip"));
76
76
 
77
- var _multiselectListContainer = _interopRequireDefault(require("./multiselectListContainer"));
77
+ var _collapsiblePanel = _interopRequireDefault(require("./collapsiblePanel"));
78
78
 
79
79
  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); }
80
80
 
@@ -97,7 +97,7 @@ var _default = _objectSpread(_objectSpread({
97
97
  menuItem: _menuItem["default"],
98
98
  messages: _messages["default"],
99
99
  modal: _modal["default"],
100
- multiselectListContainer: _multiselectListContainer["default"],
100
+ collapsiblePanel: _collapsiblePanel["default"],
101
101
  navBar: _navBar["default"],
102
102
  numberField: _numberField["default"],
103
103
  overlayPanel: _overlayPanel["default"],
@@ -6,13 +6,14 @@ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-sta
6
6
  import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
7
7
  import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
8
8
  import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
9
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
9
10
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
10
11
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
11
12
  import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
12
13
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
13
14
  import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
14
15
  import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
15
- var _excluded = ["addButtonLabel", "defaultValue", "value", "label", "helperText", "status", "onAdd", "onChange", "onDelete", "renderField", "maxSize", "maxSizeText"],
16
+ var _excluded = ["addButtonLabel", "defaultValue", "value", "label", "helperText", "status", "onAdd", "onChange", "onDelete", "renderField", "labelProps", "maxSize", "maxSizeText"],
16
17
  _excluded2 = ["id", "onComponentRender", "fieldValue"];
17
18
 
18
19
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -21,31 +22,35 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
21
22
 
22
23
  import React, { useCallback, useState } from 'react';
23
24
  import PropTypes from 'prop-types';
25
+ import { mergeProps } from '@react-aria/utils';
24
26
  import { v4 as uuid } from 'uuid';
27
+ import { useLabel } from '@react-aria/label';
25
28
  import Box from '../Box';
26
29
  import Button from '../Button';
27
30
  import FieldHelperText from '../FieldHelperText';
28
31
  import Text from '../Text';
32
+ import Label from '../Label';
29
33
  import statuses from '../../utils/devUtils/constants/statuses';
30
34
  import isValidPositiveInt from '../../utils/devUtils/props/isValidPositiveInt';
31
35
  import { jsx as ___EmotionJSX } from "@emotion/react";
32
36
 
33
- var ArrayField = function ArrayField(_ref) {
37
+ var ArrayField = function ArrayField(props) {
34
38
  var _context2;
35
39
 
36
- var addButtonLabel = _ref.addButtonLabel,
37
- defaultValue = _ref.defaultValue,
38
- value = _ref.value,
39
- label = _ref.label,
40
- helperText = _ref.helperText,
41
- status = _ref.status,
42
- onAdd = _ref.onAdd,
43
- onChange = _ref.onChange,
44
- onDelete = _ref.onDelete,
45
- renderField = _ref.renderField,
46
- maxSize = _ref.maxSize,
47
- maxSizeText = _ref.maxSizeText,
48
- others = _objectWithoutProperties(_ref, _excluded);
40
+ var addButtonLabel = props.addButtonLabel,
41
+ defaultValue = props.defaultValue,
42
+ value = props.value,
43
+ label = props.label,
44
+ helperText = props.helperText,
45
+ status = props.status,
46
+ onAdd = props.onAdd,
47
+ onChange = props.onChange,
48
+ onDelete = props.onDelete,
49
+ renderField = props.renderField,
50
+ labelProps = props.labelProps,
51
+ maxSize = props.maxSize,
52
+ maxSizeText = props.maxSizeText,
53
+ others = _objectWithoutProperties(props, _excluded);
49
54
 
50
55
  var isControlled = value !== undefined;
51
56
  var createEmptyField = useCallback(function () {
@@ -91,8 +96,8 @@ var ArrayField = function ArrayField(_ref) {
91
96
  onDelete(fieldId);
92
97
  } else {
93
98
  setFieldValues(function (oldValues) {
94
- return _filterInstanceProperty(oldValues).call(oldValues, function (_ref2) {
95
- var id = _ref2.id;
99
+ return _filterInstanceProperty(oldValues).call(oldValues, function (_ref) {
100
+ var id = _ref.id;
96
101
  return id !== fieldId;
97
102
  });
98
103
  });
@@ -109,17 +114,21 @@ var ArrayField = function ArrayField(_ref) {
109
114
  return _concatInstanceProperty(_context = []).call(_context, oldValues, [createEmptyField()]);
110
115
  });
111
116
  }, [createEmptyField, onAdd]);
117
+
118
+ var _useLabel = useLabel(_objectSpread({}, props)),
119
+ raLabelProps = _useLabel.labelProps;
120
+
112
121
  var isLimitReached = !!maxSize && (value || fieldValues).length >= maxSize;
113
- return ___EmotionJSX(Box, others, ___EmotionJSX(Text, {
114
- variant: "label"
115
- }, label), ___EmotionJSX(Box, {
122
+ return ___EmotionJSX(Box, others, ___EmotionJSX(Label, _extends({}, raLabelProps, mergeProps(labelProps, raLabelProps, {
123
+ children: label
124
+ }))), ___EmotionJSX(Box, {
116
125
  as: "ul",
117
126
  pl: "0"
118
- }, _mapInstanceProperty(_context2 = value || fieldValues).call(_context2, function (_ref3) {
119
- var id = _ref3.id,
120
- onComponentRender = _ref3.onComponentRender,
121
- fieldValue = _ref3.fieldValue,
122
- otherFieldProps = _objectWithoutProperties(_ref3, _excluded2);
127
+ }, _mapInstanceProperty(_context2 = value || fieldValues).call(_context2, function (_ref2) {
128
+ var id = _ref2.id,
129
+ onComponentRender = _ref2.onComponentRender,
130
+ fieldValue = _ref2.fieldValue,
131
+ otherFieldProps = _objectWithoutProperties(_ref2, _excluded2);
123
132
 
124
133
  var isDisabled = (value || fieldValues).length === 1;
125
134
  return ___EmotionJSX(Box, {
@@ -163,6 +172,9 @@ ArrayField.propTypes = {
163
172
  /** The rendered label for the field. */
164
173
  label: PropTypes.node,
165
174
 
175
+ /** Props object that is spread directly into the label element. */
176
+ labelProps: PropTypes.shape({}),
177
+
166
178
  /** Text to display before add button. Useful for errors or other info. */
167
179
  helperText: PropTypes.node,
168
180
 
@@ -62,6 +62,15 @@ export var Uncontrolled = function Uncontrolled(_ref) {
62
62
 
63
63
  return ___EmotionJSX(ArrayField, _extends({
64
64
  defaultValue: defaultData,
65
+ labelProps: {
66
+ hintText: 'Example Hint',
67
+ isRequired: true,
68
+ helpHintProps: {
69
+ tooltipProps: {
70
+ direction: 'top'
71
+ }
72
+ }
73
+ },
65
74
  renderField: function renderField(id, fieldValue, onFieldValueChange, onFieldDelete, isDisabled, otherFieldProps) {
66
75
  return ___EmotionJSX(TextField, _extends({
67
76
  "aria-label": "Text field",
@@ -25,7 +25,9 @@ var defaultProps = {
25
25
 
26
26
  var getComponent = function getComponent() {
27
27
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
28
- return render(___EmotionJSX(ArrayField, _extends({}, defaultProps, props)));
28
+ return render(___EmotionJSX(ArrayField, _extends({
29
+ label: "test-label"
30
+ }, defaultProps, props)));
29
31
  };
30
32
 
31
33
  var renderField = function renderField(id, value, onFieldValueChange, onFieldDelete, otherFieldProps) {
@@ -171,6 +173,7 @@ test('onComponentRender displays fields correctly', function () {
171
173
  }
172
174
  }];
173
175
  render(___EmotionJSX(ArrayField, {
176
+ label: "test-label",
174
177
  defaultValue: componentRenderData,
175
178
  onChange: onChange
176
179
  }));
@@ -179,6 +182,7 @@ test('onComponentRender displays fields correctly', function () {
179
182
  });
180
183
  test('creates empty field when no data passed', function () {
181
184
  render(___EmotionJSX(ArrayField, {
185
+ label: "test-label",
182
186
  renderField: renderField
183
187
  }));
184
188
  expect(screen.getByLabelText('Text field')).toBeInTheDocument();