downshift 9.3.4 → 9.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/downshift.cjs.cjs +11 -16
  2. package/dist/downshift.d.ts +14 -48
  3. package/dist/downshift.esm.mjs +11 -16
  4. package/dist/downshift.native.cjs.cjs +11 -16
  5. package/dist/downshift.nativeweb.cjs.cjs +11 -16
  6. package/dist/downshift.umd.js +11 -16
  7. package/dist/downshift.umd.js.map +1 -1
  8. package/dist/downshift.umd.min.js +1 -1
  9. package/dist/downshift.umd.min.js.map +1 -1
  10. package/dist/hooks/testUtils/interactions.d.ts +7 -7
  11. package/dist/hooks/useCombobox/__tests__/utils/renderCombobox.d.ts +2 -59
  12. package/dist/hooks/useCombobox/__tests__/utils/renderUseCombobox.d.ts +1 -1
  13. package/dist/hooks/useCombobox/index.types.d.ts +0 -2
  14. package/dist/hooks/useCombobox/utils/getInitialState.d.ts +1 -6
  15. package/dist/hooks/useCombobox/utils/propTypes.d.ts +1 -43
  16. package/dist/hooks/useSelect/__tests__/utils/getItemIndexByCharacter.d.ts +1 -1
  17. package/dist/hooks/useSelect/__tests__/utils/renderSelect.d.ts +1 -58
  18. package/dist/hooks/useSelect/__tests__/utils/renderUseSelect.d.ts +1 -1
  19. package/dist/hooks/useSelect/__tests__/utils/stateChangeTestCases.d.ts +29 -50
  20. package/dist/hooks/useSelect/utils/propTypes.d.ts +1 -38
  21. package/dist/hooks/useTagGroup/__tests__/utils/renderTagGroup.d.ts +1 -63
  22. package/dist/hooks/useTagGroup/__tests__/utils/renderUseTagGroup.d.ts +2 -2
  23. package/dist/hooks/useTagGroup/index.types.d.ts +0 -1
  24. package/dist/hooks/utils/dropdownDefaultProps.d.ts +1 -2
  25. package/package.json +1 -1
  26. package/preact/dist/downshift.cjs.cjs +11 -16
  27. package/preact/dist/downshift.esm.mjs +11 -16
  28. package/preact/dist/downshift.umd.js +11 -16
  29. package/preact/dist/downshift.umd.js.map +1 -1
  30. package/preact/dist/downshift.umd.min.js +1 -1
  31. package/preact/dist/downshift.umd.min.js.map +1 -1
  32. package/dist/hooks/useMultipleSelection/index.d.ts +0 -58
  33. package/dist/hooks/useMultipleSelection/reducer.d.ts +0 -1
  34. package/dist/hooks/useMultipleSelection/stateChangeTypes.d.ts +0 -13
  35. package/dist/hooks/useMultipleSelection/utils.d.ts +0 -44
@@ -1966,10 +1966,10 @@ function getHighlightedIndexOnOpen(items, initialHighlightedIndex, defaultHighli
1966
1966
  }
1967
1967
 
1968
1968
  // initialHighlightedIndex will give value to highlightedIndex on initial state only.
1969
- if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && items[initialHighlightedIndex] && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {
1969
+ if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && (initialHighlightedIndex === -1 || items[initialHighlightedIndex] !== undefined && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex))) {
1970
1970
  return initialHighlightedIndex;
1971
1971
  }
