@ringcentral/juno 1.11.2 → 1.11.3-beta.5620-d9154e6b

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 (164) hide show
  1. package/README.md +0 -10
  2. package/components/Dialog/Dialog.d.ts +17 -4
  3. package/components/Dialog/Dialog.js +21 -8
  4. package/components/Dialog/DialogActions/DialogActions.d.ts +15 -5
  5. package/components/Dialog/DialogActions/DialogActions.js +13 -7
  6. package/components/Dialog/DialogActions/styles/DialogActionsStyle.js +20 -8
  7. package/components/Dialog/DialogActions/utils/DialogActionsUtils.d.ts +2 -2
  8. package/components/Dialog/DialogActions/utils/DialogActionsUtils.js +2 -5
  9. package/components/Dialog/DialogContent/DialogContent.d.ts +4 -4
  10. package/components/Dialog/DialogContent/DialogContent.js +5 -6
  11. package/components/Dialog/DialogContent/styles/DialogContentStyle.js +2 -4
  12. package/components/Dialog/DialogContent/utils/DialogContentUtils.d.ts +1 -2
  13. package/components/Dialog/DialogContent/utils/DialogContentUtils.js +6 -6
  14. package/components/Dialog/DialogContentText/DialogContentText.d.ts +4 -3
  15. package/components/Dialog/DialogContentText/DialogContentText.js +9 -8
  16. package/components/Dialog/DialogContentText/styles/DialogContentTextStyle.js +4 -2
  17. package/components/Dialog/DialogTitle/DialogTitle.d.ts +4 -4
  18. package/components/Dialog/DialogTitle/DialogTitle.js +6 -7
  19. package/components/Dialog/DialogTitle/styles/DialogTitleStyle.js +4 -5
  20. package/components/Dialog/DialogTitle/utils/DialogTitleUtils.d.ts +4 -2
  21. package/components/Dialog/DialogTitle/utils/DialogTitleUtils.js +6 -5
  22. package/components/Dialog/utils/DialogContext.d.ts +15 -0
  23. package/components/Dialog/utils/DialogContext.js +33 -0
  24. package/components/Dialog/utils/index.d.ts +1 -0
  25. package/components/Dialog/utils/index.js +1 -0
  26. package/components/Downshift/Downshift.d.ts +23 -2
  27. package/components/Downshift/Downshift.js +11 -8
  28. package/components/Downshift/SuggestionList/SuggestionList.d.ts +6 -4
  29. package/components/Downshift/SuggestionList/SuggestionList.js +17 -10
  30. package/components/Downshift/SuggestionList/utils/SuggestionListUtils.d.ts +1 -1
  31. package/components/Downshift/SuggestionList/utils/SuggestionListUtils.js +1 -1
  32. package/components/Downshift/utils/useDownshift.d.ts +3 -2
  33. package/components/Downshift/utils/useDownshift.js +7 -3
  34. package/components/Downshift/utils/useDownshiftGroup.d.ts +6 -4
  35. package/components/Downshift/utils/useDownshiftGroup.js +31 -9
  36. package/components/Forms/Picker/DatePicker/Calendar.js +5 -4
  37. package/components/Forms/Picker/DatePicker/DatePickerHeader.js +1 -1
  38. package/components/Forms/Picker/DatePicker/styles/StyledDatePickerHeader.d.ts +1 -1
  39. package/components/Forms/Picker/DatePicker/styles/StyledDatePickerHeader.js +1 -1
  40. package/components/Forms/Switch/styles/SwitchStyle.js +1 -1
  41. package/components/Icon/assets/icon-add-reactions.svg +5 -1
  42. package/components/Icon/assets/icon-connect.svg +5 -0
  43. package/components/Icon/assets/icon-customize-tabs.svg +5 -0
  44. package/components/Icon/icon-symbol.d.ts +1 -1
  45. package/components/Icon/icon-symbol.js +1 -1
  46. package/components/List/ListItem/ListItem.js +0 -1
  47. package/components/List/ListItem/styles/ListItemStyle.js +1 -1
  48. package/components/PopupBox/PopupBox.d.ts +2 -2
  49. package/components/PopupBox/PopupBox.js +8 -10
  50. package/components/PortalHost/Connectable/Connectable.d.ts +11 -0
  51. package/components/PortalHost/Connectable/Connectable.js +50 -0
  52. package/components/PortalHost/Connectable/ThrottleScheduler.d.ts +8 -0
  53. package/components/PortalHost/Connectable/ThrottleScheduler.js +27 -0
  54. package/components/PortalHost/Connectable/index.d.ts +3 -0
  55. package/components/PortalHost/Connectable/index.js +8 -0
  56. package/components/PortalHost/Connectable/types.d.ts +7 -0
  57. package/components/PortalHost/Connectable/types.js +3 -0
  58. package/components/PortalHost/PortalHost.d.ts +7 -0
  59. package/components/PortalHost/PortalHost.js +44 -0
  60. package/components/PortalHost/PortalManager/PortalManager.d.ts +65 -0
  61. package/components/PortalHost/PortalManager/PortalManager.js +274 -0
  62. package/components/PortalHost/PortalManager/PortalStore.d.ts +20 -0
  63. package/components/PortalHost/PortalManager/PortalStore.js +134 -0
  64. package/components/PortalHost/PortalManager/index.d.ts +4 -0
  65. package/components/PortalHost/PortalManager/index.js +9 -0
  66. package/components/PortalHost/PortalManager/types.d.ts +86 -0
  67. package/components/PortalHost/PortalManager/types.js +3 -0
  68. package/components/PortalHost/PortalManager/utils.d.ts +8 -0
  69. package/components/PortalHost/PortalManager/utils.js +19 -0
  70. package/components/PortalHost/PortalRenderer.d.ts +10 -0
  71. package/components/PortalHost/PortalRenderer.js +43 -0
  72. package/components/PortalHost/context/PortalIDContext.d.ts +5 -0
  73. package/components/PortalHost/context/PortalIDContext.js +5 -0
  74. package/components/PortalHost/context/PortalManagerContext.d.ts +6 -0
  75. package/components/PortalHost/context/PortalManagerContext.js +5 -0
  76. package/components/PortalHost/context/index.d.ts +2 -0
  77. package/components/PortalHost/context/index.js +7 -0
  78. package/components/PortalHost/index.d.ts +4 -0
  79. package/components/PortalHost/index.js +9 -0
  80. package/components/PortalHost/utils/index.d.ts +2 -0
  81. package/components/PortalHost/utils/index.js +7 -0
  82. package/components/PortalHost/utils/usePortalManagerWithID.d.ts +8 -0
  83. package/components/PortalHost/utils/usePortalManagerWithID.js +12 -0
  84. package/components/PortalHost/utils/useUnmountPortalHandler.d.ts +5 -0
  85. package/components/PortalHost/utils/useUnmountPortalHandler.js +16 -0
  86. package/components/Snackbar/Snackbar.js +4 -2
  87. package/components/Virtuoso/utils/useHighlightScroll.d.ts +2 -1
  88. package/components/Virtuoso/utils/useHighlightScroll.js +4 -2
  89. package/components/index.d.ts +2 -1
  90. package/components/index.js +2 -1
  91. package/es6/components/Dialog/Dialog.js +22 -10
  92. package/es6/components/Dialog/DialogActions/DialogActions.js +11 -5
  93. package/es6/components/Dialog/DialogActions/styles/DialogActionsStyle.js +19 -7
  94. package/es6/components/Dialog/DialogActions/utils/DialogActionsUtils.js +2 -5
  95. package/es6/components/Dialog/DialogContent/DialogContent.js +3 -4
  96. package/es6/components/Dialog/DialogContent/styles/DialogContentStyle.js +3 -5
  97. package/es6/components/Dialog/DialogContent/utils/DialogContentUtils.js +6 -6
  98. package/es6/components/Dialog/DialogContentText/DialogContentText.js +7 -6
  99. package/es6/components/Dialog/DialogContentText/styles/DialogContentTextStyle.js +4 -2
  100. package/es6/components/Dialog/DialogTitle/DialogTitle.js +5 -6
  101. package/es6/components/Dialog/DialogTitle/styles/DialogTitleStyle.js +4 -5
  102. package/es6/components/Dialog/DialogTitle/utils/DialogTitleUtils.js +6 -5
  103. package/es6/components/Dialog/utils/DialogContext.js +31 -0
  104. package/es6/components/Dialog/utils/index.js +1 -0
  105. package/es6/components/Downshift/Downshift.js +11 -8
  106. package/es6/components/Downshift/SuggestionList/SuggestionList.js +17 -10
  107. package/es6/components/Downshift/SuggestionList/utils/SuggestionListUtils.js +1 -1
  108. package/es6/components/Downshift/utils/useDownshift.js +7 -3
  109. package/es6/components/Downshift/utils/useDownshiftGroup.js +33 -11
  110. package/es6/components/Forms/Picker/DatePicker/Calendar.js +6 -5
  111. package/es6/components/Forms/Picker/DatePicker/DatePickerHeader.js +1 -1
  112. package/es6/components/Forms/Picker/DatePicker/styles/StyledDatePickerHeader.js +2 -2
  113. package/es6/components/Forms/Switch/styles/SwitchStyle.js +1 -1
  114. package/es6/components/Icon/assets/icon-add-reactions.svg +5 -1
  115. package/es6/components/Icon/assets/icon-connect.svg +5 -0
  116. package/es6/components/Icon/assets/icon-customize-tabs.svg +5 -0
  117. package/es6/components/Icon/icon-symbol.js +1 -1
  118. package/es6/components/List/ListItem/ListItem.js +0 -1
  119. package/es6/components/List/ListItem/styles/ListItemStyle.js +1 -1
  120. package/es6/components/PopupBox/PopupBox.js +8 -10
  121. package/es6/components/PortalHost/Connectable/Connectable.js +48 -0
  122. package/es6/components/PortalHost/Connectable/ThrottleScheduler.js +25 -0
  123. package/es6/components/PortalHost/Connectable/index.js +3 -0
  124. package/es6/components/PortalHost/Connectable/types.js +1 -0
  125. package/es6/components/PortalHost/PortalHost.js +35 -0
  126. package/es6/components/PortalHost/PortalManager/PortalManager.js +272 -0
  127. package/es6/components/PortalHost/PortalManager/PortalStore.js +132 -0
  128. package/es6/components/PortalHost/PortalManager/index.js +4 -0
  129. package/es6/components/PortalHost/PortalManager/types.js +1 -0
  130. package/es6/components/PortalHost/PortalManager/utils.js +17 -0
  131. package/es6/components/PortalHost/PortalRenderer.js +34 -0
  132. package/es6/components/PortalHost/context/PortalIDContext.js +3 -0
  133. package/es6/components/PortalHost/context/PortalManagerContext.js +3 -0
  134. package/es6/components/PortalHost/context/index.js +2 -0
  135. package/es6/components/PortalHost/index.js +4 -0
  136. package/es6/components/PortalHost/utils/index.js +2 -0
  137. package/es6/components/PortalHost/utils/usePortalManagerWithID.js +10 -0
  138. package/es6/components/PortalHost/utils/useUnmountPortalHandler.js +14 -0
  139. package/es6/components/Snackbar/Snackbar.js +4 -2
  140. package/es6/components/Virtuoso/utils/useHighlightScroll.js +4 -2
  141. package/es6/components/index.js +2 -1
  142. package/es6/icon/AddReactions.js +3 -1
  143. package/es6/icon/Connect.js +17 -0
  144. package/es6/icon/CustomizeTabs.js +17 -0
  145. package/es6/icon/index.js +2 -1
  146. package/es6/icons/icon-add-reactions.svg +5 -1
  147. package/es6/icons/icon-connect.svg +5 -0
  148. package/es6/icons/icon-customize-tabs.svg +5 -0
  149. package/icon/AddReactions.js +3 -1
  150. package/icon/{MenuFax.d.ts → Connect.d.ts} +2 -2
  151. package/icon/{MenuFax.js → Connect.js} +5 -5
  152. package/icon/CustomizeTabs.d.ts +3 -0
  153. package/icon/CustomizeTabs.js +26 -0
  154. package/icon/index.d.ts +2 -1
  155. package/icon/index.js +4 -2
  156. package/icons/icon-add-reactions.svg +5 -1
  157. package/icons/icon-connect.svg +5 -0
  158. package/icons/icon-customize-tabs.svg +5 -0
  159. package/package.json +1 -1
  160. package/components/Icon/assets/icon-menu-fax.svg +0 -5
  161. package/es6/components/Icon/assets/icon-menu-fax.svg +0 -5
  162. package/es6/icon/MenuFax.js +0 -17
  163. package/es6/icons/icon-menu-fax.svg +0 -5
  164. package/icons/icon-menu-fax.svg +0 -5
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="styled-jsx" />
3
+ /// <reference types="@emotion/core" />
4
+ import { RcBaseSize, RcTheme } from '../../../foundation';
5
+ export declare type RcDialogChildrenSize = RcBaseSize<'small' | 'medium'>;
6
+ export declare type RcDialogChildrenProps = {
7
+ /** size token */
8
+ size?: RcDialogChildrenSize;
9
+ };
10
+ export declare type RcDialogContextValue = RcDialogChildrenProps;
11
+ export declare const RcDialogContext: import("react").Context<RcDialogChildrenProps>;
12
+ export declare const useRcDialogContext: () => RcDialogChildrenProps;
13
+ export declare const useDialogDefaultProps: <T extends RcDialogChildrenProps & {
14
+ theme?: RcTheme | undefined;
15
+ }>({ theme, ...props }: T) => T;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ var react_1 = require("react");
26
+ exports.RcDialogContext = react_1.createContext({});
27
+ exports.useRcDialogContext = function () { return react_1.useContext(exports.RcDialogContext); };
28
+ exports.useDialogDefaultProps = function (_a) {
29
+ var theme = _a.theme, props = __rest(_a, ["theme"]);
30
+ var context = exports.useRcDialogContext();
31
+ var _b = props.size, size = _b === void 0 ? context.size || 'medium' : _b;
32
+ return __assign(__assign({}, props), { size: size });
33
+ };
@@ -1 +1,2 @@
1
+ export * from './DialogContext';
1
2
  export * from './DialogUtils';
