@sproutsocial/seeds-react-menu 1.7.5 → 1.7.7

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.d.mts CHANGED
@@ -205,7 +205,6 @@ declare const menuPlacementOrigin: {
205
205
  };
206
206
  };
207
207
  declare const menuAnimationConfig: {
208
- layout: boolean;
209
208
  variants: {
210
209
  initial: (custom?: {
211
210
  placement: EnumPlacements;
package/dist/index.d.ts CHANGED
@@ -205,7 +205,6 @@ declare const menuPlacementOrigin: {
205
205
  };
206
206
  };
207
207
  declare const menuAnimationConfig: {
208
- layout: boolean;
209
208
  variants: {
210
209
  initial: (custom?: {
211
210
  placement: EnumPlacements;
package/dist/index.js CHANGED
@@ -981,7 +981,6 @@ var menuPlacementOrigin = {
981
981
  ["right-end"]: { originX: 0, originY: 1 }
982
982
  };
983
983
  var menuAnimationConfig = {
984
- layout: true,
985
984
  variants: {
986
985
  initial: (custom = { placement: "bottom" }) => ({
987
986
  ...menuPlacementOrigin[custom.placement],
@@ -2370,8 +2369,8 @@ var AutocompleteSelect = (props) => {
2370
2369
  };
2371
2370
 
2372
2371
  // src/NestedMenu/NestedMenu.tsx
2373
- var import_react30 = require("react");
2374
- var import_react31 = require("motion/react");
2372
+ var import_react31 = require("react");
2373
+ var import_react32 = require("motion/react");
2375
2374
  var import_downshift9 = require("downshift");
2376
2375
  var import_lodash = __toESM(require("lodash.uniqueid"));
2377
2376
 
@@ -2574,10 +2573,12 @@ var NestedMenuRoot = ({
2574
2573
  };
2575
2574
 
2576
2575
  // src/NestedMenu/NestedMenuPopout.tsx
2577
- var import_react29 = require("motion/react");
2576
+ var import_react29 = require("react");
2577
+ var import_react30 = require("motion/react");
2578
2578
  var import_styled_components12 = __toESM(require("styled-components"));
2579
+ var import_seeds_react_utilities4 = require("@sproutsocial/seeds-react-utilities");
2579
2580
  var import_jsx_runtime32 = require("react/jsx-runtime");
2580
- var StyledDiv = (0, import_styled_components12.default)(import_react29.motion.div)`
2581
+ var StyledDiv = (0, import_styled_components12.default)(import_react30.motion.div)`
2581
2582
  overflow: hidden;
2582
2583
  `;
2583
2584
  var NestedMenuPopout = ({
@@ -2585,6 +2586,8 @@ var NestedMenuPopout = ({
2585
2586
  menuToggleElement,
2586
2587
  width,
2587
2588
  onClose,
2589
+ toggleElementRef,
2590
+ focusLockProps,
2588
2591
  ...popoutProps
2589
2592
  }) => {
2590
2593
  const { activeMenuContext, rootMenuContextProps, resetSelectedMenuPath } = useNestedMenuContext();
@@ -2594,13 +2597,20 @@ var NestedMenuPopout = ({
2594
2597
  lockPlacement: true,
2595
2598
  onClose: () => {
2596
2599
  onClose?.();
2597
- setTimeout(() => resetSelectedMenuPath?.(), 100);
2600
+ setTimeout(() => {
2601
+ toggleElementRef.current?.focus();
2602
+ resetSelectedMenuPath?.();
2603
+ }, 200);
2598
2604
  },
2599
2605
  isOpen: !!rootMenuContextProps.isOpen,
2600
2606
  openMenu: rootMenuContextProps.openMenu,
2601
2607
  closeMenu: rootMenuContextProps.closeMenu,
2602
2608
  width,
2603
2609
  content: (props) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(StyledDiv, { layout: "position", children: typeof content === "function" ? content(props) : content }),
2610
+ focusLockProps: {
2611
+ crossFrame: false,
2612
+ ...focusLockProps
2613
+ },
2604
2614
  ...popoutProps,
2605
2615
  children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2606
2616
  MenuToggleProvider,
@@ -2608,7 +2618,11 @@ var NestedMenuPopout = ({
2608
2618
  menuContext: {
2609
2619
  ...activeMenuContext,
2610
2620
  ...rootMenuContextProps,
2611
- ...toggleProps
2621
+ ...toggleProps,
2622
+ ref: (0, import_seeds_react_utilities4.mergeRefs)(
2623
+ toggleProps.ref,
2624
+ toggleElementRef
2625
+ )
2612
2626
  },
2613
2627
  children: menuToggleElement
2614
2628
  }
@@ -2620,8 +2634,8 @@ var NestedMenuPopout = ({
2620
2634
  // src/NestedMenu/NestedMenu.tsx
2621
2635
  var import_jsx_runtime33 = require("react/jsx-runtime");
2622
2636
  var useId = () => {
2623
- const [id, setId] = (0, import_react30.useState)();
2624
- (0, import_react30.useEffect)(() => {
2637
+ const [id, setId] = (0, import_react31.useState)();
2638
+ (0, import_react31.useEffect)(() => {
2625
2639
  const uId = (0, import_lodash.default)();
2626
2640
  setId(uId);
2627
2641
  }, []);
@@ -2647,7 +2661,7 @@ var NestedMenu = ({
2647
2661
  });
2648
2662
  const uniqueId2 = useId();
2649
2663
  const nestedMenuId = externalNestedMenuId ?? `nested-menu-${uniqueId2}`;
2650
- const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react30.useState)(false);
2664
+ const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react31.useState)(false);
2651
2665
  const useSelectReturnProps = (0, import_downshift9.useSelect)({
2652
2666
  ...defaultDownshiftProps.select,
2653
2667
  id: nestedMenuId,
@@ -2663,7 +2677,7 @@ var NestedMenu = ({
2663
2677
  ...useSelectReturnProps,
2664
2678
  ...restDefaults
2665
2679
  };
2666
- (0, import_react30.useEffect)(() => {
2680
+ (0, import_react31.useEffect)(() => {
2667
2681
  if (!useSelectReturnProps.isOpen) {
2668
2682
  setHasLoadedOnce(false);
2669
2683
  } else {
@@ -2681,16 +2695,17 @@ var NestedMenu = ({
2681
2695
  onIsOpenChange: onNestedIsOpenChange
2682
2696
  };
2683
2697
  rootMenuContextProps.getMenuProps?.({}, { suppressRefError: true });
2684
- const [selectedMenuPath, setSelectedMenuPath] = (0, import_react30.useState)([initialMenuId]);
2685
- const [activeMenuContext, setActiveMenuContext] = (0, import_react30.useState)(defaultMenuContext);
2686
- const [currentMenuId, setCurrentMenuId] = (0, import_react30.useState)(initialMenuId);
2687
- const [isAdding, setIsAdding] = (0, import_react30.useState)(false);
2688
- const popoutUpdateRef = (0, import_react30.useRef)();
2698
+ const [selectedMenuPath, setSelectedMenuPath] = (0, import_react31.useState)([initialMenuId]);
2699
+ const [activeMenuContext, setActiveMenuContext] = (0, import_react31.useState)(defaultMenuContext);
2700
+ const [currentMenuId, setCurrentMenuId] = (0, import_react31.useState)(initialMenuId);
2701
+ const [isAdding, setIsAdding] = (0, import_react31.useState)(false);
2702
+ const popoutUpdateRef = (0, import_react31.useRef)();
2703
+ const toggleElementRef = (0, import_react31.useRef)(null);
2689
2704
  const setSelectedMenuId = (id) => {
2690
2705
  setIsAdding(true);
2691
2706
  setSelectedMenuPath((currentPath) => [...currentPath, id]);
2692
2707
  };
2693
- (0, import_react30.useEffect)(() => {
2708
+ (0, import_react31.useEffect)(() => {
2694
2709
  if (selectedMenuPath.length > 0) {
2695
2710
  const newMenuId = selectedMenuPath[selectedMenuPath.length - 1];
2696
2711
  setCurrentMenuId(newMenuId);
@@ -2784,8 +2799,8 @@ var NestedMenu = ({
2784
2799
  initialIsOpen: true,
2785
2800
  children: (
2786
2801
  // Handles the smooth animating of the content
2787
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react31.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
2788
- import_react31.motion.div,
2802
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react32.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
2803
+ import_react32.motion.div,
2789
2804
  {
2790
2805
  variants: contentVariants,
2791
2806
  initial: "arrive",
@@ -2815,7 +2830,7 @@ var NestedMenu = ({
2815
2830
  ),
2816
2831
  ...restMenuProps
2817
2832
  };
2818
- (0, import_react30.useEffect)(() => {
2833
+ (0, import_react31.useEffect)(() => {
2819
2834
  popoutUpdateRef.current?.();
2820
2835
  }, [nestedMenuProps.children]);
2821
2836
  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
@@ -2836,8 +2851,8 @@ var NestedMenu = ({
2836
2851
  NestedMenuPopout,
2837
2852
  {
2838
2853
  content: MenuComponent && // Handles the rerender of the component
2839
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react31.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2840
- import_react31.motion.div,
2854
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react32.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2855
+ import_react32.motion.div,
2841
2856
  {
2842
2857
  variants: menuVariants,
2843
2858
  initial: "arrive",
@@ -2850,6 +2865,7 @@ var NestedMenu = ({
2850
2865
  ) }),
2851
2866
  menuToggleElement,
2852
2867
  width,
2868
+ toggleElementRef,
2853
2869
  scheduleUpdateRef: (callback) => {
2854
2870
  popoutUpdateRef.current = callback;
2855
2871
  externalPopoutUpdateRef?.(callback);