@radix-ui/react-menu 0.1.7-rc.20 → 0.1.7-rc.23
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.ts +35 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +253 -236
- package/dist/index.js.map +1 -1
- package/dist/index.module.js +254 -237
- package/dist/index.module.js.map +1 -1
- package/package.json +15 -15
package/dist/index.module.js
CHANGED
|
@@ -25,23 +25,22 @@ var $6cc32821e9371a1c$exports = {};
|
|
|
25
25
|
|
|
26
26
|
$parcel$export($6cc32821e9371a1c$exports, "createMenuScope", () => $6cc32821e9371a1c$export$4027731b685e72eb);
|
|
27
27
|
$parcel$export($6cc32821e9371a1c$exports, "Menu", () => $6cc32821e9371a1c$export$d9b273488cd8ce6f);
|
|
28
|
-
$parcel$export($6cc32821e9371a1c$exports, "MenuSub", () => $6cc32821e9371a1c$export$71bdb9d1e2909932);
|
|
29
28
|
$parcel$export($6cc32821e9371a1c$exports, "MenuAnchor", () => $6cc32821e9371a1c$export$9fa5ebd18bee4d43);
|
|
30
29
|
$parcel$export($6cc32821e9371a1c$exports, "MenuContent", () => $6cc32821e9371a1c$export$479f0f2f71193efe);
|
|
31
30
|
$parcel$export($6cc32821e9371a1c$exports, "MenuGroup", () => $6cc32821e9371a1c$export$22a631d1f72787bb);
|
|
32
31
|
$parcel$export($6cc32821e9371a1c$exports, "MenuLabel", () => $6cc32821e9371a1c$export$dd37bec0e8a99143);
|
|
33
32
|
$parcel$export($6cc32821e9371a1c$exports, "MenuItem", () => $6cc32821e9371a1c$export$2ce376c2cc3355c8);
|
|
34
|
-
$parcel$export($6cc32821e9371a1c$exports, "MenuSubTrigger", () => $6cc32821e9371a1c$export$5fbbb3ba7297405f);
|
|
35
33
|
$parcel$export($6cc32821e9371a1c$exports, "MenuCheckboxItem", () => $6cc32821e9371a1c$export$f6f243521332502d);
|
|
36
34
|
$parcel$export($6cc32821e9371a1c$exports, "MenuRadioGroup", () => $6cc32821e9371a1c$export$ea2200c9eee416b3);
|
|
37
35
|
$parcel$export($6cc32821e9371a1c$exports, "MenuRadioItem", () => $6cc32821e9371a1c$export$69bd225e9817f6d0);
|
|
38
36
|
$parcel$export($6cc32821e9371a1c$exports, "MenuItemIndicator", () => $6cc32821e9371a1c$export$a2593e23056970a3);
|
|
39
37
|
$parcel$export($6cc32821e9371a1c$exports, "MenuSeparator", () => $6cc32821e9371a1c$export$1cec7dcdd713e220);
|
|
40
38
|
$parcel$export($6cc32821e9371a1c$exports, "MenuArrow", () => $6cc32821e9371a1c$export$bcdda4773debf5fa);
|
|
39
|
+
$parcel$export($6cc32821e9371a1c$exports, "MenuSub", () => $6cc32821e9371a1c$export$71bdb9d1e2909932);
|
|
40
|
+
$parcel$export($6cc32821e9371a1c$exports, "MenuSubTrigger", () => $6cc32821e9371a1c$export$5fbbb3ba7297405f);
|
|
41
|
+
$parcel$export($6cc32821e9371a1c$exports, "MenuSubContent", () => $6cc32821e9371a1c$export$e7142ab31822bde6);
|
|
41
42
|
$parcel$export($6cc32821e9371a1c$exports, "Root", () => $6cc32821e9371a1c$export$be92b6f5f03c0fe9);
|
|
42
|
-
$parcel$export($6cc32821e9371a1c$exports, "Sub", () => $6cc32821e9371a1c$export$d7a01e11500dfb6f);
|
|
43
43
|
$parcel$export($6cc32821e9371a1c$exports, "Anchor", () => $6cc32821e9371a1c$export$b688253958b8dfe7);
|
|
44
|
-
$parcel$export($6cc32821e9371a1c$exports, "SubTrigger", () => $6cc32821e9371a1c$export$2ea8a7a591ac5eac);
|
|
45
44
|
$parcel$export($6cc32821e9371a1c$exports, "Content", () => $6cc32821e9371a1c$export$7c6e2c02157bb7d2);
|
|
46
45
|
$parcel$export($6cc32821e9371a1c$exports, "Group", () => $6cc32821e9371a1c$export$eb2fcfdbd7ba97d4);
|
|
47
46
|
$parcel$export($6cc32821e9371a1c$exports, "Label", () => $6cc32821e9371a1c$export$b04be29aa201d4f5);
|
|
@@ -52,6 +51,9 @@ $parcel$export($6cc32821e9371a1c$exports, "RadioItem", () => $6cc32821e9371a1c$e
|
|
|
52
51
|
$parcel$export($6cc32821e9371a1c$exports, "ItemIndicator", () => $6cc32821e9371a1c$export$c3468e2714d175fa);
|
|
53
52
|
$parcel$export($6cc32821e9371a1c$exports, "Separator", () => $6cc32821e9371a1c$export$1ff3c3f08ae963c0);
|
|
54
53
|
$parcel$export($6cc32821e9371a1c$exports, "Arrow", () => $6cc32821e9371a1c$export$21b07c8f274aebd5);
|
|
54
|
+
$parcel$export($6cc32821e9371a1c$exports, "Sub", () => $6cc32821e9371a1c$export$d7a01e11500dfb6f);
|
|
55
|
+
$parcel$export($6cc32821e9371a1c$exports, "SubTrigger", () => $6cc32821e9371a1c$export$2ea8a7a591ac5eac);
|
|
56
|
+
$parcel$export($6cc32821e9371a1c$exports, "SubContent", () => $6cc32821e9371a1c$export$6d4de93b380beddf);
|
|
55
57
|
|
|
56
58
|
|
|
57
59
|
|
|
@@ -121,8 +123,9 @@ const [$6cc32821e9371a1c$var$createMenuContext, $6cc32821e9371a1c$export$4027731
|
|
|
121
123
|
const $6cc32821e9371a1c$var$usePopperScope = $epM9y$createPopperScope();
|
|
122
124
|
const $6cc32821e9371a1c$var$useRovingFocusGroupScope = $epM9y$createRovingFocusGroupScope();
|
|
123
125
|
const [$6cc32821e9371a1c$var$MenuProvider, $6cc32821e9371a1c$var$useMenuContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$MENU_NAME);
|
|
126
|
+
const [$6cc32821e9371a1c$var$MenuRootProvider, $6cc32821e9371a1c$var$useMenuRootContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$MENU_NAME);
|
|
124
127
|
const $6cc32821e9371a1c$export$d9b273488cd8ce6f = (props)=>{
|
|
125
|
-
const { __scopeMenu: __scopeMenu , open: open = false , children: children , dir: dir , onOpenChange: onOpenChange , modal: modal = true } = props;
|
|
128
|
+
const { __scopeMenu: __scopeMenu , open: open = false , children: children , dir: dir , onOpenChange: onOpenChange , modal: modal = true , allowPinchZoom: allowPinchZoom } = props;
|
|
126
129
|
const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);
|
|
127
130
|
const [content, setContent] = $epM9y$useState(null);
|
|
128
131
|
const isUsingKeyboardRef = $epM9y$useRef(false);
|
|
@@ -161,59 +164,25 @@ const $6cc32821e9371a1c$export$d9b273488cd8ce6f = (props)=>{
|
|
|
161
164
|
}, []);
|
|
162
165
|
return /*#__PURE__*/ $epM9y$createElement($epM9y$Root, popperScope, /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuProvider, {
|
|
163
166
|
scope: __scopeMenu,
|
|
164
|
-
isSubmenu: false,
|
|
165
|
-
isUsingKeyboardRef: isUsingKeyboardRef,
|
|
166
|
-
dir: direction,
|
|
167
167
|
open: open,
|
|
168
168
|
onOpenChange: handleOpenChange,
|
|
169
169
|
content: content,
|
|
170
|
-
onContentChange: setContent
|
|
171
|
-
|
|
170
|
+
onContentChange: setContent
|
|
171
|
+
}, /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuRootProvider, {
|
|
172
|
+
scope: __scopeMenu,
|
|
173
|
+
onClose: $epM9y$useCallback(()=>handleOpenChange(false)
|
|
172
174
|
, [
|
|
173
175
|
handleOpenChange
|
|
174
176
|
]),
|
|
175
|
-
|
|
176
|
-
|
|
177
|
+
isUsingKeyboardRef: isUsingKeyboardRef,
|
|
178
|
+
dir: direction,
|
|
179
|
+
modal: modal,
|
|
180
|
+
allowPinchZoom: allowPinchZoom
|
|
181
|
+
}, children)));
|
|
177
182
|
};
|
|
178
183
|
/*#__PURE__*/ Object.assign($6cc32821e9371a1c$export$d9b273488cd8ce6f, {
|
|
179
184
|
displayName: $6cc32821e9371a1c$var$MENU_NAME
|
|
180
185
|
});
|
|
181
|
-
/* ---------------------------------------------------------------------------------------------- */ const $6cc32821e9371a1c$var$SUB_NAME = 'MenuSub';
|
|
182
|
-
const $6cc32821e9371a1c$export$71bdb9d1e2909932 = (props)=>{
|
|
183
|
-
const { __scopeMenu: __scopeMenu , children: children , open: open = false , onOpenChange: onOpenChange } = props;
|
|
184
|
-
const parentMenuContext = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$SUB_NAME, __scopeMenu);
|
|
185
|
-
const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);
|
|
186
|
-
const [trigger, setTrigger] = $epM9y$useState(null);
|
|
187
|
-
const [content, setContent] = $epM9y$useState(null);
|
|
188
|
-
const handleOpenChange = $epM9y$useCallbackRef(onOpenChange); // Prevent the parent menu from reopening with open submenus.
|
|
189
|
-
$epM9y$useEffect(()=>{
|
|
190
|
-
if (parentMenuContext.open === false) handleOpenChange(false);
|
|
191
|
-
return ()=>handleOpenChange(false)
|
|
192
|
-
;
|
|
193
|
-
}, [
|
|
194
|
-
parentMenuContext.open,
|
|
195
|
-
handleOpenChange
|
|
196
|
-
]);
|
|
197
|
-
return /*#__PURE__*/ $epM9y$createElement($epM9y$Root, popperScope, /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuProvider, {
|
|
198
|
-
scope: __scopeMenu,
|
|
199
|
-
isSubmenu: true,
|
|
200
|
-
isUsingKeyboardRef: parentMenuContext.isUsingKeyboardRef,
|
|
201
|
-
dir: parentMenuContext.dir,
|
|
202
|
-
open: open,
|
|
203
|
-
onOpenChange: handleOpenChange,
|
|
204
|
-
content: content,
|
|
205
|
-
onContentChange: setContent,
|
|
206
|
-
onRootClose: parentMenuContext.onRootClose,
|
|
207
|
-
contentId: $epM9y$useId(),
|
|
208
|
-
trigger: trigger,
|
|
209
|
-
onTriggerChange: setTrigger,
|
|
210
|
-
triggerId: $epM9y$useId(),
|
|
211
|
-
modal: false
|
|
212
|
-
}, children));
|
|
213
|
-
};
|
|
214
|
-
/*#__PURE__*/ Object.assign($6cc32821e9371a1c$export$71bdb9d1e2909932, {
|
|
215
|
-
displayName: $6cc32821e9371a1c$var$SUB_NAME
|
|
216
|
-
});
|
|
217
186
|
/* -------------------------------------------------------------------------------------------------
|
|
218
187
|
* MenuAnchor
|
|
219
188
|
* -----------------------------------------------------------------------------------------------*/ const $6cc32821e9371a1c$var$ANCHOR_NAME = 'MenuAnchor';
|
|
@@ -234,27 +203,20 @@ const [$6cc32821e9371a1c$var$MenuContentProvider, $6cc32821e9371a1c$var$useMenuC
|
|
|
234
203
|
const $6cc32821e9371a1c$export$479f0f2f71193efe = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
235
204
|
const { forceMount: forceMount , ...contentProps } = props;
|
|
236
205
|
const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
|
|
206
|
+
const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
|
|
237
207
|
return /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$Collection.Provider, {
|
|
238
208
|
scope: props.__scopeMenu
|
|
239
209
|
}, /*#__PURE__*/ $epM9y$createElement($epM9y$Presence, {
|
|
240
210
|
present: forceMount || context.open
|
|
241
211
|
}, /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$Collection.Slot, {
|
|
242
212
|
scope: props.__scopeMenu
|
|
243
|
-
},
|
|
213
|
+
}, rootContext.modal ? /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuRootContentModal, $epM9y$babelruntimehelpersesmextends({}, contentProps, {
|
|
244
214
|
ref: forwardedRef
|
|
245
|
-
})) : /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$
|
|
215
|
+
})) : /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuRootContentNonModal, $epM9y$babelruntimehelpersesmextends({}, contentProps, {
|
|
246
216
|
ref: forwardedRef
|
|
247
217
|
})))));
|
|
248
218
|
});
|
|
249
|
-
/* ---------------------------------------------------------------------------------------------- */ const $6cc32821e9371a1c$var$
|
|
250
|
-
const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
|
|
251
|
-
return context.modal ? /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuRootContentModal, $epM9y$babelruntimehelpersesmextends({}, props, {
|
|
252
|
-
ref: forwardedRef
|
|
253
|
-
})) : /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuRootContentNonModal, $epM9y$babelruntimehelpersesmextends({}, props, {
|
|
254
|
-
ref: forwardedRef
|
|
255
|
-
}));
|
|
256
|
-
});
|
|
257
|
-
const $6cc32821e9371a1c$var$MenuRootContentModal = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
219
|
+
/* ---------------------------------------------------------------------------------------------- */ const $6cc32821e9371a1c$var$MenuRootContentModal = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
258
220
|
const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
|
|
259
221
|
const ref = $epM9y$useRef(null);
|
|
260
222
|
const composedRefs = $epM9y$useComposedRefs(forwardedRef, ref); // Hide everything from ARIA except the `MenuContent`
|
|
@@ -287,52 +249,10 @@ const $6cc32821e9371a1c$var$MenuRootContentNonModal = /*#__PURE__*/ $epM9y$forwa
|
|
|
287
249
|
onDismiss: ()=>context.onOpenChange(false)
|
|
288
250
|
}));
|
|
289
251
|
});
|
|
290
|
-
/* ---------------------------------------------------------------------------------------------- */ const $6cc32821e9371a1c$var$MenuSubContent = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
291
|
-
const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
|
|
292
|
-
const ref = $epM9y$useRef(null);
|
|
293
|
-
const composedRefs = $epM9y$useComposedRefs(forwardedRef, ref);
|
|
294
|
-
return context.isSubmenu ? /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuContentImpl, $epM9y$babelruntimehelpersesmextends({
|
|
295
|
-
id: context.contentId,
|
|
296
|
-
"aria-labelledby": context.triggerId
|
|
297
|
-
}, props, {
|
|
298
|
-
ref: composedRefs,
|
|
299
|
-
align: "start",
|
|
300
|
-
side: context.dir === 'rtl' ? 'left' : 'right',
|
|
301
|
-
portalled: true,
|
|
302
|
-
disableOutsidePointerEvents: false,
|
|
303
|
-
disableOutsideScroll: false,
|
|
304
|
-
trapFocus: false,
|
|
305
|
-
onOpenAutoFocus: (event)=>{
|
|
306
|
-
var _ref$current;
|
|
307
|
-
// when opening a submenu, focus content for keyboard users only
|
|
308
|
-
if (context.isUsingKeyboardRef.current) (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.focus();
|
|
309
|
-
event.preventDefault();
|
|
310
|
-
} // The menu might close because of focusing another menu item in the parent menu. We
|
|
311
|
-
,
|
|
312
|
-
onCloseAutoFocus: (event)=>event.preventDefault()
|
|
313
|
-
,
|
|
314
|
-
onFocusOutside: $epM9y$composeEventHandlers(props.onFocusOutside, (event)=>{
|
|
315
|
-
// We prevent closing when the trigger is focused to avoid triggering a re-open animation
|
|
316
|
-
// on pointer interaction.
|
|
317
|
-
if (event.target !== context.trigger) context.onOpenChange(false);
|
|
318
|
-
}),
|
|
319
|
-
onEscapeKeyDown: $epM9y$composeEventHandlers(props.onEscapeKeyDown, context.onRootClose),
|
|
320
|
-
onKeyDown: $epM9y$composeEventHandlers(props.onKeyDown, (event)=>{
|
|
321
|
-
// Submenu key events bubble through portals. We only care about keys in this menu.
|
|
322
|
-
const isKeyDownInside = event.currentTarget.contains(event.target);
|
|
323
|
-
const isCloseKey = $6cc32821e9371a1c$var$SUB_CLOSE_KEYS[context.dir].includes(event.key);
|
|
324
|
-
if (isKeyDownInside && isCloseKey) {
|
|
325
|
-
var _context$trigger;
|
|
326
|
-
context.onOpenChange(false); // We focus manually because we prevented it in `onCloseAutoFocus`
|
|
327
|
-
(_context$trigger = context.trigger) === null || _context$trigger === void 0 || _context$trigger.focus(); // prevent window from scrolling
|
|
328
|
-
event.preventDefault();
|
|
329
|
-
}
|
|
330
|
-
})
|
|
331
|
-
})) : null;
|
|
332
|
-
});
|
|
333
252
|
/* ---------------------------------------------------------------------------------------------- */ const $6cc32821e9371a1c$var$MenuContentImpl = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
334
|
-
const { __scopeMenu: __scopeMenu , loop: loop = false , trapFocus: trapFocus , onOpenAutoFocus: onOpenAutoFocus , onCloseAutoFocus: onCloseAutoFocus , disableOutsidePointerEvents: disableOutsidePointerEvents , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , onDismiss: onDismiss , disableOutsideScroll: disableOutsideScroll ,
|
|
253
|
+
const { __scopeMenu: __scopeMenu , loop: loop = false , trapFocus: trapFocus , onOpenAutoFocus: onOpenAutoFocus , onCloseAutoFocus: onCloseAutoFocus , disableOutsidePointerEvents: disableOutsidePointerEvents , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , onDismiss: onDismiss , disableOutsideScroll: disableOutsideScroll , portalled: portalled , ...contentProps } = props;
|
|
335
254
|
const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, __scopeMenu);
|
|
255
|
+
const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$CONTENT_NAME, __scopeMenu);
|
|
336
256
|
const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);
|
|
337
257
|
const rovingFocusGroupScope = $6cc32821e9371a1c$var$useRovingFocusGroupScope(__scopeMenu);
|
|
338
258
|
const getItems = $6cc32821e9371a1c$var$useCollection(__scopeMenu);
|
|
@@ -348,7 +268,7 @@ const $6cc32821e9371a1c$var$MenuRootContentNonModal = /*#__PURE__*/ $epM9y$forwa
|
|
|
348
268
|
const PortalWrapper = portalled ? $epM9y$Portal : $epM9y$Fragment;
|
|
349
269
|
const ScrollLockWrapper = disableOutsideScroll ? $epM9y$RemoveScroll : $epM9y$Fragment;
|
|
350
270
|
const scrollLockWrapperProps = disableOutsideScroll ? {
|
|
351
|
-
allowPinchZoom: allowPinchZoom
|
|
271
|
+
allowPinchZoom: rootContext.allowPinchZoom
|
|
352
272
|
} : undefined;
|
|
353
273
|
const handleTypeaheadSearch = (key)=>{
|
|
354
274
|
var _items$find, _items$find2;
|
|
@@ -433,20 +353,20 @@ const $6cc32821e9371a1c$var$MenuRootContentNonModal = /*#__PURE__*/ $epM9y$forwa
|
|
|
433
353
|
}, /*#__PURE__*/ $epM9y$createElement($epM9y$Root1, $epM9y$babelruntimehelpersesmextends({
|
|
434
354
|
asChild: true
|
|
435
355
|
}, rovingFocusGroupScope, {
|
|
436
|
-
dir:
|
|
356
|
+
dir: rootContext.dir,
|
|
437
357
|
orientation: "vertical",
|
|
438
358
|
loop: loop,
|
|
439
359
|
currentTabStopId: currentItemId,
|
|
440
360
|
onCurrentTabStopIdChange: setCurrentItemId,
|
|
441
361
|
onEntryFocus: (event)=>{
|
|
442
362
|
// only focus first item when using keyboard
|
|
443
|
-
if (!
|
|
363
|
+
if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();
|
|
444
364
|
}
|
|
445
365
|
}), /*#__PURE__*/ $epM9y$createElement($epM9y$Content, $epM9y$babelruntimehelpersesmextends({
|
|
446
366
|
role: "menu",
|
|
447
367
|
"aria-orientation": "vertical",
|
|
448
368
|
"data-state": $6cc32821e9371a1c$var$getOpenState(context.open),
|
|
449
|
-
dir:
|
|
369
|
+
dir: rootContext.dir
|
|
450
370
|
}, popperScope, contentProps, {
|
|
451
371
|
ref: composedRefs,
|
|
452
372
|
style: {
|
|
@@ -530,7 +450,7 @@ const $6cc32821e9371a1c$var$ITEM_SELECT = 'menu.itemSelect';
|
|
|
530
450
|
const $6cc32821e9371a1c$export$2ce376c2cc3355c8 = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
531
451
|
const { disabled: disabled = false , onSelect: onSelect , ...itemProps } = props;
|
|
532
452
|
const ref = $epM9y$useRef(null);
|
|
533
|
-
const
|
|
453
|
+
const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$ITEM_NAME, props.__scopeMenu);
|
|
534
454
|
const contentContext = $6cc32821e9371a1c$var$useMenuContentContext($6cc32821e9371a1c$var$ITEM_NAME, props.__scopeMenu);
|
|
535
455
|
const composedRefs = $epM9y$useComposedRefs(forwardedRef, ref);
|
|
536
456
|
const isPointerDownRef = $epM9y$useRef(false);
|
|
@@ -547,7 +467,7 @@ const $6cc32821e9371a1c$export$2ce376c2cc3355c8 = /*#__PURE__*/ $epM9y$forwardRe
|
|
|
547
467
|
});
|
|
548
468
|
$epM9y$dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);
|
|
549
469
|
if (itemSelectEvent.defaultPrevented) isPointerDownRef.current = false;
|
|
550
|
-
else
|
|
470
|
+
else rootContext.onClose();
|
|
551
471
|
}
|
|
552
472
|
};
|
|
553
473
|
return /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuItemImpl, $epM9y$babelruntimehelpersesmextends({}, itemProps, {
|
|
@@ -584,131 +504,6 @@ const $6cc32821e9371a1c$export$2ce376c2cc3355c8 = /*#__PURE__*/ $epM9y$forwardRe
|
|
|
584
504
|
/*#__PURE__*/ Object.assign($6cc32821e9371a1c$export$2ce376c2cc3355c8, {
|
|
585
505
|
displayName: $6cc32821e9371a1c$var$ITEM_NAME
|
|
586
506
|
});
|
|
587
|
-
/* -------------------------------------------------------------------------------------------------
|
|
588
|
-
* MenuSubTrigger
|
|
589
|
-
* -----------------------------------------------------------------------------------------------*/ const $6cc32821e9371a1c$var$SUB_TRIGGER_NAME = 'MenuSubTrigger';
|
|
590
|
-
const $6cc32821e9371a1c$export$5fbbb3ba7297405f = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
591
|
-
const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
592
|
-
const contentContext = $6cc32821e9371a1c$var$useMenuContentContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
593
|
-
const openTimerRef = $epM9y$useRef(null);
|
|
594
|
-
const { pointerGraceTimerRef: pointerGraceTimerRef , onPointerGraceIntentChange: onPointerGraceIntentChange } = contentContext;
|
|
595
|
-
const scope = {
|
|
596
|
-
__scopeMenu: props.__scopeMenu
|
|
597
|
-
};
|
|
598
|
-
const clearOpenTimer = $epM9y$useCallback(()=>{
|
|
599
|
-
if (openTimerRef.current) window.clearTimeout(openTimerRef.current);
|
|
600
|
-
openTimerRef.current = null;
|
|
601
|
-
}, []);
|
|
602
|
-
$epM9y$useEffect(()=>clearOpenTimer
|
|
603
|
-
, [
|
|
604
|
-
clearOpenTimer
|
|
605
|
-
]);
|
|
606
|
-
$epM9y$useEffect(()=>{
|
|
607
|
-
const pointerGraceTimer = pointerGraceTimerRef.current;
|
|
608
|
-
return ()=>{
|
|
609
|
-
window.clearTimeout(pointerGraceTimer);
|
|
610
|
-
onPointerGraceIntentChange(null);
|
|
611
|
-
};
|
|
612
|
-
}, [
|
|
613
|
-
pointerGraceTimerRef,
|
|
614
|
-
onPointerGraceIntentChange
|
|
615
|
-
]);
|
|
616
|
-
return context.isSubmenu ? /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$export$9fa5ebd18bee4d43, $epM9y$babelruntimehelpersesmextends({
|
|
617
|
-
asChild: true
|
|
618
|
-
}, scope), /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuItemImpl, $epM9y$babelruntimehelpersesmextends({
|
|
619
|
-
id: context.triggerId,
|
|
620
|
-
"aria-haspopup": "menu",
|
|
621
|
-
"aria-expanded": context.open,
|
|
622
|
-
"aria-controls": context.contentId,
|
|
623
|
-
"data-state": $6cc32821e9371a1c$var$getOpenState(context.open)
|
|
624
|
-
}, props, {
|
|
625
|
-
ref: $epM9y$composeRefs(forwardedRef, context.onTriggerChange) // This is redundant for mouse users but we cannot determine pointer type from
|
|
626
|
-
,
|
|
627
|
-
onClick: (event)=>{
|
|
628
|
-
var _props$onClick;
|
|
629
|
-
(_props$onClick = props.onClick) === null || _props$onClick === void 0 || _props$onClick.call(props, event);
|
|
630
|
-
if (props.disabled || event.defaultPrevented) return;
|
|
631
|
-
/**
|
|
632
|
-
* We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)
|
|
633
|
-
* and we rely heavily on `onFocusOutside` for submenus to close when switching
|
|
634
|
-
* between separate submenus.
|
|
635
|
-
*/ event.currentTarget.focus();
|
|
636
|
-
if (!context.open) context.onOpenChange(true);
|
|
637
|
-
},
|
|
638
|
-
onPointerMove: $epM9y$composeEventHandlers(props.onPointerMove, $6cc32821e9371a1c$var$whenMouse((event)=>{
|
|
639
|
-
contentContext.onItemEnter(event);
|
|
640
|
-
if (event.defaultPrevented) return;
|
|
641
|
-
if (!props.disabled && !context.open && !openTimerRef.current) {
|
|
642
|
-
contentContext.onPointerGraceIntentChange(null);
|
|
643
|
-
openTimerRef.current = window.setTimeout(()=>{
|
|
644
|
-
context.onOpenChange(true);
|
|
645
|
-
clearOpenTimer();
|
|
646
|
-
}, 100);
|
|
647
|
-
}
|
|
648
|
-
})),
|
|
649
|
-
onPointerLeave: $epM9y$composeEventHandlers(props.onPointerLeave, $6cc32821e9371a1c$var$whenMouse((event)=>{
|
|
650
|
-
var _context$content;
|
|
651
|
-
clearOpenTimer();
|
|
652
|
-
const contentRect = (_context$content = context.content) === null || _context$content === void 0 ? void 0 : _context$content.getBoundingClientRect();
|
|
653
|
-
if (contentRect) {
|
|
654
|
-
var _context$content2;
|
|
655
|
-
// TODO: make sure to update this when we change positioning logic
|
|
656
|
-
const side = (_context$content2 = context.content) === null || _context$content2 === void 0 ? void 0 : _context$content2.dataset.side;
|
|
657
|
-
const rightSide = side === 'right';
|
|
658
|
-
const bleed = rightSide ? -5 : 5;
|
|
659
|
-
const contentNearEdge = contentRect[rightSide ? 'left' : 'right'];
|
|
660
|
-
const contentFarEdge = contentRect[rightSide ? 'right' : 'left'];
|
|
661
|
-
contentContext.onPointerGraceIntentChange({
|
|
662
|
-
area: [
|
|
663
|
-
// consistently within polygon bounds
|
|
664
|
-
{
|
|
665
|
-
x: event.clientX + bleed,
|
|
666
|
-
y: event.clientY
|
|
667
|
-
},
|
|
668
|
-
{
|
|
669
|
-
x: contentNearEdge,
|
|
670
|
-
y: contentRect.top
|
|
671
|
-
},
|
|
672
|
-
{
|
|
673
|
-
x: contentFarEdge,
|
|
674
|
-
y: contentRect.top
|
|
675
|
-
},
|
|
676
|
-
{
|
|
677
|
-
x: contentFarEdge,
|
|
678
|
-
y: contentRect.bottom
|
|
679
|
-
},
|
|
680
|
-
{
|
|
681
|
-
x: contentNearEdge,
|
|
682
|
-
y: contentRect.bottom
|
|
683
|
-
}
|
|
684
|
-
],
|
|
685
|
-
side: side
|
|
686
|
-
});
|
|
687
|
-
window.clearTimeout(pointerGraceTimerRef.current);
|
|
688
|
-
pointerGraceTimerRef.current = window.setTimeout(()=>contentContext.onPointerGraceIntentChange(null)
|
|
689
|
-
, 300);
|
|
690
|
-
} else {
|
|
691
|
-
contentContext.onTriggerLeave(event);
|
|
692
|
-
if (event.defaultPrevented) return; // There's 100ms where the user may leave an item before the submenu was opened.
|
|
693
|
-
contentContext.onPointerGraceIntentChange(null);
|
|
694
|
-
}
|
|
695
|
-
})),
|
|
696
|
-
onKeyDown: $epM9y$composeEventHandlers(props.onKeyDown, (event)=>{
|
|
697
|
-
const isTypingAhead = contentContext.searchRef.current !== '';
|
|
698
|
-
if (props.disabled || isTypingAhead && event.key === ' ') return;
|
|
699
|
-
if ($6cc32821e9371a1c$var$SUB_OPEN_KEYS[context.dir].includes(event.key)) {
|
|
700
|
-
var _context$content3;
|
|
701
|
-
context.onOpenChange(true); // The trigger may hold focus if opened via pointer interaction
|
|
702
|
-
// so we ensure content is given focus again when switching to keyboard.
|
|
703
|
-
(_context$content3 = context.content) === null || _context$content3 === void 0 || _context$content3.focus(); // prevent window from scrolling
|
|
704
|
-
event.preventDefault();
|
|
705
|
-
}
|
|
706
|
-
})
|
|
707
|
-
}))) : null;
|
|
708
|
-
});
|
|
709
|
-
/*#__PURE__*/ Object.assign($6cc32821e9371a1c$export$5fbbb3ba7297405f, {
|
|
710
|
-
displayName: $6cc32821e9371a1c$var$SUB_TRIGGER_NAME
|
|
711
|
-
});
|
|
712
507
|
/* ---------------------------------------------------------------------------------------------- */ const $6cc32821e9371a1c$var$MenuItemImpl = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
713
508
|
const { __scopeMenu: __scopeMenu , disabled: disabled = false , textValue: textValue , ...itemProps } = props;
|
|
714
509
|
const contentContext = $6cc32821e9371a1c$var$useMenuContentContext($6cc32821e9371a1c$var$ITEM_NAME, __scopeMenu);
|
|
@@ -877,6 +672,227 @@ const $6cc32821e9371a1c$export$bcdda4773debf5fa = /*#__PURE__*/ $epM9y$forwardRe
|
|
|
877
672
|
/*#__PURE__*/ Object.assign($6cc32821e9371a1c$export$bcdda4773debf5fa, {
|
|
878
673
|
displayName: $6cc32821e9371a1c$var$ARROW_NAME
|
|
879
674
|
});
|
|
675
|
+
/* -------------------------------------------------------------------------------------------------
|
|
676
|
+
* MenuSub
|
|
677
|
+
* -----------------------------------------------------------------------------------------------*/ const $6cc32821e9371a1c$var$SUB_NAME = 'MenuSub';
|
|
678
|
+
const [$6cc32821e9371a1c$var$MenuSubProvider, $6cc32821e9371a1c$var$useMenuSubContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$SUB_NAME);
|
|
679
|
+
const $6cc32821e9371a1c$export$71bdb9d1e2909932 = (props)=>{
|
|
680
|
+
const { __scopeMenu: __scopeMenu , children: children , open: open = false , onOpenChange: onOpenChange } = props;
|
|
681
|
+
const parentMenuContext = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$SUB_NAME, __scopeMenu);
|
|
682
|
+
const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);
|
|
683
|
+
const [trigger, setTrigger] = $epM9y$useState(null);
|
|
684
|
+
const [content, setContent] = $epM9y$useState(null);
|
|
685
|
+
const handleOpenChange = $epM9y$useCallbackRef(onOpenChange); // Prevent the parent menu from reopening with open submenus.
|
|
686
|
+
$epM9y$useEffect(()=>{
|
|
687
|
+
if (parentMenuContext.open === false) handleOpenChange(false);
|
|
688
|
+
return ()=>handleOpenChange(false)
|
|
689
|
+
;
|
|
690
|
+
}, [
|
|
691
|
+
parentMenuContext.open,
|
|
692
|
+
handleOpenChange
|
|
693
|
+
]);
|
|
694
|
+
return /*#__PURE__*/ $epM9y$createElement($epM9y$Root, popperScope, /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuProvider, {
|
|
695
|
+
scope: __scopeMenu,
|
|
696
|
+
open: open,
|
|
697
|
+
onOpenChange: handleOpenChange,
|
|
698
|
+
content: content,
|
|
699
|
+
onContentChange: setContent
|
|
700
|
+
}, /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuSubProvider, {
|
|
701
|
+
scope: __scopeMenu,
|
|
702
|
+
contentId: $epM9y$useId(),
|
|
703
|
+
triggerId: $epM9y$useId(),
|
|
704
|
+
trigger: trigger,
|
|
705
|
+
onTriggerChange: setTrigger
|
|
706
|
+
}, children)));
|
|
707
|
+
};
|
|
708
|
+
/*#__PURE__*/ Object.assign($6cc32821e9371a1c$export$71bdb9d1e2909932, {
|
|
709
|
+
displayName: $6cc32821e9371a1c$var$SUB_NAME
|
|
710
|
+
});
|
|
711
|
+
/* -------------------------------------------------------------------------------------------------
|
|
712
|
+
* MenuSubTrigger
|
|
713
|
+
* -----------------------------------------------------------------------------------------------*/ const $6cc32821e9371a1c$var$SUB_TRIGGER_NAME = 'MenuSubTrigger';
|
|
714
|
+
const $6cc32821e9371a1c$export$5fbbb3ba7297405f = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
715
|
+
const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
716
|
+
const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
717
|
+
const subContext = $6cc32821e9371a1c$var$useMenuSubContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
718
|
+
const contentContext = $6cc32821e9371a1c$var$useMenuContentContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
719
|
+
const openTimerRef = $epM9y$useRef(null);
|
|
720
|
+
const { pointerGraceTimerRef: pointerGraceTimerRef , onPointerGraceIntentChange: onPointerGraceIntentChange } = contentContext;
|
|
721
|
+
const scope = {
|
|
722
|
+
__scopeMenu: props.__scopeMenu
|
|
723
|
+
};
|
|
724
|
+
const clearOpenTimer = $epM9y$useCallback(()=>{
|
|
725
|
+
if (openTimerRef.current) window.clearTimeout(openTimerRef.current);
|
|
726
|
+
openTimerRef.current = null;
|
|
727
|
+
}, []);
|
|
728
|
+
$epM9y$useEffect(()=>clearOpenTimer
|
|
729
|
+
, [
|
|
730
|
+
clearOpenTimer
|
|
731
|
+
]);
|
|
732
|
+
$epM9y$useEffect(()=>{
|
|
733
|
+
const pointerGraceTimer = pointerGraceTimerRef.current;
|
|
734
|
+
return ()=>{
|
|
735
|
+
window.clearTimeout(pointerGraceTimer);
|
|
736
|
+
onPointerGraceIntentChange(null);
|
|
737
|
+
};
|
|
738
|
+
}, [
|
|
739
|
+
pointerGraceTimerRef,
|
|
740
|
+
onPointerGraceIntentChange
|
|
741
|
+
]);
|
|
742
|
+
return /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$export$9fa5ebd18bee4d43, $epM9y$babelruntimehelpersesmextends({
|
|
743
|
+
asChild: true
|
|
744
|
+
}, scope), /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuItemImpl, $epM9y$babelruntimehelpersesmextends({
|
|
745
|
+
id: subContext.triggerId,
|
|
746
|
+
"aria-haspopup": "menu",
|
|
747
|
+
"aria-expanded": context.open,
|
|
748
|
+
"aria-controls": subContext.contentId,
|
|
749
|
+
"data-state": $6cc32821e9371a1c$var$getOpenState(context.open)
|
|
750
|
+
}, props, {
|
|
751
|
+
ref: $epM9y$composeRefs(forwardedRef, subContext.onTriggerChange) // This is redundant for mouse users but we cannot determine pointer type from
|
|
752
|
+
,
|
|
753
|
+
onClick: (event)=>{
|
|
754
|
+
var _props$onClick;
|
|
755
|
+
(_props$onClick = props.onClick) === null || _props$onClick === void 0 || _props$onClick.call(props, event);
|
|
756
|
+
if (props.disabled || event.defaultPrevented) return;
|
|
757
|
+
/**
|
|
758
|
+
* We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)
|
|
759
|
+
* and we rely heavily on `onFocusOutside` for submenus to close when switching
|
|
760
|
+
* between separate submenus.
|
|
761
|
+
*/ event.currentTarget.focus();
|
|
762
|
+
if (!context.open) context.onOpenChange(true);
|
|
763
|
+
},
|
|
764
|
+
onPointerMove: $epM9y$composeEventHandlers(props.onPointerMove, $6cc32821e9371a1c$var$whenMouse((event)=>{
|
|
765
|
+
contentContext.onItemEnter(event);
|
|
766
|
+
if (event.defaultPrevented) return;
|
|
767
|
+
if (!props.disabled && !context.open && !openTimerRef.current) {
|
|
768
|
+
contentContext.onPointerGraceIntentChange(null);
|
|
769
|
+
openTimerRef.current = window.setTimeout(()=>{
|
|
770
|
+
context.onOpenChange(true);
|
|
771
|
+
clearOpenTimer();
|
|
772
|
+
}, 100);
|
|
773
|
+
}
|
|
774
|
+
})),
|
|
775
|
+
onPointerLeave: $epM9y$composeEventHandlers(props.onPointerLeave, $6cc32821e9371a1c$var$whenMouse((event)=>{
|
|
776
|
+
var _context$content;
|
|
777
|
+
clearOpenTimer();
|
|
778
|
+
const contentRect = (_context$content = context.content) === null || _context$content === void 0 ? void 0 : _context$content.getBoundingClientRect();
|
|
779
|
+
if (contentRect) {
|
|
780
|
+
var _context$content2;
|
|
781
|
+
// TODO: make sure to update this when we change positioning logic
|
|
782
|
+
const side = (_context$content2 = context.content) === null || _context$content2 === void 0 ? void 0 : _context$content2.dataset.side;
|
|
783
|
+
const rightSide = side === 'right';
|
|
784
|
+
const bleed = rightSide ? -5 : 5;
|
|
785
|
+
const contentNearEdge = contentRect[rightSide ? 'left' : 'right'];
|
|
786
|
+
const contentFarEdge = contentRect[rightSide ? 'right' : 'left'];
|
|
787
|
+
contentContext.onPointerGraceIntentChange({
|
|
788
|
+
area: [
|
|
789
|
+
// consistently within polygon bounds
|
|
790
|
+
{
|
|
791
|
+
x: event.clientX + bleed,
|
|
792
|
+
y: event.clientY
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
x: contentNearEdge,
|
|
796
|
+
y: contentRect.top
|
|
797
|
+
},
|
|
798
|
+
{
|
|
799
|
+
x: contentFarEdge,
|
|
800
|
+
y: contentRect.top
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
x: contentFarEdge,
|
|
804
|
+
y: contentRect.bottom
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
x: contentNearEdge,
|
|
808
|
+
y: contentRect.bottom
|
|
809
|
+
}
|
|
810
|
+
],
|
|
811
|
+
side: side
|
|
812
|
+
});
|
|
813
|
+
window.clearTimeout(pointerGraceTimerRef.current);
|
|
814
|
+
pointerGraceTimerRef.current = window.setTimeout(()=>contentContext.onPointerGraceIntentChange(null)
|
|
815
|
+
, 300);
|
|
816
|
+
} else {
|
|
817
|
+
contentContext.onTriggerLeave(event);
|
|
818
|
+
if (event.defaultPrevented) return; // There's 100ms where the user may leave an item before the submenu was opened.
|
|
819
|
+
contentContext.onPointerGraceIntentChange(null);
|
|
820
|
+
}
|
|
821
|
+
})),
|
|
822
|
+
onKeyDown: $epM9y$composeEventHandlers(props.onKeyDown, (event)=>{
|
|
823
|
+
const isTypingAhead = contentContext.searchRef.current !== '';
|
|
824
|
+
if (props.disabled || isTypingAhead && event.key === ' ') return;
|
|
825
|
+
if ($6cc32821e9371a1c$var$SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {
|
|
826
|
+
var _context$content3;
|
|
827
|
+
context.onOpenChange(true); // The trigger may hold focus if opened via pointer interaction
|
|
828
|
+
// so we ensure content is given focus again when switching to keyboard.
|
|
829
|
+
(_context$content3 = context.content) === null || _context$content3 === void 0 || _context$content3.focus(); // prevent window from scrolling
|
|
830
|
+
event.preventDefault();
|
|
831
|
+
}
|
|
832
|
+
})
|
|
833
|
+
})));
|
|
834
|
+
});
|
|
835
|
+
/*#__PURE__*/ Object.assign($6cc32821e9371a1c$export$5fbbb3ba7297405f, {
|
|
836
|
+
displayName: $6cc32821e9371a1c$var$SUB_TRIGGER_NAME
|
|
837
|
+
});
|
|
838
|
+
/* -------------------------------------------------------------------------------------------------
|
|
839
|
+
* MenuSubContent
|
|
840
|
+
* -----------------------------------------------------------------------------------------------*/ const $6cc32821e9371a1c$var$SUB_CONTENT_NAME = 'MenuSubContent';
|
|
841
|
+
const $6cc32821e9371a1c$export$e7142ab31822bde6 = /*#__PURE__*/ $epM9y$forwardRef((props, forwardedRef)=>{
|
|
842
|
+
const { forceMount: forceMount , ...subContentProps } = props;
|
|
843
|
+
const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
|
|
844
|
+
const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
|
|
845
|
+
const subContext = $6cc32821e9371a1c$var$useMenuSubContext($6cc32821e9371a1c$var$SUB_CONTENT_NAME, props.__scopeMenu);
|
|
846
|
+
const ref = $epM9y$useRef(null);
|
|
847
|
+
const composedRefs = $epM9y$useComposedRefs(forwardedRef, ref);
|
|
848
|
+
return /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$Collection.Provider, {
|
|
849
|
+
scope: props.__scopeMenu
|
|
850
|
+
}, /*#__PURE__*/ $epM9y$createElement($epM9y$Presence, {
|
|
851
|
+
present: forceMount || context.open
|
|
852
|
+
}, /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$Collection.Slot, {
|
|
853
|
+
scope: props.__scopeMenu
|
|
854
|
+
}, /*#__PURE__*/ $epM9y$createElement($6cc32821e9371a1c$var$MenuContentImpl, $epM9y$babelruntimehelpersesmextends({
|
|
855
|
+
id: subContext.contentId,
|
|
856
|
+
"aria-labelledby": subContext.triggerId
|
|
857
|
+
}, subContentProps, {
|
|
858
|
+
ref: composedRefs,
|
|
859
|
+
align: "start",
|
|
860
|
+
side: rootContext.dir === 'rtl' ? 'left' : 'right',
|
|
861
|
+
portalled: true,
|
|
862
|
+
disableOutsidePointerEvents: false,
|
|
863
|
+
disableOutsideScroll: false,
|
|
864
|
+
trapFocus: false,
|
|
865
|
+
onOpenAutoFocus: (event)=>{
|
|
866
|
+
var _ref$current;
|
|
867
|
+
// when opening a submenu, focus content for keyboard users only
|
|
868
|
+
if (rootContext.isUsingKeyboardRef.current) (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.focus();
|
|
869
|
+
event.preventDefault();
|
|
870
|
+
} // The menu might close because of focusing another menu item in the parent menu. We
|
|
871
|
+
,
|
|
872
|
+
onCloseAutoFocus: (event)=>event.preventDefault()
|
|
873
|
+
,
|
|
874
|
+
onFocusOutside: $epM9y$composeEventHandlers(props.onFocusOutside, (event)=>{
|
|
875
|
+
// We prevent closing when the trigger is focused to avoid triggering a re-open animation
|
|
876
|
+
// on pointer interaction.
|
|
877
|
+
if (event.target !== subContext.trigger) context.onOpenChange(false);
|
|
878
|
+
}),
|
|
879
|
+
onEscapeKeyDown: $epM9y$composeEventHandlers(props.onEscapeKeyDown, rootContext.onClose),
|
|
880
|
+
onKeyDown: $epM9y$composeEventHandlers(props.onKeyDown, (event)=>{
|
|
881
|
+
// Submenu key events bubble through portals. We only care about keys in this menu.
|
|
882
|
+
const isKeyDownInside = event.currentTarget.contains(event.target);
|
|
883
|
+
const isCloseKey = $6cc32821e9371a1c$var$SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);
|
|
884
|
+
if (isKeyDownInside && isCloseKey) {
|
|
885
|
+
var _subContext$trigger;
|
|
886
|
+
context.onOpenChange(false); // We focus manually because we prevented it in `onCloseAutoFocus`
|
|
887
|
+
(_subContext$trigger = subContext.trigger) === null || _subContext$trigger === void 0 || _subContext$trigger.focus(); // prevent window from scrolling
|
|
888
|
+
event.preventDefault();
|
|
889
|
+
}
|
|
890
|
+
})
|
|
891
|
+
})))));
|
|
892
|
+
});
|
|
893
|
+
/*#__PURE__*/ Object.assign($6cc32821e9371a1c$export$e7142ab31822bde6, {
|
|
894
|
+
displayName: $6cc32821e9371a1c$var$SUB_CONTENT_NAME
|
|
895
|
+
});
|
|
880
896
|
/* -----------------------------------------------------------------------------------------------*/ function $6cc32821e9371a1c$var$getOpenState(open) {
|
|
881
897
|
return open ? 'open' : 'closed';
|
|
882
898
|
}
|
|
@@ -956,9 +972,7 @@ function $6cc32821e9371a1c$var$whenMouse(handler) {
|
|
|
956
972
|
;
|
|
957
973
|
}
|
|
958
974
|
const $6cc32821e9371a1c$export$be92b6f5f03c0fe9 = $6cc32821e9371a1c$export$d9b273488cd8ce6f;
|
|
959
|
-
const $6cc32821e9371a1c$export$d7a01e11500dfb6f = $6cc32821e9371a1c$export$71bdb9d1e2909932;
|
|
960
975
|
const $6cc32821e9371a1c$export$b688253958b8dfe7 = $6cc32821e9371a1c$export$9fa5ebd18bee4d43;
|
|
961
|
-
const $6cc32821e9371a1c$export$2ea8a7a591ac5eac = $6cc32821e9371a1c$export$5fbbb3ba7297405f;
|
|
962
976
|
const $6cc32821e9371a1c$export$7c6e2c02157bb7d2 = $6cc32821e9371a1c$export$479f0f2f71193efe;
|
|
963
977
|
const $6cc32821e9371a1c$export$eb2fcfdbd7ba97d4 = $6cc32821e9371a1c$export$22a631d1f72787bb;
|
|
964
978
|
const $6cc32821e9371a1c$export$b04be29aa201d4f5 = $6cc32821e9371a1c$export$dd37bec0e8a99143;
|
|
@@ -969,9 +983,12 @@ const $6cc32821e9371a1c$export$371ab307eab489c0 = $6cc32821e9371a1c$export$69bd2
|
|
|
969
983
|
const $6cc32821e9371a1c$export$c3468e2714d175fa = $6cc32821e9371a1c$export$a2593e23056970a3;
|
|
970
984
|
const $6cc32821e9371a1c$export$1ff3c3f08ae963c0 = $6cc32821e9371a1c$export$1cec7dcdd713e220;
|
|
971
985
|
const $6cc32821e9371a1c$export$21b07c8f274aebd5 = $6cc32821e9371a1c$export$bcdda4773debf5fa;
|
|
986
|
+
const $6cc32821e9371a1c$export$d7a01e11500dfb6f = $6cc32821e9371a1c$export$71bdb9d1e2909932;
|
|
987
|
+
const $6cc32821e9371a1c$export$2ea8a7a591ac5eac = $6cc32821e9371a1c$export$5fbbb3ba7297405f;
|
|
988
|
+
const $6cc32821e9371a1c$export$6d4de93b380beddf = $6cc32821e9371a1c$export$e7142ab31822bde6;
|
|
972
989
|
|
|
973
990
|
|
|
974
991
|
|
|
975
992
|
|
|
976
|
-
export {$6cc32821e9371a1c$export$4027731b685e72eb as createMenuScope, $6cc32821e9371a1c$export$d9b273488cd8ce6f as Menu, $6cc32821e9371a1c$export$
|
|
993
|
+
export {$6cc32821e9371a1c$export$4027731b685e72eb as createMenuScope, $6cc32821e9371a1c$export$d9b273488cd8ce6f as Menu, $6cc32821e9371a1c$export$9fa5ebd18bee4d43 as MenuAnchor, $6cc32821e9371a1c$export$479f0f2f71193efe as MenuContent, $6cc32821e9371a1c$export$22a631d1f72787bb as MenuGroup, $6cc32821e9371a1c$export$dd37bec0e8a99143 as MenuLabel, $6cc32821e9371a1c$export$2ce376c2cc3355c8 as MenuItem, $6cc32821e9371a1c$export$f6f243521332502d as MenuCheckboxItem, $6cc32821e9371a1c$export$ea2200c9eee416b3 as MenuRadioGroup, $6cc32821e9371a1c$export$69bd225e9817f6d0 as MenuRadioItem, $6cc32821e9371a1c$export$a2593e23056970a3 as MenuItemIndicator, $6cc32821e9371a1c$export$1cec7dcdd713e220 as MenuSeparator, $6cc32821e9371a1c$export$bcdda4773debf5fa as MenuArrow, $6cc32821e9371a1c$export$71bdb9d1e2909932 as MenuSub, $6cc32821e9371a1c$export$5fbbb3ba7297405f as MenuSubTrigger, $6cc32821e9371a1c$export$e7142ab31822bde6 as MenuSubContent, $6cc32821e9371a1c$export$be92b6f5f03c0fe9 as Root, $6cc32821e9371a1c$export$b688253958b8dfe7 as Anchor, $6cc32821e9371a1c$export$7c6e2c02157bb7d2 as Content, $6cc32821e9371a1c$export$eb2fcfdbd7ba97d4 as Group, $6cc32821e9371a1c$export$b04be29aa201d4f5 as Label, $6cc32821e9371a1c$export$6d08773d2e66f8f2 as Item, $6cc32821e9371a1c$export$16ce288f89fa631c as CheckboxItem, $6cc32821e9371a1c$export$a98f0dcb43a68a25 as RadioGroup, $6cc32821e9371a1c$export$371ab307eab489c0 as RadioItem, $6cc32821e9371a1c$export$c3468e2714d175fa as ItemIndicator, $6cc32821e9371a1c$export$1ff3c3f08ae963c0 as Separator, $6cc32821e9371a1c$export$21b07c8f274aebd5 as Arrow, $6cc32821e9371a1c$export$d7a01e11500dfb6f as Sub, $6cc32821e9371a1c$export$2ea8a7a591ac5eac as SubTrigger, $6cc32821e9371a1c$export$6d4de93b380beddf as SubContent};
|
|
977
994
|
//# sourceMappingURL=index.module.js.map
|