@pingux/astro 1.25.1-alpha.1 → 1.25.1-alpha.12

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 (25) hide show
  1. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +19 -0
  2. package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +0 -1
  3. package/lib/cjs/components/MultivaluesField/MultivaluesField.js +28 -6
  4. package/lib/cjs/components/MultivaluesField/MultivaluesField.stories.js +46 -2
  5. package/lib/cjs/components/MultivaluesField/MultivaluesField.test.js +14 -0
  6. package/lib/cjs/components/PasswordField/PasswordField.js +55 -52
  7. package/lib/cjs/components/PopoverContainer/PopoverContainer.js +1 -1
  8. package/lib/cjs/recipes/ListAndPanel.stories.js +36 -13
  9. package/lib/cjs/recipes/OneWayToBidirectionalArrow.stories.js +125 -30
  10. package/lib/cjs/styles/theme.js +3 -1
  11. package/lib/cjs/styles/variants/bidirectionalIconButton.js +54 -0
  12. package/lib/cjs/styles/variants/index.js +10 -0
  13. package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +11 -0
  14. package/lib/components/AccordionGridItem/AccordionGridItemBody.js +0 -1
  15. package/lib/components/MultivaluesField/MultivaluesField.js +26 -7
  16. package/lib/components/MultivaluesField/MultivaluesField.stories.js +40 -0
  17. package/lib/components/MultivaluesField/MultivaluesField.test.js +11 -0
  18. package/lib/components/PasswordField/PasswordField.js +53 -49
  19. package/lib/components/PopoverContainer/PopoverContainer.js +1 -1
  20. package/lib/recipes/ListAndPanel.stories.js +36 -14
  21. package/lib/recipes/OneWayToBidirectionalArrow.stories.js +124 -30
  22. package/lib/styles/theme.js +4 -2
  23. package/lib/styles/variants/bidirectionalIconButton.js +34 -0
  24. package/lib/styles/variants/index.js +1 -0
  25. package/package.json +1 -1
@@ -280,5 +280,24 @@ test('adds focus to inputs', function () {
280
280
  _userEvent["default"].click(secondInput);
281
281
 
282
282
  expect(firstInput).not.toHaveFocus();
283
+ expect(secondInput).toHaveFocus();
284
+ });
285
+ test('adds focus to input on a single click after onBlur', function () {
286
+ getComponentWithTextFields();
287
+
288
+ var firstInput = _testWrapper.screen.getAllByRole('gridcell')[0];
289
+
290
+ var secondInput = _testWrapper.screen.getAllByRole('gridcell')[1];
291
+
292
+ expect(secondInput).not.toHaveFocus();
293
+
294
+ _userEvent["default"].click(firstInput);
295
+
296
+ _userEvent["default"].click(secondInput);
297
+
298
+ secondInput.blur();
299
+
300
+ _userEvent["default"].click(secondInput);
301
+
283
302
  expect(secondInput).toHaveFocus();
284
303
  });
