@radix-ui/react-menu 0.1.7-rc.21 → 0.1.7-rc.22
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 +30 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +248 -232
- package/dist/index.js.map +1 -1
- package/dist/index.module.js +249 -233
- package/dist/index.module.js.map +1 -1
- package/package.json +15 -15
package/dist/index.js
CHANGED
|
@@ -44,23 +44,22 @@ var $213e4d2df823067d$exports = {};
|
|
|
44
44
|
|
|
45
45
|
$parcel$export($213e4d2df823067d$exports, "createMenuScope", () => $213e4d2df823067d$export$4027731b685e72eb);
|
|
46
46
|
$parcel$export($213e4d2df823067d$exports, "Menu", () => $213e4d2df823067d$export$d9b273488cd8ce6f);
|
|
47
|
-
$parcel$export($213e4d2df823067d$exports, "MenuSub", () => $213e4d2df823067d$export$71bdb9d1e2909932);
|
|
48
47
|
$parcel$export($213e4d2df823067d$exports, "MenuAnchor", () => $213e4d2df823067d$export$9fa5ebd18bee4d43);
|
|
49
48
|
$parcel$export($213e4d2df823067d$exports, "MenuContent", () => $213e4d2df823067d$export$479f0f2f71193efe);
|
|
50
49
|
$parcel$export($213e4d2df823067d$exports, "MenuGroup", () => $213e4d2df823067d$export$22a631d1f72787bb);
|
|
51
50
|
$parcel$export($213e4d2df823067d$exports, "MenuLabel", () => $213e4d2df823067d$export$dd37bec0e8a99143);
|
|
52
51
|
$parcel$export($213e4d2df823067d$exports, "MenuItem", () => $213e4d2df823067d$export$2ce376c2cc3355c8);
|
|
53
|
-
$parcel$export($213e4d2df823067d$exports, "MenuSubTrigger", () => $213e4d2df823067d$export$5fbbb3ba7297405f);
|
|
54
52
|
$parcel$export($213e4d2df823067d$exports, "MenuCheckboxItem", () => $213e4d2df823067d$export$f6f243521332502d);
|
|
55
53
|
$parcel$export($213e4d2df823067d$exports, "MenuRadioGroup", () => $213e4d2df823067d$export$ea2200c9eee416b3);
|
|
56
54
|
$parcel$export($213e4d2df823067d$exports, "MenuRadioItem", () => $213e4d2df823067d$export$69bd225e9817f6d0);
|
|
57
55
|
$parcel$export($213e4d2df823067d$exports, "MenuItemIndicator", () => $213e4d2df823067d$export$a2593e23056970a3);
|
|
58
56
|
$parcel$export($213e4d2df823067d$exports, "MenuSeparator", () => $213e4d2df823067d$export$1cec7dcdd713e220);
|
|
59
57
|
$parcel$export($213e4d2df823067d$exports, "MenuArrow", () => $213e4d2df823067d$export$bcdda4773debf5fa);
|
|
58
|
+
$parcel$export($213e4d2df823067d$exports, "MenuSub", () => $213e4d2df823067d$export$71bdb9d1e2909932);
|
|
59
|
+
$parcel$export($213e4d2df823067d$exports, "MenuSubTrigger", () => $213e4d2df823067d$export$5fbbb3ba7297405f);
|
|
60
|
+
$parcel$export($213e4d2df823067d$exports, "MenuSubContent", () => $213e4d2df823067d$export$e7142ab31822bde6);
|
|
60
61
|
$parcel$export($213e4d2df823067d$exports, "Root", () => $213e4d2df823067d$export$be92b6f5f03c0fe9);
|
|
61
|
-
$parcel$export($213e4d2df823067d$exports, "Sub", () => $213e4d2df823067d$export$d7a01e11500dfb6f);
|
|
62
62
|
$parcel$export($213e4d2df823067d$exports, "Anchor", () => $213e4d2df823067d$export$b688253958b8dfe7);
|
|
63
|
-
$parcel$export($213e4d2df823067d$exports, "SubTrigger", () => $213e4d2df823067d$export$2ea8a7a591ac5eac);
|
|
64
63
|
$parcel$export($213e4d2df823067d$exports, "Content", () => $213e4d2df823067d$export$7c6e2c02157bb7d2);
|
|
65
64
|
$parcel$export($213e4d2df823067d$exports, "Group", () => $213e4d2df823067d$export$eb2fcfdbd7ba97d4);
|
|
66
65
|
$parcel$export($213e4d2df823067d$exports, "Label", () => $213e4d2df823067d$export$b04be29aa201d4f5);
|
|
@@ -71,6 +70,9 @@ $parcel$export($213e4d2df823067d$exports, "RadioItem", () => $213e4d2df823067d$e
|
|
|
71
70
|
$parcel$export($213e4d2df823067d$exports, "ItemIndicator", () => $213e4d2df823067d$export$c3468e2714d175fa);
|
|
72
71
|
$parcel$export($213e4d2df823067d$exports, "Separator", () => $213e4d2df823067d$export$1ff3c3f08ae963c0);
|
|
73
72
|
$parcel$export($213e4d2df823067d$exports, "Arrow", () => $213e4d2df823067d$export$21b07c8f274aebd5);
|
|
73
|
+
$parcel$export($213e4d2df823067d$exports, "Sub", () => $213e4d2df823067d$export$d7a01e11500dfb6f);
|
|
74
|
+
$parcel$export($213e4d2df823067d$exports, "SubTrigger", () => $213e4d2df823067d$export$2ea8a7a591ac5eac);
|
|
75
|
+
$parcel$export($213e4d2df823067d$exports, "SubContent", () => $213e4d2df823067d$export$6d4de93b380beddf);
|
|
74
76
|
|
|
75
77
|
|
|
76
78
|
|
|
@@ -140,6 +142,7 @@ const [$213e4d2df823067d$var$createMenuContext, $213e4d2df823067d$export$4027731
|
|
|
140
142
|
const $213e4d2df823067d$var$usePopperScope = $cnSS2$radixuireactpopper.createPopperScope();
|
|
141
143
|
const $213e4d2df823067d$var$useRovingFocusGroupScope = $cnSS2$radixuireactrovingfocus.createRovingFocusGroupScope();
|
|
142
144
|
const [$213e4d2df823067d$var$MenuProvider, $213e4d2df823067d$var$useMenuContext] = $213e4d2df823067d$var$createMenuContext($213e4d2df823067d$var$MENU_NAME);
|
|
145
|
+
const [$213e4d2df823067d$var$MenuRootProvider, $213e4d2df823067d$var$useMenuRootContext] = $213e4d2df823067d$var$createMenuContext($213e4d2df823067d$var$MENU_NAME);
|
|
143
146
|
const $213e4d2df823067d$export$d9b273488cd8ce6f = (props)=>{
|
|
144
147
|
const { __scopeMenu: __scopeMenu , open: open = false , children: children , dir: dir , onOpenChange: onOpenChange , modal: modal = true } = props;
|
|
145
148
|
const popperScope = $213e4d2df823067d$var$usePopperScope(__scopeMenu);
|
|
@@ -180,59 +183,24 @@ const $213e4d2df823067d$export$d9b273488cd8ce6f = (props)=>{
|
|
|
180
183
|
}, []);
|
|
181
184
|
return /*#__PURE__*/ $cnSS2$react.createElement($cnSS2$radixuireactpopper.Root, popperScope, /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuProvider, {
|
|
182
185
|
scope: __scopeMenu,
|
|
183
|
-
isSubmenu: false,
|
|
184
|
-
isUsingKeyboardRef: isUsingKeyboardRef,
|
|
185
|
-
dir: direction,
|
|
186
186
|
open: open,
|
|
187
187
|
onOpenChange: handleOpenChange,
|
|
188
188
|
content: content,
|
|
189
|
-
onContentChange: setContent
|
|
190
|
-
|
|
189
|
+
onContentChange: setContent
|
|
190
|
+
}, /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuRootProvider, {
|
|
191
|
+
scope: __scopeMenu,
|
|
192
|
+
onClose: $cnSS2$react.useCallback(()=>handleOpenChange(false)
|
|
191
193
|
, [
|
|
192
194
|
handleOpenChange
|
|
193
195
|
]),
|
|
196
|
+
isUsingKeyboardRef: isUsingKeyboardRef,
|
|
197
|
+
dir: direction,
|
|
194
198
|
modal: modal
|
|
195
|
-
}, children));
|
|
199
|
+
}, children)));
|
|
196
200
|
};
|
|
197
201
|
/*#__PURE__*/ Object.assign($213e4d2df823067d$export$d9b273488cd8ce6f, {
|
|
198
202
|
displayName: $213e4d2df823067d$var$MENU_NAME
|
|
199
203
|
});
|
|
200
|
-
/* ---------------------------------------------------------------------------------------------- */ const $213e4d2df823067d$var$SUB_NAME = 'MenuSub';
|
|
201
|
-
const $213e4d2df823067d$export$71bdb9d1e2909932 = (props)=>{
|
|
202
|
-
const { __scopeMenu: __scopeMenu , children: children , open: open = false , onOpenChange: onOpenChange } = props;
|
|
203
|
-
const parentMenuContext = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$SUB_NAME, __scopeMenu);
|
|
204
|
-
const popperScope = $213e4d2df823067d$var$usePopperScope(__scopeMenu);
|
|
205
|
-
const [trigger, setTrigger] = $cnSS2$react.useState(null);
|
|
206
|
-
const [content, setContent] = $cnSS2$react.useState(null);
|
|
207
|
-
const handleOpenChange = $cnSS2$radixuireactusecallbackref.useCallbackRef(onOpenChange); // Prevent the parent menu from reopening with open submenus.
|
|
208
|
-
$cnSS2$react.useEffect(()=>{
|
|
209
|
-
if (parentMenuContext.open === false) handleOpenChange(false);
|
|
210
|
-
return ()=>handleOpenChange(false)
|
|
211
|
-
;
|
|
212
|
-
}, [
|
|
213
|
-
parentMenuContext.open,
|
|
214
|
-
handleOpenChange
|
|
215
|
-
]);
|
|
216
|
-
return /*#__PURE__*/ $cnSS2$react.createElement($cnSS2$radixuireactpopper.Root, popperScope, /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuProvider, {
|
|
217
|
-
scope: __scopeMenu,
|
|
218
|
-
isSubmenu: true,
|
|
219
|
-
isUsingKeyboardRef: parentMenuContext.isUsingKeyboardRef,
|
|
220
|
-
dir: parentMenuContext.dir,
|
|
221
|
-
open: open,
|
|
222
|
-
onOpenChange: handleOpenChange,
|
|
223
|
-
content: content,
|
|
224
|
-
onContentChange: setContent,
|
|
225
|
-
onRootClose: parentMenuContext.onRootClose,
|
|
226
|
-
contentId: $cnSS2$radixuireactid.useId(),
|
|
227
|
-
trigger: trigger,
|
|
228
|
-
onTriggerChange: setTrigger,
|
|
229
|
-
triggerId: $cnSS2$radixuireactid.useId(),
|
|
230
|
-
modal: false
|
|
231
|
-
}, children));
|
|
232
|
-
};
|
|
233
|
-
/*#__PURE__*/ Object.assign($213e4d2df823067d$export$71bdb9d1e2909932, {
|
|
234
|
-
displayName: $213e4d2df823067d$var$SUB_NAME
|
|
235
|
-
});
|
|
236
204
|
/* -------------------------------------------------------------------------------------------------
|
|
237
205
|
* MenuAnchor
|
|
238
206
|
* -----------------------------------------------------------------------------------------------*/ const $213e4d2df823067d$var$ANCHOR_NAME = 'MenuAnchor';
|
|
@@ -253,27 +221,20 @@ const [$213e4d2df823067d$var$MenuContentProvider, $213e4d2df823067d$var$useMenuC
|
|
|
253
221
|
const $213e4d2df823067d$export$479f0f2f71193efe = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
254
222
|
const { forceMount: forceMount , ...contentProps } = props;
|
|
255
223
|
const context = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$CONTENT_NAME, props.__scopeMenu);
|
|
224
|
+
const rootContext = $213e4d2df823067d$var$useMenuRootContext($213e4d2df823067d$var$CONTENT_NAME, props.__scopeMenu);
|
|
256
225
|
return /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$Collection.Provider, {
|
|
257
226
|
scope: props.__scopeMenu
|
|
258
227
|
}, /*#__PURE__*/ $cnSS2$react.createElement($cnSS2$radixuireactpresence.Presence, {
|
|
259
228
|
present: forceMount || context.open
|
|
260
229
|
}, /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$Collection.Slot, {
|
|
261
230
|
scope: props.__scopeMenu
|
|
262
|
-
},
|
|
231
|
+
}, rootContext.modal ? /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuRootContentModal, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({}, contentProps, {
|
|
263
232
|
ref: forwardedRef
|
|
264
|
-
})) : /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$
|
|
233
|
+
})) : /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuRootContentNonModal, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({}, contentProps, {
|
|
265
234
|
ref: forwardedRef
|
|
266
235
|
})))));
|
|
267
236
|
});
|
|
268
|
-
/* ---------------------------------------------------------------------------------------------- */ const $213e4d2df823067d$var$
|
|
269
|
-
const context = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$CONTENT_NAME, props.__scopeMenu);
|
|
270
|
-
return context.modal ? /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuRootContentModal, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({}, props, {
|
|
271
|
-
ref: forwardedRef
|
|
272
|
-
})) : /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuRootContentNonModal, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({}, props, {
|
|
273
|
-
ref: forwardedRef
|
|
274
|
-
}));
|
|
275
|
-
});
|
|
276
|
-
const $213e4d2df823067d$var$MenuRootContentModal = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
237
|
+
/* ---------------------------------------------------------------------------------------------- */ const $213e4d2df823067d$var$MenuRootContentModal = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
277
238
|
const context = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$CONTENT_NAME, props.__scopeMenu);
|
|
278
239
|
const ref = $cnSS2$react.useRef(null);
|
|
279
240
|
const composedRefs = $cnSS2$radixuireactcomposerefs.useComposedRefs(forwardedRef, ref); // Hide everything from ARIA except the `MenuContent`
|
|
@@ -306,52 +267,10 @@ const $213e4d2df823067d$var$MenuRootContentNonModal = /*#__PURE__*/ $cnSS2$react
|
|
|
306
267
|
onDismiss: ()=>context.onOpenChange(false)
|
|
307
268
|
}));
|
|
308
269
|
});
|
|
309
|
-
/* ---------------------------------------------------------------------------------------------- */ const $213e4d2df823067d$var$MenuSubContent = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
310
|
-
const context = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$CONTENT_NAME, props.__scopeMenu);
|
|
311
|
-
const ref = $cnSS2$react.useRef(null);
|
|
312
|
-
const composedRefs = $cnSS2$radixuireactcomposerefs.useComposedRefs(forwardedRef, ref);
|
|
313
|
-
return context.isSubmenu ? /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuContentImpl, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({
|
|
314
|
-
id: context.contentId,
|
|
315
|
-
"aria-labelledby": context.triggerId
|
|
316
|
-
}, props, {
|
|
317
|
-
ref: composedRefs,
|
|
318
|
-
align: "start",
|
|
319
|
-
side: context.dir === 'rtl' ? 'left' : 'right',
|
|
320
|
-
portalled: true,
|
|
321
|
-
disableOutsidePointerEvents: false,
|
|
322
|
-
disableOutsideScroll: false,
|
|
323
|
-
trapFocus: false,
|
|
324
|
-
onOpenAutoFocus: (event)=>{
|
|
325
|
-
var _ref$current;
|
|
326
|
-
// when opening a submenu, focus content for keyboard users only
|
|
327
|
-
if (context.isUsingKeyboardRef.current) (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.focus();
|
|
328
|
-
event.preventDefault();
|
|
329
|
-
} // The menu might close because of focusing another menu item in the parent menu. We
|
|
330
|
-
,
|
|
331
|
-
onCloseAutoFocus: (event)=>event.preventDefault()
|
|
332
|
-
,
|
|
333
|
-
onFocusOutside: $cnSS2$radixuiprimitive.composeEventHandlers(props.onFocusOutside, (event)=>{
|
|
334
|
-
// We prevent closing when the trigger is focused to avoid triggering a re-open animation
|
|
335
|
-
// on pointer interaction.
|
|
336
|
-
if (event.target !== context.trigger) context.onOpenChange(false);
|
|
337
|
-
}),
|
|
338
|
-
onEscapeKeyDown: $cnSS2$radixuiprimitive.composeEventHandlers(props.onEscapeKeyDown, context.onRootClose),
|
|
339
|
-
onKeyDown: $cnSS2$radixuiprimitive.composeEventHandlers(props.onKeyDown, (event)=>{
|
|
340
|
-
// Submenu key events bubble through portals. We only care about keys in this menu.
|
|
341
|
-
const isKeyDownInside = event.currentTarget.contains(event.target);
|
|
342
|
-
const isCloseKey = $213e4d2df823067d$var$SUB_CLOSE_KEYS[context.dir].includes(event.key);
|
|
343
|
-
if (isKeyDownInside && isCloseKey) {
|
|
344
|
-
var _context$trigger;
|
|
345
|
-
context.onOpenChange(false); // We focus manually because we prevented it in `onCloseAutoFocus`
|
|
346
|
-
(_context$trigger = context.trigger) === null || _context$trigger === void 0 || _context$trigger.focus(); // prevent window from scrolling
|
|
347
|
-
event.preventDefault();
|
|
348
|
-
}
|
|
349
|
-
})
|
|
350
|
-
})) : null;
|
|
351
|
-
});
|
|
352
270
|
/* ---------------------------------------------------------------------------------------------- */ const $213e4d2df823067d$var$MenuContentImpl = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
353
271
|
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 , allowPinchZoom: allowPinchZoom , portalled: portalled , ...contentProps } = props;
|
|
354
272
|
const context = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$CONTENT_NAME, __scopeMenu);
|
|
273
|
+
const rootContext = $213e4d2df823067d$var$useMenuRootContext($213e4d2df823067d$var$CONTENT_NAME, __scopeMenu);
|
|
355
274
|
const popperScope = $213e4d2df823067d$var$usePopperScope(__scopeMenu);
|
|
356
275
|
const rovingFocusGroupScope = $213e4d2df823067d$var$useRovingFocusGroupScope(__scopeMenu);
|
|
357
276
|
const getItems = $213e4d2df823067d$var$useCollection(__scopeMenu);
|
|
@@ -452,20 +371,20 @@ const $213e4d2df823067d$var$MenuRootContentNonModal = /*#__PURE__*/ $cnSS2$react
|
|
|
452
371
|
}, /*#__PURE__*/ $cnSS2$react.createElement($cnSS2$radixuireactrovingfocus.Root, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({
|
|
453
372
|
asChild: true
|
|
454
373
|
}, rovingFocusGroupScope, {
|
|
455
|
-
dir:
|
|
374
|
+
dir: rootContext.dir,
|
|
456
375
|
orientation: "vertical",
|
|
457
376
|
loop: loop,
|
|
458
377
|
currentTabStopId: currentItemId,
|
|
459
378
|
onCurrentTabStopIdChange: setCurrentItemId,
|
|
460
379
|
onEntryFocus: (event)=>{
|
|
461
380
|
// only focus first item when using keyboard
|
|
462
|
-
if (!
|
|
381
|
+
if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();
|
|
463
382
|
}
|
|
464
383
|
}), /*#__PURE__*/ $cnSS2$react.createElement($cnSS2$radixuireactpopper.Content, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({
|
|
465
384
|
role: "menu",
|
|
466
385
|
"aria-orientation": "vertical",
|
|
467
386
|
"data-state": $213e4d2df823067d$var$getOpenState(context.open),
|
|
468
|
-
dir:
|
|
387
|
+
dir: rootContext.dir
|
|
469
388
|
}, popperScope, contentProps, {
|
|
470
389
|
ref: composedRefs,
|
|
471
390
|
style: {
|
|
@@ -549,7 +468,7 @@ const $213e4d2df823067d$var$ITEM_SELECT = 'menu.itemSelect';
|
|
|
549
468
|
const $213e4d2df823067d$export$2ce376c2cc3355c8 = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
550
469
|
const { disabled: disabled = false , onSelect: onSelect , ...itemProps } = props;
|
|
551
470
|
const ref = $cnSS2$react.useRef(null);
|
|
552
|
-
const
|
|
471
|
+
const rootContext = $213e4d2df823067d$var$useMenuRootContext($213e4d2df823067d$var$ITEM_NAME, props.__scopeMenu);
|
|
553
472
|
const contentContext = $213e4d2df823067d$var$useMenuContentContext($213e4d2df823067d$var$ITEM_NAME, props.__scopeMenu);
|
|
554
473
|
const composedRefs = $cnSS2$radixuireactcomposerefs.useComposedRefs(forwardedRef, ref);
|
|
555
474
|
const isPointerDownRef = $cnSS2$react.useRef(false);
|
|
@@ -566,7 +485,7 @@ const $213e4d2df823067d$export$2ce376c2cc3355c8 = /*#__PURE__*/ $cnSS2$react.for
|
|
|
566
485
|
});
|
|
567
486
|
$cnSS2$radixuireactprimitive.dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);
|
|
568
487
|
if (itemSelectEvent.defaultPrevented) isPointerDownRef.current = false;
|
|
569
|
-
else
|
|
488
|
+
else rootContext.onClose();
|
|
570
489
|
}
|
|
571
490
|
};
|
|
572
491
|
return /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuItemImpl, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({}, itemProps, {
|
|
@@ -603,131 +522,6 @@ const $213e4d2df823067d$export$2ce376c2cc3355c8 = /*#__PURE__*/ $cnSS2$react.for
|
|
|
603
522
|
/*#__PURE__*/ Object.assign($213e4d2df823067d$export$2ce376c2cc3355c8, {
|
|
604
523
|
displayName: $213e4d2df823067d$var$ITEM_NAME
|
|
605
524
|
});
|
|
606
|
-
/* -------------------------------------------------------------------------------------------------
|
|
607
|
-
* MenuSubTrigger
|
|
608
|
-
* -----------------------------------------------------------------------------------------------*/ const $213e4d2df823067d$var$SUB_TRIGGER_NAME = 'MenuSubTrigger';
|
|
609
|
-
const $213e4d2df823067d$export$5fbbb3ba7297405f = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
610
|
-
const context = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
611
|
-
const contentContext = $213e4d2df823067d$var$useMenuContentContext($213e4d2df823067d$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
612
|
-
const openTimerRef = $cnSS2$react.useRef(null);
|
|
613
|
-
const { pointerGraceTimerRef: pointerGraceTimerRef , onPointerGraceIntentChange: onPointerGraceIntentChange } = contentContext;
|
|
614
|
-
const scope = {
|
|
615
|
-
__scopeMenu: props.__scopeMenu
|
|
616
|
-
};
|
|
617
|
-
const clearOpenTimer = $cnSS2$react.useCallback(()=>{
|
|
618
|
-
if (openTimerRef.current) window.clearTimeout(openTimerRef.current);
|
|
619
|
-
openTimerRef.current = null;
|
|
620
|
-
}, []);
|
|
621
|
-
$cnSS2$react.useEffect(()=>clearOpenTimer
|
|
622
|
-
, [
|
|
623
|
-
clearOpenTimer
|
|
624
|
-
]);
|
|
625
|
-
$cnSS2$react.useEffect(()=>{
|
|
626
|
-
const pointerGraceTimer = pointerGraceTimerRef.current;
|
|
627
|
-
return ()=>{
|
|
628
|
-
window.clearTimeout(pointerGraceTimer);
|
|
629
|
-
onPointerGraceIntentChange(null);
|
|
630
|
-
};
|
|
631
|
-
}, [
|
|
632
|
-
pointerGraceTimerRef,
|
|
633
|
-
onPointerGraceIntentChange
|
|
634
|
-
]);
|
|
635
|
-
return context.isSubmenu ? /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$export$9fa5ebd18bee4d43, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({
|
|
636
|
-
asChild: true
|
|
637
|
-
}, scope), /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuItemImpl, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({
|
|
638
|
-
id: context.triggerId,
|
|
639
|
-
"aria-haspopup": "menu",
|
|
640
|
-
"aria-expanded": context.open,
|
|
641
|
-
"aria-controls": context.contentId,
|
|
642
|
-
"data-state": $213e4d2df823067d$var$getOpenState(context.open)
|
|
643
|
-
}, props, {
|
|
644
|
-
ref: $cnSS2$radixuireactcomposerefs.composeRefs(forwardedRef, context.onTriggerChange) // This is redundant for mouse users but we cannot determine pointer type from
|
|
645
|
-
,
|
|
646
|
-
onClick: (event)=>{
|
|
647
|
-
var _props$onClick;
|
|
648
|
-
(_props$onClick = props.onClick) === null || _props$onClick === void 0 || _props$onClick.call(props, event);
|
|
649
|
-
if (props.disabled || event.defaultPrevented) return;
|
|
650
|
-
/**
|
|
651
|
-
* We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)
|
|
652
|
-
* and we rely heavily on `onFocusOutside` for submenus to close when switching
|
|
653
|
-
* between separate submenus.
|
|
654
|
-
*/ event.currentTarget.focus();
|
|
655
|
-
if (!context.open) context.onOpenChange(true);
|
|
656
|
-
},
|
|
657
|
-
onPointerMove: $cnSS2$radixuiprimitive.composeEventHandlers(props.onPointerMove, $213e4d2df823067d$var$whenMouse((event)=>{
|
|
658
|
-
contentContext.onItemEnter(event);
|
|
659
|
-
if (event.defaultPrevented) return;
|
|
660
|
-
if (!props.disabled && !context.open && !openTimerRef.current) {
|
|
661
|
-
contentContext.onPointerGraceIntentChange(null);
|
|
662
|
-
openTimerRef.current = window.setTimeout(()=>{
|
|
663
|
-
context.onOpenChange(true);
|
|
664
|
-
clearOpenTimer();
|
|
665
|
-
}, 100);
|
|
666
|
-
}
|
|
667
|
-
})),
|
|
668
|
-
onPointerLeave: $cnSS2$radixuiprimitive.composeEventHandlers(props.onPointerLeave, $213e4d2df823067d$var$whenMouse((event)=>{
|
|
669
|
-
var _context$content;
|
|
670
|
-
clearOpenTimer();
|
|
671
|
-
const contentRect = (_context$content = context.content) === null || _context$content === void 0 ? void 0 : _context$content.getBoundingClientRect();
|
|
672
|
-
if (contentRect) {
|
|
673
|
-
var _context$content2;
|
|
674
|
-
// TODO: make sure to update this when we change positioning logic
|
|
675
|
-
const side = (_context$content2 = context.content) === null || _context$content2 === void 0 ? void 0 : _context$content2.dataset.side;
|
|
676
|
-
const rightSide = side === 'right';
|
|
677
|
-
const bleed = rightSide ? -5 : 5;
|
|
678
|
-
const contentNearEdge = contentRect[rightSide ? 'left' : 'right'];
|
|
679
|
-
const contentFarEdge = contentRect[rightSide ? 'right' : 'left'];
|
|
680
|
-
contentContext.onPointerGraceIntentChange({
|
|
681
|
-
area: [
|
|
682
|
-
// consistently within polygon bounds
|
|
683
|
-
{
|
|
684
|
-
x: event.clientX + bleed,
|
|
685
|
-
y: event.clientY
|
|
686
|
-
},
|
|
687
|
-
{
|
|
688
|
-
x: contentNearEdge,
|
|
689
|
-
y: contentRect.top
|
|
690
|
-
},
|
|
691
|
-
{
|
|
692
|
-
x: contentFarEdge,
|
|
693
|
-
y: contentRect.top
|
|
694
|
-
},
|
|
695
|
-
{
|
|
696
|
-
x: contentFarEdge,
|
|
697
|
-
y: contentRect.bottom
|
|
698
|
-
},
|
|
699
|
-
{
|
|
700
|
-
x: contentNearEdge,
|
|
701
|
-
y: contentRect.bottom
|
|
702
|
-
}
|
|
703
|
-
],
|
|
704
|
-
side: side
|
|
705
|
-
});
|
|
706
|
-
window.clearTimeout(pointerGraceTimerRef.current);
|
|
707
|
-
pointerGraceTimerRef.current = window.setTimeout(()=>contentContext.onPointerGraceIntentChange(null)
|
|
708
|
-
, 300);
|
|
709
|
-
} else {
|
|
710
|
-
contentContext.onTriggerLeave(event);
|
|
711
|
-
if (event.defaultPrevented) return; // There's 100ms where the user may leave an item before the submenu was opened.
|
|
712
|
-
contentContext.onPointerGraceIntentChange(null);
|
|
713
|
-
}
|
|
714
|
-
})),
|
|
715
|
-
onKeyDown: $cnSS2$radixuiprimitive.composeEventHandlers(props.onKeyDown, (event)=>{
|
|
716
|
-
const isTypingAhead = contentContext.searchRef.current !== '';
|
|
717
|
-
if (props.disabled || isTypingAhead && event.key === ' ') return;
|
|
718
|
-
if ($213e4d2df823067d$var$SUB_OPEN_KEYS[context.dir].includes(event.key)) {
|
|
719
|
-
var _context$content3;
|
|
720
|
-
context.onOpenChange(true); // The trigger may hold focus if opened via pointer interaction
|
|
721
|
-
// so we ensure content is given focus again when switching to keyboard.
|
|
722
|
-
(_context$content3 = context.content) === null || _context$content3 === void 0 || _context$content3.focus(); // prevent window from scrolling
|
|
723
|
-
event.preventDefault();
|
|
724
|
-
}
|
|
725
|
-
})
|
|
726
|
-
}))) : null;
|
|
727
|
-
});
|
|
728
|
-
/*#__PURE__*/ Object.assign($213e4d2df823067d$export$5fbbb3ba7297405f, {
|
|
729
|
-
displayName: $213e4d2df823067d$var$SUB_TRIGGER_NAME
|
|
730
|
-
});
|
|
731
525
|
/* ---------------------------------------------------------------------------------------------- */ const $213e4d2df823067d$var$MenuItemImpl = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
732
526
|
const { __scopeMenu: __scopeMenu , disabled: disabled = false , textValue: textValue , ...itemProps } = props;
|
|
733
527
|
const contentContext = $213e4d2df823067d$var$useMenuContentContext($213e4d2df823067d$var$ITEM_NAME, __scopeMenu);
|
|
@@ -896,6 +690,227 @@ const $213e4d2df823067d$export$bcdda4773debf5fa = /*#__PURE__*/ $cnSS2$react.for
|
|
|
896
690
|
/*#__PURE__*/ Object.assign($213e4d2df823067d$export$bcdda4773debf5fa, {
|
|
897
691
|
displayName: $213e4d2df823067d$var$ARROW_NAME
|
|
898
692
|
});
|
|
693
|
+
/* -------------------------------------------------------------------------------------------------
|
|
694
|
+
* MenuSub
|
|
695
|
+
* -----------------------------------------------------------------------------------------------*/ const $213e4d2df823067d$var$SUB_NAME = 'MenuSub';
|
|
696
|
+
const [$213e4d2df823067d$var$MenuSubProvider, $213e4d2df823067d$var$useMenuSubContext] = $213e4d2df823067d$var$createMenuContext($213e4d2df823067d$var$SUB_NAME);
|
|
697
|
+
const $213e4d2df823067d$export$71bdb9d1e2909932 = (props)=>{
|
|
698
|
+
const { __scopeMenu: __scopeMenu , children: children , open: open = false , onOpenChange: onOpenChange } = props;
|
|
699
|
+
const parentMenuContext = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$SUB_NAME, __scopeMenu);
|
|
700
|
+
const popperScope = $213e4d2df823067d$var$usePopperScope(__scopeMenu);
|
|
701
|
+
const [trigger, setTrigger] = $cnSS2$react.useState(null);
|
|
702
|
+
const [content, setContent] = $cnSS2$react.useState(null);
|
|
703
|
+
const handleOpenChange = $cnSS2$radixuireactusecallbackref.useCallbackRef(onOpenChange); // Prevent the parent menu from reopening with open submenus.
|
|
704
|
+
$cnSS2$react.useEffect(()=>{
|
|
705
|
+
if (parentMenuContext.open === false) handleOpenChange(false);
|
|
706
|
+
return ()=>handleOpenChange(false)
|
|
707
|
+
;
|
|
708
|
+
}, [
|
|
709
|
+
parentMenuContext.open,
|
|
710
|
+
handleOpenChange
|
|
711
|
+
]);
|
|
712
|
+
return /*#__PURE__*/ $cnSS2$react.createElement($cnSS2$radixuireactpopper.Root, popperScope, /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuProvider, {
|
|
713
|
+
scope: __scopeMenu,
|
|
714
|
+
open: open,
|
|
715
|
+
onOpenChange: handleOpenChange,
|
|
716
|
+
content: content,
|
|
717
|
+
onContentChange: setContent
|
|
718
|
+
}, /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuSubProvider, {
|
|
719
|
+
scope: __scopeMenu,
|
|
720
|
+
contentId: $cnSS2$radixuireactid.useId(),
|
|
721
|
+
triggerId: $cnSS2$radixuireactid.useId(),
|
|
722
|
+
trigger: trigger,
|
|
723
|
+
onTriggerChange: setTrigger
|
|
724
|
+
}, children)));
|
|
725
|
+
};
|
|
726
|
+
/*#__PURE__*/ Object.assign($213e4d2df823067d$export$71bdb9d1e2909932, {
|
|
727
|
+
displayName: $213e4d2df823067d$var$SUB_NAME
|
|
728
|
+
});
|
|
729
|
+
/* -------------------------------------------------------------------------------------------------
|
|
730
|
+
* MenuSubTrigger
|
|
731
|
+
* -----------------------------------------------------------------------------------------------*/ const $213e4d2df823067d$var$SUB_TRIGGER_NAME = 'MenuSubTrigger';
|
|
732
|
+
const $213e4d2df823067d$export$5fbbb3ba7297405f = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
733
|
+
const context = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
734
|
+
const rootContext = $213e4d2df823067d$var$useMenuRootContext($213e4d2df823067d$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
735
|
+
const subContext = $213e4d2df823067d$var$useMenuSubContext($213e4d2df823067d$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
736
|
+
const contentContext = $213e4d2df823067d$var$useMenuContentContext($213e4d2df823067d$var$SUB_TRIGGER_NAME, props.__scopeMenu);
|
|
737
|
+
const openTimerRef = $cnSS2$react.useRef(null);
|
|
738
|
+
const { pointerGraceTimerRef: pointerGraceTimerRef , onPointerGraceIntentChange: onPointerGraceIntentChange } = contentContext;
|
|
739
|
+
const scope = {
|
|
740
|
+
__scopeMenu: props.__scopeMenu
|
|
741
|
+
};
|
|
742
|
+
const clearOpenTimer = $cnSS2$react.useCallback(()=>{
|
|
743
|
+
if (openTimerRef.current) window.clearTimeout(openTimerRef.current);
|
|
744
|
+
openTimerRef.current = null;
|
|
745
|
+
}, []);
|
|
746
|
+
$cnSS2$react.useEffect(()=>clearOpenTimer
|
|
747
|
+
, [
|
|
748
|
+
clearOpenTimer
|
|
749
|
+
]);
|
|
750
|
+
$cnSS2$react.useEffect(()=>{
|
|
751
|
+
const pointerGraceTimer = pointerGraceTimerRef.current;
|
|
752
|
+
return ()=>{
|
|
753
|
+
window.clearTimeout(pointerGraceTimer);
|
|
754
|
+
onPointerGraceIntentChange(null);
|
|
755
|
+
};
|
|
756
|
+
}, [
|
|
757
|
+
pointerGraceTimerRef,
|
|
758
|
+
onPointerGraceIntentChange
|
|
759
|
+
]);
|
|
760
|
+
return /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$export$9fa5ebd18bee4d43, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({
|
|
761
|
+
asChild: true
|
|
762
|
+
}, scope), /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuItemImpl, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({
|
|
763
|
+
id: subContext.triggerId,
|
|
764
|
+
"aria-haspopup": "menu",
|
|
765
|
+
"aria-expanded": context.open,
|
|
766
|
+
"aria-controls": subContext.contentId,
|
|
767
|
+
"data-state": $213e4d2df823067d$var$getOpenState(context.open)
|
|
768
|
+
}, props, {
|
|
769
|
+
ref: $cnSS2$radixuireactcomposerefs.composeRefs(forwardedRef, subContext.onTriggerChange) // This is redundant for mouse users but we cannot determine pointer type from
|
|
770
|
+
,
|
|
771
|
+
onClick: (event)=>{
|
|
772
|
+
var _props$onClick;
|
|
773
|
+
(_props$onClick = props.onClick) === null || _props$onClick === void 0 || _props$onClick.call(props, event);
|
|
774
|
+
if (props.disabled || event.defaultPrevented) return;
|
|
775
|
+
/**
|
|
776
|
+
* We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)
|
|
777
|
+
* and we rely heavily on `onFocusOutside` for submenus to close when switching
|
|
778
|
+
* between separate submenus.
|
|
779
|
+
*/ event.currentTarget.focus();
|
|
780
|
+
if (!context.open) context.onOpenChange(true);
|
|
781
|
+
},
|
|
782
|
+
onPointerMove: $cnSS2$radixuiprimitive.composeEventHandlers(props.onPointerMove, $213e4d2df823067d$var$whenMouse((event)=>{
|
|
783
|
+
contentContext.onItemEnter(event);
|
|
784
|
+
if (event.defaultPrevented) return;
|
|
785
|
+
if (!props.disabled && !context.open && !openTimerRef.current) {
|
|
786
|
+
contentContext.onPointerGraceIntentChange(null);
|
|
787
|
+
openTimerRef.current = window.setTimeout(()=>{
|
|
788
|
+
context.onOpenChange(true);
|
|
789
|
+
clearOpenTimer();
|
|
790
|
+
}, 100);
|
|
791
|
+
}
|
|
792
|
+
})),
|
|
793
|
+
onPointerLeave: $cnSS2$radixuiprimitive.composeEventHandlers(props.onPointerLeave, $213e4d2df823067d$var$whenMouse((event)=>{
|
|
794
|
+
var _context$content;
|
|
795
|
+
clearOpenTimer();
|
|
796
|
+
const contentRect = (_context$content = context.content) === null || _context$content === void 0 ? void 0 : _context$content.getBoundingClientRect();
|
|
797
|
+
if (contentRect) {
|
|
798
|
+
var _context$content2;
|
|
799
|
+
// TODO: make sure to update this when we change positioning logic
|
|
800
|
+
const side = (_context$content2 = context.content) === null || _context$content2 === void 0 ? void 0 : _context$content2.dataset.side;
|
|
801
|
+
const rightSide = side === 'right';
|
|
802
|
+
const bleed = rightSide ? -5 : 5;
|
|
803
|
+
const contentNearEdge = contentRect[rightSide ? 'left' : 'right'];
|
|
804
|
+
const contentFarEdge = contentRect[rightSide ? 'right' : 'left'];
|
|
805
|
+
contentContext.onPointerGraceIntentChange({
|
|
806
|
+
area: [
|
|
807
|
+
// consistently within polygon bounds
|
|
808
|
+
{
|
|
809
|
+
x: event.clientX + bleed,
|
|
810
|
+
y: event.clientY
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
x: contentNearEdge,
|
|
814
|
+
y: contentRect.top
|
|
815
|
+
},
|
|
816
|
+
{
|
|
817
|
+
x: contentFarEdge,
|
|
818
|
+
y: contentRect.top
|
|
819
|
+
},
|
|
820
|
+
{
|
|
821
|
+
x: contentFarEdge,
|
|
822
|
+
y: contentRect.bottom
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
x: contentNearEdge,
|
|
826
|
+
y: contentRect.bottom
|
|
827
|
+
}
|
|
828
|
+
],
|
|
829
|
+
side: side
|
|
830
|
+
});
|
|
831
|
+
window.clearTimeout(pointerGraceTimerRef.current);
|
|
832
|
+
pointerGraceTimerRef.current = window.setTimeout(()=>contentContext.onPointerGraceIntentChange(null)
|
|
833
|
+
, 300);
|
|
834
|
+
} else {
|
|
835
|
+
contentContext.onTriggerLeave(event);
|
|
836
|
+
if (event.defaultPrevented) return; // There's 100ms where the user may leave an item before the submenu was opened.
|
|
837
|
+
contentContext.onPointerGraceIntentChange(null);
|
|
838
|
+
}
|
|
839
|
+
})),
|
|
840
|
+
onKeyDown: $cnSS2$radixuiprimitive.composeEventHandlers(props.onKeyDown, (event)=>{
|
|
841
|
+
const isTypingAhead = contentContext.searchRef.current !== '';
|
|
842
|
+
if (props.disabled || isTypingAhead && event.key === ' ') return;
|
|
843
|
+
if ($213e4d2df823067d$var$SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {
|
|
844
|
+
var _context$content3;
|
|
845
|
+
context.onOpenChange(true); // The trigger may hold focus if opened via pointer interaction
|
|
846
|
+
// so we ensure content is given focus again when switching to keyboard.
|
|
847
|
+
(_context$content3 = context.content) === null || _context$content3 === void 0 || _context$content3.focus(); // prevent window from scrolling
|
|
848
|
+
event.preventDefault();
|
|
849
|
+
}
|
|
850
|
+
})
|
|
851
|
+
})));
|
|
852
|
+
});
|
|
853
|
+
/*#__PURE__*/ Object.assign($213e4d2df823067d$export$5fbbb3ba7297405f, {
|
|
854
|
+
displayName: $213e4d2df823067d$var$SUB_TRIGGER_NAME
|
|
855
|
+
});
|
|
856
|
+
/* -------------------------------------------------------------------------------------------------
|
|
857
|
+
* MenuSubContent
|
|
858
|
+
* -----------------------------------------------------------------------------------------------*/ const $213e4d2df823067d$var$SUB_CONTENT_NAME = 'MenuSubContent';
|
|
859
|
+
const $213e4d2df823067d$export$e7142ab31822bde6 = /*#__PURE__*/ $cnSS2$react.forwardRef((props, forwardedRef)=>{
|
|
860
|
+
const { forceMount: forceMount , ...subContentProps } = props;
|
|
861
|
+
const context = $213e4d2df823067d$var$useMenuContext($213e4d2df823067d$var$CONTENT_NAME, props.__scopeMenu);
|
|
862
|
+
const rootContext = $213e4d2df823067d$var$useMenuRootContext($213e4d2df823067d$var$CONTENT_NAME, props.__scopeMenu);
|
|
863
|
+
const subContext = $213e4d2df823067d$var$useMenuSubContext($213e4d2df823067d$var$SUB_CONTENT_NAME, props.__scopeMenu);
|
|
864
|
+
const ref = $cnSS2$react.useRef(null);
|
|
865
|
+
const composedRefs = $cnSS2$radixuireactcomposerefs.useComposedRefs(forwardedRef, ref);
|
|
866
|
+
return /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$Collection.Provider, {
|
|
867
|
+
scope: props.__scopeMenu
|
|
868
|
+
}, /*#__PURE__*/ $cnSS2$react.createElement($cnSS2$radixuireactpresence.Presence, {
|
|
869
|
+
present: forceMount || context.open
|
|
870
|
+
}, /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$Collection.Slot, {
|
|
871
|
+
scope: props.__scopeMenu
|
|
872
|
+
}, /*#__PURE__*/ $cnSS2$react.createElement($213e4d2df823067d$var$MenuContentImpl, ($parcel$interopDefault($cnSS2$babelruntimehelpersextends))({
|
|
873
|
+
id: subContext.contentId,
|
|
874
|
+
"aria-labelledby": subContext.triggerId
|
|
875
|
+
}, subContentProps, {
|
|
876
|
+
ref: composedRefs,
|
|
877
|
+
align: "start",
|
|
878
|
+
side: rootContext.dir === 'rtl' ? 'left' : 'right',
|
|
879
|
+
portalled: true,
|
|
880
|
+
disableOutsidePointerEvents: false,
|
|
881
|
+
disableOutsideScroll: false,
|
|
882
|
+
trapFocus: false,
|
|
883
|
+
onOpenAutoFocus: (event)=>{
|
|
884
|
+
var _ref$current;
|
|
885
|
+
// when opening a submenu, focus content for keyboard users only
|
|
886
|
+
if (rootContext.isUsingKeyboardRef.current) (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.focus();
|
|
887
|
+
event.preventDefault();
|
|
888
|
+
} // The menu might close because of focusing another menu item in the parent menu. We
|
|
889
|
+
,
|
|
890
|
+
onCloseAutoFocus: (event)=>event.preventDefault()
|
|
891
|
+
,
|
|
892
|
+
onFocusOutside: $cnSS2$radixuiprimitive.composeEventHandlers(props.onFocusOutside, (event)=>{
|
|
893
|
+
// We prevent closing when the trigger is focused to avoid triggering a re-open animation
|
|
894
|
+
// on pointer interaction.
|
|
895
|
+
if (event.target !== subContext.trigger) context.onOpenChange(false);
|
|
896
|
+
}),
|
|
897
|
+
onEscapeKeyDown: $cnSS2$radixuiprimitive.composeEventHandlers(props.onEscapeKeyDown, rootContext.onClose),
|
|
898
|
+
onKeyDown: $cnSS2$radixuiprimitive.composeEventHandlers(props.onKeyDown, (event)=>{
|
|
899
|
+
// Submenu key events bubble through portals. We only care about keys in this menu.
|
|
900
|
+
const isKeyDownInside = event.currentTarget.contains(event.target);
|
|
901
|
+
const isCloseKey = $213e4d2df823067d$var$SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);
|
|
902
|
+
if (isKeyDownInside && isCloseKey) {
|
|
903
|
+
var _subContext$trigger;
|
|
904
|
+
context.onOpenChange(false); // We focus manually because we prevented it in `onCloseAutoFocus`
|
|
905
|
+
(_subContext$trigger = subContext.trigger) === null || _subContext$trigger === void 0 || _subContext$trigger.focus(); // prevent window from scrolling
|
|
906
|
+
event.preventDefault();
|
|
907
|
+
}
|
|
908
|
+
})
|
|
909
|
+
})))));
|
|
910
|
+
});
|
|
911
|
+
/*#__PURE__*/ Object.assign($213e4d2df823067d$export$e7142ab31822bde6, {
|
|
912
|
+
displayName: $213e4d2df823067d$var$SUB_CONTENT_NAME
|
|
913
|
+
});
|
|
899
914
|
/* -----------------------------------------------------------------------------------------------*/ function $213e4d2df823067d$var$getOpenState(open) {
|
|
900
915
|
return open ? 'open' : 'closed';
|
|
901
916
|
}
|
|
@@ -975,9 +990,7 @@ function $213e4d2df823067d$var$whenMouse(handler) {
|
|
|
975
990
|
;
|
|
976
991
|
}
|
|
977
992
|
const $213e4d2df823067d$export$be92b6f5f03c0fe9 = $213e4d2df823067d$export$d9b273488cd8ce6f;
|
|
978
|
-
const $213e4d2df823067d$export$d7a01e11500dfb6f = $213e4d2df823067d$export$71bdb9d1e2909932;
|
|
979
993
|
const $213e4d2df823067d$export$b688253958b8dfe7 = $213e4d2df823067d$export$9fa5ebd18bee4d43;
|
|
980
|
-
const $213e4d2df823067d$export$2ea8a7a591ac5eac = $213e4d2df823067d$export$5fbbb3ba7297405f;
|
|
981
994
|
const $213e4d2df823067d$export$7c6e2c02157bb7d2 = $213e4d2df823067d$export$479f0f2f71193efe;
|
|
982
995
|
const $213e4d2df823067d$export$eb2fcfdbd7ba97d4 = $213e4d2df823067d$export$22a631d1f72787bb;
|
|
983
996
|
const $213e4d2df823067d$export$b04be29aa201d4f5 = $213e4d2df823067d$export$dd37bec0e8a99143;
|
|
@@ -988,6 +1001,9 @@ const $213e4d2df823067d$export$371ab307eab489c0 = $213e4d2df823067d$export$69bd2
|
|
|
988
1001
|
const $213e4d2df823067d$export$c3468e2714d175fa = $213e4d2df823067d$export$a2593e23056970a3;
|
|
989
1002
|
const $213e4d2df823067d$export$1ff3c3f08ae963c0 = $213e4d2df823067d$export$1cec7dcdd713e220;
|
|
990
1003
|
const $213e4d2df823067d$export$21b07c8f274aebd5 = $213e4d2df823067d$export$bcdda4773debf5fa;
|
|
1004
|
+
const $213e4d2df823067d$export$d7a01e11500dfb6f = $213e4d2df823067d$export$71bdb9d1e2909932;
|
|
1005
|
+
const $213e4d2df823067d$export$2ea8a7a591ac5eac = $213e4d2df823067d$export$5fbbb3ba7297405f;
|
|
1006
|
+
const $213e4d2df823067d$export$6d4de93b380beddf = $213e4d2df823067d$export$e7142ab31822bde6;
|
|
991
1007
|
|
|
992
1008
|
|
|
993
1009
|
$parcel$exportWildcard(module.exports, $213e4d2df823067d$exports);
|