@splunk/react-ui 5.0.0-rc.2 → 5.0.0

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/Multiselect.js CHANGED
@@ -136,7 +136,7 @@
136
136
  r.d(t, {
137
137
  Divider: () => /* reexport */ u.Divider,
138
138
  Heading: () => /* reexport */ u.Heading,
139
- Option: () => /* reexport */ E,
139
+ Option: () => /* reexport */ M,
140
140
  default: () => /* reexport */ Hr
141
141
  });
142
142
  // EXTERNAL MODULE: external "react"
@@ -370,7 +370,7 @@
370
370
  };
371
371
  /**
372
372
  * An option within a `Multiselect`.
373
- */ function M(e) {
373
+ */ function E(e) {
374
374
  var r = e.compact, t = e.children, o = e.description, l = e.descriptionPosition, a = l === void 0 ? "bottom" : l, i = e.disabled, u = e.elementRef, c = e.hidden, s = e.icon, d = e.label, f = e.matchRanges, p = e.role, v = e.selected, b = e.truncate, m = e.value, g = x(e, [ "compact", "children", "description", "descriptionPosition", "disabled", "elementRef", "hidden", "icon", "label", "matchRanges", "role", "selected", "truncate", "value" ]);
375
375
  // @docs-props-type OptionPropsBase
376
376
  // selectedAppearance, selectedBackgroundColor, and selectedForegroundColor are not used directly by the Option component.
@@ -393,8 +393,8 @@
393
393
  multiple: r
394
394
  }), t || d);
395
395
  }
396
- M.propTypes = P;
397
- /* harmony default export */ const E = M;
396
+ E.propTypes = P;
397
+ /* harmony default export */ const M = E;
398
398
  // CONCATENATED MODULE: external "lodash/castArray"
399
399
  const R = require("lodash/castArray");
400
400
  var A = r.n(R);
@@ -537,10 +537,10 @@
537
537
  componentId: "sc-16cj7sk-7"
538
538
  })([ "border-color:", ";" ], he.variables.borderColor);
539
539
  // EXTERNAL MODULE: ./src/useControlled/index.ts + 1 modules
540
- var Me = r(2907);
540
+ var Ee = r(2907);
541
541
  // CONCATENATED MODULE: ./src/utils/fuzzyMatch.ts
542
542
  // A utility for matching keyboard characters to list values
