downshift 8.2.2 → 8.2.3

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.
@@ -1695,11 +1695,11 @@ function useLatestRef(val) {
1695
1695
  * Also calls the onChange handlers for state values that have changed.
1696
1696
  *
1697
1697
  * @param {Function} reducer Reducer function from downshift.
1698
- * @param {Object} initialState Initial state of the hook.
1699
- * @param {Object} props The hook props.
1698
+ * @param {Object} props The hook props, also passed to createInitialState.
1699
+ * @param {Function} createInitialState Function that returns the initial state.
1700
1700
  * @returns {Array} An array with the state and an action dispatcher.
1701
1701
  */
1702
- function useEnhancedReducer(reducer, initialState, props) {
1702
+ function useEnhancedReducer(reducer, props, createInitialState) {
1703
1703
  var prevStateRef = React.useRef();
1704
1704
  var actionRef = React.useRef();
1705
1705
  var enhancedReducer = React.useCallback(function (state, action) {
@@ -1711,7 +1711,7 @@ function useEnhancedReducer(reducer, initialState, props) {
1711
1711
  }));
1712
1712
  return newState;
1713
1713
  }, [reducer]);
1714
- var _useReducer = React.useReducer(enhancedReducer, initialState),
1714
+ var _useReducer = React.useReducer(enhancedReducer, props, createInitialState),
1715
1715
  state = _useReducer[0],
1716
1716
  dispatch = _useReducer[1];
1717
1717
  var propsRef = useLatestRef(props);
@@ -1735,12 +1735,12 @@ function useEnhancedReducer(reducer, initialState, props) {
1735
1735
  * returning the new state.
1736
1736
  *
1737
1737
  * @param {Function} reducer Reducer function from downshift.
1738
- * @param {Object} initialState Initial state of the hook.
1739
- * @param {Object} props The hook props.
1738
+ * @param {Object} props The hook props, also passed to createInitialState.
1739
+ * @param {Function} createInitialState Function that returns the initial state.
1740
1740
  * @returns {Array} An array with the state and an action dispatcher.
1741
1741
  */
1742
- function useControlledReducer$1(reducer, initialState, props) {
1743
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
1742
+ function useControlledReducer$1(reducer, props, createInitialState) {
1743
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
1744
1744
  state = _useEnhancedReducer[0],
1745
1745
  dispatch = _useEnhancedReducer[1];
1746
1746
  return [getState(state, props), dispatch];
@@ -2344,8 +2344,7 @@ function useSelect(userProps) {
2344
2344
  getA11ySelectionMessage = props.getA11ySelectionMessage,
2345
2345
  getA11yStatusMessage = props.getA11yStatusMessage;
2346
2346
  // Initial state depending on controlled props.
2347
- var initialState = getInitialState$2(props);
2348
- var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, initialState, props),
2347
+ var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2),
2349
2348
  state = _useControlledReducer[0],
2350
2349
  dispatch = _useControlledReducer[1];
2351
2350
  var isOpen = state.isOpen,
@@ -2828,13 +2827,13 @@ var propTypes$1 = _extends__default["default"]({}, commonDropdownPropTypes, {
2828
2827
  * compute the rest of the state.
2829
2828
  *
2830
2829
  * @param {Function} reducer Reducer function from downshift.
2831
- * @param {Object} initialState Initial state of the hook.
2832
- * @param {Object} props The hook props.
2830
+ * @param {Object} props The hook props, also passed to createInitialState.
2831
+ * @param {Function} createInitialState Function that returns the initial state.
2833
2832
  * @returns {Array} An array with the state and an action dispatcher.
2834
2833
  */
2835
- function useControlledReducer(reducer, initialState, props) {
2834
+ function useControlledReducer(reducer, props, createInitialState) {
2836
2835
  var previousSelectedItemRef = React.useRef();
2837
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
2836
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
2838
2837
  state = _useEnhancedReducer[0],
2839
2838
  dispatch = _useEnhancedReducer[1];
2840
2839
 
@@ -3008,8 +3007,7 @@ function useCombobox(userProps) {
3008
3007
  getA11ySelectionMessage = props.getA11ySelectionMessage,
3009
3008
  itemToString = props.itemToString;
3010
3009
  // Initial state depending on controlled props.
3011
- var initialState = getInitialState$1(props);
3012
- var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, initialState, props),
3010
+ var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1),
3013
3011
  state = _useControlledReducer[0],
3014
3012
  dispatch = _useControlledReducer[1];
3015
3013
  var isOpen = state.isOpen,
@@ -3683,7 +3681,7 @@ function useMultipleSelection(userProps) {
3683
3681
  keyNavigationPrevious = props.keyNavigationPrevious;
3684
3682
 
3685
3683
  // Reducer init.
3686
- var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props),
3684
+ var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState),
3687
3685
  state = _useControlledReducer[0],
3688
3686
  dispatch = _useControlledReducer[1];
3689
3687
  var activeIndex = state.activeIndex,
@@ -1682,11 +1682,11 @@ function useLatestRef(val) {
1682
1682
  * Also calls the onChange handlers for state values that have changed.
1683
1683
  *
1684
1684
  * @param {Function} reducer Reducer function from downshift.
1685
- * @param {Object} initialState Initial state of the hook.
1686
- * @param {Object} props The hook props.
1685
+ * @param {Object} props The hook props, also passed to createInitialState.
1686
+ * @param {Function} createInitialState Function that returns the initial state.
1687
1687
  * @returns {Array} An array with the state and an action dispatcher.
1688
1688
  */
1689
- function useEnhancedReducer(reducer, initialState, props) {
1689
+ function useEnhancedReducer(reducer, props, createInitialState) {
1690
1690
  var prevStateRef = useRef();
1691
1691
  var actionRef = useRef();
1692
1692
  var enhancedReducer = useCallback(function (state, action) {
@@ -1698,7 +1698,7 @@ function useEnhancedReducer(reducer, initialState, props) {
1698
1698
  }));
1699
1699
  return newState;
1700
1700
  }, [reducer]);
1701
- var _useReducer = useReducer(enhancedReducer, initialState),
1701
+ var _useReducer = useReducer(enhancedReducer, props, createInitialState),
1702
1702
  state = _useReducer[0],
1703
1703
  dispatch = _useReducer[1];
1704
1704
  var propsRef = useLatestRef(props);
@@ -1722,12 +1722,12 @@ function useEnhancedReducer(reducer, initialState, props) {
1722
1722
  * returning the new state.
1723
1723
  *
1724
1724
  * @param {Function} reducer Reducer function from downshift.
1725
- * @param {Object} initialState Initial state of the hook.
1726
- * @param {Object} props The hook props.
1725
+ * @param {Object} props The hook props, also passed to createInitialState.
1726
+ * @param {Function} createInitialState Function that returns the initial state.
1727
1727
  * @returns {Array} An array with the state and an action dispatcher.
1728
1728
  */
1729
- function useControlledReducer$1(reducer, initialState, props) {
1730
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
1729
+ function useControlledReducer$1(reducer, props, createInitialState) {
1730
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
1731
1731
  state = _useEnhancedReducer[0],
1732
1732
  dispatch = _useEnhancedReducer[1];
1733
1733
  return [getState(state, props), dispatch];
@@ -2331,8 +2331,7 @@ function useSelect(userProps) {
2331
2331
  getA11ySelectionMessage = props.getA11ySelectionMessage,
2332
2332
  getA11yStatusMessage = props.getA11yStatusMessage;
2333
2333
  // Initial state depending on controlled props.
2334
- var initialState = getInitialState$2(props);
2335
- var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, initialState, props),
2334
+ var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2),
2336
2335
  state = _useControlledReducer[0],
2337
2336
  dispatch = _useControlledReducer[1];
2338
2337
  var isOpen = state.isOpen,
@@ -2815,13 +2814,13 @@ var propTypes$1 = _extends({}, commonDropdownPropTypes, {
2815
2814
  * compute the rest of the state.
2816
2815
  *
2817
2816
  * @param {Function} reducer Reducer function from downshift.
2818
- * @param {Object} initialState Initial state of the hook.
2819
- * @param {Object} props The hook props.
2817
+ * @param {Object} props The hook props, also passed to createInitialState.
2818
+ * @param {Function} createInitialState Function that returns the initial state.
2820
2819
  * @returns {Array} An array with the state and an action dispatcher.
2821
2820
  */
2822
- function useControlledReducer(reducer, initialState, props) {
2821
+ function useControlledReducer(reducer, props, createInitialState) {
2823
2822
  var previousSelectedItemRef = useRef();
2824
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
2823
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
2825
2824
  state = _useEnhancedReducer[0],
2826
2825
  dispatch = _useEnhancedReducer[1];
2827
2826
 
@@ -2995,8 +2994,7 @@ function useCombobox(userProps) {
2995
2994
  getA11ySelectionMessage = props.getA11ySelectionMessage,
2996
2995
  itemToString = props.itemToString;
2997
2996
  // Initial state depending on controlled props.
2998
- var initialState = getInitialState$1(props);
2999
- var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, initialState, props),
2997
+ var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1),
3000
2998
  state = _useControlledReducer[0],
3001
2999
  dispatch = _useControlledReducer[1];
3002
3000
  var isOpen = state.isOpen,
@@ -3670,7 +3668,7 @@ function useMultipleSelection(userProps) {
3670
3668
  keyNavigationPrevious = props.keyNavigationPrevious;
3671
3669
 
3672
3670
  // Reducer init.
3673
- var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props),
3671
+ var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState),
3674
3672
  state = _useControlledReducer[0],
3675
3673
  dispatch = _useControlledReducer[1];
3676
3674
  var activeIndex = state.activeIndex,
@@ -1591,11 +1591,11 @@ function useLatestRef(val) {
1591
1591
  * Also calls the onChange handlers for state values that have changed.
1592
1592
  *
1593
1593
  * @param {Function} reducer Reducer function from downshift.
1594
- * @param {Object} initialState Initial state of the hook.
1595
- * @param {Object} props The hook props.
1594
+ * @param {Object} props The hook props, also passed to createInitialState.
1595
+ * @param {Function} createInitialState Function that returns the initial state.
1596
1596
  * @returns {Array} An array with the state and an action dispatcher.
1597
1597
  */
1598
- function useEnhancedReducer(reducer, initialState, props) {
1598
+ function useEnhancedReducer(reducer, props, createInitialState) {
1599
1599
  var prevStateRef = React.useRef();
1600
1600
  var actionRef = React.useRef();
1601
1601
  var enhancedReducer = React.useCallback(function (state, action) {
@@ -1607,7 +1607,7 @@ function useEnhancedReducer(reducer, initialState, props) {
1607
1607
  }));
1608
1608
  return newState;
1609
1609
  }, [reducer]);
1610
- var _useReducer = React.useReducer(enhancedReducer, initialState),
1610
+ var _useReducer = React.useReducer(enhancedReducer, props, createInitialState),
1611
1611
  state = _useReducer[0],
1612
1612
  dispatch = _useReducer[1];
1613
1613
  var propsRef = useLatestRef(props);
@@ -1631,12 +1631,12 @@ function useEnhancedReducer(reducer, initialState, props) {
1631
1631
  * returning the new state.
1632
1632
  *
1633
1633
  * @param {Function} reducer Reducer function from downshift.
1634
- * @param {Object} initialState Initial state of the hook.
1635
- * @param {Object} props The hook props.
1634
+ * @param {Object} props The hook props, also passed to createInitialState.
1635
+ * @param {Function} createInitialState Function that returns the initial state.
1636
1636
  * @returns {Array} An array with the state and an action dispatcher.
1637
1637
  */
1638
- function useControlledReducer$1(reducer, initialState, props) {
1639
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
1638
+ function useControlledReducer$1(reducer, props, createInitialState) {
1639
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
1640
1640
  state = _useEnhancedReducer[0],
1641
1641
  dispatch = _useEnhancedReducer[1];
1642
1642
  return [getState(state, props), dispatch];
@@ -2199,8 +2199,7 @@ function useSelect(userProps) {
2199
2199
  getA11ySelectionMessage = props.getA11ySelectionMessage,
2200
2200
  getA11yStatusMessage = props.getA11yStatusMessage;
2201
2201
  // Initial state depending on controlled props.
2202
- var initialState = getInitialState$2(props);
2203
- var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, initialState, props),
2202
+ var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2),
2204
2203
  state = _useControlledReducer[0],
2205
2204
  dispatch = _useControlledReducer[1];
2206
2205
  var isOpen = state.isOpen,
@@ -2667,13 +2666,13 @@ var propTypes$1 = _extends__default["default"]({}, commonDropdownPropTypes, {
2667
2666
  * compute the rest of the state.
2668
2667
  *
2669
2668
  * @param {Function} reducer Reducer function from downshift.
2670
- * @param {Object} initialState Initial state of the hook.
2671
- * @param {Object} props The hook props.
2669
+ * @param {Object} props The hook props, also passed to createInitialState.
2670
+ * @param {Function} createInitialState Function that returns the initial state.
2672
2671
  * @returns {Array} An array with the state and an action dispatcher.
2673
2672
  */
2674
- function useControlledReducer(reducer, initialState, props) {
2673
+ function useControlledReducer(reducer, props, createInitialState) {
2675
2674
  var previousSelectedItemRef = React.useRef();
2676
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
2675
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
2677
2676
  state = _useEnhancedReducer[0],
2678
2677
  dispatch = _useEnhancedReducer[1];
2679
2678
 
@@ -2847,8 +2846,7 @@ function useCombobox(userProps) {
2847
2846
  getA11ySelectionMessage = props.getA11ySelectionMessage,
2848
2847
  itemToString = props.itemToString;
2849
2848
  // Initial state depending on controlled props.
2850
- var initialState = getInitialState$1(props);
2851
- var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, initialState, props),
2849
+ var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1),
2852
2850
  state = _useControlledReducer[0],
2853
2851
  dispatch = _useControlledReducer[1];
2854
2852
  var isOpen = state.isOpen,
@@ -3529,7 +3527,7 @@ function useMultipleSelection(userProps) {
3529
3527
  keyNavigationPrevious = props.keyNavigationPrevious;
3530
3528
 
3531
3529
  // Reducer init.
3532
- var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props),
3530
+ var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState),
3533
3531
  state = _useControlledReducer[0],
3534
3532
  dispatch = _useControlledReducer[1];
3535
3533
  var activeIndex = state.activeIndex,
@@ -1690,11 +1690,11 @@ function useLatestRef(val) {
1690
1690
  * Also calls the onChange handlers for state values that have changed.
1691
1691
  *
1692
1692
  * @param {Function} reducer Reducer function from downshift.
1693
- * @param {Object} initialState Initial state of the hook.
1694
- * @param {Object} props The hook props.
1693
+ * @param {Object} props The hook props, also passed to createInitialState.
1694
+ * @param {Function} createInitialState Function that returns the initial state.
1695
1695
  * @returns {Array} An array with the state and an action dispatcher.
1696
1696
  */
1697
- function useEnhancedReducer(reducer, initialState, props) {
1697
+ function useEnhancedReducer(reducer, props, createInitialState) {
1698
1698
  var prevStateRef = React.useRef();
1699
1699
  var actionRef = React.useRef();
1700
1700
  var enhancedReducer = React.useCallback(function (state, action) {
@@ -1706,7 +1706,7 @@ function useEnhancedReducer(reducer, initialState, props) {
1706
1706
  }));
1707
1707
  return newState;
1708
1708
  }, [reducer]);
1709
- var _useReducer = React.useReducer(enhancedReducer, initialState),
1709
+ var _useReducer = React.useReducer(enhancedReducer, props, createInitialState),
1710
1710
  state = _useReducer[0],
1711
1711
  dispatch = _useReducer[1];
1712
1712
  var propsRef = useLatestRef(props);
@@ -1730,12 +1730,12 @@ function useEnhancedReducer(reducer, initialState, props) {
1730
1730
  * returning the new state.
1731
1731
  *
1732
1732
  * @param {Function} reducer Reducer function from downshift.
1733
- * @param {Object} initialState Initial state of the hook.
1734
- * @param {Object} props The hook props.
1733
+ * @param {Object} props The hook props, also passed to createInitialState.
1734
+ * @param {Function} createInitialState Function that returns the initial state.
1735
1735
  * @returns {Array} An array with the state and an action dispatcher.
1736
1736
  */
1737
- function useControlledReducer$1(reducer, initialState, props) {
1738
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
1737
+ function useControlledReducer$1(reducer, props, createInitialState) {
1738
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
1739
1739
  state = _useEnhancedReducer[0],
1740
1740
  dispatch = _useEnhancedReducer[1];
1741
1741
  return [getState(state, props), dispatch];
@@ -2339,8 +2339,7 @@ function useSelect(userProps) {
2339
2339
  getA11ySelectionMessage = props.getA11ySelectionMessage,
2340
2340
  getA11yStatusMessage = props.getA11yStatusMessage;
2341
2341
  // Initial state depending on controlled props.
2342
- var initialState = getInitialState$2(props);
2343
- var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, initialState, props),
2342
+ var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2),
2344
2343
  state = _useControlledReducer[0],
2345
2344
  dispatch = _useControlledReducer[1];
2346
2345
  var isOpen = state.isOpen,
@@ -2811,13 +2810,13 @@ var propTypes$1 = _extends__default["default"]({}, commonDropdownPropTypes, {
2811
2810
  * compute the rest of the state.
2812
2811
  *
2813
2812
  * @param {Function} reducer Reducer function from downshift.
2814
- * @param {Object} initialState Initial state of the hook.
2815
- * @param {Object} props The hook props.
2813
+ * @param {Object} props The hook props, also passed to createInitialState.
2814
+ * @param {Function} createInitialState Function that returns the initial state.
2816
2815
  * @returns {Array} An array with the state and an action dispatcher.
2817
2816
  */
2818
- function useControlledReducer(reducer, initialState, props) {
2817
+ function useControlledReducer(reducer, props, createInitialState) {
2819
2818
  var previousSelectedItemRef = React.useRef();
2820
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
2819
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
2821
2820
  state = _useEnhancedReducer[0],
2822
2821
  dispatch = _useEnhancedReducer[1];
2823
2822
 
@@ -2991,8 +2990,7 @@ function useCombobox(userProps) {
2991
2990
  getA11ySelectionMessage = props.getA11ySelectionMessage,
2992
2991
  itemToString = props.itemToString;
2993
2992
  // Initial state depending on controlled props.
2994
- var initialState = getInitialState$1(props);
2995
- var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, initialState, props),
2993
+ var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1),
2996
2994
  state = _useControlledReducer[0],
2997
2995
  dispatch = _useControlledReducer[1];
2998
2996
  var isOpen = state.isOpen,
@@ -3666,7 +3664,7 @@ function useMultipleSelection(userProps) {
3666
3664
  keyNavigationPrevious = props.keyNavigationPrevious;
3667
3665
 
3668
3666
  // Reducer init.
3669
- var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props),
3667
+ var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState),
3670
3668
  state = _useControlledReducer[0],
3671
3669
  dispatch = _useControlledReducer[1];
3672
3670
  var activeIndex = state.activeIndex,
@@ -1379,7 +1379,7 @@
1379
1379
 
1380
1380
  var reactIsExports = reactIs.exports;
1381
1381
 
1382
- const t=t=>"object"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||"hidden"!==t)&&("visible"!==t&&"clip"!==t),n=(t,n)=>{if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){const o=getComputedStyle(t,null);return e(o.overflowY,n)||e(o.overflowX,n)||(t=>{const e=(t=>{if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}})(t);return !!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)})(t)}return !1},o=(t,e,n,o,i,l,r,d)=>l<t&&r>e||l>t&&r<e?0:l<=t&&d<=n||r>=e&&d>=n?l-t-o:r>e&&d<n||l<t&&d>n?r-e+i:0,i=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e},l=(e,l)=>{var r,d,s,h;if("undefined"==typeof document)return [];const{scrollMode:c,block:f,inline:u,boundary:a,skipOverflowHiddenElements:g}=l,m="function"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError("Invalid target");const p=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&m(W);){if(W=i(W),W===p){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,g)&&w.push(W);}const H=null!=(d=null==(r=window.visualViewport)?void 0:r.width)?d:innerWidth,b=null!=(h=null==(s=window.visualViewport)?void 0:s.height)?h:innerHeight,{scrollX:v,scrollY:y}=window,{height:E,width:M,top:x,right:I,bottom:C,left:R}=e.getBoundingClientRect();let T="start"===f||"nearest"===f?x:"end"===f?C:x+E/2,V="center"===u?R+M/2:"end"===u?I:R;const k=[];for(let t=0;t<w.length;t++){const e=w[t],{height:n,width:i,top:l,right:r,bottom:d,left:s}=e.getBoundingClientRect();if("if-needed"===c&&x>=0&&R>=0&&C<=b&&I<=H&&x>=l&&C<=d&&R>=s&&I<=r)return k;const h=getComputedStyle(e),a=parseInt(h.borderLeftWidth,10),g=parseInt(h.borderTopWidth,10),m=parseInt(h.borderRightWidth,10),W=parseInt(h.borderBottomWidth,10);let B=0,D=0;const L="offsetWidth"in e?e.offsetWidth-e.clientWidth-a-m:0,S="offsetHeight"in e?e.offsetHeight-e.clientHeight-g-W:0,X="offsetWidth"in e?0===e.offsetWidth?0:i/e.offsetWidth:0,Y="offsetHeight"in e?0===e.offsetHeight?0:n/e.offsetHeight:0;if(p===e)B="start"===f?T:"end"===f?T-b:"nearest"===f?o(y,y+b,b,g,W,y+T,y+T+E,E):T-b/2,D="start"===u?V:"center"===u?V-H/2:"end"===u?V-H:o(v,v+H,H,a,m,v+V,v+V+M,M),B=Math.max(0,B+y),D=Math.max(0,D+v);else {B="start"===f?T-l-g:"end"===f?T-d+W+S:"nearest"===f?o(l,d,n,g,W+S,T,T+E,E):T-(l+n/2)+S/2,D="start"===u?V-s-a:"center"===u?V-(s+i/2)+L/2:"end"===u?V-r+m+L:o(s,r,i,a,m+L,V,V+M,M);const{scrollLeft:t,scrollTop:h}=e;B=Math.max(0,Math.min(h+B/Y,e.scrollHeight-n/Y+S)),D=Math.max(0,Math.min(t+D/X,e.scrollWidth-i/X+L)),T+=h-B,V+=t-D;}k.push({el:e,top:B,left:D});}return k};
1382
+ const t=t=>"object"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||"hidden"!==t)&&("visible"!==t&&"clip"!==t),n=(t,n)=>{if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){const o=getComputedStyle(t,null);return e(o.overflowY,n)||e(o.overflowX,n)||(t=>{const e=(t=>{if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}})(t);return !!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)})(t)}return !1},o=(t,e,n,o,l,r,i,s)=>r<t&&i>e||r>t&&i<e?0:r<=t&&s<=n||i>=e&&s>=n?r-t-o:i>e&&s<n||r<t&&s>n?i-e+l:0,l=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e},r=(e,r)=>{var i,s,d,h;if("undefined"==typeof document)return [];const{scrollMode:c,block:f,inline:u,boundary:a,skipOverflowHiddenElements:g}=r,p="function"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError("Invalid target");const m=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&p(W);){if(W=l(W),W===m){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,g)&&w.push(W);}const b=null!=(s=null==(i=window.visualViewport)?void 0:i.width)?s:innerWidth,H=null!=(h=null==(d=window.visualViewport)?void 0:d.height)?h:innerHeight,{scrollX:y,scrollY:M}=window,{height:v,width:E,top:x,right:C,bottom:I,left:R}=e.getBoundingClientRect(),{top:T,right:B,bottom:F,left:V}=(t=>{const e=window.getComputedStyle(t);return {top:parseFloat(e.scrollMarginTop)||0,right:parseFloat(e.scrollMarginRight)||0,bottom:parseFloat(e.scrollMarginBottom)||0,left:parseFloat(e.scrollMarginLeft)||0}})(e);let k="start"===f||"nearest"===f?x-T:"end"===f?I+F:x+v/2-T+F,D="center"===u?R+E/2-V+B:"end"===u?C+B:R-V;const L=[];for(let t=0;t<w.length;t++){const e=w[t],{height:n,width:l,top:r,right:i,bottom:s,left:d}=e.getBoundingClientRect();if("if-needed"===c&&x>=0&&R>=0&&I<=H&&C<=b&&x>=r&&I<=s&&R>=d&&C<=i)return L;const h=getComputedStyle(e),a=parseInt(h.borderLeftWidth,10),g=parseInt(h.borderTopWidth,10),p=parseInt(h.borderRightWidth,10),W=parseInt(h.borderBottomWidth,10);let T=0,B=0;const F="offsetWidth"in e?e.offsetWidth-e.clientWidth-a-p:0,V="offsetHeight"in e?e.offsetHeight-e.clientHeight-g-W:0,S="offsetWidth"in e?0===e.offsetWidth?0:l/e.offsetWidth:0,X="offsetHeight"in e?0===e.offsetHeight?0:n/e.offsetHeight:0;if(m===e)T="start"===f?k:"end"===f?k-H:"nearest"===f?o(M,M+H,H,g,W,M+k,M+k+v,v):k-H/2,B="start"===u?D:"center"===u?D-b/2:"end"===u?D-b:o(y,y+b,b,a,p,y+D,y+D+E,E),T=Math.max(0,T+M),B=Math.max(0,B+y);else {T="start"===f?k-r-g:"end"===f?k-s+W+V:"nearest"===f?o(r,s,n,g,W+V,k,k+v,v):k-(r+n/2)+V/2,B="start"===u?D-d-a:"center"===u?D-(d+l/2)+F/2:"end"===u?D-i+p+F:o(d,i,l,a,p+F,D,D+E,E);const{scrollLeft:t,scrollTop:h}=e;T=0===X?0:Math.max(0,Math.min(h+T/X,e.scrollHeight-n/X+V)),B=0===S?0:Math.max(0,Math.min(t+B/S,e.scrollWidth-l/S+F)),k+=h-T,D+=t-B;}L.push({el:e,top:T,left:B});}return L};
1383
1383
 
1384
1384
  var idCounter = 0;
1385
1385
 
@@ -1405,7 +1405,7 @@
1405
1405
  if (!node) {
1406
1406
  return;
1407
1407
  }
1408
- var actions = l(node, {
1408
+ var actions = r(node, {
1409
1409
  boundary: menuNode,
1410
1410
  block: 'nearest',
1411
1411
  scrollMode: 'if-needed'
@@ -3048,11 +3048,11 @@
3048
3048
  * Also calls the onChange handlers for state values that have changed.
3049
3049
  *
3050
3050
  * @param {Function} reducer Reducer function from downshift.
3051
- * @param {Object} initialState Initial state of the hook.
3052
- * @param {Object} props The hook props.
3051
+ * @param {Object} props The hook props, also passed to createInitialState.
3052
+ * @param {Function} createInitialState Function that returns the initial state.
3053
3053
  * @returns {Array} An array with the state and an action dispatcher.
3054
3054
  */
3055
- function useEnhancedReducer(reducer, initialState, props) {
3055
+ function useEnhancedReducer(reducer, props, createInitialState) {
3056
3056
  var prevStateRef = React.useRef();
3057
3057
  var actionRef = React.useRef();
3058
3058
  var enhancedReducer = React.useCallback(function (state, action) {
@@ -3064,7 +3064,7 @@
3064
3064
  }));
3065
3065
  return newState;
3066
3066
  }, [reducer]);
3067
- var _useReducer = React.useReducer(enhancedReducer, initialState),
3067
+ var _useReducer = React.useReducer(enhancedReducer, props, createInitialState),
3068
3068
  state = _useReducer[0],
3069
3069
  dispatch = _useReducer[1];
3070
3070
  var propsRef = useLatestRef(props);
@@ -3088,12 +3088,12 @@
3088
3088
  * returning the new state.
3089
3089
  *
3090
3090
  * @param {Function} reducer Reducer function from downshift.
3091
- * @param {Object} initialState Initial state of the hook.
3092
- * @param {Object} props The hook props.
3091
+ * @param {Object} props The hook props, also passed to createInitialState.
3092
+ * @param {Function} createInitialState Function that returns the initial state.
3093
3093
  * @returns {Array} An array with the state and an action dispatcher.
3094
3094
  */
3095
- function useControlledReducer$1(reducer, initialState, props) {
3096
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
3095
+ function useControlledReducer$1(reducer, props, createInitialState) {
3096
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
3097
3097
  state = _useEnhancedReducer[0],
3098
3098
  dispatch = _useEnhancedReducer[1];
3099
3099
  return [getState(state, props), dispatch];
@@ -3728,8 +3728,7 @@
3728
3728
  getA11ySelectionMessage = props.getA11ySelectionMessage,
3729
3729
  getA11yStatusMessage = props.getA11yStatusMessage;
3730
3730
  // Initial state depending on controlled props.
3731
- var initialState = getInitialState$2(props);
3732
- var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, initialState, props),
3731
+ var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2),
3733
3732
  state = _useControlledReducer[0],
3734
3733
  dispatch = _useControlledReducer[1];
3735
3734
  var isOpen = state.isOpen,
@@ -4212,13 +4211,13 @@
4212
4211
  * compute the rest of the state.
4213
4212
  *
4214
4213
  * @param {Function} reducer Reducer function from downshift.
4215
- * @param {Object} initialState Initial state of the hook.
4216
- * @param {Object} props The hook props.
4214
+ * @param {Object} props The hook props, also passed to createInitialState.
4215
+ * @param {Function} createInitialState Function that returns the initial state.
4217
4216
  * @returns {Array} An array with the state and an action dispatcher.
4218
4217
  */
4219
- function useControlledReducer(reducer, initialState, props) {
4218
+ function useControlledReducer(reducer, props, createInitialState) {
4220
4219
  var previousSelectedItemRef = React.useRef();
4221
- var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
4220
+ var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState),
4222
4221
  state = _useEnhancedReducer[0],
4223
4222
  dispatch = _useEnhancedReducer[1];
4224
4223
 
@@ -4392,8 +4391,7 @@
4392
4391
  getA11ySelectionMessage = props.getA11ySelectionMessage,
4393
4392
  itemToString = props.itemToString;
4394
4393
  // Initial state depending on controlled props.
4395
- var initialState = getInitialState$1(props);
4396
- var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, initialState, props),
4394
+ var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1),
4397
4395
  state = _useControlledReducer[0],
4398
4396
  dispatch = _useControlledReducer[1];
4399
4397
  var isOpen = state.isOpen,
@@ -5067,7 +5065,7 @@
5067
5065
  keyNavigationPrevious = props.keyNavigationPrevious;
5068
5066
 
5069
5067
  // Reducer init.
5070
- var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props),
5068
+ var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState),
5071
5069
  state = _useControlledReducer[0],
5072
5070
  dispatch = _useControlledReducer[1];
5073
5071
  var activeIndex = state.activeIndex,