@@ -3,4 +3,5 @@ function __export(m) {
3
3
  for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
4
  }
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ __export(require("./DialogContext"));
6
7
  __export(require("./DialogUtils"));
@@ -76,6 +76,24 @@ declare type RcDownshiftProps<T = RcDownshiftSelectedItem, K = T & RcDownshiftSe
76
76
  * @returns {ReactNode}
77
77
  */
78
78
  renderOption?: (option: T & RcDownshiftSelectedItem, state: RcDownshiftRenderOptionState) => React.ReactNode;
79
+ /**
80
+ * group layout mode
81
+ *
82
+ * - `normal`: use group name as group title
83
+ * - `expanded`: use first-item as group title, and that is `clickable`
84
+ *
85
+ * @default 'normal'
86
+ */
87
+ groupVariant?: 'normal' | 'expanded';
88
+ /**
89
+ * group expanded state, you can control expanded state by that,
90
+ * use when `groupVariant` is `expanded`
91
+ *
92
+ * - `true`: expand all
93
+ * - `false`: collapse all
94
+ * - `{key: boolean}`: control group state
95
+ */
96
+ groupExpanded?: Record<string, boolean> | boolean;
79
97
  /**
80
98
  * If provided, the options will be grouped under the returned string.
81
99
  * The groupBy value is also used as the text for group headings when `renderGroup` is not provided.
@@ -160,6 +178,7 @@ declare type RcDownshiftProps<T = RcDownshiftSelectedItem, K = T & RcDownshiftSe
160
178
  *
161
179
  * - `getActiveIndex`: get current active index
162
180
  * - `setActiveIndex`: set current active index;
181
+ * - `getFilterResultItems`: get current filter result option items;
163
182
  * - `getHighlightedIndex`: get current highlight index;
164
183
  * - `setHighlightedIndex`: set current highlight index;
165
184
  * - `openMenu`: open the listbox menu
@@ -167,7 +186,7 @@ declare type RcDownshiftProps<T = RcDownshiftSelectedItem, K = T & RcDownshiftSe
167
186
  * - `focus`: focus on text field input
168
187
  * - `reset(isFocus)`: reset whole downshift, `isFocus` default is `false`
169
188
  */
170
- action?: React.Ref<RcDownshiftRef>;
189
+ action?: React.Ref<RcDownshiftRef<T>>;
171
190
  /** auto close menu when options filter result is zero */
172
191
  autoClose?: boolean;
173
192
  /**
@@ -280,11 +299,13 @@ declare type RcDownshiftProps<T = RcDownshiftSelectedItem, K = T & RcDownshiftSe
280
299
  /** @deprecated TextField props */
281
300
  TextFieldProps?: Pick<RcTextFieldProps, 'required' | 'inputProps'>;
282
301
  };
