@sproutsocial/seeds-react-menu 1.2.0 → 1.2.1
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/.turbo/turbo-build.log +10 -10
- package/CHANGELOG.md +8 -0
- package/dist/esm/index.js +43 -14
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +39 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Autocomplete/Autocomplete.stories.tsx +1 -1
- package/src/MenuContext.tsx +3 -1
- package/src/MenuRoot/MenuRoot.tsx +39 -10
- package/src/NestedMenu/NestedMenu.tsx +3 -0
package/dist/index.d.mts
CHANGED
|
@@ -122,7 +122,7 @@ interface TypeMenuProviderProps {
|
|
|
122
122
|
menuContext: TypeMenuContext;
|
|
123
123
|
}
|
|
124
124
|
interface TypeMenuToggleContext extends TypeMenuContext {
|
|
125
|
-
ref?: (arg0: React__default.ElementRef<any> | HTMLElement) => void;
|
|
125
|
+
ref?: React__default.RefObject<any> | ((arg0: React__default.ElementRef<any> | HTMLElement) => void);
|
|
126
126
|
toggle?: () => void;
|
|
127
127
|
show?: () => void;
|
|
128
128
|
hide?: () => void;
|
package/dist/index.d.ts
CHANGED
|
@@ -122,7 +122,7 @@ interface TypeMenuProviderProps {
|
|
|
122
122
|
menuContext: TypeMenuContext;
|
|
123
123
|
}
|
|
124
124
|
interface TypeMenuToggleContext extends TypeMenuContext {
|
|
125
|
-
ref?: (arg0: React__default.ElementRef<any> | HTMLElement) => void;
|
|
125
|
+
ref?: React__default.RefObject<any> | ((arg0: React__default.ElementRef<any> | HTMLElement) => void);
|
|
126
126
|
toggle?: () => void;
|
|
127
127
|
show?: () => void;
|
|
128
128
|
hide?: () => void;
|
package/dist/index.js
CHANGED
|
@@ -2603,9 +2603,10 @@ var MenuGroup = ({
|
|
|
2603
2603
|
MenuGroup.__MENU_PRIMITIVE_TYPE = "MenuGroup";
|
|
2604
2604
|
|
|
2605
2605
|
// src/MenuRoot/MenuRoot.tsx
|
|
2606
|
-
var import_react10 = require("react");
|
|
2606
|
+
var import_react10 = __toESM(require("react"));
|
|
2607
2607
|
var import_styled_components10 = __toESM(require("styled-components"));
|
|
2608
2608
|
var import_seeds_react_popout = require("@sproutsocial/seeds-react-popout");
|
|
2609
|
+
var import_seeds_react_utilities = require("@sproutsocial/seeds-react-utilities");
|
|
2609
2610
|
|
|
2610
2611
|
// ../../seeds-design-tokens/seeds-motion/dist/seeds-motion-unitless.esm.js
|
|
2611
2612
|
var MOTION_DURATION_FAST = 0.15;
|
|
@@ -2682,7 +2683,7 @@ var MenuRoot = ({
|
|
|
2682
2683
|
children,
|
|
2683
2684
|
menuToggleElement,
|
|
2684
2685
|
popoutProps: { placement = "bottom", focusLockProps, ...popoutProps } = {},
|
|
2685
|
-
width: width2
|
|
2686
|
+
width: width2,
|
|
2686
2687
|
...contextProps
|
|
2687
2688
|
}) => {
|
|
2688
2689
|
const {
|
|
@@ -2691,14 +2692,22 @@ var MenuRoot = ({
|
|
|
2691
2692
|
closeMenu,
|
|
2692
2693
|
inputValue,
|
|
2693
2694
|
hiddenItemsCount = 0,
|
|
2694
|
-
items
|
|
2695
|
+
items,
|
|
2696
|
+
getMenuProps
|
|
2695
2697
|
} = contextProps;
|
|
2696
|
-
const
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2698
|
+
const toggleElementRef = import_react10.default.useRef(null);
|
|
2699
|
+
const [finalWidth, setFinalWidth] = import_react10.default.useState();
|
|
2700
|
+
const min_width = 200;
|
|
2701
|
+
(0, import_react10.useLayoutEffect)(() => {
|
|
2702
|
+
if (width2) {
|
|
2703
|
+
setFinalWidth(width2);
|
|
2704
|
+
} else if (toggleElementRef.current?.offsetWidth) {
|
|
2705
|
+
const toggleWidth = toggleElementRef.current.offsetWidth;
|
|
2706
|
+
setFinalWidth(Math.max(toggleWidth, min_width));
|
|
2707
|
+
} else {
|
|
2708
|
+
setFinalWidth(min_width);
|
|
2709
|
+
}
|
|
2710
|
+
}, [width2, toggleElementRef.current?.offsetWidth]);
|
|
2702
2711
|
(0, import_react10.useEffect)(() => {
|
|
2703
2712
|
if (!inputValue) return;
|
|
2704
2713
|
if (items && hiddenItemsCount >= items.length && isOpen) {
|
|
@@ -2706,6 +2715,7 @@ var MenuRoot = ({
|
|
|
2706
2715
|
}
|
|
2707
2716
|
}, [hiddenItemsCount, items?.length, isOpen, inputValue]);
|
|
2708
2717
|
const menuContext = useMenu(contextProps);
|
|
2718
|
+
getMenuProps?.({}, { suppressRefError: true });
|
|
2709
2719
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2710
2720
|
MenuPopout,
|
|
2711
2721
|
{
|
|
@@ -2714,8 +2724,22 @@ var MenuRoot = ({
|
|
|
2714
2724
|
openMenu,
|
|
2715
2725
|
closeMenu,
|
|
2716
2726
|
content: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MenuContentProvider, { menuContext, children }),
|
|
2727
|
+
width: finalWidth,
|
|
2717
2728
|
...popoutProps,
|
|
2718
|
-
children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2729
|
+
children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2730
|
+
MenuToggleProvider,
|
|
2731
|
+
{
|
|
2732
|
+
menuContext: {
|
|
2733
|
+
...menuContext,
|
|
2734
|
+
...toggleProps,
|
|
2735
|
+
ref: (0, import_seeds_react_utilities.mergeRefs)(
|
|
2736
|
+
toggleProps.ref,
|
|
2737
|
+
toggleElementRef
|
|
2738
|
+
)
|
|
2739
|
+
},
|
|
2740
|
+
children: menuToggleElement
|
|
2741
|
+
}
|
|
2742
|
+
)
|
|
2719
2743
|
}
|
|
2720
2744
|
);
|
|
2721
2745
|
};
|
|
@@ -3017,7 +3041,7 @@ var MenuSearchTokenInput = ({
|
|
|
3017
3041
|
var import_react17 = __toESM(require("react"));
|
|
3018
3042
|
var import_seeds_react_icon2 = require("@sproutsocial/seeds-react-icon");
|
|
3019
3043
|
var import_seeds_react_box3 = require("@sproutsocial/seeds-react-box");
|
|
3020
|
-
var
|
|
3044
|
+
var import_seeds_react_utilities2 = require("@sproutsocial/seeds-react-utilities");
|
|
3021
3045
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
3022
3046
|
var SubmenuItemTrigger = ({
|
|
3023
3047
|
id,
|
|
@@ -3026,7 +3050,7 @@ var SubmenuItemTrigger = ({
|
|
|
3026
3050
|
...rest
|
|
3027
3051
|
}) => {
|
|
3028
3052
|
const { getToggleButtonProps, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
|
|
3029
|
-
const toggleRef = ref && innerRef ? (0,
|
|
3053
|
+
const toggleRef = ref && innerRef ? (0, import_seeds_react_utilities2.mergeRefs)([ref, innerRef].filter(Boolean)) : ref || innerRef;
|
|
3030
3054
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3031
3055
|
MenuItem,
|
|
3032
3056
|
{
|
|
@@ -4018,7 +4042,7 @@ var useNestedMenuContext = () => {
|
|
|
4018
4042
|
|
|
4019
4043
|
// src/NestedMenu/NestedMenuContent.tsx
|
|
4020
4044
|
var import_react29 = require("react");
|
|
4021
|
-
var
|
|
4045
|
+
var import_seeds_react_utilities3 = require("@sproutsocial/seeds-react-utilities");
|
|
4022
4046
|
|
|
4023
4047
|
// src/NestedMenu/NestedMenuItem.tsx
|
|
4024
4048
|
var import_seeds_react_icon5 = require("@sproutsocial/seeds-react-icon");
|
|
@@ -4059,7 +4083,7 @@ var NestedMenuContent = ({
|
|
|
4059
4083
|
const { highlightedIndex, items } = useMenuContentContext();
|
|
4060
4084
|
const { setSelectedMenuId, selectedMenuPath, goBack } = useNestedMenuContext();
|
|
4061
4085
|
const internalRef = (0, import_react29.useRef)(null);
|
|
4062
|
-
const innerRef = (0,
|
|
4086
|
+
const innerRef = (0, import_seeds_react_utilities3.mergeRefs)(internalRef, innerRefProp);
|
|
4063
4087
|
const contentProps = children ? { children } : { menuItems, MenuItemComponent };
|
|
4064
4088
|
(0, import_react29.useEffect)(() => {
|
|
4065
4089
|
internalRef?.current?.focus();
|
|
@@ -4239,6 +4263,7 @@ var NestedMenu = ({
|
|
|
4239
4263
|
id: nestedMenuId,
|
|
4240
4264
|
onIsOpenChange: onNestedIsOpenChange
|
|
4241
4265
|
};
|
|
4266
|
+
rootMenuContextProps.getMenuProps?.({}, { suppressRefError: true });
|
|
4242
4267
|
const [selectedMenuPath, setSelectedMenuPath] = (0, import_react33.useState)([initialMenuId]);
|
|
4243
4268
|
const [activeMenuContext, setActiveMenuContext] = (0, import_react33.useState)(defaultMenuContext);
|
|
4244
4269
|
const [currentMenuId, setCurrentMenuId] = (0, import_react33.useState)(initialMenuId);
|