@pingux/astro 1.26.1-alpha.7 → 1.27.0-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 (33) hide show
  1. package/lib/cjs/components/ArrayField/ArrayField.stories.js +6 -6
  2. package/lib/cjs/components/FileInputField/FileInputField.js +8 -5
  3. package/lib/cjs/components/LinkSelectField/LinkSelectField.js +1 -1
  4. package/lib/cjs/components/ListBox/Option.js +4 -1
  5. package/lib/cjs/components/MenuItem/MenuItem.js +2 -1
  6. package/lib/cjs/components/Messages/Message.js +2 -1
  7. package/lib/cjs/components/MultivaluesField/MultivaluesField.js +50 -11
  8. package/lib/cjs/components/MultivaluesField/MultivaluesField.stories.js +32 -2
  9. package/lib/cjs/components/MultivaluesField/MultivaluesField.test.js +34 -0
  10. package/lib/cjs/components/SelectField/SelectField.js +1 -1
  11. package/lib/cjs/components/Tab/Tab.js +15 -4
  12. package/lib/cjs/components/TabPicker/TabPicker.js +2 -2
  13. package/lib/cjs/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -2
  14. package/lib/cjs/hooks/useSelectField/useSelectField.js +9 -1
  15. package/lib/cjs/styles/forms/input.js +2 -0
  16. package/lib/cjs/styles/variants/boxes.js +1 -1
  17. package/lib/components/ArrayField/ArrayField.stories.js +6 -6
  18. package/lib/components/FileInputField/FileInputField.js +8 -5
  19. package/lib/components/LinkSelectField/LinkSelectField.js +1 -1
  20. package/lib/components/ListBox/Option.js +4 -1
  21. package/lib/components/MenuItem/MenuItem.js +2 -1
  22. package/lib/components/Messages/Message.js +2 -1
  23. package/lib/components/MultivaluesField/MultivaluesField.js +52 -12
  24. package/lib/components/MultivaluesField/MultivaluesField.stories.js +27 -0
  25. package/lib/components/MultivaluesField/MultivaluesField.test.js +26 -0
  26. package/lib/components/SelectField/SelectField.js +1 -1
  27. package/lib/components/Tab/Tab.js +15 -4
  28. package/lib/components/TabPicker/TabPicker.js +2 -2
  29. package/lib/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -2
  30. package/lib/hooks/useSelectField/useSelectField.js +9 -1
  31. package/lib/styles/forms/input.js +2 -0
  32. package/lib/styles/variants/boxes.js +1 -1
  33. package/package.json +2 -2