543
- var Ee = function e(n, r) {
543
+ var Me = function e(n, r) {
544
544
  return n ? n.label.charAt(r).toLowerCase() : "";
545
545
  };
546
546
  var Re = function e(n, r) {
@@ -550,7 +550,7 @@
550
550
  var t = null;
551
551
  var o = false;
552
552
  var l = n.filter((function(e) {
553
- var n = Ee(e, r.index);
553
+ var n = Me(e, r.index);
554
554
  if (n === r.value) {
555
555
  o = true;
556
556
  return true;
@@ -558,7 +558,7 @@
558
558
  // If we haven't found a match yet, keep track of the next closest match.
559
559
  // Secondary matching looks for the closest character of a higher value, and failing that, closest of a lower value.
560
560
  if (!o) {
561
- var l = Ee(t, r.index);
561
+ var l = Me(t, r.index);
562
562
  if (!l) {
563
563
  t = e;
564
564
  } else if (n > r.value) {
@@ -1021,8 +1021,8 @@
1021
1021
  };
1022
1022
  var hn = n().forwardRef((function(r, t) {
1023
1023
  var o = r.appearance, l = o === void 0 ? "default" : o, a = r.append, i = r.children, u = r.currentValues, c = u === void 0 ? [] : u, s = r.describedBy, f = r.disabled, p = r.elementRef, v = r.error, b = r.inline, m = r.labelText, g = r.labelledBy, y = r.multiple, h = r.onClick, O = r.placeholder, S = r.prefixLabel, w = r.prepend, C = r.required, k = r.suffixLabel, x = r.toggle, j = r.toggleContent, P = Ye(r, [ "appearance", "append", "children", "currentValues", "describedBy", "disabled", "elementRef", "error", "inline", "labelText", "labelledBy", "multiple", "onClick", "placeholder", "prefixLabel", "prepend", "required", "suffixLabel", "toggle", "toggleContent" ]);
1024
- var M;
1025
1024
  var E;
1025
+ var M;
1026
1026
  var R = [];
1027
1027
  // Generate buttonLabels
1028
1028
  var A = e.Children.toArray(i);
@@ -1037,7 +1037,7 @@
1037
1037
  R.push(u);
1038
1038
  // if not in multiple mode, add the icon
1039
1039
  if (!y && c.length === 1) {
1040
- M = i;
1040
+ E = i;
1041
1041
  }
1042
1042
  } else if (y) {
1043
1043
  // only add values that don't match an option in "multiple" mode to preserve old behaviour
@@ -1050,29 +1050,29 @@
1050
1050
  }
1051
1051
  return e;
1052
1052
  }), []);
1053
- E = I;
1053
+ M = I;
1054
1054
  // only apply prefix / suffix if the label is not empty
1055
- if (E.length > 0) {
1055
+ if (M.length > 0) {
1056
1056
  // If there's more than one item selected, read out the selected total
1057
1057
  // rather than reading out each selected item
1058
1058
  R = yn({
1059
1059
  prefixLabel: S,
1060
- label: E.length > 1 ? [ "".concat(c.length, " items selected") ] : R,
1060
+ label: M.length > 1 ? [ "".concat(c.length, " items selected") ] : R,
1061
1061
  suffixLabel: k
1062
1062
  });
1063
- E = yn({
1063
+ M = yn({
1064
1064
  prefixLabel: S,
1065
- label: E,
1065
+ label: M,
1066
1066
  suffixLabel: k
1067
1067
  });
1068
1068
  }
1069
1069
  // single <Select> behaviour is to show the placeholder if all parts of the label
1070
1070
  // are empty strings so we replicate this behaviour here
1071
- if (E.length === 0 || !y && E.every((function(e) {
1071
+ if (M.length === 0 || !y && M.every((function(e) {
1072
1072
  return e === "";
1073
1073
  }))) {
1074
- E = un(O);
1075
- R = E;
1074
+ M = un(O);
1075
+ R = M;
1076
1076
  }
1077
1077
  var T = Object.keys(P).includes("aria-labelledby");
1078
1078
  var L = rn({
@@ -1108,7 +1108,7 @@
1108
1108
  appearance: "standalone"
1109
1109
  }, L, {
1110
1110
  "data-select-appearance": "link"
1111
- }), !!M && n().createElement(Se, null, M), E || O, n().createElement(we, null, n().createElement(U(), null)));
1111
+ }), !!E && n().createElement(Se, null, E), M || O, n().createElement(we, null, n().createElement(U(), null)));
1112
1112
  }
1113
1113
  // Using Button's secondary appearance as Select's default appearance.
1114
1114
  var D = l === "default" ? "secondary" : l;
@@ -1116,9 +1116,9 @@
1116
1116
  return n().createElement(Oe, $e({}, L, {
1117
1117
  $multiple: y,
1118
1118
  appearance: D,
1119
- label: E,
1119
+ label: M,
1120
1120
  error: v,
1121
- icon: M,
1121
+ icon: E,
1122
1122
  inline: b,
1123
1123
  isMenu: true,
1124
1124
  onClick: h
@@ -1127,9 +1127,9 @@
1127
1127
  }, "(", c.length, ")"));
1128
1128
  }));
1129
1129
  function On(r) {
1130
- var t = r.allowKeyMatching, o = t === void 0 ? true : t, l = r.animateLoading, a = r.appearance, i = a === void 0 ? "default" : a, c = r.append, s = r.allowNewValues, f = r.children, p = r.defaultPlacement, v = p === void 0 ? "vertical" : p, b = r.defaultValues, m = r.describedBy, g = r.disabled, y = r.elementRef, h = r.error, O = r.filter, S = r.footerMessage, w = r.inline, k = r.inputId, x = r.inputRef, j = r.isLoadingOptions, P = r.labelledBy, M = r.labelText, E = r.loadingMessage, R = r.menuStyle, A = R === void 0 ? {} : R, I = r.multiple, T = r.name, N = r.noOptionsMessage, D = N === void 0 ? vn : N, q = r.onChange, F = r.onScroll, _ = r.onScrollBottom, H = r.onFilterChange, z = r.onClick, W = r.onClose, U = r.onOpen, X = r.required, G = r.placeholder, J = G === void 0 ? bn : G, Y = r.prefixLabel, Z = r.prepend, re = r.repositionMode, te = re === void 0 ? "flip" : re, oe = r.selectAllAppearance, le = oe === void 0 ? "buttongroup" : oe, ae = r.showSelectedValuesFirst, se = r.suffixLabel, de = r.tabConfirmsNewValue, pe = r.values, ve = r.virtualization, be = r.toggle, me = r.toggleContent, ge = me === void 0 ? "optionChildren" : me, ye = Ye(r, [ "allowKeyMatching", "animateLoading", "appearance", "append", "allowNewValues", "children", "defaultPlacement", "defaultValues", "describedBy", "disabled", "elementRef", "error", "filter", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "labelText", "loadingMessage", "menuStyle", "multiple", "name", "noOptionsMessage", "onChange", "onScroll", "onScrollBottom", "onFilterChange", "onClick", "onClose", "onOpen", "required", "placeholder", "prefixLabel", "prepend", "repositionMode", "selectAllAppearance", "showSelectedValuesFirst", "suffixLabel", "tabConfirmsNewValue", "values", "virtualization", "toggle", "toggleContent" ]);
1130
+ var t = r.allowKeyMatching, o = t === void 0 ? true : t, l = r.animateLoading, a = r.appearance, i = a === void 0 ? "default" : a, c = r.append, s = r.allowNewValues, f = r.children, p = r.defaultPlacement, v = p === void 0 ? "vertical" : p, b = r.defaultValues, m = r.describedBy, g = r.disabled, y = r.elementRef, h = r.error, O = r.filter, S = r.footerMessage, w = r.inline, k = r.inputId, x = r.inputRef, j = r.isLoadingOptions, P = r.labelledBy, E = r.labelText, M = r.loadingMessage, R = r.menuStyle, A = R === void 0 ? {} : R, I = r.multiple, T = r.name, N = r.noOptionsMessage, D = N === void 0 ? vn : N, q = r.onChange, F = r.onScroll, _ = r.onScrollBottom, H = r.onFilterChange, z = r.onClick, W = r.onClose, U = r.onOpen, X = r.required, G = r.placeholder, J = G === void 0 ? bn : G, Y = r.prefixLabel, Z = r.prepend, re = r.repositionMode, te = re === void 0 ? "flip" : re, oe = r.selectAllAppearance, le = oe === void 0 ? "buttongroup" : oe, ae = r.showSelectedValuesFirst, se = r.suffixLabel, de = r.tabConfirmsNewValue, pe = r.values, ve = r.virtualization, be = r.toggle, me = r.toggleContent, ge = me === void 0 ? "optionChildren" : me, ye = Ye(r, [ "allowKeyMatching", "animateLoading", "appearance", "append", "allowNewValues", "children", "defaultPlacement", "defaultValues", "describedBy", "disabled", "elementRef", "error", "filter", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "labelText", "loadingMessage", "menuStyle", "multiple", "name", "noOptionsMessage", "onChange", "onScroll", "onScrollBottom", "onFilterChange", "onClick", "onClose", "onOpen", "required", "placeholder", "prefixLabel", "prepend", "repositionMode", "selectAllAppearance", "showSelectedValuesFirst", "suffixLabel", "tabConfirmsNewValue", "values", "virtualization", "toggle", "toggleContent" ]);
1131
1131
  // @docs-props-type SelectBasePropsBase
1132
- var he = (0, Me["default"])({
1132
+ var he = (0, Ee["default"])({
1133
1133
  componentName: "SelectBase",
1134
1134
  /* eslint-disable-next-line prefer-rest-params */
1135
1135
  componentProps: arguments[0],
@@ -1144,7 +1144,7 @@
1144
1144
  menuListboxId: (0, ce.createDOMID)("menu-listbox")
1145
1145
  };
1146
1146
  })), Se = We(Oe, 1), we = Se[0], Ce = we.activeItemId, ke = we.menuListboxId;
1147
- var xe = (0, e.useState)(0), je = We(xe, 2), Pe = je[0], Ee = je[1];
1147
+ var xe = (0, e.useState)(0), je = We(xe, 2), Pe = je[0], Me = je[1];
1148
1148
  var Ie = (0, e.useState)(""), Be = We(Ie, 2), Te = Be[0], Le = Be[1];
1149
1149
  var Ne = (0, e.useState)(false), De = We(Ne, 2), qe = De[0], He = De[1];
1150
1150
  var Ke = (0, e.useState)(false), ze = We(Ke, 2), Ue = ze[0], Xe = ze[1];
@@ -1167,7 +1167,7 @@
1167
1167
  var xn = (0, e.useRef)();
1168
1168
  var jn = (0, e.useRef)(0);
1169
1169
  var Pn = (0, e.useRef)("none");
1170
- var Mn = (0, e.useState)(O ? (0, ce.createDOMID)("filter") : undefined), En = We(Mn, 1), Rn = En[0];
1170
+ var En = (0, e.useState)(O ? (0, ce.createDOMID)("filter") : undefined), Mn = We(En, 1), Rn = Mn[0];
1171
1171
  (0, e.useEffect)((function() {
1172
1172
  if (false) {}
1173
1173
  }), [ i, c, h, Z ]);
@@ -1201,13 +1201,13 @@
1201
1201
  kn.current.focus();
1202
1202
  } else {
1203
1203
  var e;
1204
- Ee((e = xn.current) !== null && e !== void 0 ? e : 0);
1204
+ Me((e = xn.current) !== null && e !== void 0 ? e : 0);
1205
1205
  }
1206
1206
  }
1207
1207
  }), [ U, qe, Qe, Te, O ]);
1208
1208
  var Tn = (0, e.useCallback)((function() {
1209
1209
  He(false);
1210
- Ee(0);
1210
+ Me(0);
1211
1211
  yn.current = null;
1212
1212
  W === null || W === void 0 ? void 0 : W();
1213
1213
  }), [ W ]);
@@ -1328,7 +1328,7 @@
1328
1328
  }