1972
- if (defaultHighlightedIndex !== undefined && items[defaultHighlightedIndex] && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {
1972
+ if (defaultHighlightedIndex !== undefined && (defaultHighlightedIndex === -1 || items[defaultHighlightedIndex] !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex))) {
1973
1973
  return defaultHighlightedIndex;
1974
1974
  }
1975
1975
  if (selectedItem) {
@@ -2441,7 +2441,7 @@ function downshiftSelectReducer(state, action) {
2441
2441
 
2442
2442
  var _excluded$3 = ["onClick"],
2443
2443
  _excluded2$3 = ["onMouseLeave", "refKey", "ref", "aria-label"],
2444
- _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref", "disabled"],
2444
+ _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref"],
2445
2445
  _excluded4$1 = ["item", "index", "onMouseMove", "onClick", "onMouseDown", "onPress", "refKey", "disabled", "ref"];
2446
2446
  useSelect.stateChangeTypes = stateChangeTypes$3;
2447
2447
  function useSelect(userProps) {
@@ -2665,7 +2665,6 @@ function useSelect(userProps) {
2665
2665
  _ref4$refKey = _ref4.refKey,
2666
2666
  refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,
2667
2667
  ref = _ref4.ref,
2668
- disabled = _ref4.disabled,
2669
2668
  rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);
2670
2669
  var _ref5 = otherProps != null ? otherProps : {},
2671
2670
  _ref5$suppressRefErro = _ref5.suppressRefError,
@@ -2696,8 +2695,8 @@ function useSelect(userProps) {
2696
2695
  };
2697
2696
  var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {
2698
2697
  toggleButtonRef.current = toggleButtonNode;
2699
- }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3.disabled = disabled, _extends3), rest);
2700
- if (!disabled) {
2698
+ }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);
2699
+ if (!rest.disabled) {
2701
2700
  /* istanbul ignore if (react-native) */
2702
2701
  {
2703
2702
  Object.assign(toggleProps, {
@@ -3059,8 +3058,8 @@ function downshiftUseComboboxReducer(state, action) {
3059
3058
 
3060
3059
  var _excluded$2 = ["onMouseLeave", "refKey", "ref", "aria-label"],
3061
3060
  _excluded2$2 = ["item", "index", "refKey", "ref", "onMouseMove", "onMouseDown", "onClick", "onPress", "disabled"],
3062
- _excluded3$1 = ["onClick", "onPress", "refKey", "ref", "disabled"],
3063
- _excluded4 = ["aria-label", "disabled", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
3061
+ _excluded3$1 = ["onClick", "onPress", "refKey", "ref"],
3062
+ _excluded4 = ["aria-label", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
3064
3063
  useCombobox.stateChangeTypes = stateChangeTypes$2;
3065
3064
  function useCombobox(userProps) {
3066
3065
  if (userProps === void 0) {
@@ -3317,7 +3316,6 @@ function useCombobox(userProps) {
3317
3316
  var _ref5$refKey = _ref5.refKey,
3318
3317
  refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,
3319
3318
  ref = _ref5.ref,
3320
- disabled = _ref5.disabled,
3321
3319
  rest = _objectWithoutPropertiesLoose(_ref5, _excluded3$1);
3322
3320
  var latestState = latest.current.state;
3323
3321
  var toggleButtonHandleClick = function toggleButtonHandleClick() {
@@ -3327,17 +3325,14 @@ function useCombobox(userProps) {
3327
3325
  };
3328
3326
  return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {
3329
3327
  toggleButtonRef.current = toggleButtonNode;
3330
- }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !disabled && _extends({}, {
3328
+ }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {
3331
3329
  onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)
3332
- }), {
3333
- disabled: disabled
3334
- }, rest);
3330
+ }), rest);
3335
3331
  }, [dispatch, latest, elementIds]);
3336
3332
  var getInputProps = React.useCallback(function (inputProps, otherProps) {
3337
3333
  var _extends5;
3338
3334
  var _ref6 = inputProps != null ? inputProps : {},
3339
3335
  ariaLabel = _ref6['aria-label'],
3340
- disabled = _ref6.disabled,
3341
3336
  onKeyDown = _ref6.onKeyDown,
3342
3337
  onChange = _ref6.onChange,
3343
3338
  onInput = _ref6.onInput,
@@ -3385,13 +3380,13 @@ function useCombobox(userProps) {
3385
3380
  /* istanbul ignore next (preact) */
3386
3381
  var onChangeKey = 'onChange';
3387
3382
  var eventHandlers = {};
3388
- if (!disabled) {
3383
+ if (!rest.disabled) {
3389
3384
  var _eventHandlers;
3390
3385
  eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);
3391
3386
  }
3392
3387
  return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {
3393
3388
  inputRef.current = inputNode;
3394
- }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.disabled = disabled, _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
3389
+ }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
3395
3390
  }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]);
3396
3391
 
3397
3392
  // returns
@@ -47,17 +47,17 @@ declare class Downshift extends Component<any, any, any> {
47
47
  defaultIsOpen: boolean;
48
48
  getA11yStatusMessage: typeof getA11yStatusMessage;
49
49
  itemToString: (i: any) => string;
50
- onStateChange: typeof noop;
51
- onInputValueChange: typeof noop;
52
- onUserAction: typeof noop;
53
- onChange: typeof noop;
54
- onSelect: typeof noop;
55
- onOuterClick: typeof noop;
50
+ onStateChange: any;
51
+ onInputValueChange: any;
52
+ onUserAction: any;
53
+ onChange: any;
54
+ onSelect: any;
55
+ onOuterClick: any;
56
56
  selectedItemChanged: (prevItem: any, item: any) => boolean;
57
57
  environment: (Window & typeof globalThis) | undefined;
58
58
  stateReducer: (state: any, stateToSet: any) => any;
59
59
  suppressRefError: boolean;
60
- scrollIntoView: typeof scrollIntoView;
60
+ scrollIntoView: any;
61
61
  };
62
62
  static stateChangeTypes: typeof stateChangeTypes;
63
63
  constructor(props: any);
@@ -163,28 +163,13 @@ declare class Downshift extends Component<any, any, any> {
163
163
  index: any;
164
164
  item?: void | undefined;
165
165
  }) => {
166
- onMouseMove: (event: import("react").SyntheticEvent<Element, Event> & {
167
- preventDownshiftDefault?: boolean | undefined;
168
- nativeEvent: {
169
- preventDownshiftDefault?: boolean | undefined;
170
- };
171
- }, ...args: unknown[]) => boolean;
172
- onMouseDown: (event: import("react").SyntheticEvent<Element, Event> & {
173
- preventDownshiftDefault?: boolean | undefined;
174
- nativeEvent: {
175
- preventDownshiftDefault?: boolean | undefined;
176
- };
177
- }, ...args: unknown[]) => boolean;
166
+ onMouseMove: any;
167
+ onMouseDown: any;
178
168
  id: any;
179
169
  role: string;
180
170
  'aria-selected': boolean;
181
171
  } | {
182
- onMouseDown: (event: import("react").SyntheticEvent<Element, Event> & {
183
- preventDownshiftDefault?: boolean | undefined;
184
- nativeEvent: {
185
- preventDownshiftDefault?: boolean | undefined;
186
- };
187
- }, ...args: unknown[]) => boolean;
172
+ onMouseDown: any;
188
173
  id: any;
189
174
  role: string;
190
175
  'aria-selected': boolean;
@@ -300,28 +285,13 @@ declare class Downshift extends Component<any, any, any> {
300
285
  index: any;
301
286
  item?: void | undefined;
302
287
  }) => {
303
- onMouseMove: (event: import("react").SyntheticEvent<Element, Event> & {
304
- preventDownshiftDefault?: boolean | undefined;
305
- nativeEvent: {
306
- preventDownshiftDefault?: boolean | undefined;
307
- };
308
- }, ...args: unknown[]) => boolean;
309
- onMouseDown: (event: import("react").SyntheticEvent<Element, Event> & {
310
- preventDownshiftDefault?: boolean | undefined;
311
- nativeEvent: {
312
- preventDownshiftDefault?: boolean | undefined;
313
- };
314
- }, ...args: unknown[]) => boolean;
288
+ onMouseMove: any;
289
+ onMouseDown: any;
315
290
  id: any;
316
291
  role: string;
317
292
  'aria-selected': boolean;
318
293
  } | {
319
- onMouseDown: (event: import("react").SyntheticEvent<Element, Event> & {
320
- preventDownshiftDefault?: boolean | undefined;
321
- nativeEvent: {
322
- preventDownshiftDefault?: boolean | undefined;
323
- };
324
- }, ...args: unknown[]) => boolean;
294
+ onMouseDown: any;
325
295
  id: any;
326
296
  role: string;
327
297
  'aria-selected': boolean;
@@ -332,9 +302,7 @@ declare class Downshift extends Component<any, any, any> {
332
302
  toggleMenu: (otherStateToSet: {} | undefined, cb: any) => void;
333
303
  openMenu: (cb: any) => void;
334
304
  closeMenu: (cb: any) => void;
335
- updateStatus: Function & {
336
- cancel: Function;
337
- };
305
+ updateStatus: any;
338
306
  componentDidMount(): void;
339
307
  cleanup: (() => void) | (() => void) | undefined;
340
308
  isMouseDown: boolean | undefined;
@@ -347,6 +315,4 @@ declare class Downshift extends Component<any, any, any> {
347
315
  import { Component } from "react";
348
316
  import PropTypes from "prop-types";
349
317
  import { getA11yStatusMessage } from "./utils.legacy";
350
- import { noop } from "./utils";
351
- import { scrollIntoView } from "./utils";
352
318
  import * as stateChangeTypes from "./stateChangeTypes";
@@ -1944,10 +1944,10 @@ function getHighlightedIndexOnOpen(items, initialHighlightedIndex, defaultHighli
1944
1944
  }
1945
1945
 
1946
1946
  // initialHighlightedIndex will give value to highlightedIndex on initial state only.
1947
- if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && items[initialHighlightedIndex] && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {
1947
+ if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && (initialHighlightedIndex === -1 || items[initialHighlightedIndex] !== undefined && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex))) {
1948
1948
  return initialHighlightedIndex;
1949
1949
  }
1950
- if (defaultHighlightedIndex !== undefined && items[defaultHighlightedIndex] && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {
1950
+ if (defaultHighlightedIndex !== undefined && (defaultHighlightedIndex === -1 || items[defaultHighlightedIndex] !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex))) {
1951
1951
  return defaultHighlightedIndex;
1952
1952
  }
1953
1953
  if (selectedItem) {
@@ -2419,7 +2419,7 @@ function downshiftSelectReducer(state, action) {
2419
2419
 
2420
2420
  var _excluded$3 = ["onClick"],
2421
2421
  _excluded2$3 = ["onMouseLeave", "refKey", "ref", "aria-label"],
2422
- _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref", "disabled"],
2422
+ _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref"],
2423
2423
  _excluded4$1 = ["item", "index", "onMouseMove", "onClick", "onMouseDown", "onPress", "refKey", "disabled", "ref"];
2424
2424
  useSelect.stateChangeTypes = stateChangeTypes$3;
2425
2425
  function useSelect(userProps) {
@@ -2643,7 +2643,6 @@ function useSelect(userProps) {
2643
2643
  _ref4$refKey = _ref4.refKey,
2644
2644
  refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,
2645
2645
  ref = _ref4.ref,
2646
- disabled = _ref4.disabled,
2647
2646
  rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);
2648
2647
  var _ref5 = otherProps != null ? otherProps : {},
2649
2648
  _ref5$suppressRefErro = _ref5.suppressRefError,
@@ -2674,8 +2673,8 @@ function useSelect(userProps) {
2674
2673
  };
2675
2674
  var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {
2676
2675
  toggleButtonRef.current = toggleButtonNode;
2677
- }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3.disabled = disabled, _extends3), rest);
2678
- if (!disabled) {
2676
+ }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);
2677
+ if (!rest.disabled) {
2679
2678
  /* istanbul ignore if (react-native) */
2680
2679
  {
2681
2680
  Object.assign(toggleProps, {
@@ -3037,8 +3036,8 @@ function downshiftUseComboboxReducer(state, action) {
3037
3036
 
3038
3037
  var _excluded$2 = ["onMouseLeave", "refKey", "ref", "aria-label"],
3039
3038
  _excluded2$2 = ["item", "index", "refKey", "ref", "onMouseMove", "onMouseDown", "onClick", "onPress", "disabled"],
3040
- _excluded3$1 = ["onClick", "onPress", "refKey", "ref", "disabled"],
3041
- _excluded4 = ["aria-label", "disabled", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
3039
+ _excluded3$1 = ["onClick", "onPress", "refKey", "ref"],
3040
+ _excluded4 = ["aria-label", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
3042
3041
  useCombobox.stateChangeTypes = stateChangeTypes$2;
3043
3042
  function useCombobox(userProps) {
3044
3043
  if (userProps === void 0) {
@@ -3295,7 +3294,6 @@ function useCombobox(userProps) {
3295
3294
  var _ref5$refKey = _ref5.refKey,
3296
3295
  refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,
3297
3296
  ref = _ref5.ref,
3298
- disabled = _ref5.disabled,
3299
3297
  rest = _objectWithoutPropertiesLoose(_ref5, _excluded3$1);
3300
3298
  var latestState = latest.current.state;
3301
3299
  var toggleButtonHandleClick = function toggleButtonHandleClick() {
@@ -3305,17 +3303,14 @@ function useCombobox(userProps) {
3305
3303
  };
3306
3304
  return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {
3307
3305
  toggleButtonRef.current = toggleButtonNode;
3308
- }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !disabled && _extends({}, {
3306
+ }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {
3309
3307
  onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)
3310
- }), {
3311
- disabled: disabled
3312
- }, rest);
3308
+ }), rest);
3313
3309
  }, [dispatch, latest, elementIds]);
3314
3310
  var getInputProps = useCallback(function (inputProps, otherProps) {
3315
3311
  var _extends5;
3316
3312
  var _ref6 = inputProps != null ? inputProps : {},
3317
3313
  ariaLabel = _ref6['aria-label'],
3318
- disabled = _ref6.disabled,
3319
3314
  onKeyDown = _ref6.onKeyDown,
3320
3315
  onChange = _ref6.onChange,
3321
3316
  onInput = _ref6.onInput,
@@ -3363,13 +3358,13 @@ function useCombobox(userProps) {
3363
3358
  /* istanbul ignore next (preact) */
3364
3359
  var onChangeKey = 'onChange';
3365
3360
  var eventHandlers = {};
3366
- if (!disabled) {
3361
+ if (!rest.disabled) {
3367
3362
  var _eventHandlers;
3368
3363
  eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);
3369
3364
  }
3370
3365
  return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {
3371
3366
  inputRef.current = inputNode;
3372
- }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.disabled = disabled, _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
3367
+ }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
3373
3368
  }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]);
3374
3369
 
3375
3370
  // returns
@@ -1854,10 +1854,10 @@ function getHighlightedIndexOnOpen(items, initialHighlightedIndex, defaultHighli
1854
1854
  }
1855
1855
 
1856
1856
  // initialHighlightedIndex will give value to highlightedIndex on initial state only.
1857
- if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && items[initialHighlightedIndex] && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {
1857
+ if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && (initialHighlightedIndex === -1 || items[initialHighlightedIndex] !== undefined && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex))) {
1858
1858
  return initialHighlightedIndex;
1859
1859
  }
1860
- if (defaultHighlightedIndex !== undefined && items[defaultHighlightedIndex] && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {
1860
+ if (defaultHighlightedIndex !== undefined && (defaultHighlightedIndex === -1 || items[defaultHighlightedIndex] !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex))) {
1861
1861
  return defaultHighlightedIndex;
1862
1862
  }
1863
1863
  if (selectedItem) {
@@ -2294,7 +2294,7 @@ function downshiftSelectReducer(state, action) {
2294
2294
 
2295
2295
  var _excluded$3 = ["onClick"],
2296
2296
  _excluded2$3 = ["onMouseLeave", "refKey", "ref", "aria-label"],
2297
- _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref", "disabled"],
2297
+ _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref"],
2298
2298
  _excluded4$1 = ["item", "index", "onMouseMove", "onClick", "onMouseDown", "onPress", "refKey", "disabled", "ref"];
2299
2299
  useSelect.stateChangeTypes = stateChangeTypes$3;
2300
2300
  function useSelect(userProps) {
@@ -2518,7 +2518,6 @@ function useSelect(userProps) {
2518
2518
  var _ref4$refKey = _ref4.refKey,
2519
2519
  refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,
2520
2520
  ref = _ref4.ref,
2521
- disabled = _ref4.disabled,
2522
2521
  rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);
2523
2522
  var _ref5 = otherProps != null ? otherProps : {},
2524
2523
  _ref5$suppressRefErro = _ref5.suppressRefError,
@@ -2538,8 +2537,8 @@ function useSelect(userProps) {
2538
2537
  };
2539
2538
  var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {
2540
2539
  toggleButtonRef.current = toggleButtonNode;
2541
- }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3.disabled = disabled, _extends3), rest);
2542
- if (!disabled) {
2540
+ }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);
2541
+ if (!rest.disabled) {
2543
2542
  /* istanbul ignore if (react-native) */
2544
2543
  {
2545
2544
  Object.assign(toggleProps, {
@@ -2900,8 +2899,8 @@ function downshiftUseComboboxReducer(state, action) {
2900
2899
 
2901
2900
  var _excluded$2 = ["onMouseLeave", "refKey", "ref", "aria-label"],
2902
2901
  _excluded2$2 = ["item", "index", "refKey", "ref", "onMouseMove", "onMouseDown", "onClick", "onPress", "disabled"],
2903
- _excluded3$1 = ["onClick", "onPress", "refKey", "ref", "disabled"],
2904
- _excluded4 = ["aria-label", "disabled", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
2902
+ _excluded3$1 = ["onClick", "onPress", "refKey", "ref"],
2903
+ _excluded4 = ["aria-label", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
2905
2904
  useCombobox.stateChangeTypes = stateChangeTypes$2;
2906
2905
  function useCombobox(userProps) {
2907
2906
  if (userProps === void 0) {
@@ -3158,7 +3157,6 @@ function useCombobox(userProps) {
3158
3157
  _ref5$refKey = _ref5.refKey,
3159
3158
  refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,
3160
3159
  ref = _ref5.ref,
3161
- disabled = _ref5.disabled,
3162
3160
  rest = _objectWithoutPropertiesLoose(_ref5, _excluded3$1);
3163
3161
  var latestState = latest.current.state;
3164
3162
  var toggleButtonHandleClick = function toggleButtonHandleClick() {
@@ -3168,17 +3166,14 @@ function useCombobox(userProps) {
3168
3166
  };
3169
3167
  return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {
3170
3168
  toggleButtonRef.current = toggleButtonNode;
3171
- }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !disabled && _extends({}, /* istanbul ignore next (react-native) */{
3169
+ }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, /* istanbul ignore next (react-native) */{
3172
3170
  onPress: callAllEventHandlers(onPress, toggleButtonHandleClick)
3173
- } ), {
3174
- disabled: disabled
3175
- }, rest);
3171
+ } ), rest);
3176
3172
  }, [dispatch, latest, elementIds]);
3177
3173
  var getInputProps = React.useCallback(function (inputProps, otherProps) {
3178
3174
  var _extends5;
3179
3175
  var _ref6 = inputProps != null ? inputProps : {},
3180
3176
  ariaLabel = _ref6['aria-label'],
3181
- disabled = _ref6.disabled,
3182
3177
  onKeyDown = _ref6.onKeyDown,
3183
3178
  onChange = _ref6.onChange,
3184
3179
  onInput = _ref6.onInput,
@@ -3226,7 +3221,7 @@ function useCombobox(userProps) {
3226
3221
  /* istanbul ignore next (preact) */
3227
3222
  var onChangeKey = 'onChange';
3228
3223
  var eventHandlers = {};
3229
- if (!disabled) {
3224
+ if (!rest.disabled) {
3230
3225
  var _eventHandlers;
3231
3226
  eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);
3232
3227
  }
@@ -3244,7 +3239,7 @@ function useCombobox(userProps) {
3244
3239
  }
3245
3240
  return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {
3246
3241
  inputRef.current = inputNode;
3247
- }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.disabled = disabled, _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
3242
+ }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
3248
3243
  }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]);
3249
3244
 
3250
3245
  // returns
@@ -1964,10 +1964,10 @@ function getHighlightedIndexOnOpen(items, initialHighlightedIndex, defaultHighli
1964
1964
  }
1965
1965
 
1966
1966
  // initialHighlightedIndex will give value to highlightedIndex on initial state only.
1967
- if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && items[initialHighlightedIndex] && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {
1967
+ if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && (initialHighlightedIndex === -1 || items[initialHighlightedIndex] !== undefined && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex))) {
1968
1968
  return initialHighlightedIndex;
1969
1969
  }
1970
- if (defaultHighlightedIndex !== undefined && items[defaultHighlightedIndex] && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {
1970
+ if (defaultHighlightedIndex !== undefined && (defaultHighlightedIndex === -1 || items[defaultHighlightedIndex] !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex))) {
1971
1971
  return defaultHighlightedIndex;
1972
1972
  }
1973
1973
  if (selectedItem) {
@@ -2439,7 +2439,7 @@ function downshiftSelectReducer(state, action) {
2439
2439
 
2440
2440
  var _excluded$3 = ["onClick"],
2441
2441
  _excluded2$3 = ["onMouseLeave", "refKey", "ref", "aria-label"],
2442
- _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref", "disabled"],
2442
+ _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref"],
2443
2443
  _excluded4$1 = ["item", "index", "onMouseMove", "onClick", "onMouseDown", "onPress", "refKey", "disabled", "ref"];
2444
2444
  useSelect.stateChangeTypes = stateChangeTypes$3;
2445
2445
  function useSelect(userProps) {
@@ -2663,7 +2663,6 @@ function useSelect(userProps) {
2663
2663
  var _ref4$refKey = _ref4.refKey,
2664
2664
  refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,
2665
2665
  ref = _ref4.ref,
2666
- disabled = _ref4.disabled,
2667
2666
  rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);
2668
2667
  var _ref5 = otherProps != null ? otherProps : {},
2669
2668
  _ref5$suppressRefErro = _ref5.suppressRefError,
@@ -2683,8 +2682,8 @@ function useSelect(userProps) {
2683
2682
  };
2684
2683
  var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {
2685
2684
  toggleButtonRef.current = toggleButtonNode;
2686
- }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3.disabled = disabled, _extends3), rest);
2687
- if (!disabled) {
2685
+ }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);
2686
+ if (!rest.disabled) {
2688
2687
  /* istanbul ignore if (react-native) */
2689
2688
  {
2690
2689
  Object.assign(toggleProps, {
@@ -3045,8 +3044,8 @@ function downshiftUseComboboxReducer(state, action) {
3045
3044
 
3046
3045
  var _excluded$2 = ["onMouseLeave", "refKey", "ref", "aria-label"],
3047
3046
  _excluded2$2 = ["item", "index", "refKey", "ref", "onMouseMove", "onMouseDown", "onClick", "onPress", "disabled"],
3048
- _excluded3$1 = ["onClick", "onPress", "refKey", "ref", "disabled"],
3049
- _excluded4 = ["aria-label", "disabled", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
3047
+ _excluded3$1 = ["onClick", "onPress", "refKey", "ref"],
3048
+ _excluded4 = ["aria-label", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
3050
3049
  useCombobox.stateChangeTypes = stateChangeTypes$2;
3051
3050
  function useCombobox(userProps) {
3052
3051
  if (userProps === void 0) {
@@ -3303,7 +3302,6 @@ function useCombobox(userProps) {
3303
3302
  _ref5$refKey = _ref5.refKey,
3304
3303
  refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,
3305
3304
  ref = _ref5.ref,
3306
- disabled = _ref5.disabled,
3307
3305
  rest = _objectWithoutPropertiesLoose(_ref5, _excluded3$1);
3308
3306
  var latestState = latest.current.state;
3309
3307
  var toggleButtonHandleClick = function toggleButtonHandleClick() {
@@ -3313,17 +3311,14 @@ function useCombobox(userProps) {
3313
3311
  };
3314
3312
  return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {
3315
3313
  toggleButtonRef.current = toggleButtonNode;
3316
- }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !disabled && _extends({}, /* istanbul ignore next (react-native) */{
3314
+ }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, /* istanbul ignore next (react-native) */{
3317
3315
  onPress: callAllEventHandlers(onPress, toggleButtonHandleClick)
3318
- } ), {
3319
- disabled: disabled
3320
- }, rest);
3316
+ } ), rest);
3321
3317
  }, [dispatch, latest, elementIds]);
3322
3318
  var getInputProps = React.useCallback(function (inputProps, otherProps) {
3323
3319
  var _extends5;
3324
3320
  var _ref6 = inputProps != null ? inputProps : {},
3325
3321
  ariaLabel = _ref6['aria-label'],
3326
- disabled = _ref6.disabled,
3327
3322
  onKeyDown = _ref6.onKeyDown,
3328
3323
  onChange = _ref6.onChange,
3329
3324
  onInput = _ref6.onInput,
@@ -3371,13 +3366,13 @@ function useCombobox(userProps) {
3371
3366
  /* istanbul ignore next (preact) */
3372
3367
  var onChangeKey = 'onChange';
3373
3368
  var eventHandlers = {};
3374
- if (!disabled) {
3369
+ if (!rest.disabled) {
3375
3370
  var _eventHandlers;
3376
3371
  eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);
3377
3372
  }
3378
3373
  return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {
3379
3374
  inputRef.current = inputNode;
3380
- }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.disabled = disabled, _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
3375
+ }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
3381
3376
  }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]);
3382
3377
 
3383
3378
  // returns
@@ -3319,10 +3319,10 @@
3319
3319
  }
3320
3320
 
3321
3321
  // initialHighlightedIndex will give value to highlightedIndex on initial state only.
3322
- if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && items[initialHighlightedIndex] && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {
3322
+ if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && (initialHighlightedIndex === -1 || items[initialHighlightedIndex] !== undefined && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex))) {
3323
3323
  return initialHighlightedIndex;
3324
3324
  }
3325
- if (defaultHighlightedIndex !== undefined && items[defaultHighlightedIndex] && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {
3325
+ if (defaultHighlightedIndex !== undefined && (defaultHighlightedIndex === -1 || items[defaultHighlightedIndex] !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex))) {
3326
3326
  return defaultHighlightedIndex;
3327
3327
  }
3328
3328
  if (selectedItem) {
@@ -3794,7 +3794,7 @@
3794
3794
 
3795
3795
  var _excluded$3 = ["onClick"],
3796
3796
  _excluded2$3 = ["onMouseLeave", "refKey", "ref", "aria-label"],
3797
- _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref", "disabled"],
3797
+ _excluded3$2 = ["onBlur", "onClick", "onPress", "onKeyDown", "refKey", "ref"],
3798
3798
  _excluded4$1 = ["item", "index", "onMouseMove", "onClick", "onMouseDown", "onPress", "refKey", "disabled", "ref"];
3799
3799
  useSelect.stateChangeTypes = stateChangeTypes$3;
3800
3800
  function useSelect(userProps) {
@@ -4018,7 +4018,6 @@
4018
4018
  _ref4$refKey = _ref4.refKey,
4019
4019
  refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,
4020
4020
  ref = _ref4.ref,
4021
- disabled = _ref4.disabled,
4022
4021
  rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);
4023
4022
  var _ref5 = otherProps != null ? otherProps : {},
4024
4023
  _ref5$suppressRefErro = _ref5.suppressRefError,
@@ -4049,8 +4048,8 @@
4049
4048
  };
4050
4049
  var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {
4051
4050
  toggleButtonRef.current = toggleButtonNode;
4052
- }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3.disabled = disabled, _extends3), rest);
4053
- if (!disabled) {
4051
+ }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest['aria-label'] ? undefined : "" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);
4052
+ if (!rest.disabled) {
4054
4053
  /* istanbul ignore if (react-native) */
4055
4054
  {
4056
4055
  Object.assign(toggleProps, {
@@ -4412,8 +4411,8 @@
4412
4411
 
4413
4412
  var _excluded$2 = ["onMouseLeave", "refKey", "ref", "aria-label"],
4414
4413
  _excluded2$2 = ["item", "index", "refKey", "ref", "onMouseMove", "onMouseDown", "onClick", "onPress", "disabled"],
4415
- _excluded3$1 = ["onClick", "onPress", "refKey", "ref", "disabled"],
4416
- _excluded4 = ["aria-label", "disabled", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
4414
+ _excluded3$1 = ["onClick", "onPress", "refKey", "ref"],
4415
+ _excluded4 = ["aria-label", "onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
4417
4416
  useCombobox.stateChangeTypes = stateChangeTypes$2;
4418
4417
  function useCombobox(userProps) {
4419
4418
  if (userProps === void 0) {
@@ -4670,7 +4669,6 @@
4670
4669
  var _ref5$refKey = _ref5.refKey,
4671
4670
  refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,
4672
4671
  ref = _ref5.ref,
4673
- disabled = _ref5.disabled,
4674
4672
  rest = _objectWithoutPropertiesLoose(_ref5, _excluded3$1);
4675
4673
  var latestState = latest.current.state;
4676
4674
  var toggleButtonHandleClick = function toggleButtonHandleClick() {
@@ -4680,17 +4678,14 @@
4680
4678
  };
4681
4679
  return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {
4682
4680
  toggleButtonRef.current = toggleButtonNode;
4683
- }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !disabled && _extends({}, {
4681
+ }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {
4684
4682
  onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)
4685
- }), {
4686
- disabled: disabled
4687
- }, rest);
4683
+ }), rest);
4688
4684
  }, [dispatch, latest, elementIds]);
4689
4685
  var getInputProps = React.useCallback(function (inputProps, otherProps) {
4690
4686
  var _extends5;
4691
4687
  var _ref6 = inputProps != null ? inputProps : {},
4692
4688
  ariaLabel = _ref6['aria-label'],
4693
- disabled = _ref6.disabled,
4694
4689
  onKeyDown = _ref6.onKeyDown,
4695
4690
  onChange = _ref6.onChange,
4696
4691
  onInput = _ref6.onInput,
@@ -4738,13 +4733,13 @@
4738
4733
  /* istanbul ignore next (preact) */
4739
4734
  var onChangeKey = 'onChange';
4740
4735
  var eventHandlers = {};
4741
- if (!disabled) {
4736
+ if (!rest.disabled) {
4742
4737
  var _eventHandlers;
4743
4738
  eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);
4744
4739
  }
4745
4740
  return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {
4746
4741
  inputRef.current = inputNode;
4747
- }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.disabled = disabled, _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
4742
+ }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = ariaLabel ? undefined : elementIds.labelId, _extends5['aria-label'] = ariaLabel, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);
4748
4743
  }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]);
4749
4744
 
4750
4745
  // returns