@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.es.js CHANGED
@@ -4829,9 +4829,19 @@ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if
4829
4829
 
4830
4830
  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; }
4831
4831
 
4832
- function _templateObject12() {
4832
+ function _templateObject13() {
4833
4833
  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"]);
4834
4834
 
4835
+ _templateObject13 = function _templateObject13() {
4836
+ return data;
4837
+ };
4838
+
4839
+ return data;
4840
+ }
4841
+
4842
+ function _templateObject12() {
4843
+ 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"]);
4844
+
4835
4845
  _templateObject12 = function _templateObject12() {
4836
4846
  return data;
4837
4847
  };
@@ -4840,7 +4850,7 @@ function _templateObject12() {
4840
4850
  }
4841
4851
 
4842
4852
  function _templateObject11() {
4843
- 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"]);
4853
+ var data = taggedTemplateLiteral(["\n display: flex;\n isolation: isolate;\n padding-left: 8px;\n"]);
4844
4854
 
4845
4855
  _templateObject11 = function _templateObject11() {
4846
4856
  return data;
@@ -4850,7 +4860,7 @@ function _templateObject11() {
4850
4860
  }
4851
4861
 
4852
4862
  function _templateObject10() {
4853
- 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"]);
4863
+ 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"]);
4854
4864
 
4855
4865
  _templateObject10 = function _templateObject10() {
4856
4866
  return data;
@@ -5004,6 +5014,17 @@ var ColorOption = styled.span(_templateObject10(), function (props) {
5004
5014
  }, function (props) {
5005
5015
  return props.index > 0 ? '-19px' : '0';
5006
5016
  });
5017
+ var Swatches = styled.span(_templateObject11());
5018
+
5019
+ var renderSwatches = function renderSwatches(colors) {
5020
+ return colors.length > 0 && /*#__PURE__*/React.createElement(Swatches, null, colors.slice(0, 3).map(function (color, index) {
5021
+ return /*#__PURE__*/React.createElement(ColorOption, {
5022
+ key: index,
5023
+ index: index,
5024
+ color: color
5025
+ });
5026
+ }));
5027
+ };
5007
5028
 
5008
5029
  var getSelected = function getSelected(options, defaultValue) {
5009
5030
  var selected;
@@ -5013,15 +5034,24 @@ var getSelected = function getSelected(options, defaultValue) {
5013
5034
  return selected;
5014
5035
  };
5015
5036
 
5016
- var SearchInput = styled.input(_templateObject11(), theme.font.medium.size, theme.font.medium.lineHeight, theme.colors.neutrals.gray, function (props) {
5037
+ var SearchInput = styled.input(_templateObject12(), theme.font.medium.size, theme.font.medium.lineHeight, theme.colors.neutrals.gray, function (_ref3) {
5038
+ var hasSwatch = _ref3.hasSwatch;
5039
+ return hasSwatch ? 0 : '8px';
5040
+ }, function (props) {
5017
5041
  return props.hasSelection ? theme.colors.neutrals.gray : theme.colors.neutrals.medium;
5018
5042
  });
5019
- var ToggleButton = styled.button(_templateObject12());
5043
+ var ToggleButton = styled.button(_templateObject13());
5020
5044
 
5021
5045
  var isOption = function isOption(item) {
5022
5046
  return item.value !== undefined && item.value !== null;
5023
5047
  };
5024
5048
 
5049
+ var scrollIntoView = function scrollIntoView(element) {
5050
+ return element && element.scrollIntoView({
5051
+ block: 'nearest'
5052
+ });
5053
+ };
5054
+
5025
5055
  var flattenOptions = function flattenOptions(options) {
5026
5056
  var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
5027
5057
  return (options || []).reduce(function (rows, item) {
@@ -5038,15 +5068,32 @@ var optionText = function optionText(node) {
5038
5068
  if (typeof node === 'string' || typeof node === 'number') return node.toString();
5039
5069
  if (Array.isArray(node)) return node.map(optionText).join('');
5040
5070
  return node.props ? optionText(node.props.children) : '';
5071
+ };
5072
+
5073
+ var matchOptions = function matchOptions(items, text) {
5074
+ if (!text) return items;
5075
+ var query = text.toLowerCase();
5076
+ return items.map(function (item) {
5077
+ return {
5078
+ item: item,
5079
+ at: optionText(item.name).toLowerCase().indexOf(query)
5080
+ };
5081
+ }).filter(function (match) {
5082
+ return match.at >= 0;
5083
+ }).sort(function (a, b) {
5084
+ return (a.at > 0) - (b.at > 0);
5085
+ }).map(function (match) {
5086
+ return match.item;
5087
+ });
5041
5088
  }; // rendered in document.body so overflow on any ancestor cannot clip it; popper flips and shifts it to stay in the viewport
5042
5089
  // eslint-disable-next-line react/prop-types
5043
5090
 
5044
5091
 
5045
- var FloatingOptions = /*#__PURE__*/forwardRef(function (_ref3, ref) {
5046
- var anchor = _ref3.anchor,
5047
- openTo = _ref3.openTo,
5048
- style = _ref3.style,
5049
- props = objectWithoutProperties(_ref3, ["anchor", "openTo", "style"]);
5092
+ var FloatingOptions = /*#__PURE__*/forwardRef(function (_ref4, ref) {
5093
+ var anchor = _ref4.anchor,
5094
+ openTo = _ref4.openTo,
5095
+ style = _ref4.style,
5096
+ props = objectWithoutProperties(_ref4, ["anchor", "openTo", "style"]);
5050
5097
 
5051
5098
  var _useState = useState(null),
5052
5099
  _useState2 = slicedToArray(_useState, 2),
@@ -5090,21 +5137,21 @@ var FloatingOptions = /*#__PURE__*/forwardRef(function (_ref3, ref) {
5090
5137
  }, attributes.popper, props)), document.body);
5091
5138
  }); // eslint-disable-next-line react/prop-types
5092
5139
 
5093
- var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5094
- var options = _ref4.options,
5095
- selectedOpt = _ref4.selectedOpt,
5096
- setSelected = _ref4.setSelected,
5097
- onChange = _ref4.onChange,
5098
- onSelect = _ref4.onSelect,
5099
- placeholder = _ref4.placeholder,
5100
- error = _ref4.error,
5101
- valid = _ref4.valid,
5102
- noOptions = _ref4.noOptions,
5103
- visibleOptionsQty = _ref4.visibleOptionsQty,
5104
- openTo = _ref4.openTo,
5105
- startOpen = _ref4.startOpen,
5106
- resetCallback = _ref4.resetCallback,
5107
- props = objectWithoutProperties(_ref4, ["options", "selectedOpt", "setSelected", "onChange", "onSelect", "placeholder", "error", "valid", "noOptions", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
5140
+ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
5141
+ var options = _ref5.options,
5142
+ selectedOpt = _ref5.selectedOpt,
5143
+ setSelected = _ref5.setSelected,
5144
+ onChange = _ref5.onChange,
5145
+ onSelect = _ref5.onSelect,
5146
+ placeholder = _ref5.placeholder,
5147
+ error = _ref5.error,
5148
+ valid = _ref5.valid,
5149
+ noOptions = _ref5.noOptions,
5150
+ visibleOptionsQty = _ref5.visibleOptionsQty,
5151
+ openTo = _ref5.openTo,
5152
+ startOpen = _ref5.startOpen,
5153
+ resetCallback = _ref5.resetCallback,
5154
+ props = objectWithoutProperties(_ref5, ["options", "selectedOpt", "setSelected", "onChange", "onSelect", "placeholder", "error", "valid", "noOptions", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
5108
5155
 
5109
5156
  var _useState3 = useState(),
5110
5157
  _useState4 = slicedToArray(_useState3, 2),
@@ -5122,24 +5169,18 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5122
5169
  }).map(function (row) {
5123
5170
  return row.item;
5124
5171
  });
5125
-
5126
- var filterItems = function filterItems(text) {
5127
- return text ? selectable.filter(function (item) {
5128
- return optionText(item.name).toLowerCase().startsWith(text.toLowerCase());
5129
- }) : selectable;
5130
- };
5131
-
5132
- var items = filterItems(search);
5172
+ var items = matchOptions(selectable, search);
5133
5173
  var hasSelection = selectedOpt.value.length > 0;
5134
5174
  var selectedText = optionText(selectedOpt.desc);
5175
+ var selectedItem = selectable.find(function (item) {
5176
+ return item.value.toString() === selectedOpt.value;
5177
+ });
5135
5178
 
5136
5179
  var _useCombobox = useCombobox({
5137
5180
  items: items,
5138
5181
  value: search || '',
5139
5182
  onChange: setSearch,
5140
- selected: selectable.find(function (item) {
5141
- return item.value.toString() === selectedOpt.value;
5142
- }),
5183
+ selected: selectedItem,
5143
5184
  onSelectChange: function onSelectChange(item) {
5144
5185
  if (!item) return;
5145
5186
  if (onSelect) onSelect(item);
@@ -5157,12 +5198,16 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5157
5198
  },
5158
5199
  disabled: props.disabled,
5159
5200
  feature: supercomplete({
5160
- onRequestItem: function onRequestItem(_ref5, res) {
5161
- var value = _ref5.value;
5162
- var matches = filterItems(value);
5163
- if (matches.length > 0) res({
5201
+ onRequestItem: function onRequestItem(_ref6, res) {
5202
+ var value = _ref6.value;
5203
+
5204
+ var _matchOptions = matchOptions(selectable, value),
5205
+ _matchOptions2 = slicedToArray(_matchOptions, 1),
5206
+ first = _matchOptions2[0];
5207
+
5208
+ if (first && optionText(first.name).toLowerCase().startsWith(value.toLowerCase())) res({
5164
5209
  index: 0,
5165
- item: matches[0]
5210
+ item: first
5166
5211
  });
5167
5212
  },
5168
5213
  select: true,
@@ -5180,16 +5225,23 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5180
5225
  useEffect(function () {
5181
5226
  if (startOpen) setOpen(true);
5182
5227
  }, []);
5228
+ var inputProps = getInputProps();
5229
+ var shownText = inputProps.value.toLowerCase();
5230
+ var shownItem = shownText ? [items[focusIndex]].concat(toConsumableArray(selectable)).find(function (item) {
5231
+ return item && optionText(item.name).toLowerCase() === shownText;
5232
+ }) : selectedItem;
5233
+ var swatchColors = shownItem && shownItem.color ? [shownItem.color] : [];
5183
5234
  var index = -1;
5184
5235
  return /*#__PURE__*/React.createElement(SelectUi$1, _extends_1({
5185
5236
  ref: setAnchor,
5186
5237
  className: [open && 'open', error && 'error', valid && 'valid'].filter(Boolean).join(' ')
5187
5238
  }, props, {
5188
5239
  title: selectedText
5189
- }), /*#__PURE__*/React.createElement(SearchInput, _extends_1({
5240
+ }), renderSwatches(swatchColors), /*#__PURE__*/React.createElement(SearchInput, _extends_1({
5190
5241
  placeholder: hasSelection ? selectedText : placeholder,
5191
- hasSelection: hasSelection
5192
- }, getInputProps())), /*#__PURE__*/React.createElement(ToggleButton, getToggleProps(), open ? /*#__PURE__*/React.createElement(Icons.ArrowUp, {
5242
+ hasSelection: hasSelection,
5243
+ hasSwatch: swatchColors.length > 0
5244
+ }, inputProps)), /*#__PURE__*/React.createElement(ToggleButton, getToggleProps(), open ? /*#__PURE__*/React.createElement(Icons.ArrowUp, {
5193
5245
  size: "15px",
5194
5246
  color: theme.colors.info.border
5195
5247
  }) : /*#__PURE__*/React.createElement(Icons.ArrowDown, {
@@ -5208,9 +5260,9 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5208
5260
  item: item,
5209
5261
  depth: 0
5210
5262
  };
5211
- }) : rows).map(function (_ref6, key) {
5212
- var item = _ref6.item,
5213
- depth = _ref6.depth;
5263
+ }) : rows).map(function (_ref7, key) {
5264
+ var item = _ref7.item,
5265
+ depth = _ref7.depth;
5214
5266
 
5215
5267
  if (!isOption(item)) {
5216
5268
  return /*#__PURE__*/React.createElement(OptionGroup$1, {
@@ -5227,12 +5279,15 @@ var AutocompleteSelect = function AutocompleteSelect(_ref4) {
5227
5279
  className: item.divider ? 'alone' : '',
5228
5280
  style: {
5229
5281
  paddingLeft: 8 + depth * 16,
5230
- background: focusIndex === index ? theme.colors.info.bg : undefined
5282
+ // overrides li:hover, so a resting mouse does not keep a second row lit
5283
+ background: focusIndex === index ? theme.colors.info.bg : 'transparent'
5231
5284
  }
5232
5285
  }, getItemProps({
5233
5286
  item: item,
5234
5287
  index: index
5235
- })), /*#__PURE__*/React.createElement(Value$1, {
5288
+ })), item.color && /*#__PURE__*/React.createElement(ColorOption, {
5289
+ color: item.color
5290
+ }), /*#__PURE__*/React.createElement(Value$1, {
5236
5291
  option: true,
5237
5292
  style: {
5238
5293
  marginRight: 4
@@ -5248,18 +5303,18 @@ var summarizeSelection = function summarizeSelection(names) {
5248
5303
  }; // eslint-disable-next-line react/prop-types
5249
5304
 
5250
5305
 
5251
- var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5252
- var options = _ref7.options,
5253
- selectedValues = _ref7.selectedValues,
5254
- onToggle = _ref7.onToggle,
5255
- placeholder = _ref7.placeholder,
5256
- error = _ref7.error,
5257
- valid = _ref7.valid,
5258
- noOptions = _ref7.noOptions,
5259
- visibleOptionsQty = _ref7.visibleOptionsQty,
5260
- openTo = _ref7.openTo,
5261
- startOpen = _ref7.startOpen,
5262
- props = objectWithoutProperties(_ref7, ["options", "selectedValues", "onToggle", "placeholder", "error", "valid", "noOptions", "visibleOptionsQty", "openTo", "startOpen"]);
5306
+ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
5307
+ var options = _ref8.options,
5308
+ selectedValues = _ref8.selectedValues,
5309
+ onToggle = _ref8.onToggle,
5310
+ placeholder = _ref8.placeholder,
5311
+ error = _ref8.error,
5312
+ valid = _ref8.valid,
5313
+ noOptions = _ref8.noOptions,
5314
+ visibleOptionsQty = _ref8.visibleOptionsQty,
5315
+ openTo = _ref8.openTo,
5316
+ startOpen = _ref8.startOpen,
5317
+ props = objectWithoutProperties(_ref8, ["options", "selectedValues", "onToggle", "placeholder", "error", "valid", "noOptions", "visibleOptionsQty", "openTo", "startOpen"]);
5263
5318
 
5264
5319
  var _useState7 = useState(''),
5265
5320
  _useState8 = slicedToArray(_useState7, 2),
@@ -5271,22 +5326,30 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5271
5326
  open = _useState10[0],
5272
5327
  setOpen = _useState10[1];
5273
5328
 
5274
- var _useState11 = useState(null),
5329
+ var _useState11 = useState(-1),
5275
5330
  _useState12 = slicedToArray(_useState11, 2),
5276
- anchor = _useState12[0],
5277
- setAnchor = _useState12[1];
5331
+ focusIndex = _useState12[0],
5332
+ setFocusIndex = _useState12[1];
5333
+
5334
+ var _useState13 = useState(null),
5335
+ _useState14 = slicedToArray(_useState13, 2),
5336
+ anchor = _useState14[0],
5337
+ setAnchor = _useState14[1];
5278
5338
 
5279
5339
  var nodeRef = useRef();
5280
5340
  var listRef = useRef();
5281
5341
  var setNode = useCallback(mergeRefs([nodeRef, setAnchor]), []);
5342
+
5343
+ var close = function close() {
5344
+ setOpen(false);
5345
+ setSearch('');
5346
+ setFocusIndex(-1);
5347
+ };
5348
+
5282
5349
  useEffect(function () {
5283
5350
  var closeOnOutsideClick = function closeOnOutsideClick(e) {
5284
5351
  var inList = listRef.current && listRef.current.contains(e.target);
5285
-
5286
- if (nodeRef.current && !nodeRef.current.contains(e.target) && !inList) {
5287
- setOpen(false);
5288
- setSearch('');
5289
- }
5352
+ if (nodeRef.current && !nodeRef.current.contains(e.target) && !inList) close();
5290
5353
  };
5291
5354
 
5292
5355
  document.addEventListener('mousedown', closeOnOutsideClick);
@@ -5300,14 +5363,19 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5300
5363
  }).map(function (row) {
5301
5364
  return row.item;
5302
5365
  });
5303
- var items = search ? selectable.filter(function (item) {
5304
- return optionText(item.name).toLowerCase().startsWith(search.toLowerCase());
5305
- }) : selectable;
5306
- var summary = summarizeSelection(selectable.filter(function (item) {
5366
+ var items = matchOptions(selectable, search);
5367
+ var selectedItems = selectable.filter(function (item) {
5307
5368
  return selectedValues.includes(item.value.toString());
5308
- }).map(function (item) {
5369
+ });
5370
+ var summary = summarizeSelection(selectedItems.map(function (item) {
5309
5371
  return optionText(item.name);
5310
5372
  }));
5373
+ var selectedColors = search ? [] : selectedItems.filter(function (item) {
5374
+ return item.color;
5375
+ }).map(function (item) {
5376
+ return item.color;
5377
+ });
5378
+ var index = -1;
5311
5379
  return /*#__PURE__*/React.createElement(SelectUi$1, _extends_1({
5312
5380
  ref: setNode,
5313
5381
  className: [open && 'open', error && 'error', valid && 'valid'].filter(Boolean).join(' ')
@@ -5316,19 +5384,38 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5316
5384
  onClick: function onClick() {
5317
5385
  return !props.disabled && setOpen(true);
5318
5386
  }
5319
- }), /*#__PURE__*/React.createElement(SearchInput, {
5387
+ }), renderSwatches(selectedColors), /*#__PURE__*/React.createElement(SearchInput, {
5320
5388
  value: search,
5321
5389
  placeholder: summary || placeholder,
5322
5390
  hasSelection: summary.length > 0,
5391
+ hasSwatch: selectedColors.length > 0,
5323
5392
  disabled: props.disabled,
5324
5393
  onChange: function onChange(e) {
5325
5394
  setSearch(e.target.value);
5326
5395
  setOpen(true);
5396
+ setFocusIndex(-1);
5327
5397
  },
5328
5398
  onKeyDown: function onKeyDown(e) {
5329
- if (e.key === 'Escape') {
5330
- setOpen(false);
5331
- setSearch('');
5399
+ switch (e.key) {
5400
+ case 'ArrowDown':
5401
+ case 'ArrowUp':
5402
+ {
5403
+ e.preventDefault();
5404
+ var last = items.length - 1;
5405
+ if (!open) setOpen(true);else if (e.key === 'ArrowDown') setFocusIndex(focusIndex >= last ? 0 : focusIndex + 1);else setFocusIndex(focusIndex <= 0 ? last : focusIndex - 1);
5406
+ break;
5407
+ }
5408
+
5409
+ case 'Enter':
5410
+ if (open && items[focusIndex]) {
5411
+ e.preventDefault();
5412
+ onToggle(items[focusIndex]);
5413
+ }
5414
+
5415
+ break;
5416
+
5417
+ case 'Escape':
5418
+ close();
5332
5419
  }
5333
5420
  }
5334
5421
  }), /*#__PURE__*/React.createElement(ToggleButton, {
@@ -5336,7 +5423,9 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5336
5423
  tabIndex: -1,
5337
5424
  onClick: function onClick(e) {
5338
5425
  e.stopPropagation();
5339
- if (!props.disabled) setOpen(!open);
5426
+ if (props.disabled) return;
5427
+ setOpen(!open);
5428
+ setFocusIndex(-1);
5340
5429
  }
5341
5430
  }, open ? /*#__PURE__*/React.createElement(Icons.ArrowUp, {
5342
5431
  size: "15px",
@@ -5358,9 +5447,9 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5358
5447
  item: item,
5359
5448
  depth: 0
5360
5449
  };
5361
- }) : rows).map(function (_ref8, key) {
5362
- var item = _ref8.item,
5363
- depth = _ref8.depth;
5450
+ }) : rows).map(function (_ref9, key) {
5451
+ var item = _ref9.item,
5452
+ depth = _ref9.depth;
5364
5453
 
5365
5454
  if (!isOption(item)) {
5366
5455
  return /*#__PURE__*/React.createElement(OptionGroup$1, {
@@ -5371,11 +5460,18 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5371
5460
  }, item.name);
5372
5461
  }
5373
5462
 
5463
+ var itemIndex = ++index;
5374
5464
  return /*#__PURE__*/React.createElement("li", {
5375
5465
  key: key,
5466
+ ref: itemIndex === focusIndex ? scrollIntoView : undefined,
5376
5467
  style: {
5377
5468
  paddingLeft: 8 + depth * 16,
5378
- justifyContent: 'flex-start'
5469
+ justifyContent: 'flex-start',
5470
+ // overrides li:hover, so a resting mouse does not keep a second row lit
5471
+ background: itemIndex === focusIndex ? theme.colors.info.bg : 'transparent'
5472
+ },
5473
+ onPointerMove: function onPointerMove() {
5474
+ return setFocusIndex(itemIndex);
5379
5475
  },
5380
5476
  onMouseDown: function onMouseDown(e) {
5381
5477
  return e.preventDefault();
@@ -5386,7 +5482,9 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5386
5482
  }
5387
5483
  }, /*#__PURE__*/React.createElement(CustomCheckBox, null, selectedValues.includes(item.value.toString()) && /*#__PURE__*/React.createElement(Icons.Check, {
5388
5484
  size: "17px"
5389
- })), /*#__PURE__*/React.createElement(Value$1, {
5485
+ })), item.color && /*#__PURE__*/React.createElement(ColorOption, {
5486
+ color: item.color
5487
+ }), /*#__PURE__*/React.createElement(Value$1, {
5390
5488
  option: true,
5391
5489
  style: {
5392
5490
  marginRight: 4
@@ -5395,27 +5493,27 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref7) {
5395
5493
  })));
5396
5494
  };
5397
5495
 
5398
- var MultiDropdown = /*#__PURE__*/forwardRef(function (_ref9, ref) {
5399
- var name = _ref9.name,
5400
- label = _ref9.label,
5401
- help = _ref9.help,
5402
- error = _ref9.error,
5403
- valid = _ref9.valid,
5404
- options = _ref9.options,
5405
- placeholder = _ref9.placeholder,
5406
- onChange = _ref9.onChange,
5407
- defaultValue = _ref9.defaultValue,
5408
- visibleOptionsQty = _ref9.visibleOptionsQty,
5409
- openTo = _ref9.openTo,
5410
- _ref9$startOpen = _ref9.startOpen,
5411
- startOpen = _ref9$startOpen === void 0 ? false : _ref9$startOpen,
5412
- resetCallback = _ref9.resetCallback,
5413
- props = objectWithoutProperties(_ref9, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
5414
-
5415
- var _useState13 = useState([]),
5416
- _useState14 = slicedToArray(_useState13, 2),
5417
- selectedValues = _useState14[0],
5418
- setSelectedValues = _useState14[1];
5496
+ var MultiDropdown = /*#__PURE__*/forwardRef(function (_ref10, ref) {
5497
+ var name = _ref10.name,
5498
+ label = _ref10.label,
5499
+ help = _ref10.help,
5500
+ error = _ref10.error,
5501
+ valid = _ref10.valid,
5502
+ options = _ref10.options,
5503
+ placeholder = _ref10.placeholder,
5504
+ onChange = _ref10.onChange,
5505
+ defaultValue = _ref10.defaultValue,
5506
+ visibleOptionsQty = _ref10.visibleOptionsQty,
5507
+ openTo = _ref10.openTo,
5508
+ _ref10$startOpen = _ref10.startOpen,
5509
+ startOpen = _ref10$startOpen === void 0 ? false : _ref10$startOpen,
5510
+ resetCallback = _ref10.resetCallback,
5511
+ props = objectWithoutProperties(_ref10, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
5512
+
5513
+ var _useState15 = useState([]),
5514
+ _useState16 = slicedToArray(_useState15, 2),
5515
+ selectedValues = _useState16[0],
5516
+ setSelectedValues = _useState16[1];
5419
5517
 
5420
5518
  var valueRef = useRef();
5421
5519
  var selectable = flattenOptions(options).filter(function (row) {
@@ -5502,31 +5600,31 @@ var MultiDropdown = /*#__PURE__*/forwardRef(function (_ref9, ref) {
5502
5600
  }, optionText(item.name));
5503
5601
  })));
5504
5602
  });
5505
- var SingleDropdown = /*#__PURE__*/forwardRef(function (_ref10, ref) {
5506
- var name = _ref10.name,
5507
- label = _ref10.label,
5508
- help = _ref10.help,
5509
- error = _ref10.error,
5510
- valid = _ref10.valid,
5511
- options = _ref10.options,
5512
- placeholder = _ref10.placeholder,
5513
- onChange = _ref10.onChange,
5514
- defaultValue = _ref10.defaultValue,
5515
- visibleOptionsQty = _ref10.visibleOptionsQty,
5516
- openTo = _ref10.openTo,
5517
- _ref10$startOpen = _ref10.startOpen,
5518
- startOpen = _ref10$startOpen === void 0 ? false : _ref10$startOpen,
5519
- props = objectWithoutProperties(_ref10, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen"]);
5603
+ var SingleDropdown = /*#__PURE__*/forwardRef(function (_ref11, ref) {
5604
+ var name = _ref11.name,
5605
+ label = _ref11.label,
5606
+ help = _ref11.help,
5607
+ error = _ref11.error,
5608
+ valid = _ref11.valid,
5609
+ options = _ref11.options,
5610
+ placeholder = _ref11.placeholder,
5611
+ onChange = _ref11.onChange,
5612
+ defaultValue = _ref11.defaultValue,
5613
+ visibleOptionsQty = _ref11.visibleOptionsQty,
5614
+ openTo = _ref11.openTo,
5615
+ _ref11$startOpen = _ref11.startOpen,
5616
+ startOpen = _ref11$startOpen === void 0 ? false : _ref11$startOpen,
5617
+ props = objectWithoutProperties(_ref11, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen"]);
5520
5618
 
5521
5619
  var defaultSelected = {
5522
5620
  value: '',
5523
5621
  desc: ''
5524
5622
  };
5525
5623
 
5526
- var _useState15 = useState(defaultSelected),
5527
- _useState16 = slicedToArray(_useState15, 2),
5528
- selectedOpt = _useState16[0],
5529
- setSelected = _useState16[1];
5624
+ var _useState17 = useState(defaultSelected),
5625
+ _useState18 = slicedToArray(_useState17, 2),
5626
+ selectedOpt = _useState18[0],
5627
+ setSelected = _useState18[1];
5530
5628
 
5531
5629
  var valueRef = useRef();
5532
5630
 
@@ -5608,9 +5706,9 @@ var SingleDropdown = /*#__PURE__*/forwardRef(function (_ref10, ref) {
5608
5706
  disabled: props.disabled
5609
5707
  }));
5610
5708
  });
5611
- var Dropdown = /*#__PURE__*/forwardRef(function (_ref11, ref) {
5612
- var multiple = _ref11.multiple,
5613
- props = objectWithoutProperties(_ref11, ["multiple"]);
5709
+ var Dropdown = /*#__PURE__*/forwardRef(function (_ref12, ref) {
5710
+ var multiple = _ref12.multiple,
5711
+ props = objectWithoutProperties(_ref12, ["multiple"]);
5614
5712
 
5615
5713
  return multiple ? /*#__PURE__*/React.createElement(MultiDropdown, _extends_1({
5616
5714
  ref: ref
@@ -5619,17 +5717,17 @@ var Dropdown = /*#__PURE__*/forwardRef(function (_ref11, ref) {
5619
5717
  }, props));
5620
5718
  }); // eslint-disable-next-line react/prop-types
5621
5719
 
5622
- var BoxOptions = function BoxOptions(_ref12) {
5623
- var options = _ref12.options,
5624
- isChild = _ref12.isChild,
5625
- setSelected = _ref12.setSelected,
5626
- onChange = _ref12.onChange,
5627
- noOptions = _ref12.noOptions,
5628
- selectedOpt = _ref12.selectedOpt,
5629
- setOpen = _ref12.setOpen,
5630
- onSelect = _ref12.onSelect,
5631
- visibleOptionsQty = _ref12.visibleOptionsQty,
5632
- openTo = _ref12.openTo;
5720
+ var BoxOptions = function BoxOptions(_ref13) {
5721
+ var options = _ref13.options,
5722
+ isChild = _ref13.isChild,
5723
+ setSelected = _ref13.setSelected,
5724
+ onChange = _ref13.onChange,
5725
+ noOptions = _ref13.noOptions,
5726
+ selectedOpt = _ref13.selectedOpt,
5727
+ setOpen = _ref13.setOpen,
5728
+ onSelect = _ref13.onSelect,
5729
+ visibleOptionsQty = _ref13.visibleOptionsQty,
5730
+ openTo = _ref13.openTo;
5633
5731
 
5634
5732
  if (!options) {
5635
5733
  return /*#__PURE__*/React.createElement(Options$1, null, /*#__PURE__*/React.createElement("li", {
@@ -5701,32 +5799,32 @@ var BoxOptions = function BoxOptions(_ref12) {
5701
5799
  })) : /*#__PURE__*/React.createElement(OptionGroup$1, null, item.name));
5702
5800
  }));
5703
5801
  };
5704
- var CustomDropdown = /*#__PURE__*/forwardRef(function (_ref13, ref) {
5705
- var name = _ref13.name,
5706
- label = _ref13.label,
5707
- help = _ref13.help,
5708
- error = _ref13.error,
5709
- valid = _ref13.valid,
5710
- options = _ref13.options,
5711
- placeholder = _ref13.placeholder,
5712
- defaultValue = _ref13.defaultValue,
5713
- multiple = _ref13.multiple,
5714
- type = _ref13.type,
5715
- tooltip = _ref13.tooltip,
5716
- onChange = _ref13.onChange,
5717
- visibleOptionsQty = _ref13.visibleOptionsQty,
5718
- openTo = _ref13.openTo,
5719
- props = objectWithoutProperties(_ref13, ["name", "label", "help", "error", "valid", "options", "placeholder", "defaultValue", "multiple", "type", "tooltip", "onChange", "visibleOptionsQty", "openTo"]);
5720
-
5721
- var _useState17 = useState(false),
5722
- _useState18 = slicedToArray(_useState17, 2),
5723
- open = _useState18[0],
5724
- setOpen = _useState18[1];
5802
+ var CustomDropdown = /*#__PURE__*/forwardRef(function (_ref14, ref) {
5803
+ var name = _ref14.name,
5804
+ label = _ref14.label,
5805
+ help = _ref14.help,
5806
+ error = _ref14.error,
5807
+ valid = _ref14.valid,
5808
+ options = _ref14.options,
5809
+ placeholder = _ref14.placeholder,
5810
+ defaultValue = _ref14.defaultValue,
5811
+ multiple = _ref14.multiple,
5812
+ type = _ref14.type,
5813
+ tooltip = _ref14.tooltip,
5814
+ onChange = _ref14.onChange,
5815
+ visibleOptionsQty = _ref14.visibleOptionsQty,
5816
+ openTo = _ref14.openTo,
5817
+ props = objectWithoutProperties(_ref14, ["name", "label", "help", "error", "valid", "options", "placeholder", "defaultValue", "multiple", "type", "tooltip", "onChange", "visibleOptionsQty", "openTo"]);
5725
5818
 
5726
- var _useState19 = useState([]),
5819
+ var _useState19 = useState(false),
5727
5820
  _useState20 = slicedToArray(_useState19, 2),
5728
- selectedOpt = _useState20[0],
5729
- setSelected = _useState20[1];
5821
+ open = _useState20[0],
5822
+ setOpen = _useState20[1];
5823
+
5824
+ var _useState21 = useState([]),
5825
+ _useState22 = slicedToArray(_useState21, 2),
5826
+ selectedOpt = _useState22[0],
5827
+ setSelected = _useState22[1];
5730
5828
 
5731
5829
  var nodeSelect = useRef();
5732
5830
  var valueRef = useRef();
@@ -5952,16 +6050,16 @@ var HandleState = function HandleState(index, setSelected, selectedOpt, multiple
5952
6050
  setSelected(ret);
5953
6051
  };
5954
6052
 
5955
- var SelectOption = function SelectOption(_ref14) {
5956
- var options = _ref14.options,
5957
- setSelected = _ref14.setSelected,
5958
- selectedOpt = _ref14.selectedOpt,
5959
- multiple = _ref14.multiple,
5960
- type = _ref14.type,
5961
- onChange = _ref14.onChange,
5962
- noOptions = _ref14.noOptions,
5963
- visibleOptionsQty = _ref14.visibleOptionsQty,
5964
- openTo = _ref14.openTo;
6053
+ var SelectOption = function SelectOption(_ref15) {
6054
+ var options = _ref15.options,
6055
+ setSelected = _ref15.setSelected,
6056
+ selectedOpt = _ref15.selectedOpt,
6057
+ multiple = _ref15.multiple,
6058
+ type = _ref15.type,
6059
+ onChange = _ref15.onChange,
6060
+ noOptions = _ref15.noOptions,
6061
+ visibleOptionsQty = _ref15.visibleOptionsQty,
6062
+ openTo = _ref15.openTo;
5965
6063
 
5966
6064
  if (!options) {
5967
6065
  return /*#__PURE__*/React.createElement(OptionsPeople, null, /*#__PURE__*/React.createElement("li", null, noOptions || 'No data found'));
@@ -5996,9 +6094,9 @@ var SelectOption = function SelectOption(_ref14) {
5996
6094
  }));
5997
6095
  };
5998
6096
 
5999
- var PhotoComponent = function PhotoComponent(_ref15) {
6000
- var profile = _ref15.profile,
6001
- index = _ref15.index;
6097
+ var PhotoComponent = function PhotoComponent(_ref16) {
6098
+ var profile = _ref16.profile,
6099
+ index = _ref16.index;
6002
6100
  var customStyle = {
6003
6101
  position: 'relative',
6004
6102
  display: 'inline-flex',
@@ -6022,11 +6120,11 @@ var PhotoComponent = function PhotoComponent(_ref15) {
6022
6120
  }));
6023
6121
  };
6024
6122
 
6025
- var SelectValueRender = function SelectValueRender(_ref16) {
6026
- var options = _ref16.options,
6027
- selectedOpt = _ref16.selectedOpt,
6028
- type = _ref16.type,
6029
- noOptions = _ref16.noOptions;
6123
+ var SelectValueRender = function SelectValueRender(_ref17) {
6124
+ var options = _ref17.options,
6125
+ selectedOpt = _ref17.selectedOpt,
6126
+ type = _ref17.type,
6127
+ noOptions = _ref17.noOptions;
6030
6128
 
6031
6129
  if (!options) {
6032
6130
  return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("div", {