1329
1329
  if (r === "ArrowDown") {
1330
1330
  n.preventDefault();
1331
- Ee(Math.min(Pe + 1, le === "checkbox" ? wn.current : wn.current - 1));
1331
+ Me(Math.min(Pe + 1, le === "checkbox" ? wn.current : wn.current - 1));
1332
1332
  if (f && _) {
1333
1333
  var t;
1334
1334
  var o = e.Children.toArray(f).length - (2 + ((t = An()) !== null && t !== void 0 ? t : []).length);
@@ -1339,7 +1339,7 @@
1339
1339
  }
1340
1340
  if (r === "ArrowUp") {
1341
1341
  n.preventDefault();
1342
- Ee(Math.max(Pe - 1, 0));
1342
+ Me(Math.max(Pe - 1, 0));
1343
1343
  }
1344
1344
  if (r === "Enter" && On.current && qe) {
1345
1345
  if (On.current === "selectAll") {
@@ -1410,7 +1410,7 @@
1410
1410
  var r = n.value;
1411
1411
  Le(r);
1412
1412
  He(true);
1413
- Ee(0);
1413
+ Me(0);
1414
1414
  H === null || H === void 0 ? void 0 : H(e, {
1415
1415
  keyword: r
1416
1416
  });
@@ -1671,15 +1671,15 @@
1671
1671
  return c;
1672
1672
  }), [ Pe, Ce, o, s, f, Gn, O, Te, Wn, Dn, _n, Hn, Un, Vn, j, I, Yn, _, le, Ue, be ]);