@@ -90,7 +90,6 @@ var AccordionGridItemBody = /*#__PURE__*/(0, _react.forwardRef)(function (props,
90
90
  var ariaLabel = props['aria-label'];
91
91
  delete mergedProps.onMouseDown;
92
92
  delete mergedProps.onPointerDown;
93
- delete mergedProps.onClick;
94
93
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
95
94
  as: "div",
96
95
  variant: "accordion.accordionGridBody",
@@ -28,6 +28,8 @@ _Object$defineProperty(exports, "__esModule", {
28
28
 
29
29
  exports["default"] = void 0;
30
30
 
31
+ var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
32
+
31
33
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
32
34
 
33
35
  var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
@@ -70,6 +72,10 @@ var _isIterable = require("../../utils/devUtils/props/isIterable");
70
72
 
71
73
  var _hooks = require("../../hooks");
72
74
 
75
+ var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
76
+
77
+ var _FieldHelperText = _interopRequireDefault(require("../FieldHelperText"));
78
+
73
79
  var _react2 = require("@emotion/react");
74
80
 
75
81
  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); }
@@ -96,8 +102,10 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
96
102
  direction = props.direction,
97
103
  _props$disabledKeys = props.disabledKeys,
98
104
  disabledKeys = _props$disabledKeys === void 0 ? [] : _props$disabledKeys,
105
+ containerProps = props.containerProps,
99
106
  hasAutoFocus = props.hasAutoFocus,
100
107
  hasNoStatusIndicator = props.hasNoStatusIndicator,
108
+ helperText = props.helperText,
101
109
  customInputProps = props.inputProps,
102
110
  isDisabled = props.isDisabled,
103
111
  isNotFlippable = props.isNotFlippable,
@@ -117,7 +125,8 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
117
125
  _props$readOnlyKeys = props.readOnlyKeys,
118
126
  readOnlyKeys = _props$readOnlyKeys === void 0 ? [] : _props$readOnlyKeys,
119
127
  selectedKeys = props.selectedKeys,
120
- scrollBoxProps = props.scrollBoxProps;
128
+ scrollBoxProps = props.scrollBoxProps,
129
+ status = props.status;
121
130
  var hasCustomValue = mode === 'non-restrictive';
122
131
  (0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
123
132
 
@@ -395,10 +404,11 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
395
404
  wrapperProps: {
396
405
  ref: inputRef,
397
406
  variant: 'forms.input.multivaluesWrapper'
398
- }
407
+ },
408
+ status: status
399
409
  });
400
410
 
401
- return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.TextField, (0, _extends2["default"])({
411
+ return (0, _react2.jsx)(_.Box, containerProps, (0, _react2.jsx)(_.TextField, (0, _extends2["default"])({
402
412
  onBlur: function onBlur(e) {
403
413
  setIsOpen(false);
404
414
  if (_onBlur) _onBlur(e.nativeEvent);
@@ -420,7 +430,9 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
420
430
  beforeInput: (0, _react2.jsx)(_react["default"].Fragment, null, readOnlyItems, " ", selectedItems)
421
431
  },
422
432
  value: filterString
423
- }, inputProps)), (0, _react2.jsx)(_.PopoverContainer, {
433
+ }, inputProps)), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
434
+ status: status
435
+ }, helperText), (0, _react2.jsx)(_.PopoverContainer, {
424
436
  ref: popoverRef,
425
437
  hasNoArrow: true,
426
438
  isNonModal: true,
@@ -430,6 +442,9 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
430
442
  }, listbox));
431
443
  });
432
444
  MultivaluesField.propTypes = {
445
+ /** Props object that is spread directly into the root (top-level) Box component. */
446
+ containerProps: _propTypes["default"].shape({}),
447
+
433
448
  /** The initial selected keys in the collection (uncontrolled). */
434
449
  defaultSelectedKeys: _isIterable.isIterableProp,
435
450
 
@@ -447,6 +462,9 @@ MultivaluesField.propTypes = {
447
462
  /** Whether the field has a status indicator. */
448
463
  hasNoStatusIndicator: _propTypes["default"].bool,
449
464
 
465
+ /** Text rendered below the input. */
466
+ helperText: _propTypes["default"].node,
467
+
450
468
  /**
451
469
  * Props that get passed as-is to the underlying TextField element
452
470
  */
@@ -545,14 +563,18 @@ MultivaluesField.propTypes = {
545
563
  /** @ignore */
546
564
  scrollBoxProps: _propTypes["default"].shape({
547
565
  maxHeight: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object, _propTypes["default"].number])
548
- })
566
+ }),
567
+
568
+ /** Determines the input status indicator and helper text styling. */
569
+ status: _propTypes["default"].oneOf((0, _values["default"])(_statuses["default"]))
549
570
  };
550
571
  MultivaluesField.defaultProps = {
551
572
  direction: 'bottom',
552
573
  mode: 'restrictive',
553
574
  scrollBoxProps: {
554
575
  maxHeight: 300
555
- }
576
+ },
577
+ status: _statuses["default"].DEFAULT
556
578
  };
