@sproutsocial/seeds-react-menu 1.2.0 → 1.2.2

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.
@@ -84,14 +84,14 @@ ESM Build start
84
84
  ╵ ~~~~~~~~~
85
85
 
86
86
 
87
- CJS dist/index.js 140.15 KB
88
- CJS dist/index.js.map 361.00 KB
89
- CJS ⚡️ Build success in 717ms
90
- ESM dist/esm/index.js 130.58 KB
91
- ESM dist/esm/index.js.map 359.70 KB
92
- ESM ⚡️ Build success in 717ms
87
+ CJS dist/index.js 140.79 KB
88
+ CJS dist/index.js.map 365.47 KB
89
+ CJS ⚡️ Build success in 515ms
90
+ ESM dist/esm/index.js 131.30 KB
91
+ ESM dist/esm/index.js.map 364.25 KB
92
+ ESM ⚡️ Build success in 518ms
93
93
  DTS Build start
94
- DTS ⚡️ Build success in 15500ms
95
- DTS dist/index.d.ts 32.50 KB
96
- DTS dist/index.d.mts 32.50 KB
97
- Done in 18.95s.
94
+ DTS ⚡️ Build success in 15560ms
95
+ DTS dist/index.d.ts 36.84 KB
96
+ DTS dist/index.d.mts 36.84 KB
97
+ Done in 18.60s.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @sproutsocial/seeds-react-menu
2
2
 
3
+ ## 1.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 75c88a8: Improves Menu prop documentation
8
+
9
+ ## 1.2.1
10
+
11
+ ### Patch Changes
12
+
13
+ - d309821: - Update all menus so that they set the menu width to the toggle width by default, with a minimum width of 200px
14
+ - Fix recently introduced bug that made the `width` prop stop working
15
+ - 4bcd4f3: Fix error: "downshift: You forgot to call the getMenuProps getter function on your component / element."
16
+
3
17
  ## 1.2.0
4
18
 
5
19
  ### Minor Changes