1673
1673
  var er = function e(r) {
1674
- var t = r.anchorWidth, o = r.maxHeight, a = r.placement;
1675
- var i = cn({
1674
+ var t = r.anchorWidth, o = r.maxHeight, a = r.placement, i = r.toggleId;
1675
+ var u = cn({
1676
1676
  anchorWidth: t,
1677
1677
  isMultiple: I,
1678
1678
  maxHeight: o,
1679
1679
  menuStyle: A
1680
1680
  });
1681
- var u = Gn.length > 0 && !Qn && !O ? 0 : undefined;
1682
- var c = {
1681
+ var c = Gn.length > 0 && !Qn && !O ? 0 : undefined;
1682
+ var s = {
1683
1683
  "aria-multiselectable": I || undefined,
1684
1684
  childrenStart: !!O && n().createElement(gn, {
1685
1685
  activeItemId: Ce,
@@ -1705,25 +1705,27 @@
1705
1705
  }),
1706
1706
  focusMode: O ? "never" : undefined,
1707
1707
  isLoading: j,
1708
+ labelledBy: "".concat(Rn !== null && Rn !== void 0 ? Rn : "", " ").concat(i !== null && i !== void 0 ? i : "").trim(),
1709
+ // NVDA ignores aria-labelledby attribute on popover, but reads it on menu
1708
1710
  menuId: ke,
1709
1711
  onScrollBottom: _ ? qn : undefined,
1710
1712
  placement: a !== null && a !== void 0 ? a : undefined,
1711
1713
  noOptionsMessage: D,
1712
1714
  footerMessage: S,
1713
1715
  animateLoading: l,
1714
- loadingMessage: E,
1716
+ loadingMessage: M,
1715
1717
  onScroll: F,
1716
- style: i,
1717
- tabIndex: u
1718
+ style: u,
1719
+ tabIndex: c
1718
1720
  };
1719
1721
  if (ve) {
1720
1722
 
1721
1723
  return n().createElement(ee.VirtualizedResultsMenu, $e({
1722
1724
  virtualization: ve
1723
- }, c), Zn);
1725
+ }, s), Zn);
1724
1726
  }
1725
1727
 
1726
- return n().createElement(ne(), c, Zn);
1728
+ return n().createElement(ne(), s, Zn);
1727
1729
  };
1728
1730
  var nr = (0, e.useMemo)((function() {
1729
1731
 
@@ -1737,7 +1739,7 @@
1737
1739
  elementRef: Xn,
1738
1740
  error: h,
1739
1741
  inline: w,
1740
- labelText: M,
1742
+ labelText: E,
1741
1743
  labelledBy: P,
1742
1744
  multiple: I,
1743
1745
  onClick: z,
@@ -1749,7 +1751,7 @@
1749
1751
  toggle: be,
1750
1752
  toggleContent: ge
1751
1753
  }, ye), f);
1752
- }), [ i, c, An, I, m, g, h, Xn, w, M, P, z, J, Y, Z, X, se, be, ge, ye, f ]);
1754
+ }), [ i, c, An, I, m, g, h, Xn, w, E, P, z, J, Y, Z, X, se, be, ge, ye, f ]);
1753
1755
 