557
579
  var _default = MultivaluesField;
558
580
  exports["default"] = _default;
@@ -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.Default = exports.Controlled = void 0;
17
+ exports["default"] = exports.WithReadOnlyValues = exports.WithDisabledKeys = exports.WithCustomValues = exports.WithCustomSize = exports.Uncontrolled = exports.Error = exports.Default = exports.Controlled = void 0;
18
18
 
19
19
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
20
20
 
@@ -24,6 +24,8 @@ var _react = _interopRequireWildcard(require("react"));
24
24
 
25
25
  var _ = require("../..");
26
26
 
27
+ var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
28
+
27
29
  var _react2 = require("@emotion/react");
28
30
 
29
31
  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); }
@@ -67,6 +69,18 @@ var _default = {
67
69
  control: {
68
70
  type: 'none'
69
71
  }
72
+ },
73
+ status: {
74
+ control: {
75
+ type: 'select',
76
+ options: _statuses["default"]
77
+ },
78
+ defaultValue: _statuses["default"].DEFAULT
79
+ },
80
+ helperText: {
81
+ control: {
82
+ type: 'text'
83
+ }
70
84
  }
71
85
  },
72
86
  parameters: {
@@ -354,4 +368,34 @@ var WithReadOnlyValues = function WithReadOnlyValues(args) {
354
368
  }));
355
369
  };
356
370
 
357
- exports.WithReadOnlyValues = WithReadOnlyValues;
371
+ exports.WithReadOnlyValues = WithReadOnlyValues;
372
+
373
+ var Error = function Error(args) {
374
+ var _useState17 = (0, _react.useState)(false),
375
+ _useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
376
+ isOpen = _useState18[0],
377
+ setIsOpen = _useState18[1];
378
+
379
+ var direction = args.direction;
380
+
381
+ var onOpenChange = function onOpenChange() {
382
+ setIsOpen(true);
383
+ };
384
+
385
+ return (0, _react2.jsx)(_.OverlayProvider // note: spacing for demo purpose only so that the select list renders in the correct place
386
+ , {
387
+ style: setOverlayStyle(direction, isOpen, '50%', '50%', '20%')
388
+ }, (0, _react2.jsx)(_.MultivaluesField, (0, _extends2["default"])({}, args, {
389
+ items: items,
390
+ helperText: "Here is some helpful text...",
391
+ status: "error",
392
+ onOpenChange: onOpenChange
393
+ }), function (item) {
394
+ return (0, _react2.jsx)(_.Item, {
395
+ key: item.key,
396
+ "data-id": item.name
397
+ }, item.name);
398
+ }));
399
+ };
400
+
401
+ exports.Error = Error;
@@ -18,6 +18,8 @@ var _index = require("../../index");
18
18
 
19
19
  var _testWrapper = require("../../utils/testUtils/testWrapper");
20
20
 
21
+ var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
22
+
21
23
  var _react2 = require("@emotion/react");
22
24
 