283
- declare type RcDownshiftRef = {
302
+ declare type RcDownshiftRef<T = RcDownshiftSelectedItem> = {
284
303
  /** get current active index */
285
304
  getActiveIndex: () => number;
286
305
  /** set current active index */
287
306
  setActiveIndex: (index: number) => void;
307
+ /** get current filter result option items; */
308
+ getFilterResultItems: () => T[];
288
309
  /** get current highlight index */
289
310
  getHighlightedIndex: () => number;
290
311
  /** set current highlight index */
@@ -65,8 +65,8 @@ var utils_1 = require("./utils");
65
65
  exports.RcDownshiftDefaultFilterOptions = utils_1.RcDownshiftDefaultFilterOptions;
66
66
  var _RcDownshift = react_1.memo(react_1.forwardRef(function (inProps, ref) {
67
67
  var props = foundation_1.useThemeProps({ props: inProps, name: 'RcDownshift' });
68
- var _a = props.itemToString, itemToString = _a === void 0 ? utils_1.DEFAULT_GET_OPTION_LABEL : _a, _b = props.keyToChips, keyToChips = _b === void 0 ? utils_1.DEFAULT_KEY_TO_CHIPS : _b, _c = props.limitOfFreeChips, limitOfFreeChips = _c === void 0 ? utils_1.DEFAULT_LIMIT_CHIPS : _c, minRowHeight = props.minRowHeight, suggestionItems = props.suggestionItems, messageRef = props.messageRef, MenuItem = props.MenuItem, inputLabel = props.inputLabel, nameError = props.nameError, maxLength = props.maxLength, InputItem = props.InputItem, emailError = props.emailError, autoSwitchEmail = props.autoSwitchEmail, enableFreeChips = props.enableFreeChips, inputPlaceholder = props.inputPlaceholder, errorSelectedItems = props.errorSelectedItems, enableAutoTransform = props.enableAutoTransform, allowPlainHelperText = props.allowPlainHelperText, TextFieldProps = props.TextFieldProps, selectedItemsProp = props.selectedItems, automationId = props.automationId, screenReader = props.screenReader, onSelectChange = props.onSelectChange, variant = props.variant, getExpandIconProps = props.getExpandIconProps, groupBy = props.groupBy, _d = props.value, valueProp = _d === void 0 ? selectedItemsProp : _d, _e = props.autoHighlight, autoHighlight = _e === void 0 ? true : _e, _f = props.fullWidth, fullWidth = _f === void 0 ? true : _f, _g = props.clearBtn, clearBtn = _g === void 0 ? false : _g, _h = props.toggleButton, toggleButton = _h === void 0 ? false : _h, _j = props.multiple, multiple = _j === void 0 ? false : _j, clearButtonProps = props.clearButtonProps, onClear = props.onClear, ToggleButtonProps = props.ToggleButtonProps, inputValueProp = props.inputValue, onKeyDownProp = props.onKeyDown, helperTextProp = props.helperText, options = props.options, openOnFocus = props.openOnFocus, _k = props.getOptionLabel, getOptionLabel = _k === void 0 ? itemToString : _k, renderInput = props.renderInput, _l = props.label, label = _l === void 0 ? inputLabel : _l, _m = props.inputRef, inputRefProp = _m === void 0 ? messageRef : _m, _o = props.error, error = _o === void 0 ? nameError : _o, _p = props.placeholder, placeholder = _p === void 0 ? inputPlaceholder : _p, _q = props.freeSolo, freeSolo = _q === void 0 ? enableFreeChips : _q, _r = props.keyToTags, keyToTags = _r === void 0 ? keyToChips : _r, _s = props.maxFreeSolo, maxFreeSolo = _s === void 0 ? limitOfFreeChips : _s, SuggestionListProps = props.SuggestionListProps, _t = props.autoSelect, autoSelect = _t === void 0 ? enableAutoTransform : _t, PopperProps = props.PopperProps, initialIsOpen = props.initialIsOpen, disabled = props.disabled, requiredProp = props.required, _u = props.defaultIsOpen, defaultIsOpen = _u === void 0 ? openOnFocus : _u, _v = props.disableCloseOnSelect, disableCloseOnSelect = _v === void 0 ? defaultIsOpen : _v, _w = props.onChange, onChangeProp = _w === void 0 ? onSelectChange : _w, onInputChangeProp = props.onInputChange, onMaxFreeSolo = props.onMaxFreeSolo, FormHelperTextPropsProp = props.FormHelperTextProps, action = props.action, filterOptions = props.filterOptions, renderOption = props.renderOption, renderTags = props.renderTags, getOptionDisabled = props.getOptionDisabled, renderGroup = props.renderGroup, onGroupExpanded = props.onGroupExpanded, renderNoOptions = props.renderNoOptions, InputPropsProp = props.InputProps, debug = props.debug, disabledItemsHighlightable = props.disabledItemsHighlightable, openProp = props.open, onOpen = props.onOpen, onClose = props.onClose, rest = __rest(props, ["itemToString", "keyToChips", "limitOfFreeChips", "minRowHeight", "suggestionItems", "messageRef", "MenuItem", "inputLabel", "nameError", "maxLength", "InputItem", "emailError", "autoSwitchEmail", "enableFreeChips", "inputPlaceholder", "errorSelectedItems", "enableAutoTransform", "allowPlainHelperText", "TextFieldProps", "selectedItems", "automationId", "screenReader", "onSelectChange", "variant", "getExpandIconProps", "groupBy", "value", "autoHighlight", "fullWidth", "clearBtn", "toggleButton", "multiple", "clearButtonProps", "onClear", "ToggleButtonProps", "inputValue", "onKeyDown", "helperText", "options", "openOnFocus", "getOptionLabel", "renderInput", "label", "inputRef", "error", "placeholder", "freeSolo", "keyToTags", "maxFreeSolo", "SuggestionListProps", "autoSelect", "PopperProps", "initialIsOpen", "disabled", "required", "defaultIsOpen", "disableCloseOnSelect", "onChange", "onInputChange", "onMaxFreeSolo", "FormHelperTextProps", "action", "filterOptions", "renderOption", "renderTags", "getOptionDisabled", "renderGroup", "onGroupExpanded", "renderNoOptions", "InputProps", "debug", "disabledItemsHighlightable", "open", "onOpen", "onClose"]);
69
- var _x = __read(react_1.useState('bottom'), 2), position = _x[0], setPosition = _x[1];
68
+ var _a = props.itemToString, itemToString = _a === void 0 ? utils_1.DEFAULT_GET_OPTION_LABEL : _a, _b = props.keyToChips, keyToChips = _b === void 0 ? utils_1.DEFAULT_KEY_TO_CHIPS : _b, _c = props.limitOfFreeChips, limitOfFreeChips = _c === void 0 ? utils_1.DEFAULT_LIMIT_CHIPS : _c, minRowHeight = props.minRowHeight, suggestionItems = props.suggestionItems, messageRef = props.messageRef, MenuItem = props.MenuItem, inputLabel = props.inputLabel, nameError = props.nameError, maxLength = props.maxLength, InputItem = props.InputItem, emailError = props.emailError, autoSwitchEmail = props.autoSwitchEmail, enableFreeChips = props.enableFreeChips, inputPlaceholder = props.inputPlaceholder, errorSelectedItems = props.errorSelectedItems, enableAutoTransform = props.enableAutoTransform, allowPlainHelperText = props.allowPlainHelperText, TextFieldProps = props.TextFieldProps, selectedItemsProp = props.selectedItems, automationId = props.automationId, screenReader = props.screenReader, onSelectChange = props.onSelectChange, variant = props.variant, groupExpanded = props.groupExpanded, _d = props.groupVariant, groupVariant = _d === void 0 ? 'normal' : _d, getExpandIconProps = props.getExpandIconProps, groupBy = props.groupBy, _e = props.value, valueProp = _e === void 0 ? selectedItemsProp : _e, _f = props.autoHighlight, autoHighlight = _f === void 0 ? true : _f, _g = props.fullWidth, fullWidth = _g === void 0 ? true : _g, _h = props.clearBtn, clearBtn = _h === void 0 ? false : _h, _j = props.toggleButton, toggleButton = _j === void 0 ? false : _j, _k = props.multiple, multiple = _k === void 0 ? false : _k, clearButtonProps = props.clearButtonProps, onClear = props.onClear, ToggleButtonProps = props.ToggleButtonProps, inputValueProp = props.inputValue, onKeyDownProp = props.onKeyDown, helperTextProp = props.helperText, options = props.options, openOnFocus = props.openOnFocus, _l = props.getOptionLabel, getOptionLabel = _l === void 0 ? itemToString : _l, renderInput = props.renderInput, _m = props.label, label = _m === void 0 ? inputLabel : _m, _o = props.inputRef, inputRefProp = _o === void 0 ? messageRef : _o, _p = props.error, error = _p === void 0 ? nameError : _p, _q = props.placeholder, placeholder = _q === void 0 ? inputPlaceholder : _q, _r = props.freeSolo, freeSolo = _r === void 0 ? enableFreeChips : _r, _s = props.keyToTags, keyToTags = _s === void 0 ? keyToChips : _s, _t = props.maxFreeSolo, maxFreeSolo = _t === void 0 ? limitOfFreeChips : _t, SuggestionListProps = props.SuggestionListProps, _u = props.autoSelect, autoSelect = _u === void 0 ? enableAutoTransform : _u, PopperProps = props.PopperProps, initialIsOpen = props.initialIsOpen, disabled = props.disabled, requiredProp = props.required, _v = props.defaultIsOpen, defaultIsOpen = _v === void 0 ? openOnFocus : _v, _w = props.disableCloseOnSelect, disableCloseOnSelect = _w === void 0 ? defaultIsOpen : _w, _x = props.onChange, onChangeProp = _x === void 0 ? onSelectChange : _x, onInputChangeProp = props.onInputChange, onMaxFreeSolo = props.onMaxFreeSolo, FormHelperTextPropsProp = props.FormHelperTextProps, action = props.action, filterOptions = props.filterOptions, renderOption = props.renderOption, renderTags = props.renderTags, getOptionDisabled = props.getOptionDisabled, renderGroup = props.renderGroup, onGroupExpanded = props.onGroupExpanded, renderNoOptions = props.renderNoOptions, InputPropsProp = props.InputProps, debug = props.debug, disabledItemsHighlightable = props.disabledItemsHighlightable, openProp = props.open, onOpen = props.onOpen, onClose = props.onClose, rest = __rest(props, ["itemToString", "keyToChips", "limitOfFreeChips", "minRowHeight", "suggestionItems", "messageRef", "MenuItem", "inputLabel", "nameError", "maxLength", "InputItem", "emailError", "autoSwitchEmail", "enableFreeChips", "inputPlaceholder", "errorSelectedItems", "enableAutoTransform", "allowPlainHelperText", "TextFieldProps", "selectedItems", "automationId", "screenReader", "onSelectChange", "variant", "groupExpanded", "groupVariant", "getExpandIconProps", "groupBy", "value", "autoHighlight", "fullWidth", "clearBtn", "toggleButton", "multiple", "clearButtonProps", "onClear", "ToggleButtonProps", "inputValue", "onKeyDown", "helperText", "options", "openOnFocus", "getOptionLabel", "renderInput", "label", "inputRef", "error", "placeholder", "freeSolo", "keyToTags", "maxFreeSolo", "SuggestionListProps", "autoSelect", "PopperProps", "initialIsOpen", "disabled", "required", "defaultIsOpen", "disableCloseOnSelect", "onChange", "onInputChange", "onMaxFreeSolo", "FormHelperTextProps", "action", "filterOptions", "renderOption", "renderTags", "getOptionDisabled", "renderGroup", "onGroupExpanded", "renderNoOptions", "InputProps", "debug", "disabledItemsHighlightable", "open", "onOpen", "onClose"]);
69
+ var _y = __read(react_1.useState('bottom'), 2), position = _y[0], setPosition = _y[1];
70
70
  var innerInputRef = react_1.useRef(null);
71
71
  var textFieldRef = react_1.useRef(null);
72
72
  var inputRef = foundation_1.useForkRef(inputRefProp, innerInputRef);
@@ -76,7 +76,7 @@ var _RcDownshift = react_1.memo(react_1.forwardRef(function (inProps, ref) {
76
76
  var oneOfTagError = false;
77
77
  utils_1.useDownshiftError({ isNew: isNew, MenuItem: MenuItem, InputItem: InputItem });
78
78
  var required = requiredProp || (TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.required);
79
- var _y = utils_1.useDownshift({
79
+ var _z = utils_1.useDownshift({
80
80
  open: openProp,
81
81
  variant: variant,
82
82
  onOpen: onOpen,
@@ -87,6 +87,7 @@ var _RcDownshift = react_1.memo(react_1.forwardRef(function (inProps, ref) {
87
87
  value: valueProp,
88
88
  inputValue: inputValueProp,
89
89
  getOptionDisabled: getOptionDisabled,
90
+ groupExpanded: groupVariant === 'normal' ? true : groupExpanded,
90
91
  getExpandIconProps: getExpandIconProps,
91
92
  options: suggestionItems || options,
92
93
  freeSolo: freeSolo,
@@ -102,6 +103,7 @@ var _RcDownshift = react_1.memo(react_1.forwardRef(function (inProps, ref) {
102
103
  openOnFocus: openOnFocus,
103
104
  autoHighlight: autoHighlight,
104
105
  groupBy: groupBy,
106
+ groupVariant: groupVariant,
105
107
  onChange: onChangeProp,
106
108
  onInputChange: onInputChangeProp,
107
109
  getOptionLabel: getOptionLabel,
@@ -111,9 +113,9 @@ var _RcDownshift = react_1.memo(react_1.forwardRef(function (inProps, ref) {
111
113
  onKeyDown: onKeyDownProp,
112
114
  disabledItemsHighlightable: disabledItemsHighlightable,
113
115
  onGroupExpanded: onGroupExpanded,
114
- }), focusInput = _y.focusInput, optionItems = _y.optionItems, selectedItems = _y.selectedItems, highlightedIndex = _y.highlightedIndex, getToggleButtonProps = _y.getToggleButtonProps, getTagProps = _y.getTagProps, getTagListBoxProps = _y.getTagListBoxProps, getMenuProps = _y.getMenuProps, getPopperProps = _y.getPopperProps, getInputProps = _y.getInputProps, getInputAriaProps = _y.getInputAriaProps, getLabelProps = _y.getLabelProps, getItemProps = _y.getItemProps, isOpen = _y.isOpen, inputValue = _y.inputValue, isTagsFocus = _y.isTagsFocus, activeIndex = _y.activeIndex, setActiveIndex = _y.setActiveIndex, setHighlightedIndex = _y.setHighlightedIndex, onInputChange = _y.onInputChange, keepHighlightedIndex = _y.keepHighlightedIndex, changeHighlightedIndexReason = _y.changeHighlightedIndexReason, closeMenu = _y.closeMenu, openMenu = _y.openMenu, reset = _y.reset, getClearButtonProps = _y.getClearButtonProps, noOptionItem = _y.noOptionItem, getNoOptionsProps = _y.getNoOptionsProps, isKeepHighlightedIndex = _y.isKeepHighlightedIndex;
116
+ }), focusInput = _z.focusInput, optionItems = _z.optionItems, optionsGroupList = _z.optionsGroupList, selectedItems = _z.selectedItems, highlightedIndex = _z.highlightedIndex, getToggleButtonProps = _z.getToggleButtonProps, getTagProps = _z.getTagProps, getTagListBoxProps = _z.getTagListBoxProps, getMenuProps = _z.getMenuProps, getPopperProps = _z.getPopperProps, getInputProps = _z.getInputProps, getInputAriaProps = _z.getInputAriaProps, getLabelProps = _z.getLabelProps, getItemProps = _z.getItemProps, isOpen = _z.isOpen, inputValue = _z.inputValue, isTagsFocus = _z.isTagsFocus, activeIndex = _z.activeIndex, setActiveIndex = _z.setActiveIndex, setHighlightedIndex = _z.setHighlightedIndex, onInputChange = _z.onInputChange, keepHighlightedIndex = _z.keepHighlightedIndex, changeHighlightedIndexReason = _z.changeHighlightedIndexReason, closeMenu = _z.closeMenu, openMenu = _z.openMenu, reset = _z.reset, getClearButtonProps = _z.getClearButtonProps, noOptionItem = _z.noOptionItem, getNoOptionsProps = _z.getNoOptionsProps, isKeepHighlightedIndex = _z.isKeepHighlightedIndex;
115
117
  var open = Boolean((isOpen || noOptionItem) && textFieldRef.current);
116
- var _z = getInputProps(), onBlur = _z.onBlur, InputProps = __rest(_z, ["onBlur"]);
118
+ var _0 = getInputProps(), onBlur = _0.onBlur, InputProps = __rest(_0, ["onBlur"]);
117
119
  var helperText = isNew
118
120
  ? helperTextProp
119
121
  : nameError || allowPlainHelperText
@@ -174,17 +176,18 @@ var _RcDownshift = react_1.memo(react_1.forwardRef(function (inProps, ref) {
174
176
  var endAdornment = (toggleButton || clearBtn) && (react_1.default.createElement(styles_1.EndAdornment, null,
175
177
  clearBtn && (react_1.default.createElement(ClearIconButton_1.ClearIconButton, __assign({}, getClearButtonProps(clearButtonProps)))),
176
178
  toggleButton && (react_1.default.createElement(styles_1.ArrowDownButton, __assign({ variant: "plain", "aria-hidden": true, color: error ? 'danger.f02' : 'neutral.f04', size: "large", symbol: isOpen ? ArrowUp_1.default : ArrowDown_1.default }, getToggleButtonProps(ToggleButtonProps))))));
177
- var _0 = (function () {
179
+ var _1 = (function () {
178
180
  var _a = InputPropsProp || {}, classes = _a.classes, restInputPropsProp = __rest(_a, ["classes"]);
179
181
  var toClasses = foundation_1.combineClasses(classes, utils_1.RcDownshiftInputClasses);
180
182
  return {
181
183
  containerClassName: toClasses.container,
182
184
  TextFieldInputProps: foundation_1.combineProps(__assign(__assign(__assign({ classes: foundation_1.omit(toClasses, ['container']), endAdornment: endAdornment, inputComponent: styles_1.RcDownshiftInput }, getTagListBoxProps()), InputProps), { onBlur: debug ? undefined : onBlur }), restInputPropsProp),
183
185
  };
184
- })(), containerClassName = _0.containerClassName, TextFieldInputProps = _0.TextFieldInputProps;
186
+ })(), containerClassName = _1.containerClassName, TextFieldInputProps = _1.TextFieldInputProps;
185
187
  react_1.useImperativeHandle(action, function () { return ({
186
188
  getActiveIndex: function () { return activeIndex; },
187
189
  setActiveIndex: setActiveIndex,
190
+ getFilterResultItems: function () { return optionItems; },
188
191
  getHighlightedIndex: function () { return highlightedIndex; },
189
192
  setHighlightedIndex: function (index) {
190
193
  return setHighlightedIndex(index, { reason: 'auto', reRender: true });
@@ -223,7 +226,7 @@ var _RcDownshift = react_1.memo(react_1.forwardRef(function (inProps, ref) {
223
226
  }
224
227
  },
225
228
  } }, getPopperProps(PopperProps)),
226
- isOpen && (react_1.default.createElement(SuggestionList_1.RcSuggestionList, __assign({ highlightedIndex: highlightedIndex, options: optionItems, groupBy: groupBy, renderGroup: renderGroup, MenuItem: MenuItem, renderOption: renderOption, inputValue: inputValue, getItemProps: getItemProps, getMenuProps: getMenuProps, changeHighlightedIndexReason: changeHighlightedIndexReason, getOptionDisabled: getOptionDisabled, isKeepHighlightedIndex: isKeepHighlightedIndex, onUpdatePopper: handleUpdatePopper, maxContainerHeight: 180, getOptionLabel: getOptionLabel }, SuggestionListProps))),
229
+ isOpen && (react_1.default.createElement(SuggestionList_1.RcSuggestionList, __assign({ highlightedIndex: highlightedIndex, optionsGroupList: optionsGroupList, options: optionItems, groupVariant: groupVariant, groupExpanded: groupExpanded, renderGroup: renderGroup, MenuItem: MenuItem, renderOption: renderOption, inputValue: inputValue, getItemProps: getItemProps, getMenuProps: getMenuProps, changeHighlightedIndexReason: changeHighlightedIndexReason, getOptionDisabled: getOptionDisabled, isKeepHighlightedIndex: isKeepHighlightedIndex, onUpdatePopper: handleUpdatePopper, maxContainerHeight: 180, getOptionLabel: getOptionLabel }, SuggestionListProps))),
227
230
  isRenderNoOptions && (renderNoOptions === null || renderNoOptions === void 0 ? void 0 : renderNoOptions(getNoOptionsProps, noOptionItem)))));
228
231
  }));
229
232
  var RcDownshift = foundation_1.styled(foundation_1.withDeprecatedCheck(_RcDownshift, [
@@ -2,7 +2,7 @@ import React, { HTMLAttributes } from 'react';
2
2
  import { RcBaseProps, RcClassesProps } from '../../../foundation';
3
3
  import { VirtuosoProps } from '../../Virtuoso';
4
4
  import { RcDownshiftProps } from '../Downshift';
5
- import { RcDownshiftGetItemPropsOptions, RcDownshiftHighlightChangeReason, RcDownshiftSelectedItem } from '../utils';
5
+ import { RcDownshiftGetItemPropsOptions, RcDownshiftGroupedOption, RcDownshiftHighlightChangeReason, RcDownshiftSelectedItem } from '../utils';
6
6
  export declare type RcSuggestionListProps<T> = RcBaseProps<Partial<VirtuosoProps<T>>, 'totalCount' | 'itemContent' | 'data'> & {
7
7
  /**
8
8
  * that virtual list container height,
@@ -16,7 +16,7 @@ export declare type RcSuggestionListProps<T> = RcBaseProps<Partial<VirtuosoProps
16
16
  * @default false
17
17
  */
18
18
  padding?: boolean | number;
19
- } & RcClassesProps<'root' | 'toggle' | 'expanded'>;
19
+ } & RcClassesProps<'root' | 'toggle' | 'expanded' | 'groupTitle'>;
20
20
  export declare type InnerSuggestionListProps = {
21
21
  /** current highlightedIndex */
22
22
  highlightedIndex: number;
@@ -32,7 +32,9 @@ export declare type InnerSuggestionListProps = {
32
32
  isKeepHighlightedIndex: boolean;
33
33
  /** trigger when need update outside popper position */
34
34
  onUpdatePopper?: () => any;
35
- } & Pick<RcDownshiftProps, 'inputValue' | 'MenuItem' | 'renderOption' | 'getOptionDisabled' | 'renderGroup' | 'groupBy' | 'getOptionLabel'> & RcSuggestionListProps<any>;
36
- export declare const RcSuggestionList: import("styled-components").StyledComponentClass<Pick<InnerSuggestionListProps, "key" | "form" | "group" | "list" | "className" | "color" | "height" | "id" | "lang" | "max" | "media" | "method" | "min" | "name" | "style" | "target" | "type" | "width" | "role" | "tabIndex" | "crossOrigin" | "href" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "step" | "cite" | "footer" | "header" | "label" | "slot" | "span" | "summary" | "title" | "pattern" | "classes" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "size" | "value" | "shape" | "disabled" | "download" | "hrefLang" | "rel" | "default" | "action" | "content" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "padding" | "start" | "wrap" | "open" | "multiple" | "selected" | "src" | "checked" | "readOnly" | "required" | "autoComplete" | "rows" | "sizes" | "groupIndices" | "firstItemIndex" | "initialTopMostItemIndex" | "topItems" | "isScrolling" | "initialItemCount" | "scrollSeek" | "alignToBottom" | "itemSize" | "atTopStateChange" | "atBottomStateChange" | "endReached" | "startReached" | "rangeChanged" | "itemsRendered" | "topItemCount" | "followOutput" | "overscan" | "components" | "computeItemKey" | "defaultItemHeight" | "fixedItemHeight" | "scrollSeekConfiguration" | "headerFooterTag" | "initialScrollTop" | "useWindowScroll" | "scrollerRef" | "item" | "itemHeight" | "scrollingStateChange" | "maxHeightCacheSize" | "ItemContainer" | "ScrollContainer" | "ListContainer" | "GroupContainer" | "emptyComponent" | "HeaderContainer" | "FooterContainer" | "totalListHeightChanged" | "accept" | "acceptCharset" | "allowFullScreen" | "allowTransparency" | "alt" | "as" | "async" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "dateTime" | "defer" | "encType" | "frameBorder" | "headers" | "high" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "maxLength" | "mediaGroup" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "srcDoc" | "srcLang" | "srcSet" | "useMap" | "wmode" | "options" | "getItemProps" | "getOptionDisabled" | "maxContainerHeight" | "getOptionLabel" | "renderOption" | "groupBy" | "renderGroup" | "MenuItem" | "inputValue" | "highlightedIndex" | "getMenuProps" | "changeHighlightedIndexReason" | "isKeepHighlightedIndex" | "onUpdatePopper"> & React.RefAttributes<any>, import("../../../foundation").RcTheme, Pick<Pick<InnerSuggestionListProps, "key" | "form" | "group" | "list" | "className" | "color" | "height" | "id" | "lang" | "max" | "media" | "method" | "min" | "name" | "style" | "target" | "type" | "width" | "role" | "tabIndex" | "crossOrigin" | "href" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "step" | "cite" | "footer" | "header" | "label" | "slot" | "span" | "summary" | "title" | "pattern" | "classes" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "size" | "value" | "shape" | "disabled" | "download" | "hrefLang" | "rel" | "default" | "action" | "content" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "padding" | "start" | "wrap" | "open" | "multiple" | "selected" | "src" | "checked" | "readOnly" | "required" | "autoComplete" | "rows" | "sizes" | "groupIndices" | "firstItemIndex" | "initialTopMostItemIndex" | "topItems" | "isScrolling" | "initialItemCount" | "scrollSeek" | "alignToBottom" | "itemSize" | "atTopStateChange" | "atBottomStateChange" | "endReached" | "startReached" | "rangeChanged" | "itemsRendered" | "topItemCount" | "followOutput" | "overscan" | "components" | "computeItemKey" | "defaultItemHeight" | "fixedItemHeight" | "scrollSeekConfiguration" | "headerFooterTag" | "initialScrollTop" | "useWindowScroll" | "scrollerRef" | "item" | "itemHeight" | "scrollingStateChange" | "maxHeightCacheSize" | "ItemContainer" | "ScrollContainer" | "ListContainer" | "GroupContainer" | "emptyComponent" | "HeaderContainer" | "FooterContainer" | "totalListHeightChanged" | "accept" | "acceptCharset" | "allowFullScreen" | "allowTransparency" | "alt" | "as" | "async" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "dateTime" | "defer" | "encType" | "frameBorder" | "headers" | "high" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "maxLength" | "mediaGroup" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "srcDoc" | "srcLang" | "srcSet" | "useMap" | "wmode" | "options" | "getItemProps" | "getOptionDisabled" | "maxContainerHeight" | "getOptionLabel" | "renderOption" | "groupBy" | "renderGroup" | "MenuItem" | "inputValue" | "highlightedIndex" | "getMenuProps" | "changeHighlightedIndexReason" | "isKeepHighlightedIndex" | "onUpdatePopper"> & React.RefAttributes<any>, "ref" | "key" | "form" | "group" | "list" | "className" | "color" | "height" | "id" | "lang" | "max" | "media" | "method" | "min" | "name" | "style" | "target" | "type" | "width" | "role" | "tabIndex" | "crossOrigin" | "href" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "step" | "cite" | "footer" | "header" | "label" | "slot" | "span" | "summary" | "title" | "pattern" | "classes" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "size" | "value" | "shape" | "disabled" | "download" | "hrefLang" | "rel" | "default" | "action" | "content" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "padding" | "start" | "wrap" | "open" | "multiple" | "selected" | "src" | "checked" | "readOnly" | "required" | "autoComplete" | "rows" | "sizes" | "groupIndices" | "firstItemIndex" | "initialTopMostItemIndex" | "topItems" | "isScrolling" | "initialItemCount" | "scrollSeek" | "alignToBottom" | "itemSize" | "atTopStateChange" | "atBottomStateChange" | "endReached" | "startReached" | "rangeChanged" | "itemsRendered" | "topItemCount" | "followOutput" | "overscan" | "components" | "computeItemKey" | "defaultItemHeight" | "fixedItemHeight" | "scrollSeekConfiguration" | "headerFooterTag" | "initialScrollTop" | "useWindowScroll" | "scrollerRef" | "item" | "itemHeight" | "scrollingStateChange" | "maxHeightCacheSize" | "ItemContainer" | "ScrollContainer" | "ListContainer" | "GroupContainer" | "emptyComponent" | "HeaderContainer" | "FooterContainer" | "totalListHeightChanged" | "accept" | "acceptCharset" | "allowFullScreen" | "allowTransparency" | "alt" | "as" | "async" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "dateTime" | "defer" | "encType" | "frameBorder" | "headers" | "high" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "maxLength" | "mediaGroup" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "srcDoc" | "srcLang" | "srcSet" | "useMap" | "wmode" | "options" | "getItemProps" | "getOptionDisabled" | "maxContainerHeight" | "getOptionLabel" | "renderOption" | "groupBy" | "renderGroup" | "MenuItem" | "inputValue" | "highlightedIndex" | "getMenuProps" | "changeHighlightedIndexReason" | "isKeepHighlightedIndex" | "onUpdatePopper"> & {
35
+ /** options group list, use for calculate `aria-setsize` */
36
+ optionsGroupList?: RcDownshiftGroupedOption<RcDownshiftSelectedItem>[];
37
+ } & Pick<RcDownshiftProps, 'inputValue' | 'MenuItem' | 'renderOption' | 'getOptionDisabled' | 'renderGroup' | 'groupExpanded' | 'groupVariant' | 'getOptionLabel'> & RcSuggestionListProps<any>;
38
+ export declare const RcSuggestionList: import("styled-components").StyledComponentClass<Pick<InnerSuggestionListProps, "key" | "form" | "group" | "list" | "className" | "color" | "height" | "id" | "lang" | "max" | "media" | "method" | "min" | "name" | "style" | "target" | "type" | "width" | "role" | "tabIndex" | "crossOrigin" | "href" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "step" | "cite" | "footer" | "header" | "label" | "slot" | "span" | "summary" | "title" | "pattern" | "classes" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "size" | "value" | "shape" | "disabled" | "download" | "hrefLang" | "rel" | "default" | "action" | "content" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "padding" | "start" | "wrap" | "open" | "multiple" | "selected" | "src" | "checked" | "readOnly" | "required" | "autoComplete" | "rows" | "sizes" | "groupIndices" | "firstItemIndex" | "initialTopMostItemIndex" | "topItems" | "isScrolling" | "initialItemCount" | "scrollSeek" | "alignToBottom" | "itemSize" | "atTopStateChange" | "atBottomStateChange" | "endReached" | "startReached" | "rangeChanged" | "itemsRendered" | "topItemCount" | "followOutput" | "overscan" | "components" | "computeItemKey" | "defaultItemHeight" | "fixedItemHeight" | "scrollSeekConfiguration" | "headerFooterTag" | "initialScrollTop" | "useWindowScroll" | "scrollerRef" | "item" | "itemHeight" | "scrollingStateChange" | "maxHeightCacheSize" | "ItemContainer" | "ScrollContainer" | "ListContainer" | "GroupContainer" | "emptyComponent" | "HeaderContainer" | "FooterContainer" | "totalListHeightChanged" | "accept" | "acceptCharset" | "allowFullScreen" | "allowTransparency" | "alt" | "as" | "async" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "dateTime" | "defer" | "encType" | "frameBorder" | "headers" | "high" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "maxLength" | "mediaGroup" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "srcDoc" | "srcLang" | "srcSet" | "useMap" | "wmode" | "options" | "getItemProps" | "getOptionDisabled" | "maxContainerHeight" | "getOptionLabel" | "renderOption" | "groupVariant" | "groupExpanded" | "renderGroup" | "MenuItem" | "inputValue" | "highlightedIndex" | "getMenuProps" | "changeHighlightedIndexReason" | "isKeepHighlightedIndex" | "onUpdatePopper" | "optionsGroupList"> & React.RefAttributes<any>, import("../../../foundation").RcTheme, Pick<Pick<InnerSuggestionListProps, "key" | "form" | "group" | "list" | "className" | "color" | "height" | "id" | "lang" | "max" | "media" | "method" | "min" | "name" | "style" | "target" | "type" | "width" | "role" | "tabIndex" | "crossOrigin" | "href" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "step" | "cite" | "footer" | "header" | "label" | "slot" | "span" | "summary" | "title" | "pattern" | "classes" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "size" | "value" | "shape" | "disabled" | "download" | "hrefLang" | "rel" | "default" | "action" | "content" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "padding" | "start" | "wrap" | "open" | "multiple" | "selected" | "src" | "checked" | "readOnly" | "required" | "autoComplete" | "rows" | "sizes" | "groupIndices" | "firstItemIndex" | "initialTopMostItemIndex" | "topItems" | "isScrolling" | "initialItemCount" | "scrollSeek" | "alignToBottom" | "itemSize" | "atTopStateChange" | "atBottomStateChange" | "endReached" | "startReached" | "rangeChanged" | "itemsRendered" | "topItemCount" | "followOutput" | "overscan" | "components" | "computeItemKey" | "defaultItemHeight" | "fixedItemHeight" | "scrollSeekConfiguration" | "headerFooterTag" | "initialScrollTop" | "useWindowScroll" | "scrollerRef" | "item" | "itemHeight" | "scrollingStateChange" | "maxHeightCacheSize" | "ItemContainer" | "ScrollContainer" | "ListContainer" | "GroupContainer" | "emptyComponent" | "HeaderContainer" | "FooterContainer" | "totalListHeightChanged" | "accept" | "acceptCharset" | "allowFullScreen" | "allowTransparency" | "alt" | "as" | "async" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "dateTime" | "defer" | "encType" | "frameBorder" | "headers" | "high" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "maxLength" | "mediaGroup" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "srcDoc" | "srcLang" | "srcSet" | "useMap" | "wmode" | "options" | "getItemProps" | "getOptionDisabled" | "maxContainerHeight" | "getOptionLabel" | "renderOption" | "groupVariant" | "groupExpanded" | "renderGroup" | "MenuItem" | "inputValue" | "highlightedIndex" | "getMenuProps" | "changeHighlightedIndexReason" | "isKeepHighlightedIndex" | "onUpdatePopper" | "optionsGroupList"> & React.RefAttributes<any>, "ref" | "key" | "form" | "group" | "list" | "className" | "color" | "height" | "id" | "lang" | "max" | "media" | "method" | "min" | "name" | "style" | "target" | "type" | "width" | "role" | "tabIndex" | "crossOrigin" | "href" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "step" | "cite" | "footer" | "header" | "label" | "slot" | "span" | "summary" | "title" | "pattern" | "classes" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "size" | "value" | "shape" | "disabled" | "download" | "hrefLang" | "rel" | "default" | "action" | "content" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "padding" | "start" | "wrap" | "open" | "multiple" | "selected" | "src" | "checked" | "readOnly" | "required" | "autoComplete" | "rows" | "sizes" | "groupIndices" | "firstItemIndex" | "initialTopMostItemIndex" | "topItems" | "isScrolling" | "initialItemCount" | "scrollSeek" | "alignToBottom" | "itemSize" | "atTopStateChange" | "atBottomStateChange" | "endReached" | "startReached" | "rangeChanged" | "itemsRendered" | "topItemCount" | "followOutput" | "overscan" | "components" | "computeItemKey" | "defaultItemHeight" | "fixedItemHeight" | "scrollSeekConfiguration" | "headerFooterTag" | "initialScrollTop" | "useWindowScroll" | "scrollerRef" | "item" | "itemHeight" | "scrollingStateChange" | "maxHeightCacheSize" | "ItemContainer" | "ScrollContainer" | "ListContainer" | "GroupContainer" | "emptyComponent" | "HeaderContainer" | "FooterContainer" | "totalListHeightChanged" | "accept" | "acceptCharset" | "allowFullScreen" | "allowTransparency" | "alt" | "as" | "async" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "dateTime" | "defer" | "encType" | "frameBorder" | "headers" | "high" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "maxLength" | "mediaGroup" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "srcDoc" | "srcLang" | "srcSet" | "useMap" | "wmode" | "options" | "getItemProps" | "getOptionDisabled" | "maxContainerHeight" | "getOptionLabel" | "renderOption" | "groupVariant" | "groupExpanded" | "renderGroup" | "MenuItem" | "inputValue" | "highlightedIndex" | "getMenuProps" | "changeHighlightedIndexReason" | "isKeepHighlightedIndex" | "onUpdatePopper" | "optionsGroupList"> & {
37
39
  theme?: import("../../../foundation").RcTheme | undefined;
38
40
  }>;
@@ -91,9 +91,10 @@ var List = react_1.forwardRef(function (props, ref) {
91
91
  });
92
92
  var SuggestionList = react_1.forwardRef(function (inProps, ref) {
93
93
  var props = foundation_1.useThemeProps({ props: inProps, name: 'RcSuggestionList' });
94
- var highlightedIndex = props.highlightedIndex, options = props.options, getItemProps = props.getItemProps, getMenuProps = props.getMenuProps, renderOption = props.renderOption, inputValue = props.inputValue, groupBy = props.groupBy, renderGroup = props.renderGroup, getOptionDisabled = props.getOptionDisabled, MenuItem = props.MenuItem, changeHighlightedIndexReason = props.changeHighlightedIndexReason, isKeepHighlightedIndex = props.isKeepHighlightedIndex, componentsProp = props.components, onUpdatePopper = props.onUpdatePopper, getOptionLabel = props.getOptionLabel, padding = props.padding, _a = props.maxContainerHeight, maxContainerHeight = _a === void 0 ? '100%' : _a, classNameProp = props.className, classesProp = props.classes, rest = __rest(props, ["highlightedIndex", "options", "getItemProps", "getMenuProps", "renderOption", "inputValue", "groupBy", "renderGroup", "getOptionDisabled", "MenuItem", "changeHighlightedIndexReason", "isKeepHighlightedIndex", "components", "onUpdatePopper", "getOptionLabel", "padding", "maxContainerHeight", "className", "classes"]);
94
+ var highlightedIndex = props.highlightedIndex, options = props.options, getItemProps = props.getItemProps, getMenuProps = props.getMenuProps, renderOption = props.renderOption, inputValue = props.inputValue, groupVariant = props.groupVariant, groupExpanded = props.groupExpanded, renderGroup = props.renderGroup, optionsGroupList = props.optionsGroupList, getOptionDisabled = props.getOptionDisabled, MenuItem = props.MenuItem, changeHighlightedIndexReason = props.changeHighlightedIndexReason, isKeepHighlightedIndex = props.isKeepHighlightedIndex, componentsProp = props.components, onUpdatePopper = props.onUpdatePopper, getOptionLabel = props.getOptionLabel, padding = props.padding, _a = props.maxContainerHeight, maxContainerHeight = _a === void 0 ? '100%' : _a, classNameProp = props.className, classesProp = props.classes, rest = __rest(props, ["highlightedIndex", "options", "getItemProps", "getMenuProps", "renderOption", "inputValue", "groupVariant", "groupExpanded", "renderGroup", "optionsGroupList", "getOptionDisabled", "MenuItem", "changeHighlightedIndexReason", "isKeepHighlightedIndex", "components", "onUpdatePopper", "getOptionLabel", "padding", "maxContainerHeight", "className", "classes"]);
95
95
  var vlRef = react_1.useRef(null);
96
96
  var forkVlRef = foundation_1.useForkRef(ref, vlRef);
97
+ var isTitleGroup = groupVariant === 'normal';
97
98
  var listRef = react_1.useRef(null);
98
99
  var itemData = options;
99
100
  var itemCount = options.length;
@@ -144,7 +145,9 @@ var SuggestionList = react_1.forwardRef(function (inProps, ref) {
144
145
  // * only scroll when reason is 'keyboard'
145
146
  changeHighlightedIndexReason &&
146
147
  changeHighlightedIndexReason !== 'mouse') {
147
- scrollToHighlightedIndex(prevHighlightedIndex, highlightedIndex);
148
+ scrollToHighlightedIndex(prevHighlightedIndex, highlightedIndex,
149
+ // when title group topHighlightIndex to be 1, first item is group title
150
+ isTitleGroup ? 1 : 0);
148
151
  }
149
152
  });
150
153
  var handleScrolling = function (scrolling) {
@@ -160,20 +163,24 @@ var SuggestionList = react_1.forwardRef(function (inProps, ref) {
160
163
  };
161
164
  var itemContent = function (index, option) {
162
165
  var _a;
163
- var _b, _c, _d, _e, _f;
164
- var isFirstGroupItem = option === ((_b = option.group) === null || _b === void 0 ? void 0 : _b.options[0]);
165
- var expandIconProps = isFirstGroupItem
166
- ? (_d = (_c = option.group) === null || _c === void 0 ? void 0 : _c.getExpandIconProps) === null || _d === void 0 ? void 0 : _d.call(_c, {
166
+ var _b, _c, _d, _e;
167
+ var currGroup = option.group;
168
+ var isGroupTitle = option === (currGroup === null || currGroup === void 0 ? void 0 : currGroup.options[0]);
169
+ var groupIndex = (optionsGroupList === null || optionsGroupList === void 0 ? void 0 : optionsGroupList.findIndex(function (x) { return x.group === (currGroup === null || currGroup === void 0 ? void 0 : currGroup.group); })) || 0;
170
+ var isFixedGroupExpanded = typeof groupExpanded === 'boolean';
171
+ var expandIconProps = !isTitleGroup && !isFixedGroupExpanded && isGroupTitle
172
+ ? (_c = (_b = option.group) === null || _b === void 0 ? void 0 : _b.getExpandIconProps) === null || _c === void 0 ? void 0 : _c.call(_b, {
167
173
  className: clsx_1.default(classes.toggle, (_a = {},
168
- _a[classes.expanded] = (_e = option.group) === null || _e === void 0 ? void 0 : _e.expanded,
174
+ _a[classes.expanded] = (_d = option.group) === null || _d === void 0 ? void 0 : _d.expanded,
169
175
  _a)),
170
176
  }) : undefined;
171
177
  var itemProps = getItemProps({
172
178
  item: option,
173
179
  index: index,
180
+ className: isGroupTitle ? classes.groupTitle : undefined,
174
181
  });
175
182
  var selected = highlightedIndex === index;
176
- var resultProps = __assign(__assign(__assign({}, option), itemProps), { 'aria-setsize': itemCount, 'aria-posinset': index, key: itemProps.id });
183
+ var resultProps = __assign(__assign(__assign({}, option), itemProps), { 'aria-setsize': itemCount - (isTitleGroup ? (optionsGroupList === null || optionsGroupList === void 0 ? void 0 : optionsGroupList.length) || 0 : 0), 'aria-posinset': index - (isTitleGroup ? groupIndex : 0), key: itemProps.id });
177
184
  // * when item is not disabled, that should check outside is that disabled
178
185
  if (!resultProps.freeSolo && !resultProps.disabled && getOptionDisabled) {
179
186
  resultProps.disabled = getOptionDisabled(option);
@@ -183,8 +190,8 @@ var SuggestionList = react_1.forwardRef(function (inProps, ref) {
183
190
  selected: selected,
184
191
  index: index,
185
192
  };
186
- if (renderGroup && expandIconProps) {
187
- return renderGroup(resultProps, __assign(__assign({}, state), { expanded: (_f = option.group) === null || _f === void 0 ? void 0 : _f.expanded, expandIconProps: expandIconProps }));
193
+ if (renderGroup && isGroupTitle) {
194
+ return renderGroup(resultProps, __assign(__assign({}, state), { expanded: (_e = option.group) === null || _e === void 0 ? void 0 : _e.expanded, expandIconProps: expandIconProps }));
188
195
  }
189
196
  if (renderOption) {
190
197
  // * as any for VirtualizedListWithAutoSizer type issue
@@ -1 +1 @@
1
- export declare const RcSuggestionListClasses: Partial<import("../../../../foundation").UnitMap<"root" | "expanded" | "toggle", any>>;
1
+ export declare const RcSuggestionListClasses: Partial<import("../../../../foundation").UnitMap<"root" | "expanded" | "toggle" | "groupTitle", any>>;
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var foundation_1 = require("../../../../foundation");
4
- exports.RcSuggestionListClasses = foundation_1.RcClasses(['root', 'expanded', 'toggle'], 'RcSuggestionList');
4
+ exports.RcSuggestionListClasses = foundation_1.RcClasses(['root', 'expanded', 'toggle', 'groupTitle'], 'RcSuggestionList');
@@ -17,8 +17,8 @@ declare type UseDownshiftParams = {
17
17
  * set that will auto add item into options
18
18
  */
19
19
  addNoOptionItem?: 'first' | 'last';
20
- } & Pick<RcDownshiftProps<RcDownshiftSelectedItem>, 'open' | 'onOpen' | 'onClose' | 'multiple' | 'onChange' | 'value' | 'getOptionLabel' | 'filterOptions' | 'options' | 'freeSolo' | 'maxFreeSolo' | 'onMaxFreeSolo' | 'disableCloseOnSelect' | 'initialIsOpen' | 'keyToTags' | 'inputValue' | 'autoSelect' | 'onInputChange' | 'onKeyDown' | 'disabled' | 'openOnFocus' | 'onClear' | 'renderNoOptions' | 'groupBy' | 'getExpandIconProps' | 'autoHighlight' | 'getOptionDisabled' | 'onGroupExpanded' | 'required' | 'label' | 'disabledItemsHighlightable' | 'variant'>;
21
- export declare const useDownshift: ({ multiple: multipleProp, variant, label: labelProp, inputValue: inputValueProp, getExpandIconProps, getOptionLabel, keyToTags, filterOptions, disabledItemsHighlightable, options, freeSolo, onInputChange: onInputChangeProp, maxFreeSolo, onMaxFreeSolo, openOnFocus, disableCloseOnSelect, initialIsOpen, autoSelect, inputContainerRef, inputRef, wrapperRef, onKeyDown: onKeyDownProp, onChange: onSelectChange, value: selectedItemsProp, disabled, renderNoOptions, onClear, groupBy, autoHighlight, getOptionDisabled, addNoOptionItem, onGroupExpanded, required, open: openProp, onOpen, onClose, }: UseDownshiftParams) => {
20
+ } & Pick<RcDownshiftProps<RcDownshiftSelectedItem>, 'open' | 'onOpen' | 'onClose' | 'multiple' | 'onChange' | 'value' | 'getOptionLabel' | 'filterOptions' | 'options' | 'freeSolo' | 'maxFreeSolo' | 'onMaxFreeSolo' | 'disableCloseOnSelect' | 'initialIsOpen' | 'keyToTags' | 'inputValue' | 'autoSelect' | 'onInputChange' | 'onKeyDown' | 'disabled' | 'openOnFocus' | 'onClear' | 'renderNoOptions' | 'autoHighlight' | 'getOptionDisabled' | 'required' | 'label' | 'disabledItemsHighlightable' | 'variant' | 'groupBy' | 'getExpandIconProps' | 'groupExpanded' | 'onGroupExpanded' | 'groupVariant'>;
21
+ export declare const useDownshift: ({ multiple: multipleProp, variant, label: labelProp, inputValue: inputValueProp, getOptionLabel, keyToTags, filterOptions, disabledItemsHighlightable, options, freeSolo, onInputChange: onInputChangeProp, maxFreeSolo, onMaxFreeSolo, openOnFocus, disableCloseOnSelect, initialIsOpen, autoSelect, inputContainerRef, inputRef, wrapperRef, onKeyDown: onKeyDownProp, onChange: onSelectChange, value: selectedItemsProp, disabled, renderNoOptions, onClear, autoHighlight, getOptionDisabled, addNoOptionItem, groupBy, onGroupExpanded, groupVariant, groupExpanded, getExpandIconProps, required, open: openProp, onOpen, onClose, }: UseDownshiftParams) => {
22
22
  focusInput: () => void | undefined;
23
23
  setIsTagsFocus: import("react").Dispatch<import("react").SetStateAction<boolean>>;
24
24
  readOnly: boolean | undefined;
@@ -835,5 +835,6 @@ export declare const useDownshift: ({ multiple: multipleProp, variant, label: la
835
835
  openMenu: (e?: ChangeEvent<{}> | undefined) => void;
836
836
  reset: (isFocus?: boolean | undefined) => void;
837
837
  forceUpdate: () => void;
838
+ optionsGroupList: import("./SelectItem").RcDownshiftGroupedOption<RcDownshiftSelectedItem>[];
838
839
  };
839
840
  export {};
@@ -97,7 +97,7 @@ function stringArrToRegExp(keyToTags) {
97
97
  }
98
98
  var componentName = 'RcDownshift';
99
99
  exports.useDownshift = function (_a) {
100
- var multipleProp = _a.multiple, variant = _a.variant, labelProp = _a.label, inputValueProp = _a.inputValue, getExpandIconProps = _a.getExpandIconProps, _b = _a.getOptionLabel, getOptionLabel = _b === void 0 ? DownshiftUtils_1.DEFAULT_GET_OPTION_LABEL : _b, _c = _a.keyToTags, keyToTags = _c === void 0 ? DownshiftUtils_1.DEFAULT_KEY_TO_CHIPS : _c, filterOptions = _a.filterOptions, disabledItemsHighlightable = _a.disabledItemsHighlightable, options = _a.options, freeSolo = _a.freeSolo, onInputChangeProp = _a.onInputChange, maxFreeSolo = _a.maxFreeSolo, onMaxFreeSolo = _a.onMaxFreeSolo, openOnFocus = _a.openOnFocus, disableCloseOnSelect = _a.disableCloseOnSelect, initialIsOpen = _a.initialIsOpen, autoSelect = _a.autoSelect, inputContainerRef = _a.inputContainerRef, inputRef = _a.inputRef, wrapperRef = _a.wrapperRef, onKeyDownProp = _a.onKeyDown, onSelectChange = _a.onChange, _d = _a.value, selectedItemsProp = _d === void 0 ? [] : _d, disabled = _a.disabled, renderNoOptions = _a.renderNoOptions, onClear = _a.onClear, groupBy = _a.groupBy, autoHighlight = _a.autoHighlight, getOptionDisabled = _a.getOptionDisabled, addNoOptionItem = _a.addNoOptionItem, onGroupExpanded = _a.onGroupExpanded, required = _a.required, openProp = _a.open, onOpen = _a.onOpen, onClose = _a.onClose;
100
+ var multipleProp = _a.multiple, variant = _a.variant, labelProp = _a.label, inputValueProp = _a.inputValue, _b = _a.getOptionLabel, getOptionLabel = _b === void 0 ? DownshiftUtils_1.DEFAULT_GET_OPTION_LABEL : _b, _c = _a.keyToTags, keyToTags = _c === void 0 ? DownshiftUtils_1.DEFAULT_KEY_TO_CHIPS : _c, filterOptions = _a.filterOptions, disabledItemsHighlightable = _a.disabledItemsHighlightable, options = _a.options, freeSolo = _a.freeSolo, onInputChangeProp = _a.onInputChange, maxFreeSolo = _a.maxFreeSolo, onMaxFreeSolo = _a.onMaxFreeSolo, openOnFocus = _a.openOnFocus, disableCloseOnSelect = _a.disableCloseOnSelect, initialIsOpen = _a.initialIsOpen, autoSelect = _a.autoSelect, inputContainerRef = _a.inputContainerRef, inputRef = _a.inputRef, wrapperRef = _a.wrapperRef, onKeyDownProp = _a.onKeyDown, onSelectChange = _a.onChange, _d = _a.value, selectedItemsProp = _d === void 0 ? [] : _d, disabled = _a.disabled, renderNoOptions = _a.renderNoOptions, onClear = _a.onClear, autoHighlight = _a.autoHighlight, getOptionDisabled = _a.getOptionDisabled, addNoOptionItem = _a.addNoOptionItem, groupBy = _a.groupBy, onGroupExpanded = _a.onGroupExpanded, groupVariant = _a.groupVariant, groupExpanded = _a.groupExpanded, getExpandIconProps = _a.getExpandIconProps, required = _a.required, openProp = _a.open, onOpen = _a.onOpen, onClose = _a.onClose;
101
101
  var isAutocomplete = variant === 'autocomplete';
102
102
  // * when that is autocomplete, that will never be multiple
103
103
  var multiple = isAutocomplete ? false : multipleProp;
@@ -204,8 +204,11 @@ exports.useDownshift = function (_a) {
204
204
  options: options,
205
205
  filteredResult: filteredResult,
206
206
  getExpandIconProps: getExpandIconProps,
207
+ groupExpanded: groupExpanded,
207
208
  onGroupExpanded: onGroupExpanded,
208
- }), groupedResult = _l.groupedResult, handleGroupExpandedChange = _l.handleGroupExpandedChange;
209
+ groupVariant: groupVariant,
210
+ id: downshiftId,
211
+ }), groupedResult = _l.groupedResult, handleGroupExpandedChange = _l.handleGroupExpandedChange, optionsGroupList = _l.optionsGroupList;
209
212
  var optionItems = groupBy ? groupedResult : filteredResult;
210
213
  var freeSoloCount = react_1.useMemo(function () { return selectedItems.filter(function (x) { return x.freeSolo; }).length; }, [selectedItems]);
211
214
  var handleSelectedItems = function (_selectedItems) {
@@ -733,7 +736,7 @@ exports.useDownshift = function (_a) {
733
736
  var currOption = optionItems[highlightedIndex];
734
737
  var currentGroup = currOption.group;
735
738
  if (currentGroup && currentGroup.options.length > 1) {
736
- handleGroupExpandedChange(currentGroup.key);
739
+ handleGroupExpandedChange(currentGroup.group);
737
740
  }
738
741
  }
739
742
  break;
@@ -874,6 +877,7 @@ exports.useDownshift = function (_a) {
874
877
  openMenu: openMenu,
875
878
  reset: reset,
876
879
  forceUpdate: forceUpdate,
880
+ optionsGroupList: optionsGroupList,
877
881
  };
878
882
  changeHighlightedIndexReason.current = undefined;
879
883
  return resultObj;
@@ -1,11 +1,13 @@
1
1
  import { RcDownshiftProps } from '../Downshift';
2
- import { RcDownshiftSelectedItem } from './SelectItem';
2
+ import { RcDownshiftGroupedOption, RcDownshiftSelectedItem } from './SelectItem';
3
3
  declare type UseDownshiftGroup = {
4
4
  filteredResult: RcDownshiftSelectedItem[];
5
- } & Pick<RcDownshiftProps, 'options' | 'groupBy' | 'getExpandIconProps' | 'onGroupExpanded'>;
6
- export declare const useDownshiftGroup: ({ groupBy, options, filteredResult, getExpandIconProps, onGroupExpanded, }: UseDownshiftGroup) => {
5
+ id: string;
6
+ } & Pick<RcDownshiftProps, 'options' | 'groupBy' | 'getExpandIconProps' | 'onGroupExpanded' | 'groupExpanded' | 'groupVariant'>;
7
+ export declare const useDownshiftGroup: ({ groupBy, options, filteredResult, getExpandIconProps, groupExpanded, onGroupExpanded, groupVariant, id, }: UseDownshiftGroup) => {
8
+ optionsGroupList: RcDownshiftGroupedOption<RcDownshiftSelectedItem>[];
7
9
  groupedResult: RcDownshiftSelectedItem[];
8
10
  groupExpandedMap: Record<string, boolean>;
9
- handleGroupExpandedChange: (key: number) => void;
11
+ handleGroupExpandedChange: (key: string) => void;
10
12
  };
11
13
  export {};
@@ -34,15 +34,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
34
34
  var react_1 = require("react");
35
35
  var foundation_1 = require("../../../foundation");
36
36
  exports.useDownshiftGroup = function (_a) {
37
- var groupBy = _a.groupBy, options = _a.options, filteredResult = _a.filteredResult, getExpandIconProps = _a.getExpandIconProps, onGroupExpanded = _a.onGroupExpanded;
38
- var _b = __read(react_1.useState({}), 2), groupExpandedMap = _b[0], setGroupExpandedMap = _b[1];
37
+ var groupBy = _a.groupBy, options = _a.options, filteredResult = _a.filteredResult, getExpandIconProps = _a.getExpandIconProps, groupExpanded = _a.groupExpanded, onGroupExpanded = _a.onGroupExpanded, groupVariant = _a.groupVariant, id = _a.id;
38
+ var _b = __read(foundation_1.useRefState({}), 2), groupExpandedMapRef = _b[0], setGroupExpandedMap = _b[1];
39
+ var isTitleGroup = groupVariant === 'normal';
40
+ foundation_1.useChange(function () {
41
+ if (typeof groupExpanded === 'object') {
42
+ setGroupExpandedMap(groupExpanded, false);
43
+ }
44
+ }, function () { return groupExpanded; });
39
45
  var handleGroupExpandedChange = function (key) {
40
46
  var _a;
47
+ var groupExpandedMap = groupExpandedMapRef.current;
48
+ if (typeof groupExpanded === 'boolean') {
49
+ return;
50
+ }
41
51
  var toExpandedState = !groupExpandedMap[key];
42
52
  var newExpandedMap = __assign(__assign({}, groupExpandedMap), (_a = {}, _a[key] = toExpandedState, _a));
43
53
  setGroupExpandedMap(newExpandedMap);
44
54
  if (onGroupExpanded) {
45
- var group = groupedOptionsSource.find(function (x) { return x.key === key; });
55
+ var group = optionsGroupList.find(function (x) { return x.group === key; });
46
56
  if (group) {
47
57
  onGroupExpanded(__assign(__assign({}, foundation_1.omit(group, ['getExpandIconProps'])), { expanded: toExpandedState }), newExpandedMap);
48
58
  }
@@ -53,7 +63,7 @@ exports.useDownshiftGroup = function (_a) {
53
63
  e.preventDefault();
54
64
  e.stopPropagation();
55
65
  });
56
- var groupedOptionsSource = react_1.useMemo(function () {
66
+ var optionsGroupList = react_1.useMemo(function () {
57
67
  /** key with this group count */
58
68
  if (groupBy && options) {
59
69
  // used to keep track of key and indexes in the result array
@@ -85,7 +95,7 @@ exports.useDownshiftGroup = function (_a) {
85
95
  return newGroup_1.options.length > 1
86
96
  ? foundation_1.combineProps({
87
97
  onClick: function (e) {
88
- handleExpandIconClick(e, index);
98
+ handleExpandIconClick(e, group);
89
99
  },
90
100
  onMouseDown: function (e) {
91
101
  e.preventDefault();
@@ -97,6 +107,14 @@ exports.useDownshiftGroup = function (_a) {
97
107
  },
98
108
  };
99
109
  newGroup_1.options[0].group = newGroup_1;
110
+ if (isTitleGroup) {
111
+ newGroup_1.options.unshift({
112
+ id: id + "-" + group,
113
+ label: group,
114
+ disabled: true,
115
+ group: newGroup_1,
116
+ });
117
+ }
100
118
  acc.push(newGroup_1);
101
119
  }
102
120
  return acc;
@@ -108,20 +126,23 @@ exports.useDownshiftGroup = function (_a) {
108
126
  getExpandIconProps,
109
127
  groupBy,
110
128
  handleExpandIconClick,
129
+ id,
130
+ isTitleGroup,
111
131
  options,
112
132
  ]);
133
+ var groupExpandedMap = groupExpandedMapRef.current;
113
134
  // * speared logic with group, prevent calculate every time.
114
135
  var groupedResult = react_1.useMemo(function () {
115
136
  var addExpandedResult = Object.entries(groupExpandedMap).reduce(function (prev, _a) {
116
137
  var _b = __read(_a, 2), key = _b[0], expended = _b[1];
117
- var group = prev.find(function (x) { return "" + x.key === key; });
138
+ var group = prev.find(function (x) { return x.group === key; });
118
139
  if (group) {
119
140
  group.expanded = expended;
120
141
  }
121
142
  return prev;
122
- }, __spread(groupedOptionsSource));
143
+ }, __spread(optionsGroupList));
123
144
  return addExpandedResult.reduce(function (prev, curr) {
124
- if (curr.expanded) {
145
+ if (typeof groupExpanded === 'boolean' ? groupExpanded : curr.expanded) {
125
146
  prev.push.apply(prev, __spread(curr.options));
126
147
  }
127
148
  else {
@@ -129,8 +150,9 @@ exports.useDownshiftGroup = function (_a) {
129
150
  }
130
151
  return prev;
131
152
  }, []);
132
- }, [groupExpandedMap, groupedOptionsSource]);
153
+ }, [groupExpandedMap, optionsGroupList, groupExpanded]);
133
154
  return {
155
+ optionsGroupList: optionsGroupList,
134
156
  groupedResult: groupedResult,
135
157
  groupExpandedMap: groupExpandedMap,
136
158
  handleGroupExpandedChange: handleGroupExpandedChange,