@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.
package/dist/index.js CHANGED
@@ -127,7 +127,6 @@ __export(index_exports, {
127
127
  MenuLabel: () => MenuLabel,
128
128
  MenuPopout: () => MenuPopout,
129
129
  MenuRoot: () => MenuRoot,
130
- MenuRootNoPopout: () => MenuRootNoPopout,
131
130
  MenuSearchInput: () => MenuSearchInput,
132
131
  MenuSearchTokenInput: () => MenuSearchTokenInput,
133
132
  MenuToggleButton: () => MenuToggleButton,
@@ -2603,9 +2602,10 @@ var MenuGroup = ({
2603
2602
  MenuGroup.__MENU_PRIMITIVE_TYPE = "MenuGroup";
2604
2603
 
2605
2604
  // src/MenuRoot/MenuRoot.tsx
2606
- var import_react10 = require("react");
2605
+ var import_react10 = __toESM(require("react"));
2607
2606
  var import_styled_components10 = __toESM(require("styled-components"));
2608
2607
  var import_seeds_react_popout = require("@sproutsocial/seeds-react-popout");
2608
+ var import_seeds_react_utilities = require("@sproutsocial/seeds-react-utilities");
2609
2609
 
2610
2610
  // ../../seeds-design-tokens/seeds-motion/dist/seeds-motion-unitless.esm.js
2611
2611
  var MOTION_DURATION_FAST = 0.15;
@@ -2682,7 +2682,7 @@ var MenuRoot = ({
2682
2682
  children,
2683
2683
  menuToggleElement,
2684
2684
  popoutProps: { placement = "bottom", focusLockProps, ...popoutProps } = {},
2685
- width: width2 = "300px",
2685
+ width: width2,
2686
2686
  ...contextProps
2687
2687
  }) => {
2688
2688
  const {
@@ -2691,14 +2691,22 @@ var MenuRoot = ({
2691
2691
  closeMenu,
2692
2692
  inputValue,
2693
2693
  hiddenItemsCount = 0,
2694
- items
2694
+ items,
2695
+ getMenuProps
2695
2696
  } = contextProps;
2696
- const setIsOpen = (0, import_react10.useCallback)(
2697
- (newIsOpen) => {
2698
- newIsOpen ? openMenu?.() : closeMenu?.();
2699
- },
2700
- [openMenu, closeMenu]
2701
- );
2697
+ const toggleElementRef = import_react10.default.useRef(null);
2698
+ const [finalWidth, setFinalWidth] = import_react10.default.useState();
2699
+ const min_width = 200;
2700
+ (0, import_react10.useLayoutEffect)(() => {
2701
+ if (width2) {
2702
+ setFinalWidth(width2);
2703
+ } else if (toggleElementRef.current?.offsetWidth) {
2704
+ const toggleWidth = toggleElementRef.current.offsetWidth;
2705
+ setFinalWidth(Math.max(toggleWidth, min_width));
2706
+ } else {
2707
+ setFinalWidth(min_width);
2708
+ }
2709
+ }, [width2, toggleElementRef.current?.offsetWidth]);
2702
2710
  (0, import_react10.useEffect)(() => {
2703
2711
  if (!inputValue) return;
2704
2712
  if (items && hiddenItemsCount >= items.length && isOpen) {
@@ -2706,6 +2714,7 @@ var MenuRoot = ({
2706
2714
  }
2707
2715
  }, [hiddenItemsCount, items?.length, isOpen, inputValue]);
2708
2716
  const menuContext = useMenu(contextProps);
2717
+ getMenuProps?.({}, { suppressRefError: true });
2709
2718
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2710
2719
  MenuPopout,
2711
2720
  {
@@ -2714,37 +2723,55 @@ var MenuRoot = ({
2714
2723
  openMenu,
2715
2724
  closeMenu,
2716
2725
  content: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MenuContentProvider, { menuContext, children }),
2726
+ width: finalWidth,
2717
2727
  ...popoutProps,
2718
- children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MenuToggleProvider, { menuContext: { ...menuContext, ...toggleProps }, children: menuToggleElement })
2728
+ children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2729
+ MenuToggleProvider,
2730
+ {
2731
+ menuContext: {
2732
+ ...menuContext,
2733
+ ...toggleProps,
2734
+ ref: (0, import_seeds_react_utilities.mergeRefs)(
2735
+ toggleProps.ref,
2736
+ toggleElementRef
2737
+ )
2738
+ },
2739
+ children: menuToggleElement
2740
+ }
2741
+ )
2719
2742
  }
2720
2743
  );
2721
2744
  };
2722
- var MenuRootNoPopout = ({
2723
- children,
2724
- menuToggleElement,
2725
- ...contextProps
2726
- }) => {
2727
- const menuContext = useMenu(contextProps);
2728
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MenuContentProvider, { menuContext, children });
2729
- };
2730
2745
 
2731
2746
  // src/MenuLabel.tsx
2732
2747
  var import_react11 = require("react");
2733
2748
  var import_seeds_react_label = require("@sproutsocial/seeds-react-label");
2734
- var import_jsx_runtime11 = require("react/jsx-runtime");
2735
- var MenuLabel = ({ children, ...rest }) => {
2749
+ var import_jsx_runtime11 = (
2750
+ // This fallback id should never be used, but it is here to satisfy TypeScript since getLabelProps could be undefined.
2751
+ require("react/jsx-runtime")
2752
+ );
2753
+ var MenuLabel = ({
2754
+ children,
2755
+ required = false,
2756
+ ...rest
2757
+ }) => {
2736
2758
  const { getLabelProps } = useMenuToggleContext();
2737
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_seeds_react_label.Label, { htmlFor: "fallback_menu_label", ...getLabelProps?.(), ...rest, children });
2759
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2760
+ import_seeds_react_label.Label,
2761
+ {
2762
+ htmlFor: "fallback_menu_label",
2763
+ required,
2764
+ ...getLabelProps?.(),
2765
+ ...rest,
2766
+ children
2767
+ }
2768
+ );
2738
2769
  };
2739
2770
 
2740
2771
  // src/MenuToggleButton/MenuToggleButton.tsx
2741
- var import_react12 = require("react");
2742
2772
  var import_seeds_react_button = require("@sproutsocial/seeds-react-button");
2743
2773
  var import_jsx_runtime12 = require("react/jsx-runtime");
2744
- var MenuToggleButton = ({
2745
- children,
2746
- ...rest
2747
- }) => {
2774
+ var MenuToggleButton = (props) => {
2748
2775
  const { getToggleButtonProps, isListbox, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
2749
2776
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2750
2777
  import_seeds_react_button.Button,
@@ -2757,18 +2784,17 @@ var MenuToggleButton = ({
2757
2784
  ...ariaProps,
2758
2785
  ...isListbox ? {} : { role: "button", "aria-haspopup": "menu" }
2759
2786
  }),
2760
- ...rest,
2761
- children
2787
+ ...props
2762
2788
  }
2763
2789
  );
2764
2790
  };
2765
2791
 
2766
2792
  // src/MenuSearchInput/MenuSearchInput.tsx
2767
- var import_react14 = __toESM(require("react"));
2793
+ var import_react13 = __toESM(require("react"));
2768
2794
  var import_seeds_react_input = require("@sproutsocial/seeds-react-input");
2769
2795
 
2770
2796
  // src/hooks/useItemFiltering.tsx
2771
- var import_react13 = __toESM(require("react"));
2797
+ var import_react12 = __toESM(require("react"));
2772
2798
 
2773
2799
  // src/utils/downshiftDefaults.ts
2774
2800
  var itemToString = (item) => {
@@ -2788,8 +2814,8 @@ var useItemFiltering = ({
2788
2814
  getShouldFilter = defaultGetShouldFilter,
2789
2815
  setHiddenItemsMap: setHiddenItemsMapProp
2790
2816
  }) => {
2791
- const [hiddenItemsMap, setHiddenItemsMap] = import_react13.default.useState({});
2792
- const updateFilteredItems = import_react13.default.useCallback(
2817
+ const [hiddenItemsMap, setHiddenItemsMap] = import_react12.default.useState({});
2818
+ const updateFilteredItems = import_react12.default.useCallback(
2793
2819
  ({ inputValue }) => {
2794
2820
  const newHiddenItems = getShouldFilter({ inputValue }) ? allMenuItems.reduce((map, item) => {
2795
2821
  const isItemVisible = getIsItemVisible(item, inputValue);
@@ -2826,11 +2852,11 @@ var MenuSearchInput = ({
2826
2852
  getIsItemVisible,
2827
2853
  setHiddenItemsMap
2828
2854
  });
2829
- import_react14.default.useEffect(() => {
2855
+ import_react13.default.useEffect(() => {
2830
2856
  updateFilteredItems({ inputValue: restInputProps.value || "" });
2831
2857
  }, [isOpen, restInputProps.value]);
2832
2858
  const toggleButtonProps = getToggleButtonProps?.() || {};
2833
- const handleKeyDown = import_react14.default.useCallback(
2859
+ const handleKeyDown = import_react13.default.useCallback(
2834
2860
  (e) => {
2835
2861
  if (e.key === " ") return;
2836
2862
  toggleButtonProps.onKeyDown?.(e);
@@ -2857,7 +2883,7 @@ var MenuSearchInput = ({
2857
2883
  };
2858
2884
 
2859
2885
  // src/MenuTokenInput.tsx
2860
- var import_react15 = __toESM(require("react"));
2886
+ var import_react14 = __toESM(require("react"));
2861
2887
  var import_styled_components11 = __toESM(require("styled-components"));
2862
2888
  var import_seeds_react_token_input = require("@sproutsocial/seeds-react-token-input");
2863
2889
  var import_jsx_runtime14 = require("react/jsx-runtime");
@@ -2890,7 +2916,7 @@ var MenuTokenInput = ({
2890
2916
  removeSelectedItem,
2891
2917
  setActiveIndex,
2892
2918
  selectedItems = []
2893
- } = import_react15.default.useContext(MenuContext);
2919
+ } = import_react14.default.useContext(MenuContext);
2894
2920
  const removeToken = (tokenId) => {
2895
2921
  const tokenToRemove = selectedItems?.find((item) => item.id === tokenId);
2896
2922
  tokenToRemove && removeSelectedItem?.(tokenToRemove);
@@ -2944,7 +2970,7 @@ var MenuTokenInput = ({
2944
2970
  };
2945
2971
 
2946
2972
  // src/MenuSearchTokenInput/MenuSearchTokenInput.tsx
2947
- var import_react16 = __toESM(require("react"));
2973
+ var import_react15 = __toESM(require("react"));
2948
2974
  var import_jsx_runtime15 = require("react/jsx-runtime");
2949
2975
  var MenuSearchTokenInput = ({
2950
2976
  getIsItemVisible,
@@ -2968,10 +2994,10 @@ var MenuSearchTokenInput = ({
2968
2994
  setHiddenItemsMap
2969
2995
  });
2970
2996
  const controlledValue = value || inputPropsValue !== void 0 ? `${inputPropsValue}` : void 0;
2971
- const [internalValue, setInternalValue] = import_react16.default.useState(
2997
+ const [internalValue, setInternalValue] = import_react15.default.useState(
2972
2998
  controlledValue || ""
2973
2999
  );
2974
- const updateFilteredState = import_react16.default.useCallback(
3000
+ const updateFilteredState = import_react15.default.useCallback(
2975
3001
  // defaults to an empty string if no value is passed
2976
3002
  (value2 = "") => {
2977
3003
  setInternalValue(value2);
@@ -2979,14 +3005,14 @@ var MenuSearchTokenInput = ({
2979
3005
  },
2980
3006
  [updateFilteredItems]
2981
3007
  );
2982
- import_react16.default.useEffect(() => {
3008
+ import_react15.default.useEffect(() => {
2983
3009
  updateFilteredState(controlledValue);
2984
3010
  }, [controlledValue]);
2985
- import_react16.default.useEffect(() => {
3011
+ import_react15.default.useEffect(() => {
2986
3012
  updateFilteredState(controlledValue);
2987
3013
  }, [isOpen]);
2988
3014
  const toggleButtonProps = getToggleButtonProps?.() || {};
2989
- const handleKeyDown = import_react16.default.useCallback(
3015
+ const handleKeyDown = import_react15.default.useCallback(
2990
3016
  (e) => {
2991
3017
  if (e.key === " ") return;
2992
3018
  toggleButtonProps.onKeyDown?.(e);
@@ -3014,10 +3040,10 @@ var MenuSearchTokenInput = ({
3014
3040
  };
3015
3041
 
3016
3042
  // src/SubmenuItem/SubmenuItem.tsx
3017
- var import_react17 = __toESM(require("react"));
3043
+ var import_react16 = __toESM(require("react"));
3018
3044
  var import_seeds_react_icon2 = require("@sproutsocial/seeds-react-icon");
3019
3045
  var import_seeds_react_box3 = require("@sproutsocial/seeds-react-box");
3020
- var import_seeds_react_utilities = require("@sproutsocial/seeds-react-utilities");
3046
+ var import_seeds_react_utilities2 = require("@sproutsocial/seeds-react-utilities");
3021
3047
  var import_jsx_runtime16 = require("react/jsx-runtime");
3022
3048
  var SubmenuItemTrigger = ({
3023
3049
  id,
@@ -3026,7 +3052,7 @@ var SubmenuItemTrigger = ({
3026
3052
  ...rest
3027
3053
  }) => {
3028
3054
  const { getToggleButtonProps, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
3029
- const toggleRef = ref && innerRef ? (0, import_seeds_react_utilities.mergeRefs)([ref, innerRef].filter(Boolean)) : ref || innerRef;
3055
+ const toggleRef = ref && innerRef ? (0, import_seeds_react_utilities2.mergeRefs)([ref, innerRef].filter(Boolean)) : ref || innerRef;
3030
3056
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3031
3057
  MenuItem,
3032
3058
  {
@@ -3076,17 +3102,17 @@ var SubmenuItem = ({
3076
3102
  itemsMap,
3077
3103
  isOpen: parentIsOpen
3078
3104
  } = useMenuContentContext();
3079
- const [submenuIsFocused, setSubmenuIsFocused] = import_react17.default.useState(false);
3080
- const [submenuIsOpen, setSubmenuIsOpen] = import_react17.default.useState(false);
3081
- const [submenuIsActive, setSubmenuIsActive] = import_react17.default.useState(false);
3082
- const submenuItemRef = import_react17.default.useRef(null);
3083
- const submenuRef = import_react17.default.useRef(null);
3105
+ const [submenuIsFocused, setSubmenuIsFocused] = import_react16.default.useState(false);
3106
+ const [submenuIsOpen, setSubmenuIsOpen] = import_react16.default.useState(false);
3107
+ const [submenuIsActive, setSubmenuIsActive] = import_react16.default.useState(false);
3108
+ const submenuItemRef = import_react16.default.useRef(null);
3109
+ const submenuRef = import_react16.default.useRef(null);
3084
3110
  const menuContent = menuItems ? getChildrenFromMenuItems({ menuItems, MenuItemComponent }) : menuChildren;
3085
3111
  const item = itemsMap[id] || {
3086
3112
  index: 0,
3087
3113
  id
3088
3114
  };
3089
- import_react17.default.useEffect(() => {
3115
+ import_react16.default.useEffect(() => {
3090
3116
  if (highlightedIndex === item.index) {
3091
3117
  !submenuIsOpen && setSubmenuIsOpen(true);
3092
3118
  } else if (submenuIsOpen && highlightedIndex !== -1) {
@@ -3094,7 +3120,7 @@ var SubmenuItem = ({
3094
3120
  setSubmenuIsActive(false);
3095
3121
  }
3096
3122
  }, [highlightedIndex, item.index, submenuIsOpen, setSubmenuIsOpen]);
3097
- const onSubmenuStateChange = import_react17.default.useCallback(
3123
+ const onSubmenuStateChange = import_react16.default.useCallback(
3098
3124
  (state) => {
3099
3125
  if (state.isOpen !== void 0) {
3100
3126
  setSubmenuIsOpen(state.isOpen);
@@ -3138,7 +3164,7 @@ var SubmenuItem = ({
3138
3164
  onMenuItemClick();
3139
3165
  }
3140
3166
  };
3141
- import_react17.default.useEffect(() => {
3167
+ import_react16.default.useEffect(() => {
3142
3168
  if (document && document.body) {
3143
3169
  document.body.addEventListener("click", onBodyClick, {
3144
3170
  capture: true
@@ -3242,11 +3268,11 @@ var ListboxToggleButton = ({
3242
3268
  };
3243
3269
 
3244
3270
  // src/ActionMenu/ActionMenu.tsx
3245
- var import_react19 = __toESM(require("react"));
3271
+ var import_react18 = __toESM(require("react"));
3246
3272
  var import_downshift3 = require("downshift");
3247
3273
 
3248
3274
  // src/hooks/useDownshiftDefaults.tsx
3249
- var import_react18 = __toESM(require("react"));
3275
+ var import_react17 = __toESM(require("react"));
3250
3276
 
3251
3277
  // src/reducers/useComboboxStateReducer.tsx
3252
3278
  var import_downshift = require("downshift");
@@ -3370,12 +3396,12 @@ var useDownshiftDefaults = ({
3370
3396
  isMulti = false,
3371
3397
  multiSelectProps = {}
3372
3398
  } = {}) => {
3373
- const [hiddenItemsMap, setHiddenItemsMap] = import_react18.default.useState({});
3374
- const hiddenItemsCount = import_react18.default.useMemo(
3399
+ const [hiddenItemsMap, setHiddenItemsMap] = import_react17.default.useState({});
3400
+ const hiddenItemsCount = import_react17.default.useMemo(
3375
3401
  () => Object.keys(hiddenItemsMap).filter(Boolean).length,
3376
3402
  [hiddenItemsMap]
3377
3403
  );
3378
- const isItemDisabled = import_react18.default.useCallback(
3404
+ const isItemDisabled = import_react17.default.useCallback(
3379
3405
  (item) => Boolean(item.disabled || hiddenItemsMap[item.id]),
3380
3406
  [hiddenItemsMap]
3381
3407
  );
@@ -3454,7 +3480,7 @@ var ActionMenu = ({
3454
3480
  const { defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
3455
3481
  isCombobox: false
3456
3482
  });
3457
- const [currentSelectedItem, setCurrentSelectedItem] = import_react19.default.useState(null);
3483
+ const [currentSelectedItem, setCurrentSelectedItem] = import_react18.default.useState(null);
3458
3484
  const { isOpen, ...useSelectReturnProps } = (0, import_downshift3.useSelect)({
3459
3485
  ...defaultDownshiftProps.select,
3460
3486
  items: allMenuItems,
@@ -3466,7 +3492,7 @@ var ActionMenu = ({
3466
3492
  ),
3467
3493
  ...useSelectProps
3468
3494
  });
3469
- (0, import_react19.useEffect)(() => {
3495
+ (0, import_react18.useEffect)(() => {
3470
3496
  setCurrentSelectedItem(useSelectReturnProps.selectedItem);
3471
3497
  }, [useSelectReturnProps.selectedItem]);
3472
3498
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
@@ -3488,7 +3514,7 @@ var ActionMenu = ({
3488
3514
  };
3489
3515
 
3490
3516
  // src/SingleSelectMenu/SingleSelectMenu.tsx
3491
- var import_react20 = require("react");
3517
+ var import_react19 = require("react");
3492
3518
  var import_downshift4 = require("downshift");
3493
3519
  var import_jsx_runtime19 = require("react/jsx-runtime");
3494
3520
  var SingleSelectMenu = ({
@@ -3536,7 +3562,7 @@ var SingleSelectMenu = ({
3536
3562
  };
3537
3563
 
3538
3564
  // src/MultiSelectMenu/MultiSelectMenu.tsx
3539
- var import_react21 = require("react");
3565
+ var import_react20 = require("react");
3540
3566
  var import_downshift5 = require("downshift");
3541
3567
  var import_jsx_runtime20 = require("react/jsx-runtime");
3542
3568
  var MultiSelectMenu = ({
@@ -3639,10 +3665,9 @@ var MultiSelectMenu = ({
3639
3665
  };
3640
3666
 
3641
3667
  // src/Autocomplete/Autocomplete.tsx
3642
- var import_react24 = require("react");
3668
+ var import_react22 = require("react");
3643
3669
 
3644
3670
  // src/Autocomplete/SingleAutocomplete.tsx
3645
- var import_react22 = require("react");
3646
3671
  var import_downshift6 = require("downshift");
3647
3672
  var import_jsx_runtime21 = require("react/jsx-runtime");
3648
3673
  var SingleAutocomplete = ({
@@ -3700,7 +3725,7 @@ var SingleAutocomplete = ({
3700
3725
  };
3701
3726
 
3702
3727
  // src/Autocomplete/MultiAutocomplete.tsx
3703
- var import_react23 = __toESM(require("react"));
3728
+ var import_react21 = __toESM(require("react"));
3704
3729
  var import_downshift7 = require("downshift");
3705
3730
  var import_jsx_runtime22 = require("react/jsx-runtime");
3706
3731
  var MultiAutocomplete = ({
@@ -3726,15 +3751,15 @@ var MultiAutocomplete = ({
3726
3751
  menuItems,
3727
3752
  MenuItemComponent
3728
3753
  });
3729
- const [selectedItems, setSelectedItems] = import_react23.default.useState(initialSelectedItems);
3730
- const [selectedItemIds, setSelectedItemIds] = import_react23.default.useState(getSelectedItemIds(initialSelectedItems));
3731
- const getIsItemVisibleMulti = import_react23.default.useCallback(
3754
+ const [selectedItems, setSelectedItems] = import_react21.default.useState(initialSelectedItems);
3755
+ const [selectedItemIds, setSelectedItemIds] = import_react21.default.useState(getSelectedItemIds(initialSelectedItems));
3756
+ const getIsItemVisibleMulti = import_react21.default.useCallback(
3732
3757
  (item, inputValue) => {
3733
3758
  return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item, inputValue);
3734
3759
  },
3735
3760
  [selectedItemIds, showSelectedItemsInDropdown, getIsItemVisible]
3736
3761
  );
3737
- const getShouldFilterMulti = import_react23.default.useCallback(
3762
+ const getShouldFilterMulti = import_react21.default.useCallback(
3738
3763
  (args) => {
3739
3764
  return !showSelectedItemsInDropdown && Object.keys(selectedItemIds).length > 0 || defaultGetShouldFilter(args);
3740
3765
  },
@@ -3758,7 +3783,7 @@ var MultiAutocomplete = ({
3758
3783
  getShouldFilter: getShouldFilterMulti,
3759
3784
  setHiddenItemsMap
3760
3785
  });
3761
- import_react23.default.useEffect(() => {
3786
+ import_react21.default.useEffect(() => {
3762
3787
  updateFilteredItems({ inputValue: "" });
3763
3788
  }, [selectedItemIds]);
3764
3789
  const useMultipleSelectionReturnProps = (0, import_downshift7.useMultipleSelection)({
@@ -3838,7 +3863,7 @@ var MultiAutocomplete = ({
3838
3863
  // src/Autocomplete/Autocomplete.tsx
3839
3864
  var import_jsx_runtime23 = require("react/jsx-runtime");
3840
3865
  var Autocomplete = ({
3841
- multiSelect,
3866
+ multiSelect = false,
3842
3867
  ...rest
3843
3868
  }) => {
3844
3869
  if (multiSelect) {
@@ -3848,7 +3873,7 @@ var Autocomplete = ({
3848
3873
  };
3849
3874
 
3850
3875
  // src/Autocomplete/AutocompleteInput.tsx
3851
- var import_react25 = require("react");
3876
+ var import_react23 = require("react");
3852
3877
  var import_seeds_react_input2 = require("@sproutsocial/seeds-react-input");
3853
3878
  var import_jsx_runtime24 = require("react/jsx-runtime");
3854
3879
  var AutocompleteInput = ({
@@ -3886,7 +3911,7 @@ var AutocompleteInput = ({
3886
3911
  };
3887
3912
 
3888
3913
  // src/Autocomplete/AutocompleteTokenInput.tsx
3889
- var import_react26 = require("react");
3914
+ var import_react24 = require("react");
3890
3915
  var import_jsx_runtime25 = require("react/jsx-runtime");
3891
3916
  var AutocompleteTokenInput = ({
3892
3917
  onKeyDown,
@@ -3930,7 +3955,7 @@ var AutocompleteTokenInput = ({
3930
3955
 
3931
3956
  // src/Autocomplete/AutocompleteSelect.tsx
3932
3957
  var import_seeds_react_icon4 = __toESM(require("@sproutsocial/seeds-react-icon"));
3933
- var import_react27 = require("react");
3958
+ var import_react25 = require("react");
3934
3959
  var import_styled_components13 = __toESM(require("styled-components"));
3935
3960
  var import_seeds_react_input3 = require("@sproutsocial/seeds-react-input");
3936
3961
  var import_jsx_runtime26 = require("react/jsx-runtime");
@@ -3950,8 +3975,8 @@ var AutocompleteSelect = (props) => {
3950
3975
  };
3951
3976
 
3952
3977
  // src/NestedMenu/NestedMenu.tsx
3953
- var import_react33 = require("react");
3954
- var import_react34 = require("motion/react");
3978
+ var import_react31 = require("react");
3979
+ var import_react32 = require("motion/react");
3955
3980
  var import_downshift9 = require("downshift");
3956
3981
 
3957
3982
  // src/reducers/nestedMenuStateReducer.tsx
@@ -3979,7 +4004,7 @@ var nestedMenuStateReducer = (_state, actionAndChanges) => {
3979
4004
  };
3980
4005
 
3981
4006
  // src/NestedMenu/NestedMenuContext.tsx
3982
- var import_react28 = require("react");
4007
+ var import_react26 = require("react");
3983
4008
  var import_jsx_runtime27 = require("react/jsx-runtime");
3984
4009
  var defaultNestedMenuContext = {
3985
4010
  selectedMenuPath: [],
@@ -3997,7 +4022,7 @@ var defaultNestedMenuContext = {
3997
4022
  },
3998
4023
  animationSpeed: MOTION_DURATION_FAST
3999
4024
  };
4000
- var NestedMenuContext = (0, import_react28.createContext)(
4025
+ var NestedMenuContext = (0, import_react26.createContext)(
4001
4026
  defaultNestedMenuContext
4002
4027
  );
4003
4028
  var NestedMenuProvider = ({
@@ -4007,7 +4032,7 @@ var NestedMenuProvider = ({
4007
4032
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(NestedMenuContext.Provider, { value: nestedMenuProps, children });
4008
4033
  };
4009
4034
  var useNestedMenuContext = () => {
4010
- const nestedMenuContextValue = (0, import_react28.useContext)(NestedMenuContext);
4035
+ const nestedMenuContextValue = (0, import_react26.useContext)(NestedMenuContext);
4011
4036
  if (nestedMenuContextValue === null) {
4012
4037
  throw new Error(
4013
4038
  "useNestedMenuContext must be used within a <NestedMenuContext.Provider />"
@@ -4017,8 +4042,8 @@ var useNestedMenuContext = () => {
4017
4042
  };
4018
4043
 
4019
4044
  // src/NestedMenu/NestedMenuContent.tsx
4020
- var import_react29 = require("react");
4021
- var import_seeds_react_utilities2 = require("@sproutsocial/seeds-react-utilities");
4045
+ var import_react27 = require("react");
4046
+ var import_seeds_react_utilities3 = require("@sproutsocial/seeds-react-utilities");
4022
4047
 
4023
4048
  // src/NestedMenu/NestedMenuItem.tsx
4024
4049
  var import_seeds_react_icon5 = require("@sproutsocial/seeds-react-icon");
@@ -4058,10 +4083,10 @@ var NestedMenuContent = ({
4058
4083
  }) => {
4059
4084
  const { highlightedIndex, items } = useMenuContentContext();
4060
4085
  const { setSelectedMenuId, selectedMenuPath, goBack } = useNestedMenuContext();
4061
- const internalRef = (0, import_react29.useRef)(null);
4062
- const innerRef = (0, import_seeds_react_utilities2.mergeRefs)(internalRef, innerRefProp);
4086
+ const internalRef = (0, import_react27.useRef)(null);
4087
+ const innerRef = (0, import_seeds_react_utilities3.mergeRefs)(internalRef, innerRefProp);
4063
4088
  const contentProps = children ? { children } : { menuItems, MenuItemComponent };
4064
- (0, import_react29.useEffect)(() => {
4089
+ (0, import_react27.useEffect)(() => {
4065
4090
  internalRef?.current?.focus();
4066
4091
  }, []);
4067
4092
  const onKeyDown = (e) => {
@@ -4099,7 +4124,7 @@ NestedMenuContent.__MENU_PRIMITIVE_TYPE = "MenuContent";
4099
4124
  // src/NestedMenu/NestedMenuHeader.tsx
4100
4125
  var import_seeds_react_button2 = require("@sproutsocial/seeds-react-button");
4101
4126
  var import_seeds_react_icon6 = require("@sproutsocial/seeds-react-icon");
4102
- var import_react30 = require("motion/react");
4127
+ var import_react28 = require("motion/react");
4103
4128
  var import_jsx_runtime30 = require("react/jsx-runtime");
4104
4129
  var NestedMenuHeader = ({
4105
4130
  backArrowLabel,
@@ -4110,8 +4135,8 @@ var NestedMenuHeader = ({
4110
4135
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4111
4136
  MenuHeader,
4112
4137
  {
4113
- leftAction: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react30.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4114
- import_react30.motion.div,
4138
+ leftAction: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react28.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4139
+ import_react28.motion.div,
4115
4140
  {
4116
4141
  initial: { opacity: 0 },
4117
4142
  animate: { opacity: 1 },
@@ -4129,7 +4154,7 @@ var NestedMenuHeader = ({
4129
4154
  };
4130
4155
 
4131
4156
  // src/NestedMenu/NestedMenuRoot.tsx
4132
- var import_react31 = __toESM(require("react"));
4157
+ var import_react29 = __toESM(require("react"));
4133
4158
  var import_jsx_runtime31 = require("react/jsx-runtime");
4134
4159
  var NestedMenuRoot = ({
4135
4160
  children,
@@ -4138,7 +4163,7 @@ var NestedMenuRoot = ({
4138
4163
  }) => {
4139
4164
  const menuContext = useMenu(contextProps);
4140
4165
  const { setActiveMenuContext, selectedMenuPath } = useNestedMenuContext();
4141
- import_react31.default.useEffect(() => {
4166
+ import_react29.default.useEffect(() => {
4142
4167
  setActiveMenuContext(menuContext);
4143
4168
  }, [
4144
4169
  selectedMenuPath[selectedMenuPath.length - 1],
@@ -4149,10 +4174,10 @@ var NestedMenuRoot = ({
4149
4174
  };
4150
4175
 
4151
4176
  // src/NestedMenu/NestedMenuPopout.tsx
4152
- var import_react32 = require("motion/react");
4177
+ var import_react30 = require("motion/react");
4153
4178
  var import_styled_components14 = __toESM(require("styled-components"));
4154
4179
  var import_jsx_runtime32 = require("react/jsx-runtime");
4155
- var StyledDiv = (0, import_styled_components14.default)(import_react32.motion.div)`
4180
+ var StyledDiv = (0, import_styled_components14.default)(import_react30.motion.div)`
4156
4181
  overflow: hidden;
4157
4182
  `;
4158
4183
  var NestedMenuPopout = ({
@@ -4204,9 +4229,9 @@ var NestedMenu = ({
4204
4229
  const { defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
4205
4230
  isCombobox: false
4206
4231
  });
4207
- const uniqueId = (0, import_react33.useId)();
4232
+ const uniqueId = (0, import_react31.useId)();
4208
4233
  const nestedMenuId = externalNestedMenuId ?? `nested-menu-${uniqueId}`;
4209
- const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react33.useState)(false);
4234
+ const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react31.useState)(false);
4210
4235
  const useSelectReturnProps = (0, import_downshift9.useSelect)({
4211
4236
  ...defaultDownshiftProps.select,
4212
4237
  id: nestedMenuId,
@@ -4222,7 +4247,7 @@ var NestedMenu = ({
4222
4247
  ...useSelectReturnProps,
4223
4248
  ...restDefaults
4224
4249
  };
4225
- (0, import_react33.useEffect)(() => {
4250
+ (0, import_react31.useEffect)(() => {
4226
4251
  if (!useSelectReturnProps.isOpen) {
4227
4252
  setHasLoadedOnce(false);
4228
4253
  } else {
@@ -4239,15 +4264,16 @@ var NestedMenu = ({
4239
4264
  id: nestedMenuId,
4240
4265
  onIsOpenChange: onNestedIsOpenChange
4241
4266
  };
4242
- const [selectedMenuPath, setSelectedMenuPath] = (0, import_react33.useState)([initialMenuId]);
4243
- const [activeMenuContext, setActiveMenuContext] = (0, import_react33.useState)(defaultMenuContext);
4244
- const [currentMenuId, setCurrentMenuId] = (0, import_react33.useState)(initialMenuId);
4245
- const [isAdding, setIsAdding] = (0, import_react33.useState)(false);
4267
+ rootMenuContextProps.getMenuProps?.({}, { suppressRefError: true });
4268
+ const [selectedMenuPath, setSelectedMenuPath] = (0, import_react31.useState)([initialMenuId]);
4269
+ const [activeMenuContext, setActiveMenuContext] = (0, import_react31.useState)(defaultMenuContext);
4270
+ const [currentMenuId, setCurrentMenuId] = (0, import_react31.useState)(initialMenuId);
4271
+ const [isAdding, setIsAdding] = (0, import_react31.useState)(false);
4246
4272
  const setSelectedMenuId = (id) => {
4247
4273
  setIsAdding(true);
4248
4274
  setSelectedMenuPath((currentPath) => [...currentPath, id]);
4249
4275
  };
4250
- (0, import_react33.useEffect)(() => {
4276
+ (0, import_react31.useEffect)(() => {
4251
4277
  if (selectedMenuPath.length > 0) {
4252
4278
  const newMenuId = selectedMenuPath[selectedMenuPath.length - 1];
4253
4279
  setCurrentMenuId(newMenuId);
@@ -4341,8 +4367,8 @@ var NestedMenu = ({
4341
4367
  initialIsOpen: true,
4342
4368
  children: (
4343
4369
  // Handles the smooth animating of the content
4344
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react34.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
4345
- import_react34.motion.div,
4370
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react32.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
4371
+ import_react32.motion.div,
4346
4372
  {
4347
4373
  variants: contentVariants,
4348
4374
  initial: "arrive",
@@ -4390,8 +4416,8 @@ var NestedMenu = ({
4390
4416
  NestedMenuPopout,
4391
4417
  {
4392
4418
  content: MenuComponent && // Handles the rerender of the component
4393
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react34.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4394
- import_react34.motion.div,
4419
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react32.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4420
+ import_react32.motion.div,
4395
4421
  {
4396
4422
  variants: menuVariants,
4397
4423
  initial: "arrive",
@@ -4436,7 +4462,6 @@ var NestedMenu = ({
4436
4462
  MenuLabel,
4437
4463
  MenuPopout,
4438
4464
  MenuRoot,
4439
- MenuRootNoPopout,
4440
4465
  MenuSearchInput,
4441
4466
  MenuSearchTokenInput,
4442
4467
  MenuToggleButton,