23
25
  var items = [{
@@ -479,4 +481,16 @@ test('read only keys', function () {
479
481
  expect(secondChip).toBeInTheDocument();
480
482
  var deleteButton2 = firstChip.nextSibling;
481
483
  expect(deleteButton2).toBeNull();
484
+ });
485
+ test(' multivalue field with helper text', function () {
486
+ var helperText = 'helper text';
487
+ getComponent({
488
+ helperText: helperText,
489
+ status: _statuses["default"].ERROR
490
+ });
491
+
492
+ var helper = _testWrapper.screen.getByText(helperText);
493
+
494
+ expect(helper).toBeInTheDocument();
495
+ expect(helper).toHaveClass("is-".concat(_statuses["default"].ERROR));
482
496
  });
@@ -56,33 +56,29 @@ var _overlays = require("@react-aria/overlays");
56
56
 
57
57
  var _utils = require("@react-aria/utils");
58
58
 
59
- var _useField2 = _interopRequireDefault(require("../../hooks/useField"));
60
-
61
- var _useProgressiveState3 = _interopRequireDefault(require("../../hooks/useProgressiveState"));
59
+ var hooks = _interopRequireWildcard(require("../../hooks"));
62
60
 
63
61
  var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
64
62
 
65
- var _hooks = require("../../hooks");
66
-
67
63
  var _Box = _interopRequireDefault(require("../Box"));
68
64
 
69
65
  var _FieldHelperText = _interopRequireDefault(require("../FieldHelperText"));
70
66
 
71
- var _Input = _interopRequireDefault(require("../Input"));
72
-
73
- var _Label = _interopRequireDefault(require("../Label"));
74
-
75
67
  var _Icon = _interopRequireDefault(require("../Icon"));
76
68
 
77
69
  var _IconButton = _interopRequireDefault(require("../IconButton"));
78
70
 
71
+ var _Input = _interopRequireDefault(require("../Input"));
72
+
73
+ var _Label = _interopRequireDefault(require("../Label"));
74
+
79
75
  var _PopoverContainer = _interopRequireDefault(require("../PopoverContainer"));
80
76
 
81
77
  var _RequirementsList = _interopRequireDefault(require("../RequirementsList"));
82
78
 
83
79
  var _react2 = require("@emotion/react");
84
80
 
85
- var _excluded = ["helperText", "isVisible", "onVisibleChange", "slots", "status", "viewHiddenIconTestId", "viewIconTestId", "requirements"];
81
+ var _excluded = ["helperText", "isVisible", "onVisibleChange", "requirements", "slots", "status", "viewHiddenIconTestId", "viewIconTestId"];
86
82
 
87
83
  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); }
88
84
 
@@ -92,18 +88,23 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
92
88
 
93
89
  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; }
94
90
 
91
+ var ARIA_LABELS_FOR_SHOW_PASSWORD_TOGGLE = {
92
+ HIDE: 'hide password',
93
+ SHOW: 'show password'
94
+ };
95
95
  /**
96
96
  * Combines a text input, label, IconButton and helper text for a complete, form-ready solution.
97
97
  */
98
+
98
99
  var PasswordField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
99
100
  var helperText = props.helperText,
100
101
  isVisibleProp = props.isVisible,
101
102
  onVisibleChangeProp = props.onVisibleChange,
103
+ requirements = props.requirements,
102
104
  slots = props.slots,
103
105
  status = props.status,
104
106
  viewHiddenIconTestId = props.viewHiddenIconTestId,
105
107
  viewIconTestId = props.viewIconTestId,
106
- requirements = props.requirements,
107
108
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
108
109
 
109
110
  var checkRequirements = function checkRequirements() {
@@ -112,41 +113,27 @@ var PasswordField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
112
113
  }).length > 0;
113
114
  };
114
115
 