1754
1756
  return n().createElement(Q(), {
1755
1757
  closeReasons: sn,
@@ -1847,9 +1849,9 @@
1847
1849
  // TS: not typed controlled/uncontrolled, handled by Multiselect wrapper component
1848
1850
  var jn = {};
1849
1851
  var Pn = (0, d._)("No matches");
1850
- var Mn = (0, d._)("Select...");
1851
- function En(r) {
1852
- var t = r.allowNewValues, o = r.animateLoading, l = r.children, a = r.controlledFilter, i = r.defaultPlacement, u = i === void 0 ? "vertical" : i, c = r.defaultValues, s = r.describedBy, d = r.disabled, f = r.elementRef, p = r.error, v = r.filter, b = r.footerMessage, m = r.inline, g = r.inputId, y = r.inputRef, h = r.isLoadingOptions, O = r.labelledBy, S = r.loadingMessage, w = r.menuStyle, k = w === void 0 ? jn : w, x = r.name, j = r.noOptionsMessage, P = j === void 0 ? Pn : j, M = r.onChange, E = r.onClose, R = r.onFilterChange, A = r.onOpen, I = r.onScroll, B = r.onScrollBottom, T = r.placeholder, L = T === void 0 ? Mn : T, N = r.repositionMode, V = r.selectAllAppearance, D = r.showSelectedValuesFirst, q = D === void 0 ? "nextOpen" : D, F = r.tabConfirmsNewValue, _ = r.values, H = r.virtualization, K = Cn(r, [ "allowNewValues", "animateLoading", "children", "controlledFilter", "defaultPlacement", "defaultValues", "describedBy", "disabled", "elementRef", "error", "filter", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onChange", "onClose", "onFilterChange", "onOpen", "onScroll", "onScrollBottom", "placeholder", "repositionMode", "selectAllAppearance", "showSelectedValuesFirst", "tabConfirmsNewValue", "values", "virtualization" ]);
1852
+ var En = (0, d._)("Select...");
1853
+ function Mn(r) {
1854
+ var t = r.allowNewValues, o = r.animateLoading, l = r.children, a = r.controlledFilter, i = r.defaultPlacement, u = i === void 0 ? "vertical" : i, c = r.defaultValues, s = r.describedBy, d = r.disabled, f = r.elementRef, p = r.error, v = r.filter, b = r.footerMessage, m = r.inline, g = r.inputId, y = r.inputRef, h = r.isLoadingOptions, O = r.labelledBy, S = r.loadingMessage, w = r.menuStyle, k = w === void 0 ? jn : w, x = r.name, j = r.noOptionsMessage, P = j === void 0 ? Pn : j, E = r.onChange, M = r.onClose, R = r.onFilterChange, A = r.onOpen, I = r.onScroll, B = r.onScrollBottom, T = r.placeholder, L = T === void 0 ? En : T, N = r.repositionMode, V = r.selectAllAppearance, D = r.showSelectedValuesFirst, q = D === void 0 ? "nextOpen" : D, F = r.tabConfirmsNewValue, _ = r.values, H = r.virtualization, K = Cn(r, [ "allowNewValues", "animateLoading", "children", "controlledFilter", "defaultPlacement", "defaultValues", "describedBy", "disabled", "elementRef", "error", "filter", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onChange", "onClose", "onFilterChange", "onOpen", "onScroll", "onScrollBottom", "placeholder", "repositionMode", "selectAllAppearance", "showSelectedValuesFirst", "tabConfirmsNewValue", "values", "virtualization" ]);
1853
1855
  // @docs-props-type CompactPropsBase
1854
1856
  if (false) {}
1855
1857
  var z = true;
@@ -1900,8 +1902,8 @@
1900
1902
  menuStyle: k,
1901
1903
  name: x,
1902
1904
  noOptionsMessage: P,
1903
- onChange: M,
1904
- onClose: E,
1905
+ onChange: E,
1906
+ onClose: M,
1905
1907
  onFilterChange: R,
1906
1908
  onOpen: A,
1907
1909
  onScroll: I,
@@ -1916,11 +1918,11 @@
1916
1918
  multiple: true
1917
1919
  }));
1918
1920
  }
1919
- En.propTypes = xn;
1920
- En.Option = E;
1921
- En.Divider = u.Divider;
1922
- En.Heading = u.Heading;
1923
- /* harmony default export */ const Rn = En;
1921
+ Mn.propTypes = xn;
1922
+ Mn.Option = M;
1923
+ Mn.Divider = u.Divider;
1924
+ Mn.Heading = u.Heading;
1925
+ /* harmony default export */ const Rn = Mn;
1924
1926
  // CONCATENATED MODULE: external "lodash/defer"
1925
1927
  const An = require("lodash/defer");
1926
1928
  var In = r.n(An);
@@ -2184,7 +2186,7 @@
2184
2186
  var xr = (0, d._)("No matches");
2185
2187
  var jr = (0, d._)("Select...");
2186
2188
  function Pr(r) {
2187
- var t = r.allowNewValues, o = r.animateLoading, l = r.children, a = r.controlledFilter, u = r.defaultPlacement, c = u === void 0 ? "vertical" : u, f = r.defaultValues, p = r.describedBy, v = r.disabled, b = r.elementRef, m = r.error, g = r.footerMessage, y = r.inline, h = r.inputId, O = r.inputRef, S = r.isLoadingOptions, w = r.labelledBy, C = r.loadingMessage, k = r.menuStyle, x = k === void 0 ? kr : k, j = r.name, P = r.noOptionsMessage, M = P === void 0 ? xr : P, R = r.onChange, A = r.onClose, I = r.onFilterChange, B = r.onScroll, T = r.onScrollBottom, L = r.onOpen, N = r.placeholder, V = N === void 0 ? jr : N, D = r.required, q = r.repositionMode, F = r.tabConfirmsNewValue, _ = r.values, H = vr(r, [ "allowNewValues", "animateLoading", "children", "controlledFilter", "defaultPlacement", "defaultValues", "describedBy", "disabled", "elementRef", "error", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onChange", "onClose", "onFilterChange", "onScroll", "onScrollBottom", "onOpen", "placeholder", "required", "repositionMode", "tabConfirmsNewValue", "values" ]);
2189
+ var t = r.allowNewValues, o = r.animateLoading, l = r.children, a = r.controlledFilter, u = r.defaultPlacement, c = u === void 0 ? "vertical" : u, f = r.defaultValues, p = r.describedBy, v = r.disabled, b = r.elementRef, m = r.error, g = r.footerMessage, y = r.inline, h = r.inputId, O = r.inputRef, S = r.isLoadingOptions, w = r.labelledBy, C = r.loadingMessage, k = r.menuStyle, x = k === void 0 ? kr : k, j = r.name, P = r.noOptionsMessage, E = P === void 0 ? xr : P, R = r.onChange, A = r.onClose, I = r.onFilterChange, B = r.onScroll, T = r.onScrollBottom, L = r.onOpen, N = r.placeholder, V = N === void 0 ? jr : N, D = r.required, q = r.repositionMode, F = r.tabConfirmsNewValue, _ = r.values, H = vr(r, [ "allowNewValues", "animateLoading", "children", "controlledFilter", "defaultPlacement", "defaultValues", "describedBy", "disabled", "elementRef", "error", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onChange", "onClose", "onFilterChange", "onScroll", "onScrollBottom", "onOpen", "placeholder", "required", "repositionMode", "tabConfirmsNewValue", "values" ]);
2188
2190
  // @docs-props-type NormalPropsBase
2189
2191
  var K = s()({
2190
2192
  componentName: "Multiselect",
@@ -2207,8 +2209,8 @@
2207
2209
  var xe = Ce.indexOf(re) >= 0;
2208
2210
  var je = (0, e.useRef)(null);
2209
2211
  var Pe = (0, e.useRef)(null);
2210
- var Me = (0, e.useRef)(undefined);
2211
- var Ee = (0, e.useRef)(0);
2212
+ var Ee = (0, e.useRef)(undefined);
2213
+ var Me = (0, e.useRef)(0);
2212
2214
  var Re = (0, e.useState)((function() {
2213
2215
  return {
2214
2216
  activeItemId: (0, ce.createDOMID)("active-item"),
@@ -2221,6 +2223,10 @@
2221
2223
  X(0);
2222
2224
  }
2223
2225
  }), [ _, K ]);
2226
+ // Tracks the prev activeIndex so its known if scrolling is needed in handleActiveOptionMount - can't use usePrevious b/c the value needs wiped on Menu close
2227
+ (0, e.useEffect)((function() {
2228
+ Pe.current = U;
2229
+ }), [ U ]);
2224
2230
  var Ne = (0, e.useCallback)((function(e) {
2225
2231
  var n = e.resetFilterKeyword;
2226
2232
  if (!pe) {
@@ -2271,7 +2277,7 @@
2271
2277
  var _e = (0, e.useCallback)((function(e) {
2272
2278
  if (pe && !S) {
2273
2279
  T === null || T === void 0 ? void 0 : T(e);
2274
- we("".concat(Ee.current, " options, loading more options"));
2280
+ we("".concat(Me.current, " options, loading more options"));
2275
2281
  }
2276
2282
  }), [ pe, S, T ]);
2277
2283
  var He = (0, e.useCallback)((function(e, n) {
@@ -2294,10 +2300,10 @@
2294
2300
  var r;
2295
2301
  var t = n.key;
2296
2302
  if (t === "Tab" && pe) {
2297
- if (F && Me.current !== undefined && Ee.current <= 1) {
2303
+ if (F && Ee.current !== undefined && Me.current <= 1) {
2298
2304
  var o;
2299
2305
  n.preventDefault();
2300
- De(n, Me.current);
2306
+ De(n, Ee.current);
2301
2307
  (o = je.current) === null || o === void 0 ? void 0 : o.focus();
2302
2308
  } else {
2303
2309
  ve(false);
@@ -2308,7 +2314,7 @@
2308
2314
  }
2309
2315
  if (t === "End" && pe) {
2310
2316
  n.preventDefault();
2311
- X(Ee.current - 1);
2317
+ X(Me.current - 1);
2312
2318
  }
2313
2319
  if (t === "Home" && pe) {
2314
2320
  n.preventDefault();
@@ -2318,7 +2324,7 @@
2318
2324
  n.preventDefault();
2319
2325
  if (pe) {
2320
2326
  X((function(e) {
2321
- return Math.min(e + 1, Ee.current - 1);
2327
+ return Math.min(e + 1, Me.current - 1);
2322
2328
  }));
2323
2329
  } else {
2324
2330
  X(0);
@@ -2342,8 +2348,8 @@
2342
2348
  ve(true);
2343
2349
  }
2344
2350
  }
2345
- if (t === "Enter" && Me.current !== undefined && pe) {
2346
- De(n, Me.current);
2351
+ if (t === "Enter" && Ee.current !== undefined && pe) {
2352
+ De(n, Ee.current);
2347
2353
  }
2348
2354
  if (t === "Backspace" && ((r = je.current) === null || r === void 0 ? void 0 : r.value) === "" && Ce.length) {
2349
2355
  qe(n, Fn()(Ce));
@@ -2458,9 +2464,9 @@
2458
2464
  // Map Options to selected values
2459
2465
  if (Ce && Ce.length) {
2460
2466
  e.Children.toArray(l).filter(e.isValidElement).filter((function(e) {
2461
- return e.type === E;
2467
+ return e.type === M;
2462
2468
  })).forEach((function(e) {
2463
- if (e.type === E) {
2469
+ if (e.type === M) {
2464
2470
  var n = Ce.indexOf(e.props.value);
2465
2471
  if (n !== -1) {
2466
2472
  ke[n] = e;
@@ -2477,8 +2483,8 @@
2477
2483
  return true;
2478
2484
  // Keep all headers and non-interactive options
2479
2485
  }));
2480
- Ee.current = 0;
2481
- Me.current = undefined;
2486
+ Me.current = 0;
2487
+ Ee.current = undefined;
2482
2488
  var rn = e.Children.map(nn, (function(n, r) {
2483
2489
  var t = n.props;
2484
2490
  if (!t || !i()(t, "value")) {
@@ -2512,7 +2518,7 @@
2512
2518
  })) || [];
2513
2519
  // Add the option to add the new value
2514
2520
  if (t && !xe && re) {
2515
- rn.unshift( n().createElement(E, {
2521
+ rn.unshift( n().createElement(M, {
2516
2522
  label: "".concat(re),
2517
2523
  description: (0, d._)("(New value)"),
2518
2524
  descriptionPosition: "right",
@@ -2530,13 +2536,13 @@
2530
2536
  }
2531
2537
  var t = n;
2532
2538
  var o = t.props, l = o.disabled, a = o.value;
2533
- var u = Ee.current === U;
2534
- Ee.current += 1;
2539
+ var u = Me.current === U;
2540
+ Me.current += 1;
2535
2541
  if (!u) {
2536
2542
  return t;
2537
2543
  }
2538
2544
  if (!l) {
2539
- Me.current = a;
2545
+ Ee.current = a;
2540
2546
  }
2541
2547
  var c = (0, e.cloneElement)(t, {
2542
2548
  active: u,
@@ -2561,7 +2567,7 @@
2561
2567
  placement: a !== null && a !== void 0 ? a : undefined,
2562
2568
  isLoading: S,
2563
2569
  onScrollBottom: T ? _e : undefined,
2564
- noOptionsMessage: M,
2570
+ noOptionsMessage: E,
2565
2571
  footerMessage: g,
2566
2572
  animateLoading: o,
2567
2573
  loadingMessage: C,
@@ -2619,7 +2625,7 @@
2619
2625
  style: ln,
2620
2626
  placeholder: Ce.length ? "" : V,
2621
2627
  required: D,
2622
- "aria-activedescendant": pe && Ee.current > 0 ? Te : undefined,
2628
+ "aria-activedescendant": pe && Me.current > 0 ? Te : undefined,
2623
2629
  "aria-autocomplete": "list",
2624
2630
  "aria-controls": pe ? Le : undefined,
2625
2631
  "aria-owns": pe ? Le : undefined,
@@ -2643,18 +2649,18 @@
2643
2649
  }, Ze(ke)));
2644
2650
  }
2645
2651
  Pr.propTypes = Sr;
2646
- Pr.Option = E;
2652
+ Pr.Option = M;
2647
2653
  Pr.Divider = u.Divider;
2648
2654
  Pr.Heading = u.Heading;
2649
- /* harmony default export */ const Mr = Pr;
2655
+ /* harmony default export */ const Er = Pr;
2650
2656
  // CONCATENATED MODULE: ./src/Multiselect/Multiselect.tsx
2651
- function Er(e) {
2657
+ function Mr(e) {
2652
2658
  "@babel/helpers - typeof";
2653
- return Er = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
2659
+ return Mr = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
2654
2660
  return typeof e;
2655
2661
  } : function(e) {
2656
2662
  return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
2657
- }, Er(e);
2663
+ }, Mr(e);
2658
2664
  }
2659
2665
  function Rr() {
2660
2666
  return Rr = Object.assign ? Object.assign.bind() : function(e) {
@@ -2698,14 +2704,14 @@
2698
2704
  }
2699
2705
  function Tr(e) {
2700
2706
  var n = Lr(e, "string");
2701
- return "symbol" == Er(n) ? n : n + "";
2707
+ return "symbol" == Mr(n) ? n : n + "";
2702
2708
  }
2703
2709
  function Lr(e, n) {
2704
- if ("object" != Er(e) || !e) return e;
2710
+ if ("object" != Mr(e) || !e) return e;
2705
2711
  var r = e[Symbol.toPrimitive];
2706
2712
  if (void 0 !== r) {
2707
2713
  var t = r.call(e, n || "default");
2708
- if ("object" != Er(t)) return t;
2714
+ if ("object" != Mr(t)) return t;
2709
2715
  throw new TypeError("@@toPrimitive must return a primitive value.");
2710
2716
  }
2711
2717
  return ("string" === n ? String : Number)(e);
@@ -2775,7 +2781,7 @@
2775
2781
  var qr = (0, d._)("No matches");
2776
2782
  var Fr = (0, d._)("Select...");
2777
2783
  function _r(r) {
2778
- var t = r.allowNewValues, o = r.animateLoading, l = r.compact, a = r.children, i = r.controlledFilter, u = r.defaultPlacement, c = u === void 0 ? "vertical" : u, d = r.defaultValues, f = r.describedBy, p = r.disabled, v = r.elementRef, b = r.error, m = r.filter, g = r.footerMessage, y = r.inline, h = r.inputId, O = r.inputRef, S = r.isLoadingOptions, w = r.labelledBy, C = r.loadingMessage, k = r.menuStyle, x = r.name, j = r.noOptionsMessage, P = j === void 0 ? qr : j, M = r.onChange, E = r.onClose, R = r.onFilterChange, A = r.onOpen, I = r.onScroll, B = r.onScrollBottom, T = r.placeholder, L = T === void 0 ? Fr : T, N = r.repositionMode, V = N === void 0 ? "flip" : N, D = r.selectAllAppearance, q = r.showSelectedValuesFirst, F = r.tabConfirmsNewValue, _ = r.values, H = r.virtualization, K = Nr(r, [ "allowNewValues", "animateLoading", "compact", "children", "controlledFilter", "defaultPlacement", "defaultValues", "describedBy", "disabled", "elementRef", "error", "filter", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onChange", "onClose", "onFilterChange", "onOpen", "onScroll", "onScrollBottom", "placeholder", "repositionMode", "selectAllAppearance", "showSelectedValuesFirst", "tabConfirmsNewValue", "values", "virtualization" ]);
2784
+ var t = r.allowNewValues, o = r.animateLoading, l = r.compact, a = r.children, i = r.controlledFilter, u = r.defaultPlacement, c = u === void 0 ? "vertical" : u, d = r.defaultValues, f = r.describedBy, p = r.disabled, v = r.elementRef, b = r.error, m = r.filter, g = r.footerMessage, y = r.inline, h = r.inputId, O = r.inputRef, S = r.isLoadingOptions, w = r.labelledBy, C = r.loadingMessage, k = r.menuStyle, x = r.name, j = r.noOptionsMessage, P = j === void 0 ? qr : j, E = r.onChange, M = r.onClose, R = r.onFilterChange, A = r.onOpen, I = r.onScroll, B = r.onScrollBottom, T = r.placeholder, L = T === void 0 ? Fr : T, N = r.repositionMode, V = N === void 0 ? "flip" : N, D = r.selectAllAppearance, q = r.showSelectedValuesFirst, F = r.tabConfirmsNewValue, _ = r.values, H = r.virtualization, K = Nr(r, [ "allowNewValues", "animateLoading", "compact", "children", "controlledFilter", "defaultPlacement", "defaultValues", "describedBy", "disabled", "elementRef", "error", "filter", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onChange", "onClose", "onFilterChange", "onOpen", "onScroll", "onScrollBottom", "placeholder", "repositionMode", "selectAllAppearance", "showSelectedValuesFirst", "tabConfirmsNewValue", "values", "virtualization" ]);
2779
2785
  // @docs-props-type MultiselectPropsBase
2780
2786
  var z = s()({
2781
2787
  componentName: "Multiselect",
@@ -2814,8 +2820,8 @@
2814
2820
  menuStyle: k,
2815
2821
  name: x,
2816
2822
  noOptionsMessage: P,
2817
- onClose: E,
2818
- onChange: M,
2823
+ onClose: M,
2824
+ onChange: E,
2819
2825
  onFilterChange: R,
2820
2826
  onOpen: A,
2821
2827
  onScroll: I,
@@ -2853,13 +2859,13 @@
2853
2859
  }, J, Q, U));
2854
2860
  }
2855
2861
 
2856
- return n().createElement(Mr, Rr({
2862
+ return n().createElement(Er, Rr({
2857
2863
  "data-test": "multiselect"
2858
2864
  }, J, U));
2859
2865
  }
2860
2866
  // TODO: SUI-3402, this can be removed when ControlGroup no longer needs to inspect componentType
2861
2867
  _r.componentType = "Multiselect";
2862
- _r.Option = E;
2868
+ _r.Option = M;
2863
2869
  _r.Heading = u.Heading;
2864
2870
  _r.Divider = u.Divider;
2865
2871
  _r.propTypes = Dr;