@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.
- package/lib/cjs/components/ArrayField/ArrayField.stories.js +6 -6
- package/lib/cjs/components/FileInputField/FileInputField.js +8 -5
- package/lib/cjs/components/LinkSelectField/LinkSelectField.js +1 -1
- package/lib/cjs/components/ListBox/Option.js +4 -1
- package/lib/cjs/components/MenuItem/MenuItem.js +2 -1
- package/lib/cjs/components/Messages/Message.js +2 -1
- package/lib/cjs/components/MultivaluesField/MultivaluesField.js +50 -11
- package/lib/cjs/components/MultivaluesField/MultivaluesField.stories.js +32 -2
- package/lib/cjs/components/MultivaluesField/MultivaluesField.test.js +34 -0
- package/lib/cjs/components/SelectField/SelectField.js +1 -1
- package/lib/cjs/components/Tab/Tab.js +15 -4
- package/lib/cjs/components/TabPicker/TabPicker.js +2 -2
- package/lib/cjs/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -2
- package/lib/cjs/hooks/useSelectField/useSelectField.js +9 -1
- package/lib/cjs/styles/forms/input.js +2 -0
- package/lib/cjs/styles/variants/boxes.js +1 -1
- package/lib/components/ArrayField/ArrayField.stories.js +6 -6
- package/lib/components/FileInputField/FileInputField.js +8 -5
- package/lib/components/LinkSelectField/LinkSelectField.js +1 -1
- package/lib/components/ListBox/Option.js +4 -1
- package/lib/components/MenuItem/MenuItem.js +2 -1
- package/lib/components/Messages/Message.js +2 -1
- package/lib/components/MultivaluesField/MultivaluesField.js +52 -12
- package/lib/components/MultivaluesField/MultivaluesField.stories.js +27 -0
- package/lib/components/MultivaluesField/MultivaluesField.test.js +26 -0
- package/lib/components/SelectField/SelectField.js +1 -1
- package/lib/components/Tab/Tab.js +15 -4
- package/lib/components/TabPicker/TabPicker.js +2 -2
- package/lib/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -2
- package/lib/hooks/useSelectField/useSelectField.js +9 -1
- package/lib/styles/forms/input.js +2 -0
- package/lib/styles/variants/boxes.js +1 -1
- 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()
|
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.
|
298
|
-
name: _propTypes["default"].string.
|
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.
|
307
|
-
name: _propTypes["default"].string.
|
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"].
|
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
|
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
|
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
|
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"])(
|
349
|
-
var
|
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"])(
|
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
|
-
|
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"].
|
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
|
-
|
154
|
-
|
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"]
|
249
|
+
setSelectedKey: _propTypes["default"].func,
|
250
250
|
selectionManager: _propTypes["default"].shape({
|
251
251
|
focusedKey: _propTypes["default"].string,
|
252
|
-
setFocusedKey: _propTypes["default"]
|
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
|
-
|
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,
|
@@ -173,7 +173,7 @@ var selectedItemChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
|
|
173
173
|
});
|
174
174
|
|
175
175
|
var readOnlyChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
|
176
|
-
p:
|
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()
|
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.
|
248
|
-
name: PropTypes.string.
|
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.
|
257
|
-
name: PropTypes.string.
|
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.
|
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
|
@@ -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
|
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
|
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
|
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(
|
300
|
-
var
|
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(
|
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
|
-
|
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.
|
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
|
-
|
118
|
-
|
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
|
210
|
+
setSelectedKey: PropTypes.func,
|
211
211
|
selectionManager: PropTypes.shape({
|
212
212
|
focusedKey: PropTypes.string,
|
213
|
-
setFocusedKey: PropTypes
|
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
|
-
|
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,
|
@@ -153,7 +153,7 @@ var selectedItemChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
|
|
153
153
|
});
|
154
154
|
|
155
155
|
var readOnlyChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
|
156
|
-
p:
|
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.
|
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.
|
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",
|