115
- var _useField = (0, _useField2["default"])(_objectSpread({
116
+ var _hooks$useField = hooks.useField(_objectSpread({
116
117
  status: status
117
118
  }, others)),
118
- fieldContainerProps = _useField.fieldContainerProps,
119
- fieldControlProps = _useField.fieldControlProps,
120
- fieldLabelProps = _useField.fieldLabelProps;
119
+ fieldContainerProps = _hooks$useField.fieldContainerProps,
120
+ fieldControlProps = _hooks$useField.fieldControlProps,
121
+ fieldLabelProps = _hooks$useField.fieldLabelProps;
121
122
 
122
123
  var isFocused = fieldControlProps.isFocused;
123
124
  var inputRef = (0, _react.useRef)();
124
125
  var popoverRef = (0, _react.useRef)();
125
- (0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
126
+ hooks.usePropWarning(props, 'disabled', 'isDisabled');
126
127
  /* istanbul ignore next */
127
128
 
128
129
  (0, _react.useImperativeHandle)(ref, function () {
129
130
  return inputRef.current;
130
131
  });
131
132
 
132
- var _useProgressiveState = (0, _useProgressiveState3["default"])(isVisibleProp, onVisibleChangeProp),
133
- _useProgressiveState2 = (0, _slicedToArray2["default"])(_useProgressiveState, 2),
134
- isVisible = _useProgressiveState2[0],
135
- setIsShown = _useProgressiveState2[1];
136
-
137
- var onVisibleChange = function onVisibleChange() {
138
- setIsShown(!isVisible);
139
-
140
- if (onVisibleChangeProp) {
141
- var _context;
142
-
143
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
144
- args[_key] = arguments[_key];
145
- }
146
-
147
- onVisibleChangeProp.apply(void 0, (0, _concat["default"])(_context = [!isVisible]).call(_context, args));
148
- }
149
- }; // Measure the width of the input to inform the width of the menu (below).
133
+ var _hooks$useProgressive = hooks.useProgressiveState(isVisibleProp, onVisibleChangeProp),
134
+ _hooks$useProgressive2 = (0, _slicedToArray2["default"])(_hooks$useProgressive, 2),
135
+ isVisible = _hooks$useProgressive2[0],
136
+ setIsShown = _hooks$useProgressive2[1]; // Measure the width of the input to inform the width of the menu (below).
150
137
 
151
138
 
152
139
  var _useState = (0, _react.useState)(null),
@@ -167,10 +154,10 @@ var PasswordField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
167
154
  (0, _utils.useLayoutEffect)(onResize, [onResize]);
168
155
 
169
156
  var _useOverlayPosition = (0, _overlays.useOverlayPosition)({
170
- targetRef: inputRef,
157
+ isOpen: true,
171
158
  overlayRef: popoverRef,
172
159
  placement: 'bottom end',
173
- isOpen: true
160
+ targetRef: inputRef
174
161
  }),
175
162
  overlayProps = _useOverlayPosition.overlayProps,
176
163
  placement = _useOverlayPosition.placement,
@@ -184,15 +171,31 @@ var PasswordField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
184
171
  }
185
172
  }, [isFocused, updatePosition]);
186
173
 
187
- var style = _objectSpread(_objectSpread({}, overlayProps.style), {}, {
188
- width: menuWidth,
189
- minWidth: menuWidth
190
- });
174
+ var style = _objectSpread({
175
+ minWidth: menuWidth,
176
+ width: menuWidth
177
+ }, overlayProps.style);
191
178
 
192
- var _useStatusClasses = (0, _hooks.useStatusClasses)(fieldControlProps.className, {
179
+ var _hooks$useStatusClass = hooks.useStatusClasses(fieldControlProps.className, {
193
180
  'is-success': status === _statuses["default"].SUCCESS || checkRequirements() && requirements.length > 0
194
181
  }),
195
- classNames = _useStatusClasses.classNames;
182
+ classNames = _hooks$useStatusClass.classNames;
183
+
184
+ var toggleShowPasswordAriaLabel = isVisible ? ARIA_LABELS_FOR_SHOW_PASSWORD_TOGGLE.HIDE : ARIA_LABELS_FOR_SHOW_PASSWORD_TOGGLE.SHOW;
185
+
186
+ var handleToggleShowPassword = function handleToggleShowPassword() {
187
+ setIsShown(!isVisible);
188
+
189
+ if (onVisibleChangeProp) {
190
+ var _context;
191
+
192
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
193
+ args[_key] = arguments[_key];
194
+ }
195
+
196
+ onVisibleChangeProp.apply(void 0, (0, _concat["default"])(_context = [!isVisible]).call(_context, args));
197
+ }
198
+ };
196
199
 
197
200
  return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
198
201
  variant: "forms.input.wrapper"
@@ -211,23 +214,23 @@ var PasswordField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
211
214
  })), (0, _react2.jsx)(_Box["default"], {
212
215
  variant: "forms.input.containedIcon"
213
216
  }, (0, _react2.jsx)(_IconButton["default"], {
214
- "aria-label": "visible-icon",
217
+ "aria-label": toggleShowPasswordAriaLabel,
215
218
  isDisabled: fieldControlProps.disabled,
216
- size: 28,
217
- onPress: onVisibleChange
219
+ onPress: handleToggleShowPassword,
220
+ size: 28
218
221
  }, (0, _react2.jsx)(_Icon["default"], {
219
222
  "data-testid": isVisible ? viewIconTestId : viewHiddenIconTestId,
220
223
  icon: isVisible ? _EyeOutlineIcon["default"] : _EyeOffOutlineIcon["default"]
221
224
  }))), slots === null || slots === void 0 ? void 0 : slots.inContainer), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