package/dist/esm/index.js CHANGED
@@ -2547,9 +2547,14 @@ var MenuGroup = ({
2547
2547
  MenuGroup.__MENU_PRIMITIVE_TYPE = "MenuGroup";
2548
2548
 
2549
2549
  // src/MenuRoot/MenuRoot.tsx
2550
- import { useCallback as useCallback2, useEffect } from "react";
2550
+ import React7, {
2551
+ useCallback as useCallback2,
2552
+ useEffect,
2553
+ useLayoutEffect
2554
+ } from "react";
2551
2555
  import styled7 from "styled-components";
2552
2556
  import { Popout } from "@sproutsocial/seeds-react-popout";
2557
+ import { mergeRefs } from "@sproutsocial/seeds-react-utilities";
2553
2558
 
2554
2559
  // ../../seeds-design-tokens/seeds-motion/dist/seeds-motion-unitless.esm.js
2555
2560
  var MOTION_DURATION_FAST = 0.15;
@@ -2626,7 +2631,7 @@ var MenuRoot = ({
2626
2631
  children,
2627
2632
  menuToggleElement,
2628
2633
  popoutProps: { placement = "bottom", focusLockProps, ...popoutProps } = {},
2629
- width: width2 = "300px",
2634
+ width: width2,
2630
2635
  ...contextProps
2631
2636
  }) => {
2632
2637
  const {
@@ -2635,14 +2640,22 @@ var MenuRoot = ({
2635
2640
  closeMenu,
2636
2641
  inputValue,
2637
2642
  hiddenItemsCount = 0,
2638
- items
2643
+ items,
2644
+ getMenuProps
2639
2645
  } = contextProps;
2640
- const setIsOpen = useCallback2(
2641
- (newIsOpen) => {
2642
- newIsOpen ? openMenu?.() : closeMenu?.();
2643
- },
2644
- [openMenu, closeMenu]
2645
- );
2646
+ const toggleElementRef = React7.useRef(null);
2647
+ const [finalWidth, setFinalWidth] = React7.useState();
2648
+ const min_width = 200;
2649
+ useLayoutEffect(() => {
2650
+ if (width2) {
2651
+ setFinalWidth(width2);
2652
+ } else if (toggleElementRef.current?.offsetWidth) {
2653
+ const toggleWidth = toggleElementRef.current.offsetWidth;
2654
+ setFinalWidth(Math.max(toggleWidth, min_width));
2655
+ } else {
2656
+ setFinalWidth(min_width);
2657
+ }
2658
+ }, [width2, toggleElementRef.current?.offsetWidth]);
2646
2659
  useEffect(() => {
2647
2660
  if (!inputValue) return;
2648
2661
  if (items && hiddenItemsCount >= items.length && isOpen) {
@@ -2650,6 +2663,7 @@ var MenuRoot = ({
2650
2663
  }
2651
2664
  }, [hiddenItemsCount, items?.length, isOpen, inputValue]);
2652
2665
  const menuContext = useMenu(contextProps);
2666
+ getMenuProps?.({}, { suppressRefError: true });
2653
2667
  return /* @__PURE__ */ jsx10(
2654
2668
  MenuPopout,
2655
2669
  {
@@ -2658,37 +2672,55 @@ var MenuRoot = ({
2658
2672
  openMenu,
2659
2673
  closeMenu,
2660
2674
  content: /* @__PURE__ */ jsx10(MenuContentProvider, { menuContext, children }),
2675
+ width: finalWidth,
2661
2676
  ...popoutProps,
2662
- children: (toggleProps) => /* @__PURE__ */ jsx10(MenuToggleProvider, { menuContext: { ...menuContext, ...toggleProps }, children: menuToggleElement })
2677
+ children: (toggleProps) => /* @__PURE__ */ jsx10(
2678
+ MenuToggleProvider,
2679
+ {
2680
+ menuContext: {
2681
+ ...menuContext,
2682
+ ...toggleProps,
2683
+ ref: mergeRefs(
2684
+ toggleProps.ref,
2685
+ toggleElementRef
2686
+ )
2687
+ },
2688
+ children: menuToggleElement
2689
+ }
2690
+ )
2663
2691
  }
2664
2692
  );
2665
2693
  };
2666
- var MenuRootNoPopout = ({
2667
- children,
2668
- menuToggleElement,
2669
- ...contextProps
2670
- }) => {
2671
- const menuContext = useMenu(contextProps);
2672
- return /* @__PURE__ */ jsx10(MenuContentProvider, { menuContext, children });
2673
- };
2674
2694
 
2675
2695
  // src/MenuLabel.tsx
2676
2696
  import "react";
2677
2697
  import { Label } from "@sproutsocial/seeds-react-label";
2678
2698
  import { jsx as jsx11 } from "react/jsx-runtime";
2679
- var MenuLabel = ({ children, ...rest }) => {
2699
+ var MenuLabel = ({
2700
+ children,
2701
+ required = false,
2702
+ ...rest
2703
+ }) => {
2680
2704
  const { getLabelProps } = useMenuToggleContext();
2681
- return /* @__PURE__ */ jsx11(Label, { htmlFor: "fallback_menu_label", ...getLabelProps?.(), ...rest, children });
2705
+ return (
2706
+ // This fallback id should never be used, but it is here to satisfy TypeScript since getLabelProps could be undefined.
2707
+ /* @__PURE__ */ jsx11(
2708
+ Label,
2709
+ {
2710
+ htmlFor: "fallback_menu_label",
2711
+ required,
2712
+ ...getLabelProps?.(),
2713
+ ...rest,
2714
+ children
2715
+ }
2716
+ )
2717
+ );
2682
2718
  };
2683
2719
 
2684
2720
  // src/MenuToggleButton/MenuToggleButton.tsx
2685
- import "react";
2686
2721
  import { Button } from "@sproutsocial/seeds-react-button";
2687
2722
  import { jsx as jsx12 } from "react/jsx-runtime";
2688
- var MenuToggleButton = ({
2689
- children,
2690
- ...rest
2691
- }) => {
2723
+ var MenuToggleButton = (props) => {
2692
2724
  const { getToggleButtonProps, isListbox, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
2693
2725
  return /* @__PURE__ */ jsx12(
2694
2726
  Button,
@@ -2701,18 +2733,17 @@ var MenuToggleButton = ({
2701
2733
  ...ariaProps,
2702
2734
  ...isListbox ? {} : { role: "button", "aria-haspopup": "menu" }
2703
2735
  }),
2704
- ...rest,
2705
- children
2736
+ ...props
2706
2737
  }
2707
2738
  );
2708
2739
  };
2709
2740
 
2710
2741
  // src/MenuSearchInput/MenuSearchInput.tsx
2711
- import React11 from "react";
2742
+ import React10 from "react";
2712
2743
  import { Input } from "@sproutsocial/seeds-react-input";
2713
2744
 
2714
2745
  // src/hooks/useItemFiltering.tsx
2715
- import React10 from "react";
2746
+ import React9 from "react";
2716
2747
 
2717
2748
  // src/utils/downshiftDefaults.ts
2718
2749
  var itemToString = (item) => {
@@ -2732,8 +2763,8 @@ var useItemFiltering = ({
2732
2763
  getShouldFilter = defaultGetShouldFilter,
2733
2764
  setHiddenItemsMap: setHiddenItemsMapProp
2734
2765
  }) => {
2735
- const [hiddenItemsMap, setHiddenItemsMap] = React10.useState({});
2736
- const updateFilteredItems = React10.useCallback(
2766
+ const [hiddenItemsMap, setHiddenItemsMap] = React9.useState({});
2767
+ const updateFilteredItems = React9.useCallback(
2737
2768
  ({ inputValue }) => {
2738
2769
  const newHiddenItems = getShouldFilter({ inputValue }) ? allMenuItems.reduce((map, item) => {
2739
2770
  const isItemVisible = getIsItemVisible(item, inputValue);
@@ -2770,11 +2801,11 @@ var MenuSearchInput = ({
2770
2801
  getIsItemVisible,
2771
2802
  setHiddenItemsMap
2772
2803
  });
2773
- React11.useEffect(() => {
2804
+ React10.useEffect(() => {
2774
2805
  updateFilteredItems({ inputValue: restInputProps.value || "" });
2775
2806
  }, [isOpen, restInputProps.value]);
2776
2807
  const toggleButtonProps = getToggleButtonProps?.() || {};
2777
- const handleKeyDown = React11.useCallback(
2808
+ const handleKeyDown = React10.useCallback(
2778
2809
  (e) => {
2779
2810
  if (e.key === " ") return;
2780
2811
  toggleButtonProps.onKeyDown?.(e);
@@ -2801,7 +2832,7 @@ var MenuSearchInput = ({
2801
2832
  };
2802
2833
 
2803
2834
  // src/MenuTokenInput.tsx
2804
- import React12 from "react";
2835
+ import React11 from "react";
2805
2836
  import styled8 from "styled-components";
2806
2837
  import {
2807
2838
  TokenInput
@@ -2836,7 +2867,7 @@ var MenuTokenInput = ({
2836
2867
  removeSelectedItem,
2837
2868
  setActiveIndex,
2838
2869
  selectedItems = []
2839
- } = React12.useContext(MenuContext);
2870
+ } = React11.useContext(MenuContext);
2840
2871
  const removeToken = (tokenId) => {
2841
2872
  const tokenToRemove = selectedItems?.find((item) => item.id === tokenId);
2842
2873
  tokenToRemove && removeSelectedItem?.(tokenToRemove);
@@ -2890,7 +2921,7 @@ var MenuTokenInput = ({
2890
2921
  };
2891
2922
 
2892
2923
  // src/MenuSearchTokenInput/MenuSearchTokenInput.tsx
2893
- import React13 from "react";
2924
+ import React12 from "react";
2894
2925
  import { jsx as jsx15 } from "react/jsx-runtime";
2895
2926
  var MenuSearchTokenInput = ({
2896
2927
  getIsItemVisible,
@@ -2914,10 +2945,10 @@ var MenuSearchTokenInput = ({
2914
2945
  setHiddenItemsMap
2915
2946
  });
2916
2947
  const controlledValue = value || inputPropsValue !== void 0 ? `${inputPropsValue}` : void 0;
2917
- const [internalValue, setInternalValue] = React13.useState(
2948
+ const [internalValue, setInternalValue] = React12.useState(
2918
2949
  controlledValue || ""
2919
2950
  );
2920
- const updateFilteredState = React13.useCallback(
2951
+ const updateFilteredState = React12.useCallback(
2921
2952
  // defaults to an empty string if no value is passed
2922
2953
  (value2 = "") => {
2923
2954
  setInternalValue(value2);
@@ -2925,14 +2956,14 @@ var MenuSearchTokenInput = ({
2925
2956
  },
2926
2957
  [updateFilteredItems]
2927
2958
  );
2928
- React13.useEffect(() => {
2959
+ React12.useEffect(() => {
2929
2960
  updateFilteredState(controlledValue);
2930
2961
  }, [controlledValue]);
2931
- React13.useEffect(() => {
2962
+ React12.useEffect(() => {
2932
2963
  updateFilteredState(controlledValue);
2933
2964
  }, [isOpen]);
2934
2965
  const toggleButtonProps = getToggleButtonProps?.() || {};
2935
- const handleKeyDown = React13.useCallback(
2966
+ const handleKeyDown = React12.useCallback(
2936
2967
  (e) => {
2937
2968
  if (e.key === " ") return;
2938
2969
  toggleButtonProps.onKeyDown?.(e);
@@ -2960,10 +2991,10 @@ var MenuSearchTokenInput = ({
2960
2991
  };
2961
2992
 
2962
2993
  // src/SubmenuItem/SubmenuItem.tsx
2963
- import React14 from "react";
2994
+ import React13 from "react";
2964
2995
  import { Icon as Icon2 } from "@sproutsocial/seeds-react-icon";
2965
2996
  import { Box as Box3 } from "@sproutsocial/seeds-react-box";
2966
- import { mergeRefs } from "@sproutsocial/seeds-react-utilities";
2997
+ import { mergeRefs as mergeRefs2 } from "@sproutsocial/seeds-react-utilities";
2967
2998
  import { jsx as jsx16, jsxs as jsxs4 } from "react/jsx-runtime";
2968
2999
  var SubmenuItemTrigger = ({
2969
3000
  id,
@@ -2972,7 +3003,7 @@ var SubmenuItemTrigger = ({
2972
3003
  ...rest
2973
3004
  }) => {
2974
3005
  const { getToggleButtonProps, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
2975
- const toggleRef = ref && innerRef ? mergeRefs([ref, innerRef].filter(Boolean)) : ref || innerRef;
3006
+ const toggleRef = ref && innerRef ? mergeRefs2([ref, innerRef].filter(Boolean)) : ref || innerRef;
2976
3007
  return /* @__PURE__ */ jsx16(
2977
3008
  MenuItem,
2978
3009
  {
@@ -3022,17 +3053,17 @@ var SubmenuItem = ({
3022
3053
  itemsMap,
3023
3054
  isOpen: parentIsOpen
3024
3055
  } = useMenuContentContext();
3025
- const [submenuIsFocused, setSubmenuIsFocused] = React14.useState(false);
3026
- const [submenuIsOpen, setSubmenuIsOpen] = React14.useState(false);
3027
- const [submenuIsActive, setSubmenuIsActive] = React14.useState(false);
3028
- const submenuItemRef = React14.useRef(null);
3029
- const submenuRef = React14.useRef(null);
3056
+ const [submenuIsFocused, setSubmenuIsFocused] = React13.useState(false);
3057
+ const [submenuIsOpen, setSubmenuIsOpen] = React13.useState(false);
3058
+ const [submenuIsActive, setSubmenuIsActive] = React13.useState(false);
3059
+ const submenuItemRef = React13.useRef(null);
3060
+ const submenuRef = React13.useRef(null);
3030
3061
  const menuContent = menuItems ? getChildrenFromMenuItems({ menuItems, MenuItemComponent }) : menuChildren;
3031
3062
  const item = itemsMap[id] || {
3032
3063
  index: 0,
3033
3064
  id
3034
3065
  };
3035
- React14.useEffect(() => {
3066
+ React13.useEffect(() => {
3036
3067
  if (highlightedIndex === item.index) {
3037
3068
  !submenuIsOpen && setSubmenuIsOpen(true);
3038
3069
  } else if (submenuIsOpen && highlightedIndex !== -1) {
@@ -3040,7 +3071,7 @@ var SubmenuItem = ({
3040
3071
  setSubmenuIsActive(false);
3041
3072
  }
3042
3073
  }, [highlightedIndex, item.index, submenuIsOpen, setSubmenuIsOpen]);
3043
- const onSubmenuStateChange = React14.useCallback(
3074
+ const onSubmenuStateChange = React13.useCallback(
3044
3075
  (state) => {
3045
3076
  if (state.isOpen !== void 0) {
3046
3077
  setSubmenuIsOpen(state.isOpen);
@@ -3084,7 +3115,7 @@ var SubmenuItem = ({
3084
3115
  onMenuItemClick();
3085
3116
  }
3086
3117
  };
3087
- React14.useEffect(() => {
3118
+ React13.useEffect(() => {
3088
3119
  if (document && document.body) {
3089
3120
  document.body.addEventListener("click", onBodyClick, {
3090
3121
  capture: true
@@ -3188,13 +3219,13 @@ var ListboxToggleButton = ({
3188
3219
  };
3189
3220
 
3190
3221
  // src/ActionMenu/ActionMenu.tsx
3191
- import React16, { useEffect as useEffect2 } from "react";
3222
+ import React15, { useEffect as useEffect2 } from "react";
3192
3223
  import {
3193
3224
  useSelect as useSelect2
3194
3225
  } from "downshift";
3195
3226
 
3196
3227
  // src/hooks/useDownshiftDefaults.tsx
3197
- import React15 from "react";
3228
+ import React14 from "react";
3198
3229
 
3199
3230
  // src/reducers/useComboboxStateReducer.tsx
3200
3231
  import { useCombobox } from "downshift";
@@ -3318,12 +3349,12 @@ var useDownshiftDefaults = ({
3318
3349
  isMulti = false,
3319
3350
  multiSelectProps = {}
3320
3351
  } = {}) => {
3321
- const [hiddenItemsMap, setHiddenItemsMap] = React15.useState({});
3322
- const hiddenItemsCount = React15.useMemo(
3352
+ const [hiddenItemsMap, setHiddenItemsMap] = React14.useState({});
3353
+ const hiddenItemsCount = React14.useMemo(
3323
3354
  () => Object.keys(hiddenItemsMap).filter(Boolean).length,
3324
3355
  [hiddenItemsMap]
3325
3356
  );
3326
- const isItemDisabled = React15.useCallback(
3357
+ const isItemDisabled = React14.useCallback(
3327
3358
  (item) => Boolean(item.disabled || hiddenItemsMap[item.id]),
3328
3359
  [hiddenItemsMap]
3329
3360
  );
@@ -3402,7 +3433,7 @@ var ActionMenu = ({
3402
3433
  const { defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
3403
3434
  isCombobox: false
3404
3435
  });
3405
- const [currentSelectedItem, setCurrentSelectedItem] = React16.useState(null);
3436
+ const [currentSelectedItem, setCurrentSelectedItem] = React15.useState(null);
3406
3437
  const { isOpen, ...useSelectReturnProps } = useSelect2({
3407
3438
  ...defaultDownshiftProps.select,
3408
3439
  items: allMenuItems,
@@ -3590,7 +3621,6 @@ var MultiSelectMenu = ({
3590
3621
  import "react";
3591
3622
 
3592
3623
  // src/Autocomplete/SingleAutocomplete.tsx
3593
- import "react";
3594
3624
  import { useCombobox as useCombobox2 } from "downshift";
3595
3625
  import { jsx as jsx21 } from "react/jsx-runtime";
3596
3626
  var SingleAutocomplete = ({
@@ -3648,7 +3678,7 @@ var SingleAutocomplete = ({
3648
3678
  };
3649
3679
 
3650
3680
  // src/Autocomplete/MultiAutocomplete.tsx
3651
- import React20 from "react";
3681
+ import React18 from "react";
3652
3682
  import { useCombobox as useCombobox3, useMultipleSelection as useMultipleSelection2 } from "downshift";
3653
3683
  import { jsx as jsx22 } from "react/jsx-runtime";
3654
3684
  var MultiAutocomplete = ({
@@ -3674,15 +3704,15 @@ var MultiAutocomplete = ({
3674
3704
  menuItems,
3675
3705
  MenuItemComponent
3676
3706
  });
3677
- const [selectedItems, setSelectedItems] = React20.useState(initialSelectedItems);
3678
- const [selectedItemIds, setSelectedItemIds] = React20.useState(getSelectedItemIds(initialSelectedItems));
3679
- const getIsItemVisibleMulti = React20.useCallback(
3707
+ const [selectedItems, setSelectedItems] = React18.useState(initialSelectedItems);
3708
+ const [selectedItemIds, setSelectedItemIds] = React18.useState(getSelectedItemIds(initialSelectedItems));
3709
+ const getIsItemVisibleMulti = React18.useCallback(
3680
3710
  (item, inputValue) => {
3681
3711
  return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item, inputValue);
3682
3712
  },
3683
3713
  [selectedItemIds, showSelectedItemsInDropdown, getIsItemVisible]
3684
3714
  );
3685
- const getShouldFilterMulti = React20.useCallback(
3715
+ const getShouldFilterMulti = React18.useCallback(
3686
3716
  (args) => {
3687
3717
  return !showSelectedItemsInDropdown && Object.keys(selectedItemIds).length > 0 || defaultGetShouldFilter(args);
3688
3718
  },
@@ -3706,7 +3736,7 @@ var MultiAutocomplete = ({
3706
3736
  getShouldFilter: getShouldFilterMulti,
3707
3737
  setHiddenItemsMap
3708
3738
  });
3709
- React20.useEffect(() => {
3739
+ React18.useEffect(() => {
3710
3740
  updateFilteredItems({ inputValue: "" });
3711
3741
  }, [selectedItemIds]);
3712
3742
  const useMultipleSelectionReturnProps = useMultipleSelection2({
@@ -3786,7 +3816,7 @@ var MultiAutocomplete = ({
3786
3816
  // src/Autocomplete/Autocomplete.tsx
3787
3817
  import { jsx as jsx23 } from "react/jsx-runtime";
3788
3818
  var Autocomplete = ({
3789
- multiSelect,
3819
+ multiSelect = false,
3790
3820
  ...rest
3791
3821
  }) => {
3792
3822
  if (multiSelect) {
@@ -3898,7 +3928,7 @@ var AutocompleteSelect = (props) => {
3898
3928
  };
3899
3929
 
3900
3930
  // src/NestedMenu/NestedMenu.tsx
3901
- import { useId, useEffect as useEffect5, useState } from "react";
3931
+ import { useId, useEffect as useEffect4, useState } from "react";
3902
3932
  import { AnimatePresence as AnimatePresence2, motion as motion3 } from "motion/react";
3903
3933
  import { useSelect as useSelect6 } from "downshift";
3904
3934
 
@@ -3965,8 +3995,8 @@ var useNestedMenuContext = () => {
3965
3995
  };
3966
3996
 
3967
3997
  // src/NestedMenu/NestedMenuContent.tsx
3968
- import { useEffect as useEffect4, useRef } from "react";
3969
- import { mergeRefs as mergeRefs2 } from "@sproutsocial/seeds-react-utilities";
3998
+ import { useEffect as useEffect3, useRef } from "react";
3999
+ import { mergeRefs as mergeRefs3 } from "@sproutsocial/seeds-react-utilities";
3970
4000
 
3971
4001
  // src/NestedMenu/NestedMenuItem.tsx
3972
4002
  import { Icon as Icon5 } from "@sproutsocial/seeds-react-icon";
@@ -4007,9 +4037,9 @@ var NestedMenuContent = ({
4007
4037
  const { highlightedIndex, items } = useMenuContentContext();
4008
4038
  const { setSelectedMenuId, selectedMenuPath, goBack } = useNestedMenuContext();
4009
4039
  const internalRef = useRef(null);
4010
- const innerRef = mergeRefs2(internalRef, innerRefProp);
4040
+ const innerRef = mergeRefs3(internalRef, innerRefProp);
4011
4041
  const contentProps = children ? { children } : { menuItems, MenuItemComponent };
4012
- useEffect4(() => {
4042
+ useEffect3(() => {
4013
4043
  internalRef?.current?.focus();
4014
4044
  }, []);
4015
4045
  const onKeyDown = (e) => {
@@ -4077,7 +4107,7 @@ var NestedMenuHeader = ({
4077
4107
  };
4078
4108
 
4079
4109
  // src/NestedMenu/NestedMenuRoot.tsx
4080
- import React25 from "react";
4110
+ import React23 from "react";
4081
4111
  import { jsx as jsx31 } from "react/jsx-runtime";
4082
4112
  var NestedMenuRoot = ({
4083
4113
  children,
@@ -4086,7 +4116,7 @@ var NestedMenuRoot = ({
4086
4116
  }) => {
4087
4117
  const menuContext = useMenu(contextProps);
4088
4118
  const { setActiveMenuContext, selectedMenuPath } = useNestedMenuContext();
4089
- React25.useEffect(() => {
4119
+ React23.useEffect(() => {
4090
4120
  setActiveMenuContext(menuContext);
4091
4121
  }, [
4092
4122
  selectedMenuPath[selectedMenuPath.length - 1],
@@ -4170,7 +4200,7 @@ var NestedMenu = ({
4170
4200
  ...useSelectReturnProps,
4171
4201
  ...restDefaults
4172
4202
  };
4173
- useEffect5(() => {
4203
+ useEffect4(() => {
4174
4204
  if (!useSelectReturnProps.isOpen) {
4175
4205
  setHasLoadedOnce(false);
4176
4206
  } else {
@@ -4187,6 +4217,7 @@ var NestedMenu = ({
4187
4217
  id: nestedMenuId,
4188
4218
  onIsOpenChange: onNestedIsOpenChange
4189
4219
  };
4220
+ rootMenuContextProps.getMenuProps?.({}, { suppressRefError: true });
4190
4221
  const [selectedMenuPath, setSelectedMenuPath] = useState([initialMenuId]);
4191
4222
  const [activeMenuContext, setActiveMenuContext] = useState(defaultMenuContext);
4192
4223
  const [currentMenuId, setCurrentMenuId] = useState(initialMenuId);
@@ -4195,7 +4226,7 @@ var NestedMenu = ({
4195
4226
  setIsAdding(true);
4196
4227
  setSelectedMenuPath((currentPath) => [...currentPath, id]);
4197
4228
  };
4198
- useEffect5(() => {
4229
+ useEffect4(() => {
4199
4230
  if (selectedMenuPath.length > 0) {
4200
4231
  const newMenuId = selectedMenuPath[selectedMenuPath.length - 1];
4201
4232
  setCurrentMenuId(newMenuId);
@@ -4383,7 +4414,6 @@ export {
4383
4414
  MenuLabel,
4384
4415
  MenuPopout,
4385
4416
  MenuRoot,
4386
- MenuRootNoPopout,
4387
4417
  MenuSearchInput,
4388
4418
  MenuSearchTokenInput,
4389
4419
  MenuToggleButton,