@dspworkplace/ui 2.1.3 → 2.1.5

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/dist/index.js CHANGED
@@ -4837,9 +4837,19 @@ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if
4837
4837
 
4838
4838
  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4839
4839
 
4840
- function _templateObject12() {
4840
+ function _templateObject13() {
4841
4841
  var data = taggedTemplateLiteral(["\n border: 0;\n padding-right: 8px;\n background: transparent;\n cursor: inherit;\n display: flex;\n align-items: center;\n height: 100%;\n"]);
4842
4842
 
4843
+ _templateObject13 = function _templateObject13() {
4844
+ return data;
4845
+ };
4846
+
4847
+ return data;
4848
+ }
4849
+
4850
+ function _templateObject12() {
4851
+ var data = taggedTemplateLiteral(["\n flex: 1;\n min-width: 0;\n border: 0;\n outline: 0;\n padding: 0;\n background: transparent;\n cursor: inherit;\n font-family: inherit;\n font-size: ", ";\n line-height: ", ";\n color: ", ";\n padding-left: ", ";\n\n\n &::placeholder {\n color: ", ";\n opacity: 1;\n }\n"]);
4852
+
4843
4853
  _templateObject12 = function _templateObject12() {
4844
4854
  return data;
4845
4855
  };
@@ -4848,7 +4858,7 @@ function _templateObject12() {
4848
4858
  }
4849
4859
 
4850
4860
  function _templateObject11() {
4851
- var data = taggedTemplateLiteral(["\n flex: 1;\n min-width: 0;\n border: 0;\n outline: 0;\n padding: 0;\n background: transparent;\n cursor: inherit;\n font-family: inherit;\n font-size: ", ";\n line-height: ", ";\n color: ", ";\n padding-left: 8px;\n\n\n &::placeholder {\n color: ", ";\n opacity: 1;\n }\n"]);
4861
+ var data = taggedTemplateLiteral(["\n display: flex;\n isolation: isolate;\n padding-left: 8px;\n"]);
4852
4862
 
4853
4863
  _templateObject11 = function _templateObject11() {
4854
4864
  return data;
@@ -4858,7 +4868,7 @@ function _templateObject11() {
4858
4868
  }
4859
4869
 
4860
4870
  function _templateObject10() {
4861
- var data = taggedTemplateLiteral(["\n height: 24px;\n width: 24px;\n box-sizing: border-box;\n margin-right: 5px;\n border-radius: 100%;\n border: 2px solid white;\n background: ", "\n z-index: ", ";\n margin-left: ", "\n margin-top: 8px;\n margin-bottom: 8px;\n display: inline-block;\n"]);
4871
+ var data = taggedTemplateLiteral(["\n height: 16px;\n width: 16px;\n box-sizing: border-box;\n border-radius: 100%;\n border: 2px solid white;\n background: ", ";\n z-index: ", ";\n margin-left: ", "\n margin-right: 8px;\n margin-top: 8px;\n margin-bottom: 8px;\n display: inline-block;\n"]);
4862
4872
 
4863
4873
  _templateObject10 = function _templateObject10() {
4864
4874
  return data;
@@ -5012,6 +5022,17 @@ var ColorOption = styled__default.span(_templateObject10(), function (props) {
5012
5022
  }, function (props) {
5013
5023
  return props.index > 0 ? '-19px' : '0';
5014
5024
  });
5025
+ var Swatches = styled__default.span(_templateObject11());
5026
+
5027
+ var renderSwatches = function renderSwatches(colors) {
5028
+ return colors.length > 0 && /*#__PURE__*/React__default.createElement(Swatches, null, colors.slice(0, 3).map(function (color, index) {
5029
+ return /*#__PURE__*/React__default.createElement(ColorOption, {
5030
+ key: index,
5031
+ index: index,
5032
+ color: color
5033
+ });
5034
+ }));
5035
+ };
5015
5036
 
5016
5037
  var getSelected = function getSelected(options, defaultValue) {
5017
5038
  var selected;
@@ -5021,15 +5042,24 @@ var getSelected = function getSelected(options, defaultValue) {
5021
5042
  return selected;
5022
5043
  };
5023
5044
 
5024
- var SearchInput = styled__default.input(_templateObject11(), theme.font.medium.size, theme.font.medium.lineHeight, theme.colors.neutrals.gray, function (props) {
5045
+ var SearchInput = styled__default.input(_templateObject12(), theme.font.medium.size, theme.font.medium.lineHeight, theme.colors.neutrals.gray, function (_ref3) {
5046
+ var hasSwatch = _ref3.hasSwatch;
5047
+ return hasSwatch ? 0 : '8px';
5048
+ }, function (props) {
5025
5049
  return props.hasSelection ? theme.colors.neutrals.gray : theme.colors.neutrals.medium;
5026
5050
  });
5027
- var ToggleButton = styled__default.button(_templateObject12());
5051
+ var ToggleButton = styled__default.button(_templateObject13());
5028
5052
 
5029
5053
  var isOption = function isOption(item) {
5030
5054
  return item.value !== undefined && item.value !== null;
5031
5055
  };
5032
5056
 
5057
+ var scrollIntoView = function scrollIntoView(element) {
5058
+ return element && element.scrollIntoView({
5059
+ block: 'nearest'
5060
+ });
5061
+ };
5062
+
5033
5063
  var flattenOptions = function flattenOptions(options) {
5034
5064
  var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
5035
5065
  return (options || []).reduce(function (rows, item) {
@@ -5046,15 +5076,32 @@ var optionText = function optionText(node) {
5046
5076
  if (typeof node === 'string' || typeof node === 'number') return node.toString();
5047
5077
  if (Array.isArray(node)) return node.map(optionText).join('');
5048
5078
  return node.props ? optionText(node.props.children) : '';
5079
+ };
5080
+
5081
+ var matchOptions = function matchOptions(items, text) {
5082
+ if (!text) return items;
5083
+ var query = text.toLowerCase();
5084
+ return items.map(function (item) {
5085
+ return {
5086
+ item: item,
5087
+ at: optionText(item.name).toLowerCase().indexOf(query)
5088
+ };
5089
+ }).filter(function (match) {
5090
+ return match.at >= 0;
5091
+ }).sort(function (a, b) {
5092
+ return (a.at > 0) - (b.at > 0);
5093
+ }).map(function (match) {
5094
+ return match.item;
5095
+ });
5049
5096
  }; // rendered in document.body so overflow on any ancestor cannot clip it; popper flips and shifts it to stay in the viewport
5050
5097
  // eslint-disable-next-line react/prop-types
5051
5098
 
5052
5099
 
5053
- var FloatingOptions = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
5054
- var anchor = _ref3.anchor,
5055
- openTo = _ref3.openTo,
5056
- style = _ref3.style,
5057
- props = objectWithoutProperties(_ref3, ["anchor", "openTo", "style"]);
5100
+ var FloatingOptions = /*#__PURE__*/React.forwardRef(function (_ref4, ref) {
5101
+ var anchor = _ref4.anchor,
5102
+ openTo = _ref4.openTo,
5103
+ style = _ref4.style,
5104
+ props = objectWithoutProperties(_ref4, ["anchor", "openTo", "style"]);
5058
5105
 
5059
5106
  var _useState = React.useState(null),
5060
5107
  _useState2 = slicedToArray(_useState, 2),
@@ -5098,21 +5145,21 @@ var FloatingOptions = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
5098
5145
  }, attributes.popper, props)), document.body);
5099
5146
  }); // eslint-disable-next-line react/prop-types
5100
5147
 
5101
- var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5102
- var options = _ref4.options,
5103
- selectedOpt = _ref4.selectedOpt,
5104
- setSelected = _ref4.setSelected,
5105
- onChange = _ref4.onChange,
5106
- onSelect = _ref4.onSelect,
5107
- placeholder = _ref4.placeholder,
5108
- error = _ref4.error,
5109
- valid = _ref4.valid,
5110
- noOptions = _ref4.noOptions,
5111
- visibleOptionsQty = _ref4.visibleOptionsQty,
5112
- openTo = _ref4.openTo,
5113
- startOpen = _ref4.startOpen,
5114
- resetCallback = _ref4.resetCallback,
5115
- props = objectWithoutProperties(_ref4, ["options", "selectedOpt", "setSelected", "onChange", "onSelect", "placeholder", "error", "valid", "noOptions", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
5148
+ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
5149
+ var options = _ref5.options,
5150
+ selectedOpt = _ref5.selectedOpt,
5151
+ setSelected = _ref5.setSelected,
5152
+ onChange = _ref5.onChange,
5153
+ onSelect = _ref5.onSelect,
5154
+ placeholder = _ref5.placeholder,
5155
+ error = _ref5.error,
5156
+ valid = _ref5.valid,
5157
+ noOptions = _ref5.noOptions,
5158
+ visibleOptionsQty = _ref5.visibleOptionsQty,
5159
+ openTo = _ref5.openTo,
5160
+ startOpen = _ref5.startOpen,
5161
+ resetCallback = _ref5.resetCallback,
5162
+ props = objectWithoutProperties(_ref5, ["options", "selectedOpt", "setSelected", "onChange", "onSelect", "placeholder", "error", "valid", "noOptions", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
5116
5163
 
5117
5164
  var _useState3 = React.useState(),
5118
5165
  _useState4 = slicedToArray(_useState3, 2),
@@ -5130,24 +5177,18 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5130
5177
  }).map(function (row) {
5131
5178
  return row.item;
5132
5179
  });
5133
-
5134
- var filterItems = function filterItems(text) {
5135
- return text ? selectable.filter(function (item) {
5136
- return optionText(item.name).toLowerCase().startsWith(text.toLowerCase());
5137
- }) : selectable;
5138
- };
5139
-
5140
- var items = filterItems(search);
5180
+ var items = matchOptions(selectable, search);
5141
5181
  var hasSelection = selectedOpt.value.length > 0;
5142
5182
  var selectedText = optionText(selectedOpt.desc);
5183
+ var selectedItem = selectable.find(function (item) {
5184
+ return item.value.toString() === selectedOpt.value;
5185
+ });
5143
5186
 
5144
5187
  var _useCombobox = reactAutocomplete.useCombobox({
5145
5188
  items: items,
5146
5189
  value: search || '',
5147
5190
  onChange: setSearch,
5148
- selected: selectable.find(function (item) {
5149
- return item.value.toString() === selectedOpt.value;
5150
- }),
5191
+ selected: selectedItem,
5151
5192
  onSelectChange: function onSelectChange(item) {
5152
5193
  if (!item) return;
5153
5194
  if (onSelect) onSelect(item);
@@ -5165,12 +5206,16 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5165
5206
  },
5166
5207
  disabled: props.disabled,
5167
5208
  feature: reactAutocomplete.supercomplete({
5168
- onRequestItem: function onRequestItem(_ref5, res) {
5169
- var value = _ref5.value;
5170
- var matches = filterItems(value);
5171
- if (matches.length > 0) res({
5209
+ onRequestItem: function onRequestItem(_ref6, res) {
5210
+ var value = _ref6.value;
5211
+
5212
+ var _matchOptions = matchOptions(selectable, value),
5213
+ _matchOptions2 = slicedToArray(_matchOptions, 1),
5214
+ first = _matchOptions2[0];
5215
+
5216
+ if (first && optionText(first.name).toLowerCase().startsWith(value.toLowerCase())) res({
5172
5217
  index: 0,
5173
- item: matches[0]
5218
+ item: first
5174
5219
  });
5175
5220
  },
5176
5221
  select: true,
@@ -5188,16 +5233,23 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5188
5233
  React.useEffect(function () {
5189
5234
  if (startOpen) setOpen(true);
5190
5235
  }, []);
5236
+ var inputProps = getInputProps();
5237
+ var shownText = inputProps.value.toLowerCase();
5238
+ var shownItem = shownText ? [items[focusIndex]].concat(toConsumableArray(selectable)).find(function (item) {
5239
+ return item && optionText(item.name).toLowerCase() === shownText;
5240
+ }) : selectedItem;
5241
+ var swatchColors = shownItem && shownItem.color ? [shownItem.color] : [];
5191
5242
  var index = -1;
5192
5243
  return /*#__PURE__*/React__default.createElement(SelectUi$1, _extends_1({
5193
5244
  ref: setAnchor,
5194
5245
  className: [open && 'open', error && 'error', valid && 'valid'].filter(Boolean).join(' ')
5195
5246
  }, props, {
5196
5247
  title: selectedText
5197
- }), /*#__PURE__*/React__default.createElement(SearchInput, _extends_1({
5248
+ }), renderSwatches(swatchColors), /*#__PURE__*/React__default.createElement(SearchInput, _extends_1({
5198
5249
  placeholder: hasSelection ? selectedText : placeholder,
5199
- hasSelection: hasSelection
5200
- }, getInputProps())), /*#__PURE__*/React__default.createElement(ToggleButton, getToggleProps(), open ? /*#__PURE__*/React__default.createElement(Icons.ArrowUp, {
5250
+ hasSelection: hasSelection,
5251
+ hasSwatch: swatchColors.length > 0
5252
+ }, inputProps)), /*#__PURE__*/React__default.createElement(ToggleButton, getToggleProps(), open ? /*#__PURE__*/React__default.createElement(Icons.ArrowUp, {
5201
5253
  size: "15px",
5202
5254
  color: theme.colors.info.border
5203
5255
  }) : /*#__PURE__*/React__default.createElement(Icons.ArrowDown, {
@@ -5216,9 +5268,9 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5216
5268
  item: item,
5217
5269
  depth: 0
5218
5270
  };
5219
- }) : rows).map(function (_ref6, key) {
5220
- var item = _ref6.item,
5221
- depth = _ref6.depth;
5271
+ }) : rows).map(function (_ref7, key) {
5272
+ var item = _ref7.item,
5273
+ depth = _ref7.depth;
5222
5274
 
5223
5275
  if (!isOption(item)) {
5224
5276
  return /*#__PURE__*/React__default.createElement(OptionGroup$1, {
@@ -5235,12 +5287,15 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5235
5287
  className: item.divider ? 'alone' : '',
5236
5288
  style: {
5237
5289
  paddingLeft: 8 + depth * 16,
5238
- background: focusIndex === index ? theme.colors.info.bg : undefined
5290
+ // overrides li:hover, so a resting mouse does not keep a second row lit
5291
+ background: focusIndex === index ? theme.colors.info.bg : 'transparent'
5239
5292
  }
5240
5293
  }, getItemProps({
5241
5294
  item: item,
5242
5295
  index: index
5243
- })), /*#__PURE__*/React__default.createElement(Value$1, {
5296
+ })), item.color && /*#__PURE__*/React__default.createElement(ColorOption, {
5297
+ color: item.color
5298
+ }), /*#__PURE__*/React__default.createElement(Value$1, {
5244
5299
  option: true,
5245
5300
  style: {
5246
5301
  marginRight: 4
@@ -5256,18 +5311,18 @@ var summarizeSelection = function summarizeSelection(names) {
5256
5311
  }; // eslint-disable-next-line react/prop-types
5257
5312
 
5258
5313
 
5259
- var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5260
- var options = _ref7.options,
5261
- selectedValues = _ref7.selectedValues,
5262
- onToggle = _ref7.onToggle,
5263
- placeholder = _ref7.placeholder,
5264
- error = _ref7.error,
5265
- valid = _ref7.valid,
5266
- noOptions = _ref7.noOptions,
5267
- visibleOptionsQty = _ref7.visibleOptionsQty,
5268
- openTo = _ref7.openTo,
5269
- startOpen = _ref7.startOpen,
5270
- props = objectWithoutProperties(_ref7, ["options", "selectedValues", "onToggle", "placeholder", "error", "valid", "noOptions", "visibleOptionsQty", "openTo", "startOpen"]);
5314
+ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
5315
+ var options = _ref8.options,
5316
+ selectedValues = _ref8.selectedValues,
5317
+ onToggle = _ref8.onToggle,
5318
+ placeholder = _ref8.placeholder,
5319
+ error = _ref8.error,
5320
+ valid = _ref8.valid,
5321
+ noOptions = _ref8.noOptions,
5322
+ visibleOptionsQty = _ref8.visibleOptionsQty,
5323
+ openTo = _ref8.openTo,
5324
+ startOpen = _ref8.startOpen,
5325
+ props = objectWithoutProperties(_ref8, ["options", "selectedValues", "onToggle", "placeholder", "error", "valid", "noOptions", "visibleOptionsQty", "openTo", "startOpen"]);
5271
5326
 
5272
5327
  var _useState7 = React.useState(''),
5273
5328
  _useState8 = slicedToArray(_useState7, 2),
@@ -5279,22 +5334,30 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5279
5334
  open = _useState10[0],
5280
5335
  setOpen = _useState10[1];
5281
5336
 
5282
- var _useState11 = React.useState(null),
5337
+ var _useState11 = React.useState(-1),
5283
5338
  _useState12 = slicedToArray(_useState11, 2),
5284
- anchor = _useState12[0],
5285
- setAnchor = _useState12[1];
5339
+ focusIndex = _useState12[0],
5340
+ setFocusIndex = _useState12[1];
5341
+
5342
+ var _useState13 = React.useState(null),
5343
+ _useState14 = slicedToArray(_useState13, 2),
5344
+ anchor = _useState14[0],
5345
+ setAnchor = _useState14[1];
5286
5346
 
5287
5347
  var nodeRef = React.useRef();
5288
5348
  var listRef = React.useRef();
5289
5349
  var setNode = React.useCallback(mergeRefs([nodeRef, setAnchor]), []);
5350
+
5351
+ var close = function close() {
5352
+ setOpen(false);
5353
+ setSearch('');
5354
+ setFocusIndex(-1);
5355
+ };
5356
+
5290
5357
  React.useEffect(function () {
5291
5358
  var closeOnOutsideClick = function closeOnOutsideClick(e) {
5292
5359
  var inList = listRef.current && listRef.current.contains(e.target);
5293
-
5294
- if (nodeRef.current && !nodeRef.current.contains(e.target) && !inList) {
5295
- setOpen(false);
5296
- setSearch('');
5297
- }
5360
+ if (nodeRef.current && !nodeRef.current.contains(e.target) && !inList) close();
5298
5361
  };
5299
5362
 
5300
5363
  document.addEventListener('mousedown', closeOnOutsideClick);
@@ -5308,14 +5371,19 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5308
5371
  }).map(function (row) {
5309
5372
  return row.item;
5310
5373
  });
5311
- var items = search ? selectable.filter(function (item) {
5312
- return optionText(item.name).toLowerCase().startsWith(search.toLowerCase());
5313
- }) : selectable;
5314
- var summary = summarizeSelection(selectable.filter(function (item) {
5374
+ var items = matchOptions(selectable, search);
5375
+ var selectedItems = selectable.filter(function (item) {
5315
5376
  return selectedValues.includes(item.value.toString());
5316
- }).map(function (item) {
5377
+ });
5378
+ var summary = summarizeSelection(selectedItems.map(function (item) {
5317
5379
  return optionText(item.name);
5318
5380
  }));
5381
+ var selectedColors = search ? [] : selectedItems.filter(function (item) {
5382
+ return item.color;
5383
+ }).map(function (item) {
5384
+ return item.color;
5385
+ });
5386
+ var index = -1;
5319
5387
  return /*#__PURE__*/React__default.createElement(SelectUi$1, _extends_1({
5320
5388
  ref: setNode,
5321
5389
  className: [open && 'open', error && 'error', valid && 'valid'].filter(Boolean).join(' ')
@@ -5324,19 +5392,38 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5324
5392
  onClick: function onClick() {
5325
5393
  return !props.disabled && setOpen(true);
5326
5394
  }
5327
- }), /*#__PURE__*/React__default.createElement(SearchInput, {
5395
+ }), renderSwatches(selectedColors), /*#__PURE__*/React__default.createElement(SearchInput, {
5328
5396
  value: search,
5329
5397
  placeholder: summary || placeholder,
5330
5398
  hasSelection: summary.length > 0,
5399
+ hasSwatch: selectedColors.length > 0,
5331
5400
  disabled: props.disabled,
5332
5401
  onChange: function onChange(e) {
5333
5402
  setSearch(e.target.value);
5334
5403
  setOpen(true);
5404
+ setFocusIndex(-1);
5335
5405
  },
5336
5406
  onKeyDown: function onKeyDown(e) {
5337
- if (e.key === 'Escape') {
5338
- setOpen(false);
5339
- setSearch('');
5407
+ switch (e.key) {
5408
+ case 'ArrowDown':
5409
+ case 'ArrowUp':
5410
+ {
5411
+ e.preventDefault();
5412
+ var last = items.length - 1;
5413
+ if (!open) setOpen(true);else if (e.key === 'ArrowDown') setFocusIndex(focusIndex >= last ? 0 : focusIndex + 1);else setFocusIndex(focusIndex <= 0 ? last : focusIndex - 1);
5414
+ break;
5415
+ }
5416
+
5417
+ case 'Enter':
5418
+ if (open && items[focusIndex]) {
5419
+ e.preventDefault();
5420
+ onToggle(items[focusIndex]);
5421
+ }
5422
+
5423
+ break;
5424
+
5425
+ case 'Escape':
5426
+ close();
5340
5427
  }
5341
5428
  }
5342
5429
  }), /*#__PURE__*/React__default.createElement(ToggleButton, {
@@ -5344,7 +5431,9 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5344
5431
  tabIndex: -1,
5345
5432
  onClick: function onClick(e) {
5346
5433
  e.stopPropagation();
5347
- if (!props.disabled) setOpen(!open);
5434
+ if (props.disabled) return;
5435
+ setOpen(!open);
5436
+ setFocusIndex(-1);
5348
5437
  }
5349
5438
  }, open ? /*#__PURE__*/React__default.createElement(Icons.ArrowUp, {
5350
5439
  size: "15px",
@@ -5366,9 +5455,9 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5366
5455
  item: item,
5367
5456
  depth: 0
5368
5457
  };
5369
- }) : rows).map(function (_ref8, key) {
5370
- var item = _ref8.item,
5371
- depth = _ref8.depth;
5458
+ }) : rows).map(function (_ref9, key) {
5459
+ var item = _ref9.item,
5460
+ depth = _ref9.depth;
5372
5461
 
5373
5462
  if (!isOption(item)) {
5374
5463
  return /*#__PURE__*/React__default.createElement(OptionGroup$1, {
@@ -5379,11 +5468,18 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5379
5468
  }, item.name);
5380
5469
  }
5381
5470
 
5471
+ var itemIndex = ++index;
5382
5472
  return /*#__PURE__*/React__default.createElement("li", {
5383
5473
  key: key,
5474
+ ref: itemIndex === focusIndex ? scrollIntoView : undefined,
5384
5475
  style: {
5385
5476
  paddingLeft: 8 + depth * 16,
5386
- justifyContent: 'flex-start'
5477
+ justifyContent: 'flex-start',
5478
+ // overrides li:hover, so a resting mouse does not keep a second row lit
5479
+ background: itemIndex === focusIndex ? theme.colors.info.bg : 'transparent'
5480
+ },
5481
+ onPointerMove: function onPointerMove() {
5482
+ return setFocusIndex(itemIndex);
5387
5483
  },
5388
5484
  onMouseDown: function onMouseDown(e) {
5389
5485
  return e.preventDefault();
@@ -5394,7 +5490,9 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5394
5490
  }
5395
5491
  }, /*#__PURE__*/React__default.createElement(CustomCheckBox, null, selectedValues.includes(item.value.toString()) && /*#__PURE__*/React__default.createElement(Icons.Check, {
5396
5492
  size: "17px"
5397
- })), /*#__PURE__*/React__default.createElement(Value$1, {
5493
+ })), item.color && /*#__PURE__*/React__default.createElement(ColorOption, {
5494
+ color: item.color
5495
+ }), /*#__PURE__*/React__default.createElement(Value$1, {
5398
5496
  option: true,
5399
5497
  style: {
5400
5498
  marginRight: 4
@@ -5403,27 +5501,27 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5403
5501
  })));
5404
5502
  };
5405
5503
 
5406
- var MultiDropdown = /*#__PURE__*/React.forwardRef(function (_ref9, ref) {
5407
- var name = _ref9.name,
5408
- label = _ref9.label,
5409
- help = _ref9.help,
5410
- error = _ref9.error,
5411
- valid = _ref9.valid,
5412
- options = _ref9.options,
5413
- placeholder = _ref9.placeholder,
5414
- onChange = _ref9.onChange,
5415
- defaultValue = _ref9.defaultValue,
5416
- visibleOptionsQty = _ref9.visibleOptionsQty,
5417
- openTo = _ref9.openTo,
5418
- _ref9$startOpen = _ref9.startOpen,
5419
- startOpen = _ref9$startOpen === void 0 ? false : _ref9$startOpen,
5420
- resetCallback = _ref9.resetCallback,
5421
- props = objectWithoutProperties(_ref9, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
5422
-
5423
- var _useState13 = React.useState([]),
5424
- _useState14 = slicedToArray(_useState13, 2),
5425
- selectedValues = _useState14[0],
5426
- setSelectedValues = _useState14[1];
5504
+ var MultiDropdown = /*#__PURE__*/React.forwardRef(function (_ref10, ref) {
5505
+ var name = _ref10.name,
5506
+ label = _ref10.label,
5507
+ help = _ref10.help,
5508
+ error = _ref10.error,
5509
+ valid = _ref10.valid,
5510
+ options = _ref10.options,
5511
+ placeholder = _ref10.placeholder,
5512
+ onChange = _ref10.onChange,
5513
+ defaultValue = _ref10.defaultValue,
5514
+ visibleOptionsQty = _ref10.visibleOptionsQty,
5515
+ openTo = _ref10.openTo,
5516
+ _ref10$startOpen = _ref10.startOpen,
5517
+ startOpen = _ref10$startOpen === void 0 ? false : _ref10$startOpen,
5518
+ resetCallback = _ref10.resetCallback,
5519
+ props = objectWithoutProperties(_ref10, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
5520
+
5521
+ var _useState15 = React.useState([]),
5522
+ _useState16 = slicedToArray(_useState15, 2),
5523
+ selectedValues = _useState16[0],
5524
+ setSelectedValues = _useState16[1];
5427
5525
 
5428
5526
  var valueRef = React.useRef();
5429
5527
  var selectable = flattenOptions(options).filter(function (row) {
@@ -5510,31 +5608,31 @@ var MultiDropdown = /*#__PURE__*/React.forwardRef(function (_ref9, ref) {
5510
5608
  }, optionText(item.name));
5511
5609
  })));
5512
5610
  });
5513
- var SingleDropdown = /*#__PURE__*/React.forwardRef(function (_ref10, ref) {
5514
- var name = _ref10.name,
5515
- label = _ref10.label,
5516
- help = _ref10.help,
5517
- error = _ref10.error,
5518
- valid = _ref10.valid,
5519
- options = _ref10.options,
5520
- placeholder = _ref10.placeholder,
5521
- onChange = _ref10.onChange,
5522
- defaultValue = _ref10.defaultValue,
5523
- visibleOptionsQty = _ref10.visibleOptionsQty,
5524
- openTo = _ref10.openTo,
5525
- _ref10$startOpen = _ref10.startOpen,
5526
- startOpen = _ref10$startOpen === void 0 ? false : _ref10$startOpen,
5527
- props = objectWithoutProperties(_ref10, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen"]);
5611
+ var SingleDropdown = /*#__PURE__*/React.forwardRef(function (_ref11, ref) {
5612
+ var name = _ref11.name,
5613
+ label = _ref11.label,
5614
+ help = _ref11.help,
5615
+ error = _ref11.error,
5616
+ valid = _ref11.valid,
5617
+ options = _ref11.options,
5618
+ placeholder = _ref11.placeholder,
5619
+ onChange = _ref11.onChange,
5620
+ defaultValue = _ref11.defaultValue,
5621
+ visibleOptionsQty = _ref11.visibleOptionsQty,
5622
+ openTo = _ref11.openTo,
5623
+ _ref11$startOpen = _ref11.startOpen,
5624
+ startOpen = _ref11$startOpen === void 0 ? false : _ref11$startOpen,
5625
+ props = objectWithoutProperties(_ref11, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen"]);
5528
5626
 
5529
5627
  var defaultSelected = {
5530
5628
  value: '',
5531
5629
  desc: ''
5532
5630
  };
5533
5631
 
5534
- var _useState15 = React.useState(defaultSelected),
5535
- _useState16 = slicedToArray(_useState15, 2),
5536
- selectedOpt = _useState16[0],
5537
- setSelected = _useState16[1];
5632
+ var _useState17 = React.useState(defaultSelected),
5633
+ _useState18 = slicedToArray(_useState17, 2),
5634
+ selectedOpt = _useState18[0],
5635
+ setSelected = _useState18[1];
5538
5636
 
5539
5637
  var valueRef = React.useRef();
5540
5638
 
@@ -5616,9 +5714,9 @@ var SingleDropdown = /*#__PURE__*/React.forwardRef(function (_ref10, ref) {
5616
5714
  disabled: props.disabled
5617
5715
  }));
5618
5716
  });
5619
- var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref11, ref) {
5620
- var multiple = _ref11.multiple,
5621
- props = objectWithoutProperties(_ref11, ["multiple"]);
5717
+ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
5718
+ var multiple = _ref12.multiple,
5719
+ props = objectWithoutProperties(_ref12, ["multiple"]);
5622
5720
 
5623
5721
  return multiple ? /*#__PURE__*/React__default.createElement(MultiDropdown, _extends_1({
5624
5722
  ref: ref
@@ -5627,17 +5725,17 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref11, ref) {
5627
5725
  }, props));
5628
5726
  }); // eslint-disable-next-line react/prop-types
5629
5727
 
5630
- var BoxOptions = function BoxOptions(_ref12) {
5631
- var options = _ref12.options,
5632
- isChild = _ref12.isChild,
5633
- setSelected = _ref12.setSelected,
5634
- onChange = _ref12.onChange,
5635
- noOptions = _ref12.noOptions,
5636
- selectedOpt = _ref12.selectedOpt,
5637
- setOpen = _ref12.setOpen,
5638
- onSelect = _ref12.onSelect,
5639
- visibleOptionsQty = _ref12.visibleOptionsQty,
5640
- openTo = _ref12.openTo;
5728
+ var BoxOptions = function BoxOptions(_ref13) {
5729
+ var options = _ref13.options,
5730
+ isChild = _ref13.isChild,
5731
+ setSelected = _ref13.setSelected,
5732
+ onChange = _ref13.onChange,
5733
+ noOptions = _ref13.noOptions,
5734
+ selectedOpt = _ref13.selectedOpt,
5735
+ setOpen = _ref13.setOpen,
5736
+ onSelect = _ref13.onSelect,
5737
+ visibleOptionsQty = _ref13.visibleOptionsQty,
5738
+ openTo = _ref13.openTo;
5641
5739
 
5642
5740
  if (!options) {
5643
5741
  return /*#__PURE__*/React__default.createElement(Options$1, null, /*#__PURE__*/React__default.createElement("li", {
@@ -5709,32 +5807,32 @@ var BoxOptions = function BoxOptions(_ref12) {
5709
5807
  })) : /*#__PURE__*/React__default.createElement(OptionGroup$1, null, item.name));
5710
5808
  }));
5711
5809
  };
5712
- var CustomDropdown = /*#__PURE__*/React.forwardRef(function (_ref13, ref) {
5713
- var name = _ref13.name,
5714
- label = _ref13.label,
5715
- help = _ref13.help,
5716
- error = _ref13.error,
5717
- valid = _ref13.valid,
5718
- options = _ref13.options,
5719
- placeholder = _ref13.placeholder,
5720
- defaultValue = _ref13.defaultValue,
5721
- multiple = _ref13.multiple,
5722
- type = _ref13.type,
5723
- tooltip = _ref13.tooltip,
5724
- onChange = _ref13.onChange,
5725
- visibleOptionsQty = _ref13.visibleOptionsQty,
5726
- openTo = _ref13.openTo,
5727
- props = objectWithoutProperties(_ref13, ["name", "label", "help", "error", "valid", "options", "placeholder", "defaultValue", "multiple", "type", "tooltip", "onChange", "visibleOptionsQty", "openTo"]);
5728
-
5729
- var _useState17 = React.useState(false),
5730
- _useState18 = slicedToArray(_useState17, 2),
5731
- open = _useState18[0],
5732
- setOpen = _useState18[1];
5810
+ var CustomDropdown = /*#__PURE__*/React.forwardRef(function (_ref14, ref) {
5811
+ var name = _ref14.name,
5812
+ label = _ref14.label,
5813
+ help = _ref14.help,
5814
+ error = _ref14.error,
5815
+ valid = _ref14.valid,
5816
+ options = _ref14.options,
5817
+ placeholder = _ref14.placeholder,
5818
+ defaultValue = _ref14.defaultValue,
5819
+ multiple = _ref14.multiple,
5820
+ type = _ref14.type,
5821
+ tooltip = _ref14.tooltip,
5822
+ onChange = _ref14.onChange,
5823
+ visibleOptionsQty = _ref14.visibleOptionsQty,
5824
+ openTo = _ref14.openTo,
5825
+ props = objectWithoutProperties(_ref14, ["name", "label", "help", "error", "valid", "options", "placeholder", "defaultValue", "multiple", "type", "tooltip", "onChange", "visibleOptionsQty", "openTo"]);
5733
5826
 
5734
- var _useState19 = React.useState([]),
5827
+ var _useState19 = React.useState(false),
5735
5828
  _useState20 = slicedToArray(_useState19, 2),
5736
- selectedOpt = _useState20[0],
5737
- setSelected = _useState20[1];
5829
+ open = _useState20[0],
5830
+ setOpen = _useState20[1];
5831
+
5832
+ var _useState21 = React.useState([]),
5833
+ _useState22 = slicedToArray(_useState21, 2),
5834
+ selectedOpt = _useState22[0],
5835
+ setSelected = _useState22[1];
5738
5836
 
5739
5837
  var nodeSelect = React.useRef();
5740
5838
  var valueRef = React.useRef();
@@ -5960,16 +6058,16 @@ var HandleState = function HandleState(index, setSelected, selectedOpt, multiple
5960
6058
  setSelected(ret);
5961
6059
  };
5962
6060
 
5963
- var SelectOption = function SelectOption(_ref14) {
5964
- var options = _ref14.options,
5965
- setSelected = _ref14.setSelected,
5966
- selectedOpt = _ref14.selectedOpt,
5967
- multiple = _ref14.multiple,
5968
- type = _ref14.type,
5969
- onChange = _ref14.onChange,
5970
- noOptions = _ref14.noOptions,
5971
- visibleOptionsQty = _ref14.visibleOptionsQty,
5972
- openTo = _ref14.openTo;
6061
+ var SelectOption = function SelectOption(_ref15) {
6062
+ var options = _ref15.options,
6063
+ setSelected = _ref15.setSelected,
6064
+ selectedOpt = _ref15.selectedOpt,
6065
+ multiple = _ref15.multiple,
6066
+ type = _ref15.type,
6067
+ onChange = _ref15.onChange,
6068
+ noOptions = _ref15.noOptions,
6069
+ visibleOptionsQty = _ref15.visibleOptionsQty,
6070
+ openTo = _ref15.openTo;
5973
6071
 
5974
6072
  if (!options) {
5975
6073
  return /*#__PURE__*/React__default.createElement(OptionsPeople, null, /*#__PURE__*/React__default.createElement("li", null, noOptions || 'No data found'));
@@ -6004,9 +6102,9 @@ var SelectOption = function SelectOption(_ref14) {
6004
6102
  }));
6005
6103
  };
6006
6104
 
6007
- var PhotoComponent = function PhotoComponent(_ref15) {
6008
- var profile = _ref15.profile,
6009
- index = _ref15.index;
6105
+ var PhotoComponent = function PhotoComponent(_ref16) {
6106
+ var profile = _ref16.profile,
6107
+ index = _ref16.index;
6010
6108
  var customStyle = {
6011
6109
  position: 'relative',
6012
6110
  display: 'inline-flex',
@@ -6030,11 +6128,11 @@ var PhotoComponent = function PhotoComponent(_ref15) {
6030
6128
  }));
6031
6129
  };
6032
6130
 
6033
- var SelectValueRender = function SelectValueRender(_ref16) {
6034
- var options = _ref16.options,
6035
- selectedOpt = _ref16.selectedOpt,
6036
- type = _ref16.type,
6037
- noOptions = _ref16.noOptions;
6131
+ var SelectValueRender = function SelectValueRender(_ref17) {
6132
+ var options = _ref17.options,
6133
+ selectedOpt = _ref17.selectedOpt,
6134
+ type = _ref17.type,
6135
+ noOptions = _ref17.noOptions;
6038
6136
 
6039
6137
  if (!options) {
6040
6138
  return /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement("div", {