222
225
  status: status
223
226
  }, helperText)), (0, _react2.jsx)(_PopoverContainer["default"], {
224
- isOpen: isFocused && requirements && (0, _isArray["default"])(requirements) && !checkRequirements(),
225
- ref: popoverRef,
226
- placement: placement,
227
- style: style,
228
227
  hasNoArrow: true,
228
+ isDismissable: false,
229
229
  isNonModal: true,
230
- isDismissable: false
230
+ isOpen: isFocused && requirements && (0, _isArray["default"])(requirements) && !checkRequirements(),
231
+ placement: placement,
232
+ ref: popoverRef,
233
+ style: style
231
234
  }, (0, _react2.jsx)(_RequirementsList["default"], {
232
235
  requirements: requirements
233
236
  })));
@@ -340,9 +343,9 @@ PasswordField.defaultProps = {
340
343
  isDisabled: false,
341
344
  isReadOnly: false,
342
345
  isRequired: false,
343
- type: 'password',
346
+ requirements: [],
344
347
  status: _statuses["default"].DEFAULT,
345
- requirements: []
348
+ type: 'password'
346
349
  };
347
350
  PasswordField.displayName = 'PasswordField';
348
351
  var _default = PasswordField;
@@ -61,7 +61,7 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
61
61
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
62
62
 
63
63
  /**
64
- * PopoverContainer component used for popover on SelectField, ComboBox, and PopoverMenu.
64
+ * PopoverContainer component used for popover on SelectField, ComboBox & PopoverMenu.
65
65
  */
66
66
  var PopoverContainer = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
67
67
  var children = props.children,
@@ -26,6 +26,8 @@ var _focus = require("@react-aria/focus");
26
26
 
27
27
  var _collections = require("@react-stately/collections");
28
28
 
29
+ var _AccountIcon = _interopRequireDefault(require("mdi-react/AccountIcon"));
30
+
29
31
  var _CloseIcon = _interopRequireDefault(require("mdi-react/CloseIcon"));
30
32
 
31
33
  var _MoreVertIcon = _interopRequireDefault(require("mdi-react/MoreVertIcon"));
