@entur/dropdown 5.0.0-beta.4 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/Dropdown.d.ts +40 -39
  2. package/dist/MultiSelect.d.ts +90 -33
  3. package/dist/SearchableDropdown.d.ts +64 -18
  4. package/dist/{beta/components → components}/DropdownList.d.ts +2 -1
  5. package/dist/{BaseDropdown.d.ts → deprecated/BaseDropdown.d.ts} +3 -3
  6. package/dist/{DownshiftProvider.d.ts → deprecated/DownshiftProvider.d.ts} +1 -1
  7. package/dist/deprecated/Dropdown.d.ts +72 -0
  8. package/dist/{DropdownInputGroup.d.ts → deprecated/DropdownInputGroup.d.ts} +2 -2
  9. package/dist/deprecated/DropdownList.d.ts +8 -0
  10. package/dist/{DropdownLoadingDots.d.ts → deprecated/DropdownLoadingDots.d.ts} +1 -1
  11. package/dist/deprecated/DropdownToggleButton.d.ts +3 -0
  12. package/dist/deprecated/MultiSelect.d.ts +64 -0
  13. package/dist/{RegularDropdown.d.ts → deprecated/RegularDropdown.d.ts} +3 -3
  14. package/dist/deprecated/SearchableDropdown.d.ts +34 -0
  15. package/dist/deprecated/index.d.ts +2 -0
  16. package/dist/dropdown.cjs.development.js +141 -77
  17. package/dist/dropdown.cjs.development.js.map +1 -1
  18. package/dist/dropdown.cjs.production.min.js +1 -1
  19. package/dist/dropdown.cjs.production.min.js.map +1 -1
  20. package/dist/dropdown.esm.js +139 -75
  21. package/dist/dropdown.esm.js.map +1 -1
  22. package/dist/index.d.ts +5 -3
  23. package/dist/styles.css +266 -287
  24. package/package.json +12 -12
  25. package/dist/DropdownList.d.ts +0 -8
  26. package/dist/DropdownToggleButton.d.ts +0 -3
  27. package/dist/beta/Dropdown.d.ts +0 -62
  28. package/dist/beta/MultiSelect.d.ts +0 -97
  29. package/dist/beta/SearchableDropdown.d.ts +0 -70
  30. package/dist/beta/index.d.ts +0 -5
  31. /package/dist/{beta/NativeDropdown.d.ts → NativeDropdown.d.ts} +0 -0
  32. /package/dist/{beta/components → components}/FieldComponents.d.ts +0 -0
  33. /package/dist/{beta/useNormalizedItems.d.ts → useNormalizedItems.d.ts} +0 -0
  34. /package/dist/{beta/useResolvedItems.d.ts → useResolvedItems.d.ts} +0 -0
  35. /package/dist/{beta/utils.d.ts → utils.d.ts} +0 -0
@@ -451,7 +451,7 @@ var useDownshift = function useDownshift() {
451
451
  };
452
452
 
453
453
  var _excluded$c = ["items"];
454
- var DropdownList$1 = function DropdownList(_ref) {
454
+ var DropdownListDeprecated = function DropdownListDeprecated(_ref) {
455
455
  var items = _ref.items,
456
456
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);
457
457
  var _useDownshift = useDownshift(),
@@ -487,7 +487,7 @@ var DropdownList$1 = function DropdownList(_ref) {
487
487
  }) : null);
488
488
  };
489
489
 
490
- var DropdownToggleButton$1 = function DropdownToggleButton() {
490
+ var DropdownDeprecatedToggleButton = function DropdownDeprecatedToggleButton() {
491
491
  var _useDownshift = useDownshift(),
492
492
  getToggleButtonProps = _useDownshift.getToggleButtonProps,
493
493
  isOpen = _useDownshift.isOpen;
@@ -502,7 +502,7 @@ var DropdownToggleButton$1 = function DropdownToggleButton() {
502
502
  };
503
503
 
504
504
  var _excluded$b = ["className", "children"];
505
- var DropdownLoadingDots = function DropdownLoadingDots(_ref) {
505
+ var DropdownDeprecatedLoadingDots = function DropdownDeprecatedLoadingDots(_ref) {
506
506
  var className = _ref.className,
507
507
  children = _ref.children,
508
508
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
@@ -512,7 +512,7 @@ var DropdownLoadingDots = function DropdownLoadingDots(_ref) {
512
512
  };
513
513
 
514
514
  var _excluded$a = ["children", "className", "items", "loading", "loadingText", "placeholder", "style", "listStyle", "clearable", "label", "isFilled", "disableLabelAnimation"];
515
- var BaseDropdown = function BaseDropdown(_ref) {
515
+ var BaseDropdownDeprecated = function BaseDropdownDeprecated(_ref) {
516
516
  var children = _ref.children,
517
517
  className = _ref.className,
518
518
  items = _ref.items,
@@ -545,7 +545,7 @@ var BaseDropdown = function BaseDropdown(_ref) {
545
545
  isFilled: isFilled,
546
546
  labelProps: getLabelProps(),
547
547
  disableLabelAnimation: disableLabelAnimation
548
- }, rest), children), React.createElement(DropdownList$1, _extends({
548
+ }, rest), children), React.createElement(DropdownListDeprecated, _extends({
549
549
  items: items,
550
550
  style: _extends({
551
551
  position: 'absolute',
@@ -576,16 +576,16 @@ var Appendix$1 = function Appendix(_ref3) {
576
576
  loadingText = _ref3.loadingText,
577
577
  readOnly = _ref3.readOnly;
578
578
  if (loading) {
579
- return React.createElement(DropdownLoadingDots, null, loadingText);
579
+ return React.createElement(DropdownDeprecatedLoadingDots, null, loadingText);
580
580
  }
581
581
  if (readOnly) {
582
582
  return null;
583
583
  }
584
- return clearable ? React.createElement(React.Fragment, null, React.createElement(ClearButton$1, null), " ", React.createElement(DropdownToggleButton$1, null)) : React.createElement(DropdownToggleButton$1, null);
584
+ return clearable ? React.createElement(React.Fragment, null, React.createElement(ClearButton$1, null), " ", React.createElement(DropdownDeprecatedToggleButton, null)) : React.createElement(DropdownDeprecatedToggleButton, null);
585
585
  };
586
586
 
587
587
  var _excluded$9 = ["disabled", "placeholder", "selectOnTab", "openOnFocus", "listStyle", "items", "label", "disableLabelAnimation", "loading", "loadingText", "className", "clearable"];
588
- var RegularDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
588
+ var RegularDropdownDeprecated = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
589
589
  var disabled = _ref.disabled,
590
590
  _ref$placeholder = _ref.placeholder,
591
591
  placeholder = _ref$placeholder === void 0 ? 'Vennligst velg' : _ref$placeholder,
@@ -610,7 +610,7 @@ var RegularDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
610
610
  isOpen = _useDownshift.isOpen,
611
611
  highlightedIndex = _useDownshift.highlightedIndex,
612
612
  setHighlightedIndex = _useDownshift.setHighlightedIndex;
613
- return React.createElement(BaseDropdown, _extends({
613
+ return React.createElement(BaseDropdownDeprecated, _extends({
614
614
  disabled: disabled,
615
615
  listStyle: listStyle,
616
616
  items: items,
@@ -671,7 +671,17 @@ function LowerCaseFilterTest(item, input) {
671
671
  var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
672
672
  return inputRegex.test(item.label);
673
673
  }
674
- var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
674
+ /**
675
+ * @deprecated
676
+ * New SearchableDropdown available
677
+ *
678
+ * migration guide to new dropdown:
679
+ * - change import from 'DropdownDeprecated' to 'Dropdown'
680
+ * - change from 'value' to 'selectedItem'
681
+ * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
682
+ * - 'onChange' must update value of 'selectedItem'
683
+ */
684
+ var SearchableDropdownDeprecated = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
675
685
  var _ref$disabled = _ref.disabled,
676
686
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
677
687
  className = _ref.className,
@@ -712,7 +722,7 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
712
722
  return itemFilter(item, inputValue);
713
723
  });
714
724
  }, [inputValue, items, itemFilter]);
715
- return React.createElement(BaseDropdown, {
725
+ return React.createElement(BaseDropdownDeprecated, {
716
726
  items: filteredItems,
717
727
  disabled: disabled,
718
728
  readOnly: readOnly,
@@ -754,7 +764,7 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
754
764
  })));
755
765
  });
756
766
 
757
- var DropdownInputGroup = function DropdownInputGroup(_ref) {
767
+ var DropdownInputGroupDeprecated = function DropdownInputGroupDeprecated(_ref) {
758
768
  var children = _ref.children,
759
769
  feedback = _ref.feedback,
760
770
  variant = _ref.variant,
@@ -892,7 +902,18 @@ debounceTimeout) {
892
902
  };
893
903
 
894
904
  var _excluded$7 = ["highlightFirstItemOnOpen", "debounceTimeout", "disabled", "feedback", "items", "label", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "searchable", "selectOnTab", "openOnFocus", "variant", "value", "clearable", "className", "style", "listStyle", "itemFilter", "disableLabelAnimation"];
895
- var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
905
+ /**
906
+ * @deprecated
907
+ * New Dropdown available
908
+ *
909
+ * migration guide to new dropdown:
910
+ * - change import from 'DropdownDeprecated' to 'Dropdown'
911
+ * + if 'searchable', switch to 'SearchableDropdown'
912
+ * - change from 'value' to 'selectedItem'
913
+ * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
914
+ * - 'onChange' must update value of 'selectedItem'
915
+ */
916
+ var DropdownDeprecated = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
896
917
  var highlightFirstItemOnOpen = _ref.highlightFirstItemOnOpen,
897
918
  debounceTimeout = _ref.debounceTimeout,
898
919
  disabled = _ref.disabled,
@@ -927,7 +948,7 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
927
948
  var selectedItem = value === undefined ? undefined : normalizedItems.find(function (item) {
928
949
  return value === item.value;
929
950
  }) || null;
930
- var RenderedDropdown = searchable ? SearchableDropdown : RegularDropdown;
951
+ var RenderedDropdown = searchable ? SearchableDropdownDeprecated : RegularDropdownDeprecated;
931
952
  var searchAbleProps = searchable ? {
932
953
  itemFilter: itemFilter,
933
954
  name: rest.name,
@@ -945,7 +966,7 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
945
966
  className: className,
946
967
  style: style,
947
968
  searchable: searchable
948
- }, rest), React.createElement(DropdownInputGroup, {
969
+ }, rest), React.createElement(DropdownInputGroupDeprecated, {
949
970
  feedback: feedback,
950
971
  variant: variant
951
972
  }, React.createElement(RenderedDropdown, _extends({
@@ -967,9 +988,9 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
967
988
  });
968
989
 
969
990
  var _excluded$6 = ["className", "clearable", "debounceTimeout", "disabled", "feedback", "initialSelectedItems", "items", "itemsSelectedLabel", "label", "listStyle", "loading", "loadingText", "onChange", "openOnFocus", "readOnly", "style", "variant"];
970
- var MultiSelectContext = /*#__PURE__*/React.createContext(null);
971
- var useMultiSelectContext = function useMultiSelectContext() {
972
- var context = React.useContext(MultiSelectContext);
991
+ var MultiSelectOldContext = /*#__PURE__*/React.createContext(null);
992
+ var useMultiSelectOldContext = function useMultiSelectOldContext() {
993
+ var context = React.useContext(MultiSelectOldContext);
973
994
  if (!context) {
974
995
  throw new Error('You need to wrap your component in a DownshiftProvider');
975
996
  }
@@ -992,7 +1013,17 @@ actionAndChanges) {
992
1013
  return changes;
993
1014
  }
994
1015
  }
995
- var MultiSelect = function MultiSelect(_ref) {
1016
+ /**
1017
+ * @deprecated
1018
+ * New MultiSelect available
1019
+ *
1020
+ * migration guide to new dropdown:
1021
+ * - change import from 'MultiSelectDeprecated' to 'MultiSelect'
1022
+ * - add state containing selected items to 'selectedItems' prop
1023
+ * + type of 'selectedItems' is 'NormalizedDropdownType[]' and does not include 'string'
1024
+ * - 'onChange' must update value of 'selectedItem'
1025
+ */
1026
+ var MultiSelectDeprecated = function MultiSelectDeprecated(_ref) {
996
1027
  var className = _ref.className,
997
1028
  _ref$clearable = _ref.clearable,
998
1029
  clearable = _ref$clearable === void 0 ? false : _ref$clearable,
@@ -1068,7 +1099,7 @@ var MultiSelect = function MultiSelect(_ref) {
1068
1099
  openMenu = _useSelect.openMenu;
1069
1100
  var buttonText = selectedItems.length ? itemsSelectedLabel(selectedItems) : '';
1070
1101
  var multiSelectId = useRandomId('eds-multiselect');
1071
- return React.createElement(MultiSelectContext.Provider, {
1102
+ return React.createElement(MultiSelectOldContext.Provider, {
1072
1103
  value: {
1073
1104
  isOpen: isOpen,
1074
1105
  reset: reset,
@@ -1144,8 +1175,8 @@ var MultiSelect = function MultiSelect(_ref) {
1144
1175
  };
1145
1176
  var ClearButton = function ClearButton(_ref3) {
1146
1177
  var props = _extends({}, (_objectDestructuringEmpty(_ref3), _ref3));
1147
- var _useMultiSelectContex = useMultiSelectContext(),
1148
- reset = _useMultiSelectContex.reset;
1178
+ var _useMultiSelectOldCon = useMultiSelectOldContext(),
1179
+ reset = _useMultiSelectOldCon.reset;
1149
1180
  return React.createElement(React.Fragment, null, React.createElement("button", _extends({
1150
1181
  className: "eds-dropdown__clear-button",
1151
1182
  type: "button",
@@ -1163,7 +1194,7 @@ var Appendix = function Appendix(_ref4) {
1163
1194
  readOnly = _ref4.readOnly,
1164
1195
  hasSelected = _ref4.hasSelected;
1165
1196
  if (loading) {
1166
- return React.createElement(DropdownLoadingDots, null, loadingText);
1197
+ return React.createElement(DropdownDeprecatedLoadingDots, null, loadingText);
1167
1198
  }
1168
1199
  if (readOnly) {
1169
1200
  return null;
@@ -1171,11 +1202,11 @@ var Appendix = function Appendix(_ref4) {
1171
1202
  return hasSelected ? React.createElement(React.Fragment, null, React.createElement(ClearButton, null), React.createElement(DropdownToggleButton, null)) : React.createElement(DropdownToggleButton, null);
1172
1203
  };
1173
1204
  var DropdownToggleButton = function DropdownToggleButton() {
1174
- var _useMultiSelectContex2 = useMultiSelectContext(),
1175
- getToggleButtonProps = _useMultiSelectContex2.getToggleButtonProps,
1176
- isOpen = _useMultiSelectContex2.isOpen,
1177
- openMenu = _useMultiSelectContex2.openMenu,
1178
- openOnFocus = _useMultiSelectContex2.openOnFocus;
1205
+ var _useMultiSelectOldCon2 = useMultiSelectOldContext(),
1206
+ getToggleButtonProps = _useMultiSelectOldCon2.getToggleButtonProps,
1207
+ isOpen = _useMultiSelectOldCon2.isOpen,
1208
+ openMenu = _useMultiSelectOldCon2.openMenu,
1209
+ openOnFocus = _useMultiSelectOldCon2.openOnFocus;
1179
1210
  return React.createElement("button", _extends({}, getToggleButtonProps({
1180
1211
  className: classNames('eds-dropdown__toggle-button', {
1181
1212
  'eds-dropdown__toggle-button--open': isOpen
@@ -1207,9 +1238,11 @@ function SelectedItemsLabel(items) {
1207
1238
  }).toString() : items.length + " elementer valgt";
1208
1239
  }
1209
1240
 
1210
- var _excluded$5 = ["ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
1241
+ var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
1211
1242
  var DropdownList = function DropdownList(_ref) {
1212
- var _ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
1243
+ var _ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
1244
+ ariaLabelChosenSingular = _ref$ariaLabelChosenS === void 0 ? 'valgt' : _ref$ariaLabelChosenS,
1245
+ _ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
1213
1246
  ariaLabelSelectedItem = _ref$ariaLabelSelecte === void 0 ? ', valgt element, trykk for å fjerne' : _ref$ariaLabelSelecte,
1214
1247
  getItemProps = _ref.getItemProps,
1215
1248
  getMenuProps = _ref.getMenuProps,
@@ -1231,7 +1264,7 @@ var DropdownList = function DropdownList(_ref) {
1231
1264
  var isNoMatches = !loading && (listItems.length === 0 || listItems.length === 1 && listItems[0].value === (selectAllItem == null ? void 0 : selectAllItem.value));
1232
1265
  var isItemSelected = function isItemSelected(item) {
1233
1266
  return selectedItems.some(function (selectedItem) {
1234
- return selectedItem.value === item.value;
1267
+ return selectedItem.value === item.value && selectedItem.label === item.label;
1235
1268
  });
1236
1269
  };
1237
1270
  var ariaLabelSelectAll = function ariaLabelSelectAll() {
@@ -1242,7 +1275,7 @@ var DropdownList = function DropdownList(_ref) {
1242
1275
  }
1243
1276
  case true:
1244
1277
  {
1245
- return (selectAllItem == null ? void 0 : selectAllItem.label) + ", valgt";
1278
+ return (selectAllItem == null ? void 0 : selectAllItem.label) + ", " + ariaLabelChosenSingular;
1246
1279
  }
1247
1280
  default:
1248
1281
  {
@@ -1289,28 +1322,30 @@ var DropdownList = function DropdownList(_ref) {
1289
1322
  return (
1290
1323
  // use popover from @entur/tooltip when that package upgrades to floating-ui
1291
1324
  React.createElement("ul", _extends({}, getMenuProps(), {
1292
- className: classNames('eds-dropdown__list', {
1293
- 'eds-dropdown__list--open': isOpen
1294
- }),
1295
- style: _extends({}, rest.style, listStyle)
1325
+ className: "eds-dropdown__list",
1326
+ style: _extends({
1327
+ display: isOpen ? 'inline-block' : 'none'
1328
+ }, rest.style, listStyle)
1296
1329
  }), listItems.length > 0 && listItems.map(function (item, index) {
1297
1330
  var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
1298
- if (itemIsSelectAll && listItems.length <= 2) return React.createElement(React.Fragment, null);
1331
+ if (itemIsSelectAll && listItems.length <= 2) return null;
1299
1332
  return React.createElement("li", _extends({
1300
- key: item.value,
1333
+ key: item.label,
1301
1334
  className: classNames('eds-dropdown__list__item', {
1302
1335
  'eds-dropdown__list__item--select-all': itemIsSelectAll,
1303
1336
  'eds-dropdown__list__item--highlighted': highlightedIndex === index,
1304
1337
  'eds-dropdown__list__item--selected': !isMultiselect && isItemSelected(item)
1305
1338
  })
1306
1339
  }, getItemProps({
1307
- key: "" + index + item.value,
1340
+ key: item.label,
1308
1341
  item: item,
1309
1342
  index: index
1310
1343
  })), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
1311
1344
  }), isNoMatches && React.createElement("li", {
1345
+ key: "dropdown-list-no-match",
1312
1346
  className: "eds-dropdown__list__item"
1313
1347
  }, noMatchesText), loading && React.createElement("li", {
1348
+ key: "dropdown-list-loading",
1314
1349
  className: "eds-dropdown__list__item"
1315
1350
  }, loadingText))
1316
1351
  );
@@ -1405,8 +1440,9 @@ var ClearableButton = function ClearableButton(_ref4) {
1405
1440
  focusable = _ref4$focusable === void 0 ? false : _ref4$focusable;
1406
1441
  return React.createElement(Tooltip, {
1407
1442
  "aria-hidden": "true",
1408
- placement: "right",
1409
- content: labelClearSelectedItems
1443
+ placement: "top",
1444
+ content: labelClearSelectedItems,
1445
+ className: "eds-dropdown-appendix__clear-button__tooltip"
1410
1446
  }, React.createElement(IconButton, {
1411
1447
  className: "eds-dropdown-appendix__clear-button",
1412
1448
  type: "button",
@@ -1431,10 +1467,11 @@ var ToggleButton = function ToggleButton(_ref5) {
1431
1467
  return React.createElement(IconButton, _extends({}, getToggleButtonProps({
1432
1468
  className: classNames('eds-dropdown-appendix__toggle-button', {
1433
1469
  'eds-dropdown-appendix__toggle-button--open': isOpen
1434
- })
1470
+ }),
1471
+ 'aria-labelledby': undefined
1435
1472
  }), {
1436
1473
  "aria-hidden": ariaHidden,
1437
- "aria-label": isOpen ? ariaLabelCloseList : ariaLabelOpenList,
1474
+ "aria-label": ariaHidden ? undefined : isOpen ? ariaLabelCloseList : ariaLabelOpenList,
1438
1475
  tabIndex: focusable ? 0 : -1,
1439
1476
  type: "button"
1440
1477
  }), React.createElement(DownArrowIcon, {
@@ -1582,7 +1619,7 @@ var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
1582
1619
  /* end a11y utils */
1583
1620
 
1584
1621
  var _excluded$3 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "itemFilter", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
1585
- var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1622
+ var SearchableDropdown = function SearchableDropdown(_ref) {
1586
1623
  var _selectedItem$label;
1587
1624
  var ariaLabelCloseList = _ref.ariaLabelCloseList,
1588
1625
  ariaLabelOpenList = _ref.ariaLabelOpenList,
@@ -1739,7 +1776,8 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1739
1776
  });
1740
1777
  };
1741
1778
  return React.createElement("div", {
1742
- className: "eds-dropdown__wrapper"
1779
+ className: classNames('eds-dropdown__wrapper', className),
1780
+ style: style
1743
1781
  }, React.createElement(BaseFormControl, _extends({
1744
1782
  append: React.createElement(FieldAppend$1, {
1745
1783
  ariaLabelCloseList: ariaLabelCloseList,
@@ -1755,7 +1793,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1755
1793
  onClear: handleOnClear,
1756
1794
  selectedItems: [selectedItem]
1757
1795
  }),
1758
- className: classNames('eds-dropdown', className),
1796
+ className: "eds-dropdown",
1759
1797
  disabled: disabled,
1760
1798
  disableLabelAnimation: disableLabelAnimation,
1761
1799
  feedback: feedback,
@@ -1765,7 +1803,6 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1765
1803
  labelProps: getLabelProps(),
1766
1804
  prepend: prepend,
1767
1805
  readOnly: readOnly,
1768
- style: style,
1769
1806
  variant: variant
1770
1807
  }, rest), !hideSelectedItem && selectedItem && !inputValue && React.createElement("span", {
1771
1808
  className: "eds-dropdown__selected-item__wrapper",
@@ -1804,18 +1841,21 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
1804
1841
  }));
1805
1842
  };
1806
1843
 
1807
- var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "feedback", "hideSelectAll", "items", "label", "labelAllItemsSelected", "labelClearAllItems", "labelSelectAll", "listStyle", "loadingText", "maxTags", "onChange", "placeholder", "readOnly", "selectedItems", "selectOnBlur", "style", "variant", "ariaLabelChosenSingular", "ariaLabelChosenPlural", "ariaLabelCloseList", "ariaLabelJumpToInput", "ariaLabelOpenList", "ariaLabelRemoveSelected"];
1808
- var MultiSelectBeta = function MultiSelectBeta(_ref) {
1844
+ var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "feedback", "hideSelectAll", "itemFilter", "items", "label", "labelAllItemsSelected", "labelClearAllItems", "labelSelectAll", "listStyle", "loadingText", "maxChips", "noMatchesText", "onChange", "placeholder", "readOnly", "selectedItems", "selectOnBlur", "style", "variant", "ariaLabelChosenSingular", "ariaLabelChosenPlural", "ariaLabelCloseList", "ariaLabelJumpToInput", "ariaLabelOpenList", "ariaLabelRemoveSelected", "ariaLabelSelectedItem"];
1845
+ var MultiSelect = function MultiSelect(_ref) {
1809
1846
  var className = _ref.className,
1810
1847
  _ref$clearable = _ref.clearable,
1811
1848
  clearable = _ref$clearable === void 0 ? true : _ref$clearable,
1812
1849
  _ref$clearInputOnSele = _ref.clearInputOnSelect,
1813
1850
  clearInputOnSelect = _ref$clearInputOnSele === void 0 ? false : _ref$clearInputOnSele,
1851
+ debounceTimeout = _ref.debounceTimeout,
1814
1852
  _ref$disabled = _ref.disabled,
1815
1853
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
1816
1854
  feedback = _ref.feedback,
1817
1855
  _ref$hideSelectAll = _ref.hideSelectAll,
1818
1856
  hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
1857
+ _ref$itemFilter = _ref.itemFilter,
1858
+ itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
1819
1859
  initialItems = _ref.items,
1820
1860
  label = _ref.label,
1821
1861
  _ref$labelAllItemsSel = _ref.labelAllItemsSelected,
@@ -1826,8 +1866,8 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1826
1866
  labelSelectAll = _ref$labelSelectAll === void 0 ? 'Velg alle' : _ref$labelSelectAll,
1827
1867
  listStyle = _ref.listStyle,
1828
1868
  loadingText = _ref.loadingText,
1829
- _ref$maxTags = _ref.maxTags,
1830
- maxTags = _ref$maxTags === void 0 ? 10 : _ref$maxTags,
1869
+ _ref$maxChips = _ref.maxChips,
1870
+ maxChips = _ref$maxChips === void 0 ? 10 : _ref$maxChips,
1831
1871
  _ref$onChange = _ref.onChange,
1832
1872
  onChange = _ref$onChange === void 0 ? function () {
1833
1873
  return undefined;
@@ -1851,6 +1891,8 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1851
1891
  ariaLabelOpenList = _ref.ariaLabelOpenList,
1852
1892
  _ref$ariaLabelRemoveS = _ref.ariaLabelRemoveSelected,
1853
1893
  ariaLabelRemoveSelected = _ref$ariaLabelRemoveS === void 0 ? 'trykk for å fjerne valg' : _ref$ariaLabelRemoveS,
1894
+ _ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
1895
+ ariaLabelSelectedItem = _ref$ariaLabelSelecte === void 0 ? ', valgt element, trykk for å fjerne' : _ref$ariaLabelSelecte,
1854
1896
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
1855
1897
  var _React$useState = React.useState(0),
1856
1898
  lastHighlightedIndex = _React$useState[0],
@@ -1859,7 +1901,7 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1859
1901
  lastRemovedItem = _React$useState2[0],
1860
1902
  setLastRemovedItem = _React$useState2[1];
1861
1903
  var inputRef = useRef(null);
1862
- var _useResolvedItems = useResolvedItems(initialItems),
1904
+ var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
1863
1905
  normalizedItems = _useResolvedItems.items,
1864
1906
  loading = _useResolvedItems.loading,
1865
1907
  fetchItems = _useResolvedItems.fetchItems;
@@ -1870,20 +1912,20 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1870
1912
  label: labelSelectAll
1871
1913
  };
1872
1914
  // special 'item' used as a replacement selected item tag for when
1873
- // there are more selected element than maxTags
1915
+ // there are more selected element than maxChips
1874
1916
  var summarySelectedItems = React.useMemo(function () {
1875
1917
  return {
1876
1918
  value: EMPTY_INPUT,
1877
1919
  label: isAllNonAsyncItemsSelected ? labelAllItemsSelected : selectedItems.length + ' ' + ariaLabelChosenPlural
1878
1920
  };
1879
- }, [isAllNonAsyncItemsSelected, selectedItems, labelAllItemsSelected]);
1921
+ }, [isAllNonAsyncItemsSelected, selectedItems, labelAllItemsSelected, ariaLabelChosenPlural]);
1880
1922
  var _useState = useState([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems)),
1881
1923
  listItems = _useState[0],
1882
1924
  setListItems = _useState[1];
1883
1925
  var filterListItems = function filterListItems(_ref2) {
1884
1926
  var inputValue = _ref2.inputValue;
1885
1927
  return setListItems([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems.filter(function (item) {
1886
- return lowerCaseFilterTest(item, inputValue);
1928
+ return itemFilter(item, inputValue);
1887
1929
  })));
1888
1930
  };
1889
1931
  var updateListItems = function updateListItems(_ref3) {
@@ -1909,6 +1951,20 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1909
1951
  var _useMultipleSelection = useMultipleSelection({
1910
1952
  selectedItems: selectedItems,
1911
1953
  itemToString: itemToString,
1954
+ onStateChange: function onStateChange(_ref4) {
1955
+ var newSelectedItems = _ref4.selectedItems,
1956
+ type = _ref4.type;
1957
+ switch (type) {
1958
+ case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
1959
+ case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
1960
+ case useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace:
1961
+ case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
1962
+ {
1963
+ if (newSelectedItems !== undefined) onChange(newSelectedItems);
1964
+ break;
1965
+ }
1966
+ }
1967
+ },
1912
1968
  // Accessibility
1913
1969
  getA11yRemovalMessage: function getA11yRemovalMessage$1(options) {
1914
1970
  return getA11yRemovalMessage(_extends({}, options, {
@@ -1919,9 +1975,9 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1919
1975
  }),
1920
1976
  getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
1921
1977
  getDropdownProps = _useMultipleSelection.getDropdownProps;
1922
- var stateReducer = React.useCallback(function (_, _ref4) {
1923
- var changes = _ref4.changes,
1924
- type = _ref4.type;
1978
+ var stateReducer = React.useCallback(function (_, _ref5) {
1979
+ var changes = _ref5.changes,
1980
+ type = _ref5.type;
1925
1981
  if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
1926
1982
  setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
1927
1983
  }
@@ -1991,9 +2047,9 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
1991
2047
  itemToString: itemToString,
1992
2048
  selectedItem: null,
1993
2049
  stateReducer: stateReducer,
1994
- onStateChange: function onStateChange(_ref5) {
1995
- var type = _ref5.type,
1996
- clickedItem = _ref5.selectedItem;
2050
+ onStateChange: function onStateChange(_ref6) {
2051
+ var type = _ref6.type,
2052
+ clickedItem = _ref6.selectedItem;
1997
2053
  // clickedItem means item chosen either via mouse or keyboard
1998
2054
  if (!clickedItem) return;
1999
2055
  switch (type) {
@@ -2045,7 +2101,8 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
2045
2101
  });
2046
2102
  };
2047
2103
  return React.createElement("div", {
2048
- className: "eds-dropdown__wrapper"
2104
+ className: classNames('eds-dropdown__wrapper', className),
2105
+ style: style
2049
2106
  }, React.createElement(BaseFormControl, _extends({
2050
2107
  append: React.createElement(FieldAppend$1, {
2051
2108
  ariaLabelCloseList: ariaLabelCloseList,
@@ -2061,7 +2118,7 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
2061
2118
  onClear: handleOnClear,
2062
2119
  getToggleButtonProps: getToggleButtonProps
2063
2120
  }),
2064
- className: classNames('eds-dropdown', className),
2121
+ className: "eds-dropdown",
2065
2122
  disabled: disabled,
2066
2123
  feedback: feedback,
2067
2124
  isFilled: hasSelectedItems || inputValue !== EMPTY_INPUT,
@@ -2069,7 +2126,6 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
2069
2126
  labelId: getLabelProps().id,
2070
2127
  labelProps: getLabelProps(),
2071
2128
  readOnly: readOnly,
2072
- style: style,
2073
2129
  variant: variant
2074
2130
  }, rest), React.createElement("div", {
2075
2131
  className: classNames('eds-dropdown__selected-items-and-input', {
@@ -2079,7 +2135,7 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
2079
2135
  var _inputRef$current4;
2080
2136
  if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
2081
2137
  }
2082
- }, selectedItems.length < maxTags ? React.createElement(React.Fragment, null, selectedItems.length > 1 ? React.createElement(VisuallyHidden, {
2138
+ }, selectedItems.length < maxChips ? React.createElement(React.Fragment, null, selectedItems.length > 1 ? React.createElement(VisuallyHidden, {
2083
2139
  onClick: function onClick() {
2084
2140
  var _inputRef$current5;
2085
2141
  return (_inputRef$current5 = inputRef.current) == null ? void 0 : _inputRef$current5.focus();
@@ -2123,6 +2179,8 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
2123
2179
  ref: inputRef,
2124
2180
  value: inputValue != null ? inputValue : EMPTY_INPUT
2125
2181
  })))))), React.createElement(DropdownList, {
2182
+ ariaLabelChosenSingular: ariaLabelChosenSingular,
2183
+ ariaLabelSelectedItem: ariaLabelSelectedItem,
2126
2184
  getItemProps: getItemProps,
2127
2185
  getMenuProps: getMenuProps,
2128
2186
  highlightedIndex: highlightedIndex,
@@ -2139,11 +2197,13 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
2139
2197
  };
2140
2198
 
2141
2199
  var _excluded$1 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
2142
- var DropdownBeta = function DropdownBeta(_ref) {
2200
+ var Dropdown = function Dropdown(_ref) {
2143
2201
  var _ref3, _selectedItem$label;
2144
2202
  var ariaLabelCloseList = _ref.ariaLabelCloseList,
2145
2203
  ariaLabelOpenList = _ref.ariaLabelOpenList,
2146
2204
  className = _ref.className,
2205
+ _ref$clearable = _ref.clearable,
2206
+ clearable = _ref$clearable === void 0 ? false : _ref$clearable,
2147
2207
  _ref$disabled = _ref.disabled,
2148
2208
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
2149
2209
  disableLabelAnimation = _ref.disableLabelAnimation,
@@ -2179,11 +2239,13 @@ var DropdownBeta = function DropdownBeta(_ref) {
2179
2239
  clickedItem = _ref2.selectedItem;
2180
2240
  switch (type) {
2181
2241
  // @ts-expect-error This falltrough is wanted
2182
- case useSelect.stateChangeTypes.InputBlur:
2242
+ case useSelect.stateChangeTypes.ToggleButtonBlur:
2183
2243
  if (!selectOnBlur) break;
2184
2244
  case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter: // eslint-disable-line no-fallthrough
2185
2245
  case useSelect.stateChangeTypes.ItemClick:
2186
- onChange == null ? void 0 : onChange(clickedItem !== undefined ? clickedItem : null);
2246
+ {
2247
+ onChange == null ? void 0 : onChange(clickedItem !== undefined ? clickedItem : null);
2248
+ }
2187
2249
  }
2188
2250
  },
2189
2251
  itemToString: itemToString
@@ -2195,13 +2257,14 @@ var DropdownBeta = function DropdownBeta(_ref) {
2195
2257
  getToggleButtonProps = _useSelect.getToggleButtonProps,
2196
2258
  highlightedIndex = _useSelect.highlightedIndex;
2197
2259
  return React.createElement("div", {
2198
- className: "eds-dropdown__wrapper"
2260
+ className: classNames('eds-dropdown__wrapper', className),
2261
+ style: style
2199
2262
  }, React.createElement(BaseFormControl, _extends({
2200
2263
  append: React.createElement(FieldAppend$1, {
2201
2264
  ariaHiddenToggleButton: true,
2202
2265
  ariaLabelCloseList: ariaLabelCloseList,
2203
2266
  ariaLabelOpenList: ariaLabelOpenList,
2204
- clearable: true,
2267
+ clearable: clearable,
2205
2268
  labelClearSelectedItems: labelClearSelectedItem,
2206
2269
  focusable: false,
2207
2270
  getToggleButtonProps: getToggleButtonProps,
@@ -2214,7 +2277,7 @@ var DropdownBeta = function DropdownBeta(_ref) {
2214
2277
  disabled: readOnly || disabled,
2215
2278
  selectedItems: [selectedItem]
2216
2279
  }),
2217
- className: classNames('eds-dropdown', className, {
2280
+ className: classNames('eds-dropdown', {
2218
2281
  'eds-dropdown--not-filled': !isFilled
2219
2282
  }),
2220
2283
  disabled: disabled,
@@ -2226,11 +2289,12 @@ var DropdownBeta = function DropdownBeta(_ref) {
2226
2289
  labelProps: getLabelProps(),
2227
2290
  prepend: prepend,
2228
2291
  readOnly: readOnly,
2229
- style: style,
2230
2292
  variant: variant
2231
- }, rest), React.createElement("button", _extends({
2293
+ }, rest), React.createElement("div", _extends({
2232
2294
  className: "eds-dropdown__selected-item-button"
2233
- }, getToggleButtonProps()), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
2295
+ }, getToggleButtonProps({
2296
+ id: undefined
2297
+ })), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
2234
2298
  className: classNames('eds-dropdown__selected-item-button__placeholder', {
2235
2299
  'eds-dropdown__selected-item-button__placeholder--readonly': readOnly
2236
2300
  })
@@ -2333,5 +2397,5 @@ var FieldAppend = function FieldAppend(_ref3) {
2333
2397
 
2334
2398
  warnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');
2335
2399
 
2336
- export { Dropdown, DropdownBeta, MultiSelect, MultiSelectBeta, NativeDropdown, SearchableDropdownBeta };
2400
+ export { Dropdown, DropdownDeprecated, MultiSelect, MultiSelectDeprecated, NativeDropdown, SearchableDropdown };
2337
2401
  //# sourceMappingURL=dropdown.esm.js.map