@@ -207,26 +207,26 @@ var Controlled = function Controlled() {
207
207
  fieldValues = _React$useState2[0],
208
208
  setFieldValues = _React$useState2[1];
209
209
 
210
- function handleOnChange(values) {
210
+ var handleOnChange = function handleOnChange(values) {
211
211
  setFieldValues(values);
212
- }
212
+ };
213
213
 
214
- function handleOnAdd() {
214
+ var handleOnAdd = function handleOnAdd() {
215
215
  setFieldValues(function (oldValues) {
216
216
  var _context;
217
217
 
218
218
  return (0, _concat["default"])(_context = []).call(_context, oldValues, [defaultEmptyField]);
219
219
  });
220
- }
220
+ };
221
221
 
222
- function handleOnDelete(fieldId) {
222
+ var handleOnDelete = function handleOnDelete(fieldId) {
223
223
  setFieldValues(function (oldValues) {
224
224
  return (0, _filter["default"])(oldValues).call(oldValues, function (_ref2) {
225
225
  var id = _ref2.id;
226
226
  return id !== fieldId;
227
227
  });
228
228
  });
229
- }
229
+ };
230
230
 
231
231
  return (0, _react2.jsx)(_index.ArrayField, {
232
232
  value: fieldValues,
@@ -230,7 +230,10 @@ var FileInputField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
230
230
  variant: "boxes.fileInputFieldWrapper"
231
231
  }, (0, _utils.mergeProps)(fieldContainerProps, others), {
232
232
  className: classNames
233
- }, getRootProps()), (0, _react2.jsx)(_index.Input, (0, _extends2["default"])({}, (0, _utils.mergeProps)(visuallyHiddenProps, fieldControlProps, getInputProps()), {
233
+ }, getRootProps(), {
234
+ // to pass accessibility test, this removes focusable dependents
235
+ role: "none"
236
+ }), (0, _react2.jsx)(_index.Input, (0, _extends2["default"])({}, (0, _utils.mergeProps)(visuallyHiddenProps, fieldControlProps, getInputProps()), {
234
237
  "aria-label": "File Input",
235
238
  multiple: isMultiple,
236
239
  onChange: handleOnChange,
@@ -294,8 +297,8 @@ FileInputField.propTypes = {
294
297
  * */
295
298
  fileList: _propTypes["default"].arrayOf(_propTypes["default"].shape({
296
299
  fileObj: _propTypes["default"].shape({}),
297
- id: _propTypes["default"].string.required,
298
- name: _propTypes["default"].string.required,
300
+ id: _propTypes["default"].string.isRequired,
301
+ name: _propTypes["default"].string.isRequired,
299
302
  downloadLink: _propTypes["default"].string,
300
303
  status: _propTypes["default"].oneOf((0, _values["default"])(_statuses["default"]))
301
304
  })),
@@ -303,8 +306,8 @@ FileInputField.propTypes = {
303
306
  /** Default array of objects for uploaded files. */
304
307
  defaultFileList: _propTypes["default"].arrayOf(_propTypes["default"].shape({
305
308
  fileObj: _propTypes["default"].shape({}),
306
- id: _propTypes["default"].string.required,
307
- name: _propTypes["default"].string.required,
309
+ id: _propTypes["default"].string.isRequired,
310
+ name: _propTypes["default"].string.isRequired,
308
311
  downloadLink: _propTypes["default"].string,
309
312
  status: _propTypes["default"].oneOf((0, _values["default"])(_statuses["default"]))
310
313
  })),
@@ -168,7 +168,7 @@ LinkSelectField.propTypes = {
168
168
  * *For performance reasons, use this prop instead of Array.map when iteratively rendering Items*.
169
169
  * For use with [dynamic collections](https://react-spectrum.adobe.com/react-stately/collections.html#dynamic-collections).
170
170
  */
171
- items: _propTypes["default"].arrayOf(_propTypes["default"].any),
171
+ items: _propTypes["default"].arrayOf(_propTypes["default"].shape({})),
172
172
 
173
173
  /** The label for the select element. */
174
174
  label: _propTypes["default"].node,
@@ -124,7 +124,10 @@ Option.propTypes = {
124
124
  hasVirtualFocus: _propTypes["default"].bool,
125
125
  item: _propTypes["default"].shape({
126
126
  key: _propTypes["default"].string,
127
- props: _propTypes["default"].shape({}),
127
+ props: _propTypes["default"].shape({
128
+ 'data-id': _propTypes["default"].string,
129
+ isSeparator: _propTypes["default"].bool
130
+ }),
128
131
  rendered: _propTypes["default"].node
129
132
  }),
130
133
  state: _propTypes["default"].shape({
@@ -174,7 +174,8 @@ MenuItem.propTypes = {
174
174
  key: _propTypes["default"].string,
175
175
  props: _propTypes["default"].shape({
176
176
  'data-id': _propTypes["default"].string,
177
- isSeparator: _propTypes["default"].bool
177
+ isSeparator: _propTypes["default"].bool,
178
+ isPressed: _propTypes["default"].bool
178
179
  }),
179
180
  rendered: _propTypes["default"].node,
180
181
  isDisabled: _propTypes["default"].bool
@@ -184,7 +184,8 @@ Message.propTypes = {
184
184
  icon: _propTypes["default"].elementType,
185
185
 
186
186
  /* Hides the message with an animated transition */
187
- isHidden: _propTypes["default"].bool
187
+ isHidden: _propTypes["default"].bool,
188
+ 'data-id': _propTypes["default"].string
188
189
  })
189
190
  }),
190
191
 
@@ -84,7 +84,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
84
84
 
85
85
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
86
86
 
87
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context7, _context8; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context7 = ownKeys(Object(source), !0)).call(_context7, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context8 = ownKeys(Object(source))).call(_context8, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
87
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context9, _context10; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context9 = ownKeys(Object(source), !0)).call(_context9, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context10 = ownKeys(Object(source))).call(_context10, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
88
88
 
89
89
  /**
90
90
  * Complex control that lets you choose several tags from the dropdown list.
@@ -96,7 +96,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
96
96
  * Stately.
97
97
  */
98
98
  var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
99
- var _context4;
99
+ var _context6;
100
100
 
101
101
  var defaultSelectedKeys = props.defaultSelectedKeys,
102
102
  direction = props.direction,
@@ -231,7 +231,7 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
231
231
  var onResize = (0, _react.useCallback)(function () {
232
232
  /* istanbul ignore next */
233
233
  if (inputRef.current) {
234
- setMenuWidth(inputRef.current.offsetWidth);
234
+ setMenuWidth("".concat(inputRef.current.offsetWidth + 2, "px"));
235
235
  }
236
236
  }, [inputRef, isOpen, setMenuWidth]);
237
237
  (0, _utils.useResizeObserver)({
@@ -323,7 +323,39 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
323
323
  selectionManager.toggleSelection(key);
324
324
  };
325
325
 
326
- var readOnlyItems = (0, _react2.jsx)(_react["default"].Fragment, null, (0, _map["default"])(readOnlyKeys).call(readOnlyKeys, function (key) {
326
+ var readOnlyTextItem = function readOnlyTextItem(key, name) {
327
+ return (0, _react2.jsx)(_.Text, {
328
+ key: key,
329
+ role: "presentation",
330
+ label: name,
331
+ variant: "bodyStrong",
332
+ sx: {
333
+ bg: 'accent.95',
334
+ fontSize: 'sm',
335
+ alignSelf: 'center',
336
+ ':not(:last-of-type):after': {
337
+ content: "\",\xA0\""
338
+ }
339
+ }
340
+ }, name);
341
+ };
342
+
343
+ var readOnlyInputEntry = (0, _react2.jsx)(_react["default"].Fragment, null, isReadOnly && (readOnlyKeys.length ? (0, _map["default"])(readOnlyKeys).call(readOnlyKeys, function (key) {
344
+ var _context4, _context5;
345
+
346
+ var item = (0, _find["default"])(_context4 = (0, _concat["default"])(_context5 = []).call(_context5, initialItems, customItems)).call(_context4, function (el) {
347
+ return el.key === key;
348
+ });
349
+
350
+ if (item) {
351
+ return readOnlyTextItem(item.key, item.name);
352
+ }
353
+
354
+ return null;
355
+ }) : (0, _map["default"])(initialItems).call(initialItems, function (item) {
356
+ return readOnlyTextItem(item.key, item.name);
357
+ })));
358
+ var readOnlyItems = (0, _react2.jsx)(_react["default"].Fragment, null, !isReadOnly && (0, _map["default"])(readOnlyKeys).call(readOnlyKeys, function (key) {
327
359
  var item = (0, _find["default"])(initialItems).call(initialItems, function (el) {
328
360
  return el.key === key;
329
361
  });
@@ -345,10 +377,10 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
345
377
 
346
378
  return null;
347
379
  }));
348
- var selectedItems = (0, _react2.jsx)(_react["default"].Fragment, null, (0, _map["default"])(_context4 = (0, _from["default"])(selectionManager.selectedKeys)).call(_context4, function (key) {
349
- var _context5, _context6;
380
+ var selectedItems = (0, _react2.jsx)(_react["default"].Fragment, null, (0, _map["default"])(_context6 = (0, _from["default"])(selectionManager.selectedKeys)).call(_context6, function (key) {
381
+ var _context7, _context8;
350
382
 
351
- var item = (0, _find["default"])(_context5 = (0, _concat["default"])(_context6 = []).call(_context6, initialItems, customItems)).call(_context5, function (el) {
383
+ var item = (0, _find["default"])(_context7 = (0, _concat["default"])(_context8 = []).call(_context8, initialItems, customItems)).call(_context7, function (el) {
352
384
  return el.key === key;
353
385
  });
354
386
 
@@ -403,7 +435,11 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
403
435
  placeholder: placeholder,
404
436
  wrapperProps: {
405
437
  ref: inputRef,
406
- variant: 'forms.input.multivaluesWrapper'
438
+ variant: 'forms.input.multivaluesWrapper',
439
+ sx: isReadOnly && {
440
+ boxShadow: 'inset 0 0 0 100px #e5e9f8',
441
+ border: 'none'
442
+ }
407
443
  },
408
444
  status: status
409
445
  });
@@ -414,12 +450,14 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
414
450
  if (_onBlur) _onBlur(e.nativeEvent);
415
451
  },
416
452
  onChange: function onChange(e) {
417
- setIsOpen(true);
418
453
  setFilterString(e.target.value);
419
454
  if (onInputChange) onInputChange(e.target.value);
420
455
  },
421
456
  onFocus: function onFocus(e) {
422
- setIsOpen(true);
457
+ if (!isReadOnly) {
458
+ setIsOpen(true);
459
+ }
460
+
423
461
  if (_onFocus) _onFocus(e.nativeEvent);
424
462
  },
425
463
  onKeyDown: keyDown,
@@ -427,7 +465,7 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
427
465
  return _onKeyUp && _onKeyUp(e.nativeEvent);
428
466
  },
429
467
  slots: {
430
- beforeInput: (0, _react2.jsx)(_react["default"].Fragment, null, readOnlyItems, " ", selectedItems)
468
+ beforeInput: (0, _react2.jsx)(_react["default"].Fragment, null, readOnlyItems, " ", selectedItems, readOnlyInputEntry)
431
469
  },
432
470
  value: filterString
433
471
  }, inputProps)), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
@@ -570,6 +608,7 @@ MultivaluesField.propTypes = {
570
608
  };
571
609
  MultivaluesField.defaultProps = {
572
610
  direction: 'bottom',
611
+ isReadOnly: false,
573
612
  mode: 'restrictive',
574
613
  scrollBoxProps: {
575
614
  maxHeight: 300
@@ -14,7 +14,7 @@ _Object$defineProperty(exports, "__esModule", {
14
14
  value: true
15
15
  });
16
16
 
17
- exports["default"] = exports.WithReadOnlyValues = exports.WithDisabledKeys = exports.WithCustomValues = exports.WithCustomSize = exports.Uncontrolled = exports.Error = exports.Default = exports.Controlled = void 0;
17
+ exports["default"] = exports.WithReadOnlyValues = exports.WithDisabledKeys = exports.WithCustomValues = exports.WithCustomSize = exports.Uncontrolled = exports.ReadOnlyField = exports.Error = exports.Default = exports.Controlled = void 0;
18
18
 
19
19
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
20
20
 
@@ -398,4 +398,34 @@ var Error = function Error(args) {
398
398
  }));
399
399
  };
400
400
 
401
- exports.Error = Error;
401
+ exports.Error = Error;
402
+
403
+ var ReadOnlyField = function ReadOnlyField(args) {
404
+ var _useState19 = (0, _react.useState)(false),
405
+ _useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
406
+ isOpen = _useState20[0],
407
+ setIsOpen = _useState20[1];
408
+
409
+ var direction = args.direction;
410
+
411
+ var onOpenChange = function onOpenChange() {
412
+ setIsOpen(true);
413
+ };
414
+
415
+ return (0, _react2.jsx)(_.OverlayProvider // note: spacing for demo purpose only so that the select list renders in the correct place
416
+ , {
417
+ style: setOverlayStyle(direction, isOpen, '50%', '50%', '20%')
418
+ }, (0, _react2.jsx)(_.MultivaluesField, (0, _extends2["default"])({
419
+ items: items
420
+ }, args, {
421
+ isReadOnly: true,
422
+ onOpenChange: onOpenChange
423
+ }), function (item) {
424
+ return (0, _react2.jsx)(_.Item, {
425
+ key: item.key,
426
+ "data-id": item.name
427
+ }, item.name);
428
+ }));
429
+ };
430
+
431
+ exports.ReadOnlyField = ReadOnlyField;
@@ -493,4 +493,38 @@ test(' multivalue field with helper text', function () {
493
493
 
494
494
  expect(helper).toBeInTheDocument();
495
495
  expect(helper).toHaveClass("is-".concat(_statuses["default"].ERROR));
496
+ });
497
+ test('read only field', function () {
498
+ var isReadOnly = true;
499
+ getComponent({
500
+ isReadOnly: isReadOnly
501
+ });
502
+
503
+ var chip = _testWrapper.screen.queryAllByRole('presentation');
504
+
505
+ expect(chip[0]).toHaveAttribute('label', items[0].name);
506
+ expect(chip[1]).toHaveAttribute('label', items[1].name);
507
+ expect(chip[2]).toHaveAttribute('label', items[2].name);
508
+
509
+ var textArea = _testWrapper.screen.getByLabelText(defaultProps.label);
510
+
511
+ expect(textArea).toHaveClass('is-read-only');
512
+ expect(_testWrapper.screen.queryByRole('option')).not.toBeInTheDocument();
513
+ });
514
+ test('read only keys with read only field', function () {
515
+ var isReadOnly = true;
516
+ getComponent({
517
+ isReadOnly: isReadOnly,
518
+ readOnlyKeys: [items[1].key, items[2].key]
519
+ });
520
+
521
+ var chip = _testWrapper.screen.queryAllByRole('presentation');
522
+
523
+ expect(chip[0]).toHaveAttribute('label', items[1].name);
524
+ expect(chip[1]).toHaveAttribute('label', items[2].name);
525
+
526
+ var textArea = _testWrapper.screen.getByLabelText(defaultProps.label);
527
+
528
+ expect(textArea).toHaveClass('is-read-only');
529
+ expect(_testWrapper.screen.queryByRole('option')).not.toBeInTheDocument();
496
530
  });
@@ -104,7 +104,7 @@ SelectField.propTypes = {
104
104
  * *For performance reasons, use this prop instead of Array.map when iteratively rendering Items*.
105
105
  * For use with [dynamic collections](https://react-spectrum.adobe.com/react-stately/collections.html#dynamic-collections).
106
106
  */
107
- items: _propTypes["default"].arrayOf(_propTypes["default"].any),
107
+ items: _propTypes["default"].arrayOf(_propTypes["default"].shape({})),
108
108
 
109
109
  /** The label for the select element. */
110
110
  label: _propTypes["default"].node,
@@ -46,7 +46,7 @@ var _ = require("../..");
46
46
 
47
47
  var _react2 = require("@emotion/react");
48
48
 
49
- var _excluded = ["icon", "isDisabled", "separator", "tabLabelProps", "tabLineProps", "content", "titleAttr"];
49
+ var _excluded = ["icon", "isDisabled", "separator", "tabLabelProps", "tabLineProps", "content", "titleAttr", "title"];
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
 
@@ -74,6 +74,7 @@ var CollectionTab = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
74
74
  tabLineProps = itemProps.tabLineProps,
75
75
  content = itemProps.content,
76
76
  titleAttr = itemProps.titleAttr,
77
+ title = itemProps.title,
77
78
  otherItemProps = (0, _objectWithoutProperties2["default"])(itemProps, _excluded);
78
79
  var state = (0, _react.useContext)(_Tabs.TabsContext);
79
80
  var isDisabled = tabsDisabled || tabDisabled || state.disabledKeys.has(key);
@@ -149,9 +150,19 @@ CollectionTab.propTypes = {
149
150
  isDisabled: _propTypes["default"].bool,
150
151
  item: _propTypes["default"].shape({
151
152
  key: _propTypes["default"].string,
152
- props: _propTypes["default"].shape({}),
153
- rendered: _propTypes["default"].node,
154
- tabLineProps: _propTypes["default"].shape({})
153
+ props: _propTypes["default"].shape({
154
+ icon: _propTypes["default"].shape({}),
155
+ isDisabled: _propTypes["default"].bool,
156
+ textValue: _propTypes["default"].string,
157
+ tabLineProps: _propTypes["default"].shape({}),
158
+ tabLabelProps: _propTypes["default"].shape({}),
159
+ content: _propTypes["default"].shape({}),
160
+ titleAttr: _propTypes["default"].string,
161
+ title: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].string, _propTypes["default"].object]),
162
+ separator: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].bool]),
163
+ list: _propTypes["default"].arrayOf(_propTypes["default"].shape({}))
164
+ }),
165
+ rendered: _propTypes["default"].node
155
166
  }),
156
167
  mode: _propTypes["default"].oneOf(['default', 'tooltip', 'list']),
157
168
  orientation: _propTypes["default"].oneOf(['horizontal', 'vertical']),
@@ -246,10 +246,10 @@ TabPicker.propTypes = {
246
246
  state: _propTypes["default"].shape({
247
247
  collection: _propTypes["default"].shape({}),
248
248
  selectedKey: _propTypes["default"].string,
249
- setSelectedKey: _propTypes["default"]["function"],
249
+ setSelectedKey: _propTypes["default"].func,
250
250
  selectionManager: _propTypes["default"].shape({
251
251
  focusedKey: _propTypes["default"].string,
252
- setFocusedKey: _propTypes["default"]["function"]
252
+ setFocusedKey: _propTypes["default"].func
253
253
  })
254
254
  })
255
255
  };
@@ -12,7 +12,7 @@ test('default useOverlayPanelState', function () {
12
12
  }),
13
13
  result = _renderHook.result;
14
14
 
15
- expect(result.current).toEqual(expect.objectContaining({
15
+ var obj = {
16
16
  state: {
17
17
  open: expect.any(Function),
18
18
  close: expect.any(Function),
@@ -20,5 +20,6 @@ test('default useOverlayPanelState', function () {
20
20
  isOpen: expect.any(Boolean)
21
21
  },
22
22
  onClose: expect.any(Function)
23
- }));
23
+ };
24
+ expect(result.current).toEqual(obj);
24
25
  });
@@ -143,7 +143,15 @@ var useSelectField = function useSelectField(props, ref) {
143
143
  labelProps = _useSelect.labelProps,
144
144
  triggerProps = _useSelect.triggerProps,
145
145
  valueProps = _useSelect.valueProps,
146
- menuProps = _useSelect.menuProps;
146
+ menuProps = _useSelect.menuProps; // The following props are being passed into multiple
147
+ // DOM elements that leads to multiple test failures
148
+ // and these props are never used in any components
149
+ // that depend on useSelectField
150
+
151
+
152
+ delete menuProps.shouldSelectOnPressUp;
153
+ delete menuProps.shouldFocusOnHover;
154
+ delete menuProps.disallowEmptySelection;
147
155
 
148
156
  var _useField = (0, _.useField)(_objectSpread(_objectSpread({}, props), {}, {
149
157
  placeholder: props.labelMode === _constants.modes.FLOAT ? '' : placeholder,
@@ -187,6 +187,8 @@ input.multivaluesWrapper = _objectSpread(_objectSpread({}, input.container), {},
187
187
  pr: 10,
188
188
  pb: 5,
189
189
  pl: 12,
190
+ borderRadius: '2px',
191
+ alignItems: 'center',
190
192
  '&.has-no-status-indicator': {
191
193
  left: 0
192
194
  },
@@ -173,7 +173,7 @@ var selectedItemChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
173
173
  });
174
174
 
175
175
  var readOnlyChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
176
- p: 3,
176
+ p: 2.54,
177
177
  border: '1px solid',
178
178
  borderColor: 'neutral.80'
179
179
  });
@@ -182,26 +182,26 @@ export var Controlled = function Controlled() {
182
182
  fieldValues = _React$useState2[0],
183
183
  setFieldValues = _React$useState2[1];
184
184
 
185
- function handleOnChange(values) {
185
+ var handleOnChange = function handleOnChange(values) {
186
186
  setFieldValues(values);
187
- }
187
+ };
188
188
 
189
- function handleOnAdd() {
189
+ var handleOnAdd = function handleOnAdd() {
190
190
  setFieldValues(function (oldValues) {
191
191
  var _context;
192
192
 
193
193
  return _concatInstanceProperty(_context = []).call(_context, oldValues, [defaultEmptyField]);
194
194
  });
195
- }
195
+ };
196
196
 
197
- function handleOnDelete(fieldId) {
197
+ var handleOnDelete = function handleOnDelete(fieldId) {
198
198
  setFieldValues(function (oldValues) {
199
199
  return _filterInstanceProperty(oldValues).call(oldValues, function (_ref2) {
200
200
  var id = _ref2.id;
201
201
  return id !== fieldId;
202
202
  });
203
203
  });
204
- }
204
+ };
205
205
 
206
206
  return ___EmotionJSX(ArrayField, {
207
207
  value: fieldValues,
@@ -180,7 +180,10 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
180
180
  variant: "boxes.fileInputFieldWrapper"
181
181
  }, mergeProps(fieldContainerProps, others), {
182
182
  className: classNames
183
- }, getRootProps()), ___EmotionJSX(Input, _extends({}, mergeProps(visuallyHiddenProps, fieldControlProps, getInputProps()), {
183
+ }, getRootProps(), {
184
+ // to pass accessibility test, this removes focusable dependents
185
+ role: "none"
186
+ }), ___EmotionJSX(Input, _extends({}, mergeProps(visuallyHiddenProps, fieldControlProps, getInputProps()), {
184
187
  "aria-label": "File Input",
185
188
  multiple: isMultiple,
186
189
  onChange: handleOnChange,
@@ -244,8 +247,8 @@ FileInputField.propTypes = {
244
247
  * */
245
248
  fileList: PropTypes.arrayOf(PropTypes.shape({
246
249
  fileObj: PropTypes.shape({}),
247
- id: PropTypes.string.required,
248
- name: PropTypes.string.required,
250
+ id: PropTypes.string.isRequired,
251
+ name: PropTypes.string.isRequired,
249
252
  downloadLink: PropTypes.string,
250
253
  status: PropTypes.oneOf(_Object$values(statuses))
251
254
  })),
@@ -253,8 +256,8 @@ FileInputField.propTypes = {
253
256
  /** Default array of objects for uploaded files. */
254
257
  defaultFileList: PropTypes.arrayOf(PropTypes.shape({
255
258
  fileObj: PropTypes.shape({}),
256
- id: PropTypes.string.required,
257
- name: PropTypes.string.required,
259
+ id: PropTypes.string.isRequired,
260
+ name: PropTypes.string.isRequired,
258
261
  downloadLink: PropTypes.string,
259
262
  status: PropTypes.oneOf(_Object$values(statuses))
260
263
  })),
@@ -131,7 +131,7 @@ LinkSelectField.propTypes = {
131
131
  * *For performance reasons, use this prop instead of Array.map when iteratively rendering Items*.
132
132
  * For use with [dynamic collections](https://react-spectrum.adobe.com/react-stately/collections.html#dynamic-collections).
133
133
  */
134
- items: PropTypes.arrayOf(PropTypes.any),
134
+ items: PropTypes.arrayOf(PropTypes.shape({})),
135
135
 
136
136
  /** The label for the select element. */
137
137
  label: PropTypes.node,
@@ -86,7 +86,10 @@ Option.propTypes = {
86
86
  hasVirtualFocus: PropTypes.bool,
87
87
  item: PropTypes.shape({
88
88
  key: PropTypes.string,
89
- props: PropTypes.shape({}),
89
+ props: PropTypes.shape({
90
+ 'data-id': PropTypes.string,
91
+ isSeparator: PropTypes.bool
92
+ }),
90
93
  rendered: PropTypes.node
91
94
  }),
92
95
  state: PropTypes.shape({
@@ -141,7 +141,8 @@ MenuItem.propTypes = {
141
141
  key: PropTypes.string,
142
142
  props: PropTypes.shape({
143
143
  'data-id': PropTypes.string,
144
- isSeparator: PropTypes.bool
144
+ isSeparator: PropTypes.bool,
145
+ isPressed: PropTypes.bool
145
146
  }),
146
147
  rendered: PropTypes.node,
147
148
  isDisabled: PropTypes.bool
@@ -141,7 +141,8 @@ Message.propTypes = {
141
141
  icon: PropTypes.elementType,
142
142
 
143
143
  /* Hides the message with an animated transition */
144
- isHidden: PropTypes.bool
144
+ isHidden: PropTypes.bool,
145
+ 'data-id': PropTypes.string
145
146
  })
146
147
  }),
147
148
 
@@ -18,7 +18,7 @@ import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
18
18
 
19
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; }
20
20
 
21
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context7, _context8; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context7 = ownKeys(Object(source), !0)).call(_context7, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context8 = ownKeys(Object(source))).call(_context8, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context9, _context10; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context9 = ownKeys(Object(source), !0)).call(_context9, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context10 = ownKeys(Object(source))).call(_context10, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
22
22
 
23
23
  import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
24
24
  import PropTypes from 'prop-types';
@@ -28,7 +28,7 @@ import { FocusScope } from '@react-aria/focus';
28
28
  import { useListState } from '@react-stately/list';
29
29
  import { DismissButton, useOverlayPosition } from '@react-aria/overlays';
30
30
  import { useLayoutEffect, useResizeObserver } from '@react-aria/utils';
31
- import { Box, Chip, Icon, IconButton, PopoverContainer, ScrollBox, TextField } from '../..';
31
+ import { Box, Chip, Icon, IconButton, PopoverContainer, ScrollBox, Text, TextField } from '../..';
32
32
  import ListBox from '../ListBox';
33
33
  import { isIterableProp } from '../../utils/devUtils/props/isIterable';
34
34
  import { usePropWarning } from '../../hooks';
@@ -46,7 +46,7 @@ import FieldHelperText from '../FieldHelperText';
46
46
 
47
47
  import { jsx as ___EmotionJSX } from "@emotion/react";
48
48
  var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
49
- var _context4;
49
+ var _context6;
50
50
 
51
51
  var defaultSelectedKeys = props.defaultSelectedKeys,
52
52
  direction = props.direction,
@@ -181,7 +181,7 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
181
181
  var onResize = useCallback(function () {
182
182
  /* istanbul ignore next */
183
183
  if (inputRef.current) {
184
- setMenuWidth(inputRef.current.offsetWidth);
184
+ setMenuWidth("".concat(inputRef.current.offsetWidth + 2, "px"));
185
185
  }
186
186
  }, [inputRef, isOpen, setMenuWidth]);
187
187
  useResizeObserver({
@@ -273,7 +273,40 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
273
273
  selectionManager.toggleSelection(key);
274
274
  };
275
275
 
276
- var readOnlyItems = ___EmotionJSX(React.Fragment, null, _mapInstanceProperty(readOnlyKeys).call(readOnlyKeys, function (key) {
276
+ var readOnlyTextItem = function readOnlyTextItem(key, name) {
277
+ return ___EmotionJSX(Text, {
278
+ key: key,
279
+ role: "presentation",
280
+ label: name,
281
+ variant: "bodyStrong",
282
+ sx: {
283
+ bg: 'accent.95',
284
+ fontSize: 'sm',
285
+ alignSelf: 'center',
286
+ ':not(:last-of-type):after': {
287
+ content: "\",\xA0\""
288
+ }
289
+ }
290
+ }, name);
291
+ };
292
+
293
+ var readOnlyInputEntry = ___EmotionJSX(React.Fragment, null, isReadOnly && (readOnlyKeys.length ? _mapInstanceProperty(readOnlyKeys).call(readOnlyKeys, function (key) {
294
+ var _context4, _context5;
295
+
296
+ var item = _findInstanceProperty(_context4 = _concatInstanceProperty(_context5 = []).call(_context5, initialItems, customItems)).call(_context4, function (el) {
297
+ return el.key === key;
298
+ });
299
+
300
+ if (item) {
301
+ return readOnlyTextItem(item.key, item.name);
302
+ }
303
+
304
+ return null;
305
+ }) : _mapInstanceProperty(initialItems).call(initialItems, function (item) {
306
+ return readOnlyTextItem(item.key, item.name);
307
+ })));
308
+
309
+ var readOnlyItems = ___EmotionJSX(React.Fragment, null, !isReadOnly && _mapInstanceProperty(readOnlyKeys).call(readOnlyKeys, function (key) {
277
310
  var item = _findInstanceProperty(initialItems).call(initialItems, function (el) {
278
311
  return el.key === key;
279
312
  });
@@ -296,10 +329,10 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
296
329
  return null;
297
330
  }));
298
331
 
299
- var selectedItems = ___EmotionJSX(React.Fragment, null, _mapInstanceProperty(_context4 = _Array$from(selectionManager.selectedKeys)).call(_context4, function (key) {
300
- var _context5, _context6;
332
+ var selectedItems = ___EmotionJSX(React.Fragment, null, _mapInstanceProperty(_context6 = _Array$from(selectionManager.selectedKeys)).call(_context6, function (key) {
333
+ var _context7, _context8;
301
334
 
302
- var item = _findInstanceProperty(_context5 = _concatInstanceProperty(_context6 = []).call(_context6, initialItems, customItems)).call(_context5, function (el) {
335
+ var item = _findInstanceProperty(_context7 = _concatInstanceProperty(_context8 = []).call(_context8, initialItems, customItems)).call(_context7, function (el) {
303
336
  return el.key === key;
304
337
  });
305
338
 
@@ -355,7 +388,11 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
355
388
  placeholder: placeholder,
356
389
  wrapperProps: {
357
390
  ref: inputRef,
358
- variant: 'forms.input.multivaluesWrapper'
391
+ variant: 'forms.input.multivaluesWrapper',
392
+ sx: isReadOnly && {
393
+ boxShadow: 'inset 0 0 0 100px #e5e9f8',
394
+ border: 'none'
395
+ }
359
396
  },
360
397
  status: status
361
398
  });
@@ -366,12 +403,14 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
366
403
  if (_onBlur) _onBlur(e.nativeEvent);
367
404
  },
368
405
  onChange: function onChange(e) {
369
- setIsOpen(true);
370
406
  setFilterString(e.target.value);
371
407
  if (onInputChange) onInputChange(e.target.value);
372
408
  },
373
409
  onFocus: function onFocus(e) {
374
- setIsOpen(true);
410
+ if (!isReadOnly) {
411
+ setIsOpen(true);
412
+ }
413
+
375
414
  if (_onFocus) _onFocus(e.nativeEvent);
376
415
  },
377
416
  onKeyDown: keyDown,
@@ -379,7 +418,7 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
379
418
  return _onKeyUp && _onKeyUp(e.nativeEvent);
380
419
  },
381
420
  slots: {
382
- beforeInput: ___EmotionJSX(React.Fragment, null, readOnlyItems, " ", selectedItems)
421
+ beforeInput: ___EmotionJSX(React.Fragment, null, readOnlyItems, " ", selectedItems, readOnlyInputEntry)
383
422
  },
384
423
  value: filterString
385
424
  }, inputProps)), helperText && ___EmotionJSX(FieldHelperText, {
@@ -522,6 +561,7 @@ MultivaluesField.propTypes = {
522
561
  };
523
562
  MultivaluesField.defaultProps = {
524
563
  direction: 'bottom',
564
+ isReadOnly: false,
525
565
  mode: 'restrictive',
526
566
  scrollBoxProps: {
527
567
  maxHeight: 300
@@ -346,4 +346,31 @@ export var Error = function Error(args) {
346
346
  "data-id": item.name
347
347
  }, item.name);
348
348
  }));
349
+ };
350
+ export var ReadOnlyField = function ReadOnlyField(args) {
351
+ var _useState19 = useState(false),
352
+ _useState20 = _slicedToArray(_useState19, 2),
353
+ isOpen = _useState20[0],
354
+ setIsOpen = _useState20[1];
355
+
356
+ var direction = args.direction;
357
+
358
+ var onOpenChange = function onOpenChange() {
359
+ setIsOpen(true);
360
+ };
361
+
362
+ return ___EmotionJSX(OverlayProvider // note: spacing for demo purpose only so that the select list renders in the correct place
363
+ , {
364
+ style: setOverlayStyle(direction, isOpen, '50%', '50%', '20%')
365
+ }, ___EmotionJSX(MultivaluesField, _extends({
366
+ items: items
367
+ }, args, {
368
+ isReadOnly: true,
369
+ onOpenChange: onOpenChange
370
+ }), function (item) {
371
+ return ___EmotionJSX(Item, {
372
+ key: item.key,
373
+ "data-id": item.name
374
+ }, item.name);
375
+ }));
349
376
  };
@@ -368,4 +368,30 @@ test(' multivalue field with helper text', function () {
368
368
  var helper = screen.getByText(helperText);
369
369
  expect(helper).toBeInTheDocument();
370
370
  expect(helper).toHaveClass("is-".concat(statuses.ERROR));
371
+ });
372
+ test('read only field', function () {
373
+ var isReadOnly = true;
374
+ getComponent({
375
+ isReadOnly: isReadOnly
376
+ });
377
+ var chip = screen.queryAllByRole('presentation');
378
+ expect(chip[0]).toHaveAttribute('label', items[0].name);
379
+ expect(chip[1]).toHaveAttribute('label', items[1].name);
380
+ expect(chip[2]).toHaveAttribute('label', items[2].name);
381
+ var textArea = screen.getByLabelText(defaultProps.label);
382
+ expect(textArea).toHaveClass('is-read-only');
383
+ expect(screen.queryByRole('option')).not.toBeInTheDocument();
384
+ });
385
+ test('read only keys with read only field', function () {
386
+ var isReadOnly = true;
387
+ getComponent({
388
+ isReadOnly: isReadOnly,
389
+ readOnlyKeys: [items[1].key, items[2].key]
390
+ });
391
+ var chip = screen.queryAllByRole('presentation');
392
+ expect(chip[0]).toHaveAttribute('label', items[1].name);
393
+ expect(chip[1]).toHaveAttribute('label', items[2].name);
394
+ var textArea = screen.getByLabelText(defaultProps.label);
395
+ expect(textArea).toHaveClass('is-read-only');
396
+ expect(screen.queryByRole('option')).not.toBeInTheDocument();
371
397
  });
@@ -75,7 +75,7 @@ SelectField.propTypes = {
75
75
  * *For performance reasons, use this prop instead of Array.map when iteratively rendering Items*.
76
76
  * For use with [dynamic collections](https://react-spectrum.adobe.com/react-stately/collections.html#dynamic-collections).
77
77
  */
78
- items: PropTypes.arrayOf(PropTypes.any),
78
+ items: PropTypes.arrayOf(PropTypes.shape({})),
79
79
 
80
80
  /** The label for the select element. */
81
81
  label: PropTypes.node,
@@ -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 = ["icon", "isDisabled", "separator", "tabLabelProps", "tabLineProps", "content", "titleAttr"];
3
+ var _excluded = ["icon", "isDisabled", "separator", "tabLabelProps", "tabLineProps", "content", "titleAttr", "title"];
4
4
  import React, { forwardRef, useContext, useImperativeHandle, useRef } from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { useTab } from '@react-aria/tabs';
@@ -38,6 +38,7 @@ export var CollectionTab = /*#__PURE__*/forwardRef(function (props, ref) {
38
38
  tabLineProps = itemProps.tabLineProps,
39
39
  content = itemProps.content,
40
40
  titleAttr = itemProps.titleAttr,
41
+ title = itemProps.title,
41
42
  otherItemProps = _objectWithoutProperties(itemProps, _excluded);
42
43
 
43
44
  var state = useContext(TabsContext);
@@ -113,9 +114,19 @@ CollectionTab.propTypes = {
113
114
  isDisabled: PropTypes.bool,
114
115
  item: PropTypes.shape({
115
116
  key: PropTypes.string,
116
- props: PropTypes.shape({}),
117
- rendered: PropTypes.node,
118
- tabLineProps: PropTypes.shape({})
117
+ props: PropTypes.shape({
118
+ icon: PropTypes.shape({}),
119
+ isDisabled: PropTypes.bool,
120
+ textValue: PropTypes.string,
121
+ tabLineProps: PropTypes.shape({}),
122
+ tabLabelProps: PropTypes.shape({}),
123
+ content: PropTypes.shape({}),
124
+ titleAttr: PropTypes.string,
125
+ title: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.object]),
126
+ separator: PropTypes.oneOfType([PropTypes.element, PropTypes.bool]),
127
+ list: PropTypes.arrayOf(PropTypes.shape({}))
128
+ }),
129
+ rendered: PropTypes.node
119
130
  }),
120
131
  mode: PropTypes.oneOf(['default', 'tooltip', 'list']),
121
132
  orientation: PropTypes.oneOf(['horizontal', 'vertical']),
@@ -207,10 +207,10 @@ TabPicker.propTypes = {
207
207
  state: PropTypes.shape({
208
208
  collection: PropTypes.shape({}),
209
209
  selectedKey: PropTypes.string,
210
- setSelectedKey: PropTypes["function"],
210
+ setSelectedKey: PropTypes.func,
211
211
  selectionManager: PropTypes.shape({
212
212
  focusedKey: PropTypes.string,
213
- setFocusedKey: PropTypes["function"]
213
+ setFocusedKey: PropTypes.func
214
214
  })
215
215
  })
216
216
  };
@@ -6,7 +6,7 @@ test('default useOverlayPanelState', function () {
6
6
  }),
7
7
  result = _renderHook.result;
8
8
 
9
- expect(result.current).toEqual(expect.objectContaining({
9
+ var obj = {
10
10
  state: {
11
11
  open: expect.any(Function),
12
12
  close: expect.any(Function),
@@ -14,5 +14,6 @@ test('default useOverlayPanelState', function () {
14
14
  isOpen: expect.any(Boolean)
15
15
  },
16
16
  onClose: expect.any(Function)
17
- }));
17
+ };
18
+ expect(result.current).toEqual(obj);
18
19
  });
@@ -103,7 +103,15 @@ var useSelectField = function useSelectField(props, ref) {
103
103
  labelProps = _useSelect.labelProps,
104
104
  triggerProps = _useSelect.triggerProps,
105
105
  valueProps = _useSelect.valueProps,
106
- menuProps = _useSelect.menuProps;
106
+ menuProps = _useSelect.menuProps; // The following props are being passed into multiple
107
+ // DOM elements that leads to multiple test failures
108
+ // and these props are never used in any components
109
+ // that depend on useSelectField
110
+
111
+
112
+ delete menuProps.shouldSelectOnPressUp;
113
+ delete menuProps.shouldFocusOnHover;
114
+ delete menuProps.disallowEmptySelection;
107
115
 
108
116
  var _useField = useField(_objectSpread(_objectSpread({}, props), {}, {
109
117
  placeholder: props.labelMode === modes.FLOAT ? '' : placeholder,
@@ -165,6 +165,8 @@ input.multivaluesWrapper = _objectSpread(_objectSpread({}, input.container), {},
165
165
  pr: 10,
166
166
  pb: 5,
167
167
  pl: 12,
168
+ borderRadius: '2px',
169
+ alignItems: 'center',
168
170
  '&.has-no-status-indicator': {
169
171
  left: 0
170
172
  },
@@ -153,7 +153,7 @@ var selectedItemChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
153
153
  });
154
154
 
155
155
  var readOnlyChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
156
- p: 3,
156
+ p: 2.54,
157
157
  border: '1px solid',
158
158
  borderColor: 'neutral.80'
159
159
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "1.26.1-alpha.7",
3
+ "version": "1.27.0-alpha.1",
4
4
  "description": "PingUX themeable React component library",
5
5
  "author": "ux-development@pingidentity.com",
6
6
  "license": "Apache-2.0",
@@ -137,7 +137,7 @@
137
137
  "emotion-normalize": "^11.0.1",
138
138
  "lodash": "^4.17.21",
139
139
  "mdi-react": "^7.4.0",
140
- "moment": "^2.29.1",
140
+ "moment": "^2.29.4",
141
141
  "prism-react-renderer": "1.2.1",
142
142
  "prismjs": "^1.27.0",
143
143
  "prop-types": "^15.7.2",