@@ -52,7 +54,8 @@ var items = [{
52
54
  email: 'dburkitt5@columbia.edu',
53
55
  firstName: 'Nicola',
54
56
  lastName: 'Burkitt',
55
- avatar: _images.pingImg
57
+ hasIcon: true,
58
+ avatar: _AccountIcon["default"]
56
59
  }, {
57
60
  email: 'idixie2@elegantthemes.com',
58
61
  firstName: 'Cacilia',
@@ -67,52 +70,62 @@ var items = [{
67
70
  email: 'jgolde8@jimdo.com',
68
71
  firstName: 'Celisse',
69
72
  lastName: 'Golde',
70
- avatar: _images.pingImg
73
+ hasIcon: true,
74
+ avatar: _AccountIcon["default"]
71
75
  }, {
72
76
  email: 'shearst9@answers.com',
73
77
  firstName: 'Jeth',
74
78
  lastName: 'Hearst',
75
- avatar: _images.pingImg
79
+ hasIcon: true,
80
+ avatar: _AccountIcon["default"]
76
81
  }, {
77
82
  email: 'ajinaa@mapquest.com',
78
83
  firstName: 'Kaycee',
79
84
  lastName: 'Jina',
80
- avatar: _images.pingImg
85
+ hasIcon: true,
86
+ avatar: _AccountIcon["default"]
81
87
  }, {
82
88
  email: 'vmalster4@biblegateway.com',
83
89
  firstName: 'Lorry',
84
90
  lastName: 'Malster',
85
- avatar: _images.pingImg
91
+ hasIcon: true,
92
+ avatar: _AccountIcon["default"]
86
93
  }, {
87
94
  email: 'yphipp6@yellowpages.com',
88
95
  firstName: 'Stanley',
89
96
  lastName: 'Phipp',
90
- avatar: _images.pingImg
97
+ hasIcon: true,
98
+ avatar: _AccountIcon["default"]
91
99
  }, {
92
100
  email: 'mskilbeck3@bbc.co.uk',
93
101
  firstName: 'Gradey',
94
102
  lastName: 'Skilbeck',
95
- avatar: _images.pingImg
103
+ hasIcon: true,
104
+ avatar: _AccountIcon["default"]
96
105
  }, {
97
106
  email: 'dstebbing1@msu.edu',
98
107
  firstName: 'Marnia',
99
108
  lastName: 'Stebbing',
100
- avatar: _images.pingImg
109
+ hasIcon: true,
110
+ avatar: _AccountIcon["default"]
101
111
  }, {
102
112
  email: 'lsterley7@lulu.com',
103
113
  firstName: 'Joshua',
104
114
  lastName: 'Sterley',
105
- avatar: _images.pingImg
115
+ hasIcon: true,
116
+ avatar: _AccountIcon["default"]
106
117
  }, {
107
118
  email: 'luttleyb@hugedomains.com',
108
119
  firstName: 'Jarrod',
109
120
  lastName: 'Uttley',
110
- avatar: _images.pingImg
121
+ hasIcon: true,
122
+ avatar: _AccountIcon["default"]
111
123
  }, {
112
124
  email: 'lidelc@yelp.com',
113
125
  firstName: 'Andromache',
114
126
  lastName: 'Idel',
115
- avatar: _images.pingImg,
127
+ hasIcon: true,
128
+ avatar: _AccountIcon["default"],
116
129
  hasSeparator: false
117
130
  }];
118
131
 
@@ -126,7 +139,13 @@ var ListElement = function ListElement(_ref) {
126
139
  isRow: true,
127
140
  mr: "auto",
128
141
  alignItems: "center"
129
- }, (0, _react2.jsx)(_index.Avatar, {
142
+ }, item.hasIcon ? (0, _react2.jsx)(_index.Icon, {
143
+ icon: item.avatar,
144
+ alignSelf: "center",
145
+ size: 24,
146
+ mr: "sm",
147
+ color: "accent.40"
148
+ }) : (0, _react2.jsx)(_index.Avatar, {
130
149
  mr: "md",
131
150
  sx: {
132
151
  width: '25px',
@@ -205,8 +224,11 @@ var Default = function Default() {
205
224
  return (0, _react2.jsx)(_index.Box, {
206
225
  px: "lg",
207
226
  py: "lg",
208
- bg: "accent.99"
227
+ bg: "accent.99",
228
+ height: "900px",
229
+ overflowY: "scroll"
209
230
  }, (0, _react2.jsx)(_index.SearchField, {
231
+ position: "fixed",
210
232
  mb: "sm",
211
233
  width: "400px",
212
234
  placeholder: "Search",
@@ -262,6 +284,7 @@ var Default = function Default() {
262
284
  }, (0, _react2.jsx)(_index.Tab, {
263
285
  title: "Profile"
264
286
  }, selectedItemId >= 0 && (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_index.IconButton, {
287
+ variant: "inverted",
265
288
  sx: {
266
289
  position: 'absolute',
267
290